Posts by red51

A new update is now available, introducing "Points of interest" and many more changes!
Latest hotfix: 0.9 (2025-10-31)

    Alternatively you can open the world database with an SQL editor. In the "Player" table, there is a column "LastTimeOnline" which contains the last time a particular player was online as a milliseconds timestamp. To turn it into a date (+time), just copy the timestamp, remove the last three digits (to turn it into a seconds timestamp / unix timestamp) and enter it on this homepage, for example: https://www.unixtimestamp.com/index.php


    If you want to know when the last player was online, you could sort the table (by this column) in descending order and just check the timestamp of the first entry.

    EN: Well, basically it would be possible to request the map files from a client, however, this would result in a lot of traffic. We don't have a separate connection for file transfers, so basically each map tile will be sent to the server as regular packets - blocking other traffic on that particular port. If the server requests too many map tiles at once, you could run into serious performance issues :( First we really have to find a better way to handle the map data on the server.


    DE: Naja, grundsätzlich wäre es möglich, die Map-Daten vom Client zu bekommen, allerdings würde das ne Menge Traffic mit sich ziehen. Wir haben leider keine separate Verbindung für Dateie-Transfers, also würde jedes Map-Tile als normale Pakete versendet werden - was gleichzeitig den anderen Traffic auf dem entsprechenden Port aufhalten würde. Wenn der Server zu viele Map-Tiels gleichzeitig anfordert, könnte das zu ernsten Performance Problemen führen :( Wir müssen wirklich erst einen besseren Weg finden, um die Map-Daten serverseitig zu verwalten.



    Just a Quick & dirty POC: rw.gi.omega-zirkel.de/ no zoom levels yet, just origins.

    Well done! :thumbup:

    Well, this indeed sounds like a serverside issue. Please post an errorlog or better a server log here, it will most likely give more information about what's going on there exactly ;)


    They say it can't possibly be a server problem, since a restart always solves the problem.

    This isn't entirely true. If the server runs out of resources, for example, a restart always solves the issue. This doesn't necessarily mean that it's related to a plugin. Of course plugins can still be responsible for performance issue, but to find out what's going on there, please upload a server log here (or alternatively send it via PM to me)

    Hmm... actually your server shows up in the server browser, at least for me:



    Basically you can ignore the message in the log. It was an issue in early 2018 when we migrated to Steam. We also used Steams master server for server queries at that time. Unfortunately there is a serious bug in Steams server queries and Valve never fixed this issue (the Steam query server always* binds to the first public IP of the server, instead of binding to the actual IP the RW is bound to). We reported this issue to Valve with no success, so we informed the server hosters about this (since there is a "workaround" for this bug, but it has to be implemented by the server hoster) and also put the error message in the log. Unfortunately many hosters did not take any actions, so in the end, we decided to handle the server browser on our own servers again (that ultimately fixed this problem).


    The only problem is that the server will not show up in the Steam server browser (in the Steam client, under "View" -> "Servers"), since this part is still handled by Steam (and apparently it still suffers from this bug). Unfortunately you can't do anything about this, either Valve has to fix this issue on their end, or your server hoster needs to make sure that the server only has a single IP. But since the Steam server browser doesn't matter that much (almost every player uses the server browser in the game, which is not affected by this issue anymore), I would recommend to ignore it (unless you can't find your server in the ingame browser - then it's most likely another issue, just let us know in this case) ;)


    *strictly speaking, this bug always affects Linux servers, and sometimes Windows servers - so Linux servers never show up in the Steam server browser, and Windows servers sometimes show up there

    Actually there is a bug with the snapping tool, but I'm not sure if this is really related to this issue 8| It's quite strange that the beams came back without restarting or reloading the world... did you maybe place some other elements before they came back? There is currently a bug in the game (which will be fixed with the next update) which turns certain parts of a chunk invisible in certain situations (usually these parts turn visible again after placing another element, or after reloading the world)...

    If you did already sleep in a bed, tent or shelter, you can either use the compass to find it (as mentioned by @yahwho), or alternatively type gotospawn into console to teleport there (as mentioned by @Lady_whynot) ;)
    Alternatively you can use the findbase command to find the location of the chunk with the highest amount of blocks/construction elements (this is most likely your village). This command prints the X and Z coordinates of this location, these can be used with the goto command (e.g. goto X Z).

    Hmm... das sieht wirklich merkwürdig aus. Diese schwarzen Striche sollten eigentlich nicht sein 8| Treten diese auch weiterhin auf, wenn du das Klo abbaust und wieder aufbaust? Bzw. wenn du es an anderer Stelle platzierst? Was für eine Grafikkarte hast du (Nvidia/AMD/Intel)? Wenn die schwarzen Striche immer sichtbar sind, könnte es vll ein Shaderproblem oder so sein. Vielleicht könntest du probieren, den Grafiktreiber zu updaten. Normalerweise sollte die Toilette so aussehen:



    Unabhängig davon werden aber zukünftig die meisten Objekte überarbeitet, also Möbel, Türen, Lampen und selbst das Klo ;)

    What sort of "lags" do you mean exactly? Are you referring to actual lags, i.e. there is a high latency between the client and the server (desync, world takes ages to load, player sync not properly etc), or do you refer to performance issues (framerate, freezes etc)?
    If the server crashes (this shouldn't happen, so there is definitely something wrong), there should be either an "errorlog" or "hs_err_pid" file in the server directory - these files contain information about why the server actually crashed. If there is such a file, please upload it here ;) Alternatively you can upload a server log (from when the server crashed), these can be found in the "logs" subfolder.

    Basically the CIMG format is just a PNG image with some additional data (e.g. information about the uploader, original image name and dimensions etc).


    The first two bytes contain the "image version" (just ignore this), and the next four bytes contain the actual data length (number of bytes). When writing a plugin, you could use this code to turn a CIMG-File into a PNG byte[] (using the API Utils class):


    The next update will contain a method to convert a (png) byte array into a buffered image and vice versa. But it's fairly simple to convert a byte[] into a buffered image (using the javax ImageIO class). This code turns our "pngData" byte[] into a buffered image:

    Java
    try(ByteArrayInputStream bis = new ByteArrayInputStream(pngData)){
    BufferedImage bufferedImage = ImageIO.read(bis);
    }
    catch(IOException e){
    //error occurred
    }

    This is unfortunately a bug: if an item which uses a certain attribute was added to the inventory, the attribute was only stored serverside and not properly synced with the client. As a result, the client received a "broken" item, but as soon as the inventory was re-synced with the server (which happens in certain situations, e.g. if the client or server detect the desync, or if the player reconnects to the server), the item was fixed.


    This annoying bug will be fixed with the next update :)

    Unfortunately it's a little bit tricky to create texture packs. It's important to use the same format as the original texture. This old topic contains some more information about the required file format: Important notice about Texturepacks
    It would be easier if the game was able to convert any image format into the particular target format, but we were unable to add this feature in the past due to patent issues. AFAIK the patent in question expired in the meantime, so maybe we could rework the whole "texture pack creation" process to provide a more "straightforward" approach ;)


    About the blueprints: when a blueprint is stored, the game does not store the actual textures, instead it stores the underlying block ID. For example, ID 182 is a metal texture. If you're now using a texture pack which replaces ID 182 by a wood texture, and you're creating a blueprint containing this texture (ID 182), another player (who isn't using your texture pack) would just see the original metal texture instead when placing the blueprint.


    I've moved this topic btw.^^

    Hmm... when placing the beams, did you use the modular placement (i.e. the snapping feature [return key])? You said the beams showed up eventually after minimizing the game, does this mean the beams showed up without having to reload the world (or restarting the game)? 8|
    Is the bug still reproducible (maybe even at this particular location)?

    Renting a game server is definitely an easy solution, but of course there is no need to do that (since you already have a VPS). Just use screen as mentioned in my previous post, or alternatively check out the solution posted by @Devidian, this will solve the issue ;)

    This sounds like you're not running the RW server on your local machine, right? In this case you have to keep the server running of course (i.e. your dedicated server which runs the RW server), but there is no need to keep your PC online. You can use screen to detach the server process and keep it running in the background. If screen is installed on your server, you can just run the linux_screen.sh script :)

    Also ich bin mir jetzt etwas unsicher, einerseits möchte ich ja auch bauen und wenn ich jetzt meinen Weg mit Pflasterseinen einfach malen kann würde ich das wohl nicht so toll finden

    Naja, zumindest so manche altertümliche Pfade lassen sich mit dem Bausystem teilweise nur schwer umsetzen - besonders wenn es bspw. eher in die Richtung geht, dass es ein einfacher, kurviger Pfad durch den Wald sein soll. Also wenn ich zB an sowas denke:
    https://c8.alamy.com/comp/D3NA…mi-cobblestone-D3NA86.jpg
    Oder gar an sowas: https://i.pinimg.com/736x/bb/f…amera-slr-tree-swings.jpg


    Hier hätte eine passende Terrain-Textur zumindest durchaus eine Daseinsberechtigung. Ob es hingegen wirklich sinnvoll ist, sie reinzubringen, ist eine andere Frage...


    Anders schaut das schon aus, wenn wir über andere Texturen, sagen wir mal einen Mix aus dem was da ist hätten um einen Weg oder Straße im Mittelalter oder Altertum zu malen

    Wie meinst du das genau?


    Insgesamt ist unsere Natur ja recht schön ABER viel zu sauber. Also ich meine damit das ja nichts rumliegt, keine Äste oder Blätter bezw Steine

    Das ist leider wahr, aber das könnte über Texturen nur schwer gelöst werden... zumal größere Objekte (zB Äste) als Textur nicht gut aussehen würden, hier wären 3D Modelle sinnvoller. Tatsächlich ist das aber auf unserer ToDo-Liste, also dass generell vereinzelt Steine und Felsen sowie Äste in der Natur spawnen. Das würde nicht nur die Optik verbessern, sondern auch andere Spielelemente (man müsste nicht mehr mit einem Startwerkzeug spawnen, sondern könnte dieses durch das Sammeln von Ästen und Steinen erst craften usw) ^^


    Also, dass eine neue Welt nur mit dem Stadard texturen erstellt wird und man hat dann die möglichkeit belibige texturen hinzuzufügen und zu verwenden. wie z.b. pflasterstein oder ein waldweg
    Das denn genau so für Block Texturen.
    Sozu sagen, es gibt Leere Slots für texturen, die erst nutzbar sind, wenn man eine textur auf den slot zugeordnet hat.

    Das ist tatsächlich ein schwieriges Thema, auch wenn diese Lösung an sich wünschenswert wäre... Natürlich ist der größte limitierende Faktor der, dass wir immer nur eine begrenzte Menge an Texturen haben können. Jede zusätzliche Textur erhöht den Arbeitsspeicherverbrauch und schmälert die Performance. Das ist bei einer einzelnen Textur zwar halb so wild, aber es gibt bestimmte Grenzen, deren Überschreitung einen besonders starken Einfluss auf die Performance hätte. Bei Terrain-Texturen haben wir das fast erreicht, bei Block-Texturen ist noch ein kleines bisschen Luft. Aber wir versuchen uns da auch ein wenig Reserve zu lassen, für den Fall, dass wir später ohnehin noch bestimmte Texturen noch hinzufügen müssen.


    Wir können natürlich theoretisch ein paar Slots als Platzhalter drin lassen die man dann durch eigene Texturen ersetzt, aber viel Spielraum hat man dadurch ja leider nicht. Besonders beim Terrain, wo fast alle "Standard-Texturen" ja sowieso von Natur aus irgendwo in der Welt verwendet werden (zB Schnee, Sand, Höllengestein usw).


    Man könnte natürlich die Block-Texturen reduzieren, um zumindest hier etwas Platz zu schaffen, aber der Entfall von bestehenden Texturen ist ja auch mit einigen Problemen verbunden :/


    Zu den Texturen - Schnee gibt es ja bereits, wäre schön, wenn das auch auf Dächern, Wegen, Holzplanken usw. also wie Sand nutzbar wäre.

    Meinst du Schnee als Block-Textur, also dass du bspw. einen Block oder eine Planke etc. mit einer Schnee-Textur spawnen kannst?

    Schwierig... also eine isDirty() Funktion können wir ggf. hinzufügen. Das Problem ist, dass es prinzipiell 3 Arten von Chunks gibt (einmal ein klassischer Chunk [x, y und z Koordinate], welcher die Terrain & Block Daten enthält, dann ein LOD Chunk [nur x und z Koordinate] welcher eine grobe Repräsentation des Terrains in Form einer Höhenmap enthält, und dann noch ein spezieller Chunk [auch nur x und z], welche alle Objekte, Pflanzen usw. enthält). Nach jetzigen Stand werden die Tiere gespawnt, wenn ein solcher Chunk geladen wird (und der Chunk unberührt bzw. ist bzw. "isDirty()" false zurückgeben würde). Allerdings gibt es in der API derzeit nur einen eher abstrakten Zugriff auf die Chunks, und auf letztgenannten Chunk-Typ noch gar keinen Zugriff :(


    Auch eine reset() Funktion packe ich mal auf unsere Liste, da aber sowas nicht vorgesehen ist (und auch derzeit kein Mechanismus vorhanden ist, dass ein Client einen Chunk komplett neu lädt), bin ich mir nicht sicher, ob sowas rechtzeitig zum Update verfügbar sein wird...


    Ein NPCSpawnEvent ist aber bereits in der API vorhanden: https://javadoc.rising-world.n…ts/npc/NpcSpawnEvent.html
    Damit können jetzt schon die Spawns geändert bzw. festgelegt werden, was spawnen darf und was nicht ;)

    Wie schaut es eigendlich mit Ordner für die Bilder aus

    Du kannst die Bilder durchaus in einem Unterordner im Serververzeichnis platzieren und dann einfach den Pfad so in der journal.xml angeben. Also zB: <image name="journal/images/ts3-icon.png" width="256" height="256" page="right" posx="0.5" posy="0.5" pivot="center"/> (wenn die Bilder in einem Unterordner "images" in einem Ordner "journal" im Serververzeichnis liegen würden).


    Ich sehe aber gerade ganz nebenbei, dass offenbar der "pivot" nicht stimmt wenn man "center" angibt... das ist offenbar passiert, als die neuen Pivot-Positionen vor einiger Zeit in der API hinzukamen =O Das wird mit dem nächsten Update behoben, ich wollte dich nur vorwarnen, dass wenn du momentan als Pivot "center" verwendest, sich die Position des Elements mit dem nächsten Update etwas verschieben wird...