Inactive [EDIT/MECH/WGEN] WorldFeatures v2.0 - Randomly Generate .Schematics [1337]

Discussion in 'Inactive/Unsupported Plugins' started by dkramer, Sep 3, 2011.

  1. Offline


    Here is the Bukkit-Dev link.
    WorldFeatures, A Plugin Inspired by this Reddit post.
    Version: 2.0
    Plugin name by tmcaffeine :D
    (Please donate here if you like what I do. This is my only job.)

    You will need WorldEdit.jar in your plugins folder for this to work. 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.​
    • WorldFeatures.commands
    This permission allows the player to use every command. Use this wisely.

    /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 created schematic from your Created folder into the ToUse world folder of the world you are in. Your world will automatically start generating this structure without needing a reset.​
    Static link for bukkituptodate:
    Show Spoiler

    Insert WorldFeatures.jar into your plugins folder.

    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. Inside, you will need to create folders that have names of the worlds you want schematics to spawn in. Every .schematic needs a matching .yml. This is explained below.
    • "Settings.yml" This is explained below.
    The Settings.yml has 2 things right now:
    • wandID - 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
    Show Spoiler

    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 any .yml and change its name. In each .yml should be these things:
    • min/max - 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
      • FOREST
      • OCEAN
      • PLAINS
      • RIVER
      • SAVANNA
      • TAIGA
      • TUNDRA
    • randomrotate - should this schematic randomly rotate? Default is true.
    • place can be set to any of these values:
    1. ground - the schematic will stick to the ground and not spawn over water
    2. anywhere - it can spawn anywhere within the .yml range of min and max
    3. air - it will only spawn in the air
    4. underground - it can only spawn underground
    • Find bugs
    • biome options: see above for details
    • Multiworld support: a different folder with names of the worlds you want schematics to spawn in should be in your ToUse folder now, and the schematics and their .ymls will go in this folder, example: plugins/WorldFeatures/ToUse/WORLD_NAME/
    • rewrote a lot of code for readability and efficiency
    • more information is put in the .yml
    1.82: added the permissions to the plugin.yml​
    1.81: added in the "basement" feature​
    Show Spoiler
    Show Spoiler

    • can't spawn on leaves
    • adding in rotation screwed up the spawning, but don't worry, I fixed it now!
    • option for limited number of spawns for each schematic
    • more error checks
    • more efficient code
    • Performance improvements
    • added "underground" to the place list
    • The schematics now randomly rotate when being placed!
    • Fixed it so that structures cannot spawn if they are too high up
    • Removed the accidental debugging code that spammed the output *oops*
    • added "air" to the place list - if a schematic's appropriate .yml is set to this, it will only spawn in the air
    • .schematic files are now fully supported and are the only means of saving and loading structures
    • the file system is different. Read above for information^
    • it performs a lot better now
    • Loading a schematic not from RAM is now a lot faster.
    • Schematics set to "ground" can no longer spawn over water
    1.05: Fixed an error where a chunk decided not to generate a structure and throw an exception
    1.0: Release

    Supports .schematics now!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 19, 2016
  2. Offline


    Ok, I'm about to use this to generate some stuff, it works with this newest RB? Sorry to bother you! :p
  3. Offline


    It most likely does! I'd do a test run though, just in case.
    gameswereus likes this.
  4. Offline


    Thanks so much man, this plugin is really a godsend.
    dkramer likes this.
  5. Offline


    Is there multi-world support? I can't seem to get the plugin to work at the moment. :)
  6. Offline


    What would you want multiworld support to be like? I believe it spawns them in every world, and this is really not the best system.
  7. Offline


    For starters, the "ToUse" folder should be extended. The current folder is schematics for all worlds. Then new optional folders should be kept in each world's directory, or in world-named subdirectories under the plugin's folder, for schematics/yml files related to that world.


    Even nicer, the world directory names should be specifiable in the WorldFeatures/config.yml - that way you can share some schematics for one world set, but use different schematics for other world sets.
    dkramer likes this.
  8. Offline


    Ok thank you, I'll figure out something. I will spend time today getting the big update together.

    Version 2.0 is out, and it has a new folder system, so make sure to read the changelog! Please tell me if you have any issues with it.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 19, 2016
  9. Offline


    Nice, I'll try it out this weekend.
  10. Offline


    This is an excellent idea but it doesn't work for me, nothing I added is generated on new maps. What I really need is an example configuration file for schematics to be sure I'm not using it the wrong way.

    It works if I put the schematics and ymls in the main "ToUse" folder, but not if I put them in "ToUse/world". BTW I totally love this mod, as long as you'll keep maintaining it I will gladly donate.
  11. Offline


    oooh ok, I will look into this issue, thanks!
  12. Offline


    Wonderful plugin! Thank you.

    I have an idea how this may be used to achieve something like Formivore's City mods ( as well. What if additional information was defined for the schematics (via yml file) which included connectivity information; how schematics fit together? A person could then design schematics for individual components of say a city and the yml would define how these components could fit together.

    Best regards,
  13. Offline


    I cannot find the coding issue :[ I'd love it if someone could review the code, because I'm not finding anything.

    That would be too difficult to implement in any reasonable time since I'm working on other plugins actively, sorry!
  14. Offline


    No worries. Just an idea.
  15. Offline


    I noticed "naturally" generated blocks overwriting air blocks in custom generated structures (example: a house with a cellar; the underground part of the house is filled with earth/stone). Is it working wrong or is it the way the mod is supposed to work? Would you mind adding a config option for air blocks not being replaced?
  16. Offline


    I think .schematics automatically remove air blocks, and I'm not sure how to go about solving that problem.
  17. Offline

    Jazy Lopez

    May you place a Schematic.yml example (Like with the min, max, place, biome, ect) Please
    Awesome plugin, Can't wait to spawn buildings as the worlds load :D
  18. Offline


    Surely, but you can create one by selecting an area with the wand and doing "/wf <name>"

        min: 1
        randomrotate: true
        max: 126
        maxspawns: 0
        biome: none
        basement: 0
        chance: 50
        place: ground
    There you go!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 19, 2016
  19. Offline


    First of all fantastic plugin does exactly what I need it do, except I need help with it.

    I have 22 schematics in my world folder with 22 .yml files for each schematics, they are named as followed



    For some reason it will only spawn the first one aka "TOWER1.SCHEMATIC" or "BUILDING1.SCHEMATIC"


    I have tried redoing the .yml files and deleting my world and trying again but nothing seems to make it spawn the other schematics.

    I'm running Bukkit 1337. Thanks in advance!

    In the old WorldEdit you could save a schematic with the air blocks. In the newer version, there's no way to do this.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 19, 2016
  20. Offline


    That is a very odd issue... I'll see if I can find where the problem is.
  21. Offline


    Thanks if you need anything from me, please ask.
  22. Offline


    when ever it puts a schematic in my world it will load in things like trees but it will let the leves stay in the building
    is this because it dosint register the block 0 in the building so the blocks won't be replaced
    please help this is a great plugin
  23. Offline


    Any updates on how to fix my problem? I really need this plugin to start up my server again.
  24. Offline


    Could you try renaming them as a temporary fix? I cannot find why it's not working, sorry :[
  25. Offline


    So rename them something different in the begging like...


    So they all have different beginnings?
  26. Offline


  27. Offline


    Okay I did and the same thing is happening, it's only spawning about 5 of the 22.
  28. Offline


    Ok, I'm very sorry, I'll see if I can find what's up.
  29. Offline


    Thank you so much
  30. Offline


    Hey guy
    I got a heavy bug: Im using this plugin in combination with BananaSpace to make things like Space stations and Stuff. I configured everything, but when I reach a certain Chunk the world isnt generating anymore and the Server Crashes without giving an error message. When I come back and got a bit luck a small part of my pattern has spawned. but when I reach ne next Chunk the Server crashes again.

    by the way, I cant name my patterns. If I use /wf create Name or something like an error occurs. If I only use /wf create it works, but all my patterns have got the same name. I rename them Manually.

    please help!
  31. Offline


    Is this multi world compatible? Also, Spout custom block compatible? I want to make a different world with custom ore blocks that generate using this plugin that make the ore generate.

Share This Page