Posts by LordFoobar

A new update is now available, introducing seasons and more!

    Good that others like the idea, another advantage would be that we could save building before a new update is released, so we may prevent losing our creations and share them with others. (Or Steamworkshop implementation?) I think i can remember Red already planned something like this blueprint thing but why not doing a basic functional implementation in this lua script.


    A good server admin does create backups before upgrading. A better server admin set up frequent backups, too. However, with the new HTTP method, I surely could see a central repository of serialized data... however such feature is really not ready to get implemented, yet.


    Edit: a crazy idea would be to add an undo feature...

    thx
    as a admin
    yes a script is a goo idea, but i don't know do that :(


    Bravo for the world edit script. it is very good. But, i should like place flowers in the world ... It's possible....
    cordialement



    Thanks!
    Placing objects might be in plans for later, sure, why not? Right now, I'm quite busy with other things, but will take a look at it later.


    Tu parles français??

    As a server admin or as a player?


    As a player, this is some information that you should not have access to, unless some script have you able to get a friend list or something... But if a player has never been on the server, you should not be able to know this. This is simple security information and a matter of privacy.


    As a server admin, go grab SQLite Browser and open your world's database file and do whatever you want with it (at your own risk).


    As to if anyone will make such script, it is surely possible to fetch all that information directly from Lua, but I'd advise against that unless under special circumstances. For example, we have been talking about synchronizing ban information across server, into a global ban system (that someone ought to implement at some point anyway), then the admins should know if a given player was banned, or ever banned, and if he/she has ever been on the server. In all other cases, this is player privacy.


    So, bottom line, there is a way to know, but nothing concrete at this point. Hope this helps.


    Cheers.

    I have another idea for an extension of the script maybe someone has the time to implement these:


    So you can take the marking event to get all blocks of an area, maybe you can take the data and in addition to copy the blocks ingame, you can create s called "Blueprint"/"Schematic" for the selection and save it as file. So you can give it a name and load it into another world and place it. This would be awesome! At multiplayer worlds this has to be limited to area size and count of blueprints a player is allowed to upload.


    I think that would be a great addition.


    This is a great idea! The Lua API already has methods to serialize data to file. I've never played with it, but this is surely something to investigate! And, actually, would be a useful way to implement copy/paste as well :) For example, Bob select an area, copy it given a name (data saved to file given the name); Jack select an area, then paste the copied data given a name (the file is read, then written at the selected location).


    Thanks for the idea!

    This would create exceptions in the game rules. If you want to lay roads, you lay blocks or you use the proper terrain type.


    At the moment, if you want to lay stone roads, just mine stone and lay it down on the ground.... Then, it's only a matter of finding gravel or other raw material. But having a tool for that... I think is too specific for a particular need, that can be done already with the existing methods anyway. My opinion.

    Yes, there's already a place in hell for that :P the landscape is a just a little too random at the moment, but this could be interesting. (Kind of like Diablo.) And players would require a pretty darn strong armure just to walk down there (because of the heat).


    With flying dragons or other creatures, lava/steam geysers that could instantly kill you regardless of the armor. And diamonds should only be extracted from hell stones. That plus other materials and loot obtained from slayed creatures, hell could truly be the ultimate place to venture in Rising World. There should also be formidable random encounters just above hell, wherever hell stone can be found (il.e. fire/stone golems, etc.)


    These hell creatures should only go after players found down there and, if brought toward the surface, should crawl back in before reaching light of day, to prevent players from luring the creatures somewhere they can easily be killed, thus cheat the AI and gain valuable loot too easily.

    Good morning. When I try to clone world edit I get this:
    fatal: reference is not a tree: e86f2b2fbb4cf69f666e6670a0d2ea653bd3b480
    Unable to checkout 'e86f2b2fbb4cf69f666e6670a0d2ea653bd3b480' in submodule path 'table-ext'


    and the server fails to start. Did I miss something?


    Well.. no, you did not. And you are correct; I too get this error when cloning from a clean path. I'll investigate. Meanwhile, you can manually extract table-ext (there's really only one file...) inside the folder and you'll be good to go. I'll create the issue on github. Thanks for reporting this.



    **UPDATE**


    All is good, I just updated the submodule reference and it all checks out fine now. Sorry for that!


    That happens when something is built directly below the ground, so it's not related to this script ;) This can be disabled in the settings when your turn "Grass Masking" off (but then grass is also visible through objects etc, so that's not really a solution). We will fix this issue in the next time^^


    Yes, exactly. You can fix this by selecting the area where you have blocks underground (your selection should be 3 blocks high--on the y axis--minimum), then perform /we fill dirt (or stone, etc. You should apply any other terrain id than grass. I usually prepare the terrain with dirt, or stone, then place blocks, and I never have this problem.

    New update on World Edit!! For the geeks, you may peek into the changes here.


    The most notable changes for version 0.5.71 are :

    • It is now possible to use /we fill with all ores... and grass. "What, grass? But we already can do /we fill grass, right?", you might say. Indeed. But you can now put "real" grass now, at the length you want, too! All names are listed with /we help fill

      • New ores : iron, copper, aluminium, silver, gold, tungsten, cobalt, mithril
      • New grass : grass1, grass2, grass3, grass4, grass5, grass6, grass7, grass8, grass9, grass10 (i.e. 1 to 10, the higher, the higher the grass)
    • New /we about so you know what version of World-Edit is installed.

    Some minor refactor have been made internally, but nothing noticeable, if not perhaps some milliseconds speed improvement globally when executing commands.


    You may use the forum, or Github directly for issues, and suggestions. Please, use the forums for general comments and questions.


    Cheers!


    NOTE: some might have expected copy/paste already, but there are some issues that need to be addressed, first. Know that the feature is being worked on and will be released as soon as it is deemed stable enough.

    Wie wäre es mit einem Skipt das die Backups automatisch macht


    Besides, backups are too environment specific to be ran by a general script... Not mentioning how limited Lua is. There are already a myriad of solutions available already, too. :)

    While adding new features to World Edit (i.e. copy / paste) I'm trying to find the best and most optimal way to set data in the world. The three methods that currently exist are

    • setTerrainDataInArea(int startChunkX, int startChunkY, int startChunkZ, byte startBlockX, byte startBlockY, byte startBlockZ, int endChunkZ, int endChunkY, int endChunkZ, byte endBlockX, byte endBlockY, byte endBlockZ, int terrainId)
    • setBlockDataInArea(int startChunkX, int startChunkY, int startChunkZ, byte startBlockX, byte startBlockY, byte startBlockZ, int endChunkZ, int endChunkY, int endChunkZ, byte endBlockX, byte endBlockY, byte endBlockZ, int blockId)
    • placeBlock(int chunkX, int chunkY, int chunkZ, int blockX, int blockY, int blockZ, int blockId)

    Each of these methods take only a single block or terrain type, set it then broadcast. Well, usually, players will copy and paste more complexe terrain and block organisation and will require some more fine-grained terrain and block manipulations. Calling any of these methods repeatedly (and each time broadcasting) is note quite desirable and will saturate the server.


    A solution would be to create modification objects, and then apply and broadcast all modifications all at once.


    I'm thinking, something like :


    Since there has not been any replies to this, I'll update with yet another amendment :P


    It would be very... very useful to dynamically restrict the size of the selected area. For example :

    • Restrict selecting inside a predefined area
    • Restrict selecting outside a predefined area
    • Fixed width/height/depth (i.e. static selection that the player can only "move" around)
    • Fixed min/max selection (ex: prevent having a 100km² selection, then clearing the whole thing from absolutely everything... which is bad)

    Do not assume that, because a player is an admin, that it will not try to do something stupid and/or dumb :)

    @LordFoobar: Currently those functions only read out a single block/terrain value. The first three parameters are the chunkposition (xyz), the last three parameters the blockposition (xyz) within this chunk ;) All these values are integers. e.g.:
    [lua]local blockval = world:getBlockData(-10, 2, 5, 16, 32, 8); -- returns the block data in chunk -10, 2, 5 at position 16, 32, 8[/lua]


    I was confused as some methods use byte for block positions :) but it's all good. With try and errors (and a little bit of .class peeking ;) ) you're confirming my final conclusion. Cheers!

    Woa! Didn't expect those Lua functions so soon. Nice!



    **Edit**


    What are the arguments for these new Lua functions? More precisely, the world's 'getBlockData()' and 'getTerrainData()' ? They are different from their setter counterparts :


    Code
    world:setBlockDataInArea(int paramInt1, int paramInt2, int paramInt3, byte paramByte1, byte paramByte2, byte paramByte3, int paramInt4, int paramInt5, int paramInt6, byte paramByte4, byte paramByte5, byte paramByte6, int paramInt7)
    world:getBlockData(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5, int paramInt6)


    My first guess is that the setter takes some arguments such as the values returned the selection marker. While the getter uses some absolute 3d coordinates. Am I right?

    i downloaded the script but i do not know what to do now; my game is on steam and i do not have a rising world folder in my computer. after i extract the file what do i do?


    I was letting someone else answer this. I don't play on steam. I have the stand alone version of the game. Plus, I'm on Linux and I doubt I can be of assistance to you. However, I think I have seen some post on the forum talking about using the game on steam, somewhere...

    I do hope that when Red does add in a computer that it would be a multi-tasking object. I would be amused if Red made his own OS so you could look through images, your own videos, and music streaming from both the computer and the way 'Euro Truck Simulator 2' gives you a playlist to choose from.


    Like Foobar mentioned....having a headset object, and a portable device, would be interesting for when you don't want to sit next to a radio, tv, computer object, or similar. This could happily 1-up Minecraft, GTA, and even Euro Truck Simulator 2. You don't really have to worry about copyright because it's all on your computer and the internet. What you hear stays in your world, or a server itself. If it finds itself on Livestream then that would just mute itself.


    Ya, I can't wait for when music is added in through vanilla coding or modded coding.


    I was being sarcastic... ... you know that... right? 8|

    what about a central database where we could opt in if the user gets banned say more than 3 times on any sever he then becomes banned on all servers with this option


    Such feature should be done from the third party central server; the ban instruction would only be uploaded by the script, and any logic (perm ban, temp ban, etc.) should be applied then, not by the script itself.


    For example :


    SS-1 (Server Script-1): ban user "BobTheGriefer"
    GBS (Global Ban Server): ok, user "BotTheGriefer" banned for 1 hour
    ... (~15 minutes later)
    SS-2 (Server Script-2): unban user "BobTheGriefer"
    GBS: error, user "BobTheGriefer" was banned by "CoolDude" on SS-1; 43 minutes left
    ... (~45 minutes later)
    SS-2: ban user "BobTheGriefer"
    GBS: ok, user "BobTheGriefer" banned for 12 hours
    ... (some times later)
    SS-1: ban user "BobTheGriefer"
    GBS: ok, user "BobTheGriefer" banned permanently
    ... (some times later)
    SS-1: unban user "BobTheGriefer"
    GBS: error, user "BobTheGriefer" was banned by "CoolDude" on SS-1; permban after 3 bans. Submit unban requests directly to [Rising World forum].


    (Note: trying to ban an already banned user would yield "error, user X already banned by Y on S; n minutes left")


    Undoing a permanent ban would be done manually from a secured Web interface to the GBS database.