Inactive [WGEN] CleanroomGenerator v1.0.0 - Clean Room flat world multilayer Chunk Generator [1.2.4-R1.0]

Discussion in 'Inactive/Unsupported Plugins' started by NVX, Jul 5, 2011.

  1. Offline


    CleanroomGenerator - Clean Room style flat world Chunk Generator
    Version: v1.0.0

    Find this project on BukkitDev for more information and download links!

    This plugin can be used by world managers such as MultiVerse (version 2.0+) as a Custom Chunk Generator to create customisable flat clean room style worlds.

    Your world manager must support Custom Chunk Generation or this will not work. MultiVerse only supports it in version 2.0 and later.

    Example usage with MultiVerse:
    /mvcreate cleanroom normal -g CleanroomGenerator:64,stone

    This will create a new world named "cleanroom" with the layer 0 as bedrock and layers 1-64 as stone, thus giving 65 total layers (including bedrock). Block ids are also valid in place of block names.

    You can also specify multiple layers such as:
    /mvcreate cleanroom normal -g CleanroomGenerator:10,stone,20,dirt,1,grass

    This would create a new world named "cleanroom" with layer 0 as bedrock, layers 1-10 as stone, layers 11-30 as dirt, and layer 31 as grass thus giving 32 total layers (including bedrock).

    If the generator id is prefixed with a "." character, layer0 will not be generated as bedrock by default, allowing you to create space maps, or have a different block at layer0. For space maps, the spawn is set to y=64 to allow some falling before damage is taken. Fly mods are recommended for this sort of map.

    Some more examples:

    /mvcreate cleanroom normal -g CleanroomGenerator: - Creates a map with only layer0 as bedrock.

    /mvcreate cleanroom normal -g CleanroomGenerator:. - Creates an empty 'space' map.

    /mvcreate cleanroom normal -g CleanroomGenerator - Creates a map with layer0 as bedrock, followed by 64 stone (default when no generator id is specified).

    More examples can be found at the Wiki

    • Customisable height and block types of cleanroom.
    • Support for multiple layers.
    • Commands like WorldEdit's //regen will regenerate the correct blocks.
    • World sizes are not restricted as is the case with mcedited cleanroom maps.
    • Only generates chunks as required.
    • Able to create infinite space maps (using "." as the generator id).
    Known Conflicting Plugins:
    Any plugin which calls createWorld itself rather than letting your world manager plugin call it (with the appropriate parameters to specify WGEN) will cause issues. The following are known to cause conflicts, please let me know if you find any other plugins causing issues, or if any listed have been updated to no longer cause issues with custom WGENs.
    • ButtonWarp
    • Creative Gates
    • Inception
    Downloads on BukkitDev

    Source Code on GitHub and BukkitDev

    Version 1.0.0
    • Updated to use Bukkit 1.2.x API, breaking backwards compatibility with Minecraft 1.1 and earlier, but allows for >128-high maps.
    • Arbitrarily high maps (as long as World.getMaxHeight() is sane).
    • Extended block id support.
    • Data value support (generator id syntax: "height,block[:datavalue]", for example "1,stone,2,wool,1,wool:5,1,35:1" will have 1x Bedrock, 2x White Wool (default data value is 0), 1x Lime Wool, 1x Orange Wool). Note only numeric data values are supported at present.

    Version 0.0.4
    • Added ability to have cleanrooms without layer0 being bedrock. Prefix the generator id with a "." to create one.

    Show Spoiler

    Version 0.0.3
    • Fixed spawn y (height) coordinate sometimes being 0 (silly race condition?)

    Version 0.0.2
    • Added ability to have multiple layers.
    • Minor fixes, optimisations and general code clean up.
    Version 0.0.1
    • Initial Release.
    Rwembee likes this.
  2. Offline


    This sounds great, exactly like what I've been looking for! We've been doing all of our experiments on a slowly expanding island, this will be great for laying out all of our devices.
  3. Offline


    Glad it's found some use outside of my own. Let me know if you run into any issues, or have any suggestions.

    As stated in the OP you'll need MV2.0 (or a non-RB build of Bukkit which adds support for using bukkit.yml to figure out the generator) to set the generator.
  4. Offline


    Is there any way to add layering? Like 24,stone:3,dirt:1,grass? Then you end up with a 28 layer world with bedrock, stone, dirt, then grass...
    rolandostar likes this.
  5. Offline


    Not yet but that isn't a bad idea, and wouldn't be hard to implement. I had thought of it when doing the plugin, but didn't have a need for it myself so got a little lazy. I'll implement it and chuck a new version up tomorrow with that.

    @KiloWiskey and done. I varied from your format a little to avoid problems in case a future plugin does something silly with the tokeniser (as : is used to separate the Chunk Generator name from the ID, so using : in the ID seemed like it was asking for trouble). Instead the format is 24,stone,3,dirt,1,grass using your example.

    Let me know how it goes.

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


    What do you mean by non-RB? I want to set up a private server with this as the main world for prototyping redstone creations before I build them on my main server. Can I have this generate the main world and not need MV?
  7. Offline


    Non-RB asin it hasn't been promoted to recommended build status - however, that only applies to functionality for multiple worlds. If you want your main world to be a cleanroom, the latest Recommended Build of CraftBukkit is fine.

    What you need to do is before starting the server up for the first time (ie, before the world is generated, if it is already, then delete/rename it, or change the level-name in to a fresh world) is edit bukkit.yml and add the following key:

           generator: CleanroomGenerator:<ID>
    The file is yml, so the usual precautions apply (use spaces, not tabs) and replace <worldnamehere> with the name of your world matching level-name in and <ID> being the generation template such as: 64,stone or 20,stone,10,dirt

    Let me know if you have any issues. If you want to make a second world also using the Cleanroom Generator in addition to the default world (hey, who can have enough clean rooms!), then use MultiVerse 2.0+ for the additional worlds as per the OP.
  8. Offline


    Ah ha. Thank you!
  9. Offline


    Can't get it to work,

    Build 970, MVCreated a world named Lobby with MV 1.7.4 (as 2.0 lacks a few features).

    Then added to settings:
    update-folder: update
    spawn-radius: 16
    - version
    generator: CleanroomGenerator:10,stone,5,dirt,1,grass

    And regenerated several chunks, no success...

    Anything I am doing wrong?
  10. Offline


    In theory that should work - Build 970 is where the change was added to allow generators for non-default worlds, however I've not tested it. That looks alright assuming "Lobby" is the name of your world, and you have the correct indentation with spaces.

    Try it with a lowercase L just in case somewhere Bukkit is making silly assumptions (when you /mvcreate the world use a lowercase L as well). - Obviously remove the world from MV, shut down the server and delete the old lobby world folder, edit bukkit.yml, then start it back up again before doing so.

    On the topic of which, you restarted the server after editing bukkit.yml before /mvcreating yeah? I'm not sure if a reload re-reads bukkit.yml or not - I suspect it probably doesn't as there is no way to change a world generator at runtime...
  11. Offline


    I did as you said and it once again came with a normal world. The SQL settings in it are correct, checked it to be sure. I also put it through a YAML parser which gave no errors :(

    On a sidenote I am also running SphereWorld, though SphereWorld shouldnt be touching anything but Sphere.
  12. Offline


    mhmm, SphereWorld does it's own multi world management, which was something I wanted to avoid as it makes it harder when you do have a real multiworld plugin (such as MultiVerse) at the same time.

    I'll have a play around with it, but at a guess it sounds like it might be a bug in Bukkit if you are indeed using build 970 or newer (before 970 the method I described above only works for the default world) so MV2.0 is probably your only option.
  13. Offline


    Well, then it's unfortunately not possible for me to use this plugin. MV 2 is far from completed and far from stable, running it on a 5-world production server would be silly if not retarded :p
  14. Offline


    Ok, just went to download CB970 - and realised there's no such version... 970 failed to build. If you fetched the artifact from the 970 build page, you'd have gotten... 968. Go look at your server startup log

    00:02:24 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-917-ge54e46b-b968jnks (MC: 1.7.3)

    Notice 968? :) As the feature was only included from 970 onwards, it's obviously not working. Build 974 is the first successful build to have the required feature. I tested with 977 and it works, but there hasn't been any changes from 974 to 977 that would affect it at all so 974 should be fine also.

    Let me know how you go. (Also, MV is 1.7.2, MV 1.7.4 also doesn't exist :p)
  15. Offline


    Oops sorry XD So much plugins to configure I forgot version names at times.

    I'll test it out in a short while, putting up permissions on my server atm :)
  16. Offline



    first: sorry for my bad english :p

    i've got a small problem, too. i do it like in the describtion, but i still get just normal worlds, and in my chat comes this message:

    Too many parameters to create a new world
    /mvreate WORLDNAME ENVIRONMENT - Create a new world
    Example - /mvreate hellworld nether
    Attempting to create a new world with seed -g

    and after a few seconds a new normal world is generated.

    it is a new started server, the following plugins are installed:

    CleanroomGenerator v0.0.2
    Multiverse 1.7.2 (can't find 2.0, guess this is the newest
    Permissions 3.1.6

    i type the following:

    /mvcreate world_demacia normal -g CleanroomGenerator:29,dirt,1,grass
    /mvcreate demacia normal -g CleanroomGenerator:29,dirt,1,grass

    i did no modifications in any yml or other files.

    it would be rly nice if u could help me :)

    thx beforehand

  17. Offline


    I'm afraid MultiVerse 2.0 is required. MultiVerse 1.7.2 doesn't have the required features, you can fetch a development copy from just keep in mind it's not feature complete yet (no portals for example).

    If that isn't an option, Try CB Build 974 or newer, then follow the instructions to edit bukkit.yml and you can get it to work with MV1.7.2 (don't include the -g with MV1.7.2 though, just world name and environment)
  18. Offline


    I seem unable to download the .jar from github.
  19. Offline


    I tested the link just then, works fine for me, and everyone else in this thread. At a guess it sounds like its an issue local to you. Try using a different browser, or if using wget do a quick google for "wget github" as wget has some bugs - or download it using your browser, then upload it/etc.

    If you want assistance, provide more information (like os, how you are downloading it, error message, etc).
  20. Offline



    now i loaded build #86 from today and it works, a big thx :)
    hope they'll bring the other ones like mv-portals to work soon
  21. Offline


    I should have waited till morning to try again, it's working now. Wasn't for a couple hours.

    Seems to work with Xcraftgate(specify as normal world) with CB978 and altering the bukkit.yml like instructed.

    Thank you so much, I've wanted a clearable bedrock layer with soft stone underneath that happens to be flat for a while now :)
  22. Offline


    This plugin doesn't work for me. I added stuff to bukkit.yml like you said, but it doesn't work. If I try to generate the world, it's a normal world. Here's my bukkit.yml:

        spawn-radius: 16
        update-folder: update
        - version
        username: bukkit
        isolation: SERIALIZABLE
        driver: org.sqlite.JDBC
        password: walrus
        url: jdbc:sqlite:{DIR}{NAME}.db
    generator: CleanroomGenerator:1,grass
  23. Just a side note, there may be a few bugs with MV regarding this plugin. I've spoken with @NVX and will be looking at them this weekend. If #86 is working, stay there until we promote a newer RB of MV2.

    As of right now there is a reported bug with MV2 B91 and CR 0.0.2.

    I'd also like to say, that as one of the MV2 authors, I endorse this plugin for use with MV*.

    *Once I get the bugs fixed with MV2 :p
  24. Offline


    First of all, that doesn't look right - you need indentation... (And use spaces, not tabs). Secondly, what CB Version?
  25. Offline


    this doesnt work
  26. Offline


    Does Multiverse 2.0 even exist? Please link me.
  27. Offline


    Read the posts above you ;)
  28. @NVX
    Could you hop in #multiverse when you get a chance?
    I cloned CR and this is what it reports it's spawn as:

    07:42:11 [INFO] Spawn location given as:
    07:42:11 [INFO] 0
    07:42:11 [INFO] 0
    07:42:11 [INFO] 0

    Think It may have to do with the world not existing yet... I assigned 64 to the Y, and MV was cool with it. So yea, I'd like to get this resolved, so hop in whenever you get a chance.


    Looks like you get a bunch of spam today :p

    I have resolved the Explosion issue (ie where MV2 blows up)

    What's going on is MV tries to find a safe spawn itself (Minecraft tends to do things like spawn players in the nether next to a lava sourceblock, which will then spread and murder them in the future) and with Cleanroom, the location MV is given to look at is 0,0,0. Still not sure why this is, your code looks correct... Regarless, If MV can't find a suitable location, It will then simply ask the plugin, so it recieves 0,0,0 which then MC won't let you spawn there, so it pops you up on top.

    This will be fixed later today in the Offical MV2 Beta builds.


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


    Thanks, beat me to it :)

    New version 0.0.3. Minor fix for when 'y' sometimes decides to put you at y=0 due to a race condition with chunk loading. 20 points to the person who can figure out why it wasn't an issue in BukkitFullOfMoon but was an (intermittent) issue in CleanroomGenerator :).

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 17, 2016
  30. Side note: Just want to say with this last change, this plugin works FLAWLESSLY in MV2.

    A++ Would buy again.

Share This Page