WorldFeatures
WorldFeatures, A Plugin Inspired by this Reddit post. It automagically builds structures from schematics in a customizable way when the world is created.
Version: 3.03
Plugin name by tmcaffeine
Source (be warned, it still has some code from when I was a noobie)
Description:
Save .schematics to your Created folder in-game or download someone else's .schematics to be generated randomly when new chunks are formed. Each has its own customizable chance to spawn.
A video explaining how to set it up can be found here.
A test of the generation can be found here.
Dependency
You will need WorldEdit.jar in your plugins folder for this to work. You can get it at http://dev.bukkit.org/bukkit-plugins/worldedit/
Permissions:
You will need to use PermissionsBukkit or SuperPermsBridge to use these permissions. If you do not have either, it will default to your OP list.
- WorldFeatures.commands
This permission allows the player to use every command. Use this wisely.
Commands:
/wf <name> Creates a schematic named <name> of the selected cuboid. A cuboid can be selected by holding seeds or a customized item.
/wf copy <name> Copies and pastes this schematic from your Created folder into your ToUse folder. Your world will automatically start generating this structure without needing a reset.
Installation:
Insert WorldFeatures.jar into your plugins folder.
Customizing:
After starting up the server for the first time, a WorldFeatures folder will be made. Inside this will be three things:
- The "Created" folder - this is where the schematics you create in-game will go to.
- The "ToUse" folder - this is where you can place yours or someone else's created schematics. Every .schematic needs a matching .yml. This is explained below.
- "Settings.yml" This is explained below.
The Settings.yml has 2 things right now:
- wandmaterial - number - what should be held when selecting a cuboid for a schematic?
- chunkchance - number between 1 and 100 - chance is explained below.
Individual .ymls for schematics
Each schematic needs its own .yml in the ToUse folder (it should be named <schematicname>.yml). If you are loading a .schematic from elsewhere, copy and paste a .yml and change its name. In each .yml should be these things:
- dontpaste - The IDs of blocks that you do not want to paste from the schematic. The only ID that works right now is "0" to not paste air.
- anywhereminY/anywheremaxY - the minimum and maximum height the structure can spawn at if "place" is set to "anywhere"
- chance - When a chunk is loaded, it checks the chance of the chunk to generate something (by chunkchance in the Settings.yml). If it can, it runs through all the schematics and checks this number for each one. If multiple structures are chosen to generate on one chunk, it will randomly choose one of them to be generated. This means that this "chance" is relative and not an exact amount.
- maxspawns - the maximum amount of times this .schematic can spawn
- basement - if you have blocks that should be below-ground, this is the number of vertical blocks you want underground, so if I had a building of 30 blocks high, and I only wanted 10 to be above-ground, I would put '20' as the "basement".
- biome - can be "none" or any of these values:
- DESERT
- EXTREME_HILLS
- DESERT_HILLS
- FOREST_HILLS
- JUNGLE_HILLS
- TAIGA_HILLS
- SMALL_MOUNTAINS
- MUSHROOM_ISLAND
- MUSHROOM_SHORE
- FROZEN_OCEAN
- FROZEN_RIVER
- HELL
- ICE_MOUNTAINS
- ICE_PLAINS
- FOREST
- OCEAN
- PLAINS
- RAINFOREST
- RIVER
- SAVANNA
- SEASONAL_FOREST
- SHRUBLAND
- SWAMPLAND
- TAIGA
- TUNDRA
- BEACH
- JUNGLE
- randomrotate - should this schematic randomly rotate? Default is true.
- place can be set to any of these values:
- ground - the schematic will stick to the ground and not spawn over water
- anywhere - it can spawn anywhere within the .yml range of min and max
- air - it will only spawn in the air
- underground - it can only spawn underground
Changelog
3.0
- Finally updated!!
- "wandID" turned into "wandmaterial"
- More efficient world creation and .yml saving
- .ymls are different for the schematics as well. To see the difference, simply create a schematic with seeds and the /wf command in game
Also by the way, I don't know if you already know, but the idea of your plugin is apparently going to be implemented into the game!
@dkramer
I understood it wasn't exact, and now I understand how the chance setting works. Thanks :)
@UltiByte
Chance is not an exact amount, as stated above . If a chunk is picked for generation (based on "chunkchance" (1 out of 100), it will run through every schematic and randomly add ones to a list based on their "chance" (again, 1 out of 100). Once it has this "list" of schematics that can potentially spawn in a chunk, it randomly picks one of them to spawn.
Hi! I just downloaded your plugin. I am confused about the chance setting. is the number entered processed as out of 100? e.g. 2/100 chance, or is it just increasing likelihood?
example config?
Is there no way to select empty points? WorldEdit allows you to select your current location using pos1 and pos2. Which allows you to copy/paste complex structures without the dirt/etc.
Otherwise, you're limited to box shaped structures, and having dirt as a base - which would be odd if the object spawned in a desert biome.
@dkramer
I noticed this upon further testing, thank you for your prompt reply!
@mrvertigo27
It randomly rotates them each time it is placed. I will look into the wand issue, thanks!
does direction remain the same? for instance if i create a building and when i create the schematic will it always face the same direction? or is the rotation random aswell?
if infact it remains facing the same direction can we get a config option to randomly rotate?
BTW: i am having trouble setting the wand to anything other than seeds, this may be a conflict with an existing plugin but i thought i would mention it.
@mrvertigo27 changelog is always on the download page on almost all the plugins as well
I'm going to be a pain again here, maybe a change log? in the main post
i can not find which permissions plugin this supports would you please add that info to your post?
THANKS! BTW thanks!
hey, great plugin! just a quick note, public domain has little or no use outside the US you may want to look into a GPL style license as it would allow universal access with few restrictions.
also, i have some structures i would like to randomly spawn however they have basements that take up a few blocks, could we get a spawning option for something like "submerge land 5" "submerge water 3" (where the number corresponds to the number of blocks below the surface to spawn the structure) to help fine tune this type of structure?
great plugin!