BlockySmoke
This is a simple plugin which can create "blocky smokers" - blocks that generate smoke made of cobweb blocks which actually moves and billows slowly. Command based and very configurable. Everything from the volume of smoke produced to how long it lives to which direction the wind comes from can be customised. Even the block type of the smoke can be changed if desired.
For now you need to be op to use the plugin. In the future permissions and/or region support may be added.
(Note: the "chimney" can be any block you want; they just happen to be brick in this screenshot.)
Quick Start
Download the plugin, place it in your plugins directory and restart CraftBukkit or issue the /reload
command.
Then, build a chimney, point at the topmost block of it and give the command /createsmoker
. Instant smoke!!! Note that you have to be op to use the command. To remove the smoker, just destroy the block.
Creating Smokers
/createsmoker [decayChance=decayChance] [density=density | minDensity=minDensity maxDensity=maxDensity] [maxDistance=maxDistance] [wind=random | wind=wind | wind=windFrom-windTo] [type=type] [data=data]
Creates a new blocky smoker of the block you are pointing at, or updates an existing one. All parameters are optional:
decayChance=decayChance
The chance that a smoke block will dissipate into nothingness per block per update. Must be a floating point value between 0.0 and 1.0. Set this towards 0.0 to make the smoke last longer or towards 1.0 to make it disappear quicker. Defaults to 0.167, in other words by default the chance that a block will disappear is one in six.
maxDistance=maxDistance
The maximum distance from the source block smoke blocks are allowed to go. Must be a number above 0. Defaults to 6. Set this higher to make longer smoke trails, although remember that if decayChance is too high all the smoke may dissipate before it reaches this far!
density=density
minDensity=minDensity maxDensity=maxDensity
The number of new smoke blocks to generate per update. Must be a number above 0. Defaults to 2. Setting density
is the same as setting minDensity
and maxDensity
to the same value. If you set them different then the density will vary randomly between them each update. Note that smoke blocks can occupy the same volume! They will tend to billow out though. Set this higher to generate denser, thicker smoke.
wind=random
wind=wind
wind=windFrom-windTo
Sets the wind direction for the smoke from this smoker. Set it to random
to have the wind come randomly from all directions. Set it to one value (one of N
, NE
, E
, SE
, S
, SW
, W
or NW
) to have the wind come from that direction constantly. Or set it to two values to have the wind vary randomly between the two directions. Defaults to random
. For instance set it to N-E
to have the wind come from the north, north-east or east.
type=type
The block type to use for the smoke blocks. May be a name or a number between 0 and 4095. Defaults to WEB
(block ID 30).
data=data
The data value to use for the smoke blocks. Must be a number between 0 and 15. Defaults to 0.
Examples
A small smoker (say, a house):
/createsmoker
A very large and voluminous smoker (say, a large chimney of a major factory):
/createsmoker density=25 maxDistance=25
An even more dense large and voluminous smoker:
/createsmoker density=25 maxDistance=25 decayChance=0
A long but thin trail of smoke:
/createsmoker density=1 maxDistance=15 decayChance=0.1
A smoker with wind veering between easterly and southerly (a quarter circle):
/createsmoker wind=E-S
A smoker with wind veering between southerly and easterly (a three quarters circle):
/createsmoker wind=S-E
A smoker with northerly winds:
/createsmoker wind=N
A smoker which uses white wool instead of cobwebs:
/createsmoker type=WOOL
Other Commands
These are the other commands you can use:
/inspectsmoker
Tells you the settings of the blocky smoker you are targeting.
/removesmoker
Removes the blocky smoker you are targeting (including the smoke). Note that you can also remove the smoker by destroying the block.
/removeallsmokers
Removes all blocky smokers from the current world (including the smoke). This is a dangerous command as it will not ask for confirmation, so be careful with it!
/pausesmokers
Pauses all smokers and removes all the smoke. Can be handy if you want to work on something without it being obscured or you being hindered by smoke.
/continuesmokers
Cancels the pause and starts all smokers smoking again.
Configuration
The following config.yml file will be generated in your plugins/BlockySmoker directory. Most of the settings just configure the default values for new smokers, but there are a few other settings as well. The comments explain what each one does:
# The delay between smoke updates in server ticks (there are twenty server ticks # per second) delay: 40 # The default block type for the smoke blocks smokeType: WEB # The default data value for the smoke blocks smokeData: 0 # The default minimum density (the number of smoke blocks spawned per smoker # each update) minDensity: 2 # The default maximum density (the number of smoke blocks spawned per smoker # each update) maxDensity: 2 # The default maximum distance (the maximum distance smoke blocks are allowed to # go from the smoking block) maxDistance: 6 # The default decay chance (the chance per smoke block per update that it will # spontaneously disappear) decayChance: 0.167 # The default random spread setting (whether there should be an additional # random spread to the smoke) randomSpread: false # The minimum wind strength (in blocks per update) minWindStrength: 0 # The maximum wind strength (in blocks per update) maxWindStrength: 1 # The default wind constraint "from" value. If set, "windTo" must also be set. # Leave empty to have no default constraint on wind direction. One of N, NE, E, # SE, S, SW, W or NW windFrom: # The default wind constraint "to" value. If set, "windFrom" must also be set. # Leave empty to have no default constraint on wind direction. One of N, NE, E, # SE, S, SW, W or NW windTo:
1.9 work?
A really awesome plugin I use alot my server and one that my players really like and come asking can they also get their chimneys smoking, hope you continue updating this!
Also I would like to see a line in the config to disable the message "Saving XX blocky smokers for world spawn" as especially when using multiple worlds it starts to get a bit spammy.
First let my thank you for your awsome plugin!
Could you make it possible to use meta blocks with Block ID like 30:2 for examlpe instead of just WEB.
That would be great. We are working with Ressource packs giving some nice smoke blocks. PLease make it happen! ;-) Greetings Rob
I NEVER post comments on here.
NEVER.
Your plugin is so ingenious I simply had to. It is perfect. The way it works is awesome. I love the way it eases in wind direction changes, as well as wind speed changes and such. It's awesome. Again, I never comment on plugins. This is amazing. Adds so much life to the world. Thank you for making this.
Great Plugin! Keep up the great work!
@cadika_orade
I would think, that the block updates packets are sent anyways when the block is SET. Another advantage of the fakeblocks would be, that players can't break it to get strings.
However, a problem I encountered when I tried changing from block-setting to fakeblock-sending, is, that one of his features (the random spray) depends on checking if a block is already a smoke block by checking if it's of type web. However, with the fakeblocks, the server still thinks that there is air instead.. I didn't took a further look if the locations of the smoke-blocks are already stored, but this would be neccessarry then..
@blablubbabc
Actually, sending faked packets like that typically has a massive performance cost. Good thinking, though. And if the server crashes and the smoke effect is lost (which has happened to me) you're left with nothing more than a pretty, albeit static, smoke effect until it is cleared out and fixed.
All and all, I like this plugin.
Also permissions would be nice
Thanks in advance!
Wouldn't it be better to send block changes to the near players instead of really changing blocks in the world? What if something goes wrong / server crashes and the plugin somehow can't undo the block changes ? Only sending fake blocks would be way safer, no? (And probably even better for performance, as each block change changes the block in thw world data AND send the block change to the players..)
@shock2provide
While I'm sure it would if you made a LOT of smoke, I'm using it on my server now and it is working rather smoothly.
Is this plugin creating lag?
Great Idea!
Over the smoke stacks, over the city, The weather man...
Great idea!!!
Is there a way to prevent the plugin to spam my log about "saving X blocky smokers for world X" ?
@Captain_Chaos
Sorry its taken so long, I just was now able to check. Ill reinstall and let you know tomorrow! Its late now and i got players on lol
@TheFlannelBeard
It should work on multi-world. I'll look into it. Are you sure nothing is logged in the server.log file? Not even at the point where you stop the server? It sounds like it's having trouble saving the smokers, so that when it starts again it thinks there aren't any, but there should be an error message about that in the log...
Edit: I just saw that you also say it stops randomly. That is even stranger, especially if there is nothing in the log at that point! Can you discover a pattern as to when it happens? Some common action perhaps, maybe teleporting to another place in the same world, or to another world?
@TheFlannelBeard
it MAY be multi-world support. I run a few worlds. maybe look into it? multiverse core.
I absolutely love this plugin. This is incredible.
But, but #1.
I notice when i start / stop server, the animation stops. the web is left there like it was manually placed and wont move. this also happens randomly with no error in console or debug. Its like it freezes in place and i cant reload it.
Make it so that when you place one, its saved in a flatfile so when you /smokersreload itll then retrigger the saved smokers.
Ive tried /pausesmokers and /continuesmokers but it says they dont exist. Not sure why :/
Please get that issue fixed :D we really love it here. Also, NOT going to /reload since we have an 8gig 96 plugin server.