Posts by red51

    Unmittelbare Zusammenhänge sind nicht erkennbar. Es sieht jedoch so aus, als wäre die Wahrscheinlichkeit herauszufliegen bei Bautätigkeiten größer als beim Umherlaufen.

    Leider fliegen alle die online sind immer zeitgleich vom Server. Erst nach einem Restart über die Browser-Konsole des Hosters kann man sich wieder einloggen. :(

    Schade... dann wird vmtl. nur das Monitoring des nächsten Updates helfen können, um irgendeinen Anhaltspunkt zu liefern, was da los sein kann :/


    Ich denke es lässt sich nachvollziehen. :thinking: Nach dem Start 2024-10-22-23-02-34.log ist der Server bis zum Morgen durchgelaufen. In dieser Zeit wurde alle 2 Minuten versucht ein weiteres Mal zu starten. Am Morgen habe ich mir die Sache angeschaut und mich auf dem Server eingeloggt, was problemlos funktioniert hat. Während ich auf dem Server war, wurden im Hintergrund weiterhin Startversuche unternommen. Dann habe ich den Konsolen-Befehl shutdown eingegeben und den Server angehalten. Letzter Eintrag im Log: "[WARNING] [10:13:18] Exit (0)".

    Stimmt, die weiteren Logs stammen tatsächlich aus der Zeit, während der Server noch läuft :wat: Allerdings kann das eigentlich nicht durch den Scheduler-Restart verursacht werden :monocle: Wenn der Server sich selbst neustartet, wird ausnahmslos immer ein -wasrestarted Parameter mitgegeben (und wenn dieser vorhanden ist, gibt der Server beim Start die Ausgabe Server was restarted before... aus). Es gibt nur eine zentrale Stelle für einen Restart (hier kann eigentlich nichts durcheinanderkommen oder dazwischenfunken). Das OS wird angewiesen, den bestehenden Prozess durch den neuen Serverprozess zu ersetzen (wenn das aus irgendeinem Grund OS-seitig nicht funktioniert, dann dürfte der Restart niemals korrekt funktionieren).


    Es muss also eigentlich irgendwas externes sein, was den Server immer wieder startet (was natürlich nicht klappt, da der Server ja bereits läuft und die Ports belegt) :thinking: Wahrscheinlich hat der Hoster eine Mechanik, die das auslöst (durch einen Restart ändert sich die PID - vll überwacht der Hoster diese und startet den Prozess dann neu, weil er denkt, dass der Server abgestürzt sei). In so einem Szenario ist es dann sinnvoll, den Server nicht durch die eingebaute Mechanik neuzustarten, sondern einfach einen shutdown durchzuführen (also im Scheduler die Zeile /restart einfach durch /shutdown ersetzen). Der erste Restart-Versuch seitens Hoster lt. Logs wurde aber erst 15 Min später durchgeführt (erst danach ja im 2 Min Takt), daher ist das vmtl. auch keine optimale Lösung (außer, das Webinterface des Hosters bietet da entsprechende Einstellungsmöglichkeiten)

    Getting the ticks per seconds wouldn't be very helpful in RW unfortunately, because the RW server is a multi-threaded application. There is a main thread which performs some basic tasks, like saving the world, updating furnaces and growing plants, determines weather changes etc. The PluginAPI UpdateEvent is also invoked from the main thread atm. It has a getTpf() method to get the current time per frame (this is basically what you're looking for).


    But things like world generation, player/npc sync, npc handling, networking etc run in separate threads, so even if the main thread is busy doing something specific, it wouldn't be very noticable. Only if the main thread is constantly extremely busy (tpf always > 5-10 seconds), something could be wrong (plugin timers and calls like "enqueue()" or "executeDelayed()" also run on the main thread, so they would have an impact on that) :thinking:

    Sorry für die späte Rückmeldung! Tut mir Leid zu hören, dass die Probleme weiterhin auftreten... offensichtlich liegt es nicht am Plugin. Es sieht trotzdem so aus, als wäre irgendwo eine Endlosschleife o.ä. Der Server verwendet mehrere Threads, und einer der Threads hängt offenbar fest - darum läuft zwar der Server an sich noch weiter (mit Speicherausgaben), aber niemand kann mehr connecten :thinking:


    Um wirklich herausfinden zu können, was da überhaupt hängt, bräuchten wir das nächste Update, was explizit ein Monitoring dafür haben wird... das nächste Update war eigentlich zusammen mit dem Storepage-Update geplant, aber evtl. ziehen wir es etwas vor. Das könnte etwas Licht ins Dunkel bringen.


    Gibt es denn irgendeine Aktion, die das Verhalten hervorruft (also den Verbindungsverlust)? Wenn der betreffende Spieler rausfliegt (und du zufällig [noch] online bist), kannst du ggf. einmal serverinfo network in die Konsole eingeben? Die Ausgabe davon könnte interessant sein... du könntest dann vll entweder einen Screenshot hier posten oder alternativ einen Report danach senden (einfach anschließend report in die Konsole eingeben) :)


    Mir waren in den Log-Files Warnungen aufgefallen, die sich auf fehlende Permission-Keys bezogen:

    Diese Permission Keys gibt es tatsächlich nicht. Statt chatcolor_chatnamecolor ist vmtl. info_chatnamecolor gemeint. Auch ein chatcolor_deny gibt es nicht, vmtl. war info_chat gemeint (womit der Chat generell erlaubt/verboten werden kann)?


    Anschließend habe ich eine neue Permission-Gruppe mit dem Namen "player" erstellt und versucht diese dem betroffenen Spieler zuzuweisen. Dabei ist es zu einer Fehlermeldung gekommen, ohne Absturz des Servers:

    Danke für den Hinweis, das ist tatsächlich ein kleiner Bug! Allerdings ist der harmlos und hat keine Auswirkung auf den Server, der Befehl wird auch trotzdem ausgeführt - nur bekommt man in der Konsole keine Rückantwort durch diesen Bug ;)


    Allerdings wurde gleichzeitig bis zum Morgen alle 2 Minuten erfolglos versucht den Server erneut zu starten, wie die Log-Files zeigen.

    [...]

    Am Morgen habe ich den Server manuell gestoppt und wieder gestartet. Danach war wieder alles in Ordnung. Vermutlich hängt das irgendwie mit dem Scheduler zusammen

    Das Problem ist, dass Steam einen Port nicht freigibt (4254 UDP)... die Situation scheint sich neuerdings leider etwas verschärft zu haben und der Port zu lange blockiert bleibt. Vor allem wenn der Server nicht ordnungsgemäß heruntergefahren wird.

    Wahrscheinlich ist der Port aber effektiv gar nicht mehr unbedingt blockiert, sodass wir die Prüfung für den Steam-Port vmtl. einfach entfernen können. Das Problem können wir also evtl. mit dem nächsten Update fixen.


    "Du wurdest vom Server gekicked! Illegale State-Limite überschritten! Bitte überprüfe deine Internetverbindung und stelle sicher, keine modifizierten Spieldaten zu verwenden."

    Ein "Illegal State" tritt auf, wenn der Server irgendwas feststellt, was für ihn nicht plausibel ist. Grundsätzlich ist es so, dass fast alle Aktionen des Clients vom Server nochmal verifiziert werden. ZB dass beim Aufheben von Items oder Zerstören von Bauteilen der Spieler nicht zu weit entfernt ist. Wenn zu viele "Illegal States" auftreten, wird der entsprechende Spieler gekicked.


    In dem konkreten Fall wurde versucht, Bauteile zu entfernen, doch der Spieler war lt. Server zu weit davon entfernt (die erste Koordinate ist die Position, wo das Bauteil geschlagen wurde, und die zweite Koordinate ist die Position des Bauteils selbst).


    Wie das in dem Fall zustande kam ist nachträglich leider schwer zu sagen... das kann mit Desync zusammenhängen (dass neue Spielerpositionen nicht beim Server ankamen), oder aber natürlich kann auch ein Bug dafür verantwortlich sein. In der Vergangenheit gab es das Problem häufig bei besonders großen Bauteilen (das ist aber *eigentlich* gefixed). Waren in dem Fall evtl. extrem große Bauteile involviert?


    Neues zum Scheduler!


    Heute Nacht ist der gleiche Effekt aufgetreten, wie in der Nacht zuvor:


    - Der Scheduler arbeitete wie vorgesehen und restartete den Server erfolgreich und dauerhaft.

    - Gleichzeitig versucht er wohl im Hintergrund, alle zwei Minuten, eine zweite Server-Instanz zu starten, was aber zu einem Fehler führt. Übrig bleibt ein weiteres Log-File.


    Am Morgen konnte ich mich problemlos auf dem Server anmelden, während weiterhin versucht wurde den Server ein zweites Mal zu starten. Aus dem Spiel heraus habe ich mittels Konsoleneingabe einen Shutdown ausgeführt. Daraufhin konnte der Prozess im Hintergrund den Server erfolgreich nachstarten. Danach wurden keine weiteren Start-Versuche mehr unternommen.

    Hmm... aus den Log-Dateien geht das leider nicht direkt hervor :thinking: Lt. 2024-10-22-11-02-29.log wird der Server nach exakt 12 Stunden (wie im Scheduler eingestellt) neugestartet (mit dem Hinweis "R E S T A R T S E R V E R" ganz am Ende). Soweit alles wie erwartet. Lt. 2024-10-22-23-02-34.log startet der Server dann korrekt neu (und erkennt auch, dass es ein Restart war). Nach dann aber knapp 11 Stunden wird der Server beendet ohne Hinweis auf einen Restart. Da der Server scheinbar nicht ordnungsgemäß beendet wurde, bleibt der Port blockiert (weshalb der Neustart fehlschlägt).


    Auf mich wirkt es so, dass der 2. Restart extern durchgeführt wurde, also nicht vom Server selbst... denn es deutet nichts darauf hin, dass der Server den Restart initiiert hätte (und auch der Zeitpunkt stimmt wie gesagt nicht). Hat der Hoster vll so eine Mechanik?

    red51 wann kann man den damit rechnen dass das werkzeug kaputt geht und Obst und Gemüse verdirbt?

    Haltbarkeit von Werkzeugen wird wahrscheinlich schon bald kommen. Ich versuche es zum Storepage-Update rein zu bekommen, sonst wenn das nicht klappt, kommt das kurz danach ;)

    Das Verderben von Lebensmittel benötigt aber leider noch etwas mehr Zeit... vmtl. müssen wir erst einen Weg einbauen, Lebensmittel haltbar zu machen bzw. zu konservieren, damit nicht zu viel Frust unter den Spielern aufkommt :thinking:


    Kochen würde mich auch reizen.

    Dafür braucht man nicht unbedingt Elektrezität, eig "nur" einen Kochtopf und die Rezepte😁

    und mehr Obst und Gemüse😉

    Nach dem Storepage-Update haben wir hoffentlich die Gelegenheit, einen größeren Fokus aufs Kochen zu legen ;)


    Bei der Gelegenheit bitte auch eine Pfanne, Olivenbäume & eine Saftpresse. Wodurch wir Öl gewinnen & leckere obstsäfte in die vorhandenen Flaschen füllen können. :P

    Wie Kryssi_79 schon feststellt ist eine Saftpresse tatsächlich geplant bzw. auch teilweise schon vorbereitet worden :saint:

    It depends on how you've added the PluginAPI.jar to your netbeans project ;)


    The platform manager (on your screenshot) is only relevant for the JDK (including the Javadoc for the JDK). To set up the API, I'd recommend to use this option (it's for the Java version, but mostly still relevant for the new version): https://forum.rising-world.net/thread/4743


    In short, it's recommendable to add the Plugin API as Library. In Netbeans 17, go to the project Properties -> Libraries -> hit the + next to "Classpath" and select Add Library.... Click Create to create a new library (give it a name like "Rising World" or "Plugin API"). In the "Classpath" tab, hit Add JAR/Folder and add the PluginAPI.jar file. Then go to the "Javadoc" tab, hit Add URL and insert https://javadoc.rising-world.net/latest/. Confirm with Ok.

    If you've added the PluginAPI.jar directly to the Classpath before (in project properties), remove it, so only your newly created "Rising World" (or "Plugin API") library is there. Now the Javadoc should work properly in Netbeans :)

    Hmm... did the trees and plants have contact with the ground? Otherwise they will break as soon as the nearby terrain is modified... to disable this behaviour, you can turn of gravity for plants in the miscellaneous game settings.

    Mit dem nächsten Update werden zumindest Gold- und Aluminiumerzbrocken hinzukommen ^^ Allerdings wollen wir gleichzeitig den Erzspawn auf bestimmte Biome beschränken (damit es auch einen Grund gibt, andere Inseln zu besuchen), sodass die neuen Erzbrocken voraussichtlich nur auf anderen Inseln vorkommen werden.


    Einen Schwefelbrocken haben wir auch vorbereitet, allerdings wird der vmtl. erst mit einem späteren Vulkan-Biom dazukommen...


    Bei Kohle bin ich mir noch nicht sicher... an sich wollen wir durchaus gerne noch einen Grund im Spiel haben, dass man auch Höhlen besuchen bzw. nach Erzen buddeln muss :saint:

    Sorry for my late response! But thanks for the reports! They indicate that there is indeed a bug in the game, regarding the death of npcs, as suspected by yahwho (although they're not falling through the ground or getting stuck in a spawn-death-loop): in fact the bug occurs when an npc dies and drops an item - it prevents the npc from dying correctly (clientside). Most likely that's the reason why the number gets high over time (and why the numbers are sometimes messed up).

    This can be "fixed" by changing the serverside setting Setting_NpcDropEquippedItem to False (in the server.properties file). This can only be done by the server admin. Unfortunately it prevents npcs from dropping their equipped item, but I'd still recommend to disable it for now :thinking:


    I have in the past seen NPCs fall through the world particularly during chunk loading or if a player has a bad ping/connection.

    Do you still experience this issue? While in theory it's possible that an npc still falls through the ground, it should be ported back to the surface once a player gets closer to it again. However, there might still be old npc instances somewhere underground from earlier updates (if a player never got into their proximity, they might still be stuck there) - but on the other hand, they shouldn't have a considerable impact on performance.


    I am thinking, onNPCDeathEvent, grab the y value, start a short timer, then check the y value again. If the y value is say for example -10 units down on the originally recorded y value on the event, we could make an assertion from this that the NPC has fallen through the world and then call the npc.delete() method to remove it?

    After the NpcDeathEvent, the npc no longer exists. If there is a corpse (e.g if it was a bandit), it's still no longer considered an "npc" by the game. If npcs still exist after the NpcDeathEvent (unless the event was cancelled), that would be a bug (in this case a server log would be very helpful) :)


    And i think another thing wich show wrong in debug info is number of world item which i own? Game think i own -7 ? :crazy: . Maybe is related with sync of data to server? This number is not allways -7 but i see many times a negative number.

    Thanks for letting me know! It looks like this number is decremented (when an item is destroyed) even for items that don't belong to the player, causing this number to become negative in multiplayer :saint: This is a bug, but it has no negative impact on anything, because the game doesn't use this data (it's only tracked for debugging purposes atm) :D

    Could you elaborate on that? Actually we are already adding player-suggested content ^^


    Of course if a bigger feature is suggested (which would require weeks or months to implement), it may take a long time until it's added (because there is usually other stuff on our table we have to add first). But smaller things (which would require up to a few days to add) often make it into updates

    Attributes are indeed only valid during the session. Right now it's more meant to be a convenient way to store temporary per-instance data (and possibly share it between plugins)... in fact it wouldn't be easy to make them persistent - right now it's possible to store any object as attribute (this could be a reference to another class, e.g a UI element, or just a primitive data type), but we could only store primitive data types persistently (no way to store and recover that properly).


    We could think about adding a way to store separate, persistent attributes, but that would be limited to serializable data only (e.g. primitive data types, strings, vectors etc). Custom objects could only be stored if they implement the serializable interface (but no way to store API objects, like players, UI elements etc). It would be a separate API then, like setPersistentAttribute(), getPersistentAttribute() etc.

    I'm using Raycasts to allow right clicking on objects for custom interactions but sometimes they get 'stuck' and so the raycast will act as if it's touching an object like a tree even when I'm facing the sky or a rock for the example...

    Do you mind sharing your raycast code? ^^


    Secondly with saving user data to database how is best to store information so it is save specific seems like an obvious question but currently I can do stuff in one save and have the same progress in my other one as it's only looking at the playeruid... Should I save the server/save name alongside so it stores uniquely to each?

    There are basically various ways how to handle that. The best way is usually to store it in a specific subfolder in your plugin folder. E.g. instead of this...

    Java
    Database database = getSQLiteConnection(getPath() + "/MyDatabase.db");


    ... you could create a subfolder with the world name in your plugin folder (to get the world name, you can call World.getName()), like this:

    Java
    String worldName = World.getName();
    Database database = getSQLiteConnection(getPath() + "/" + worldName + "/MyDatabase.db");


    Alternatively you could store the database in the world folder (you can get the world folder via World.getWorldFolder()) or directly in the world database, although that could cause trouble if another plugin had the same idea and saves a database with the same name there. So the safest way is usually to store it in the plugin folder (using separate world subfolders there) ^^

    Replacing exiting block with a new one is a god option, only caveat here is different shape of block can be a problem. You must remember somewhat what shape used before and this can be problematic if block is embedded in complex structure, but if this tool can just use any shape of block from inventory and adapt to shape of placed block i don't see a problem.

    That's a good point. It indeed requires some extra work if you have to make sure to craft the correct shape first, which makes it prone to error...


    The hammer & chisel could be used to "upgrade" or "downgrade" blocks. However, there's the issue of it selecting multiple at a time instead of doing the entire castle with click click, click click, click click.

    Yeah, that problem indeed remains... but unfortunately I can't think of a proper way (or tool) to handle this in survival mode? :thinking: Maybe it feels a bit weird in survival if the player could just select an area covering the blocks he wants to replace, similar to how it works in creative mode?


    Why not just restrict it to only being able to change material for same material, that way it prevents people from exploiting it. Depending on how you have things set up you might have to create a couple of tools for survival like "wood chisel", "Stone Chisel", etc. so you can restrict the materials, but hey you don't use wood chisels to carve stone in real life so no big having to have a couple of them in game for the right job.

    Basically that's not a bad idea, but it would probably make things a bit too complicated if there were several tools for the same task (just based on the block material) :wat:


    Why are you having a hard time with resources? The resources are clearly defined.

    I'm not having a hard time with the resources, I was just referring to the way how the item should be changed. IMHO it feels a bit weird if the block material could be changed with a paint brush, for example (considering that doesn't only change the visual appearance of the block, instead it changes the actual material, strength of the block etc) ^^


    The question for me is more whether it is enough if the basic resources (logs, stones, ores) are there or does the finished block have to be in the inventory.

    That's a good question. While just having the basic resources in inventory is more flexible, the option of having the finished block in inventory feels a bit more suitable for the survival mode (because otherwise it would imply that the replacement block could be crafted without a workbench)... :wat:


    It would be perfect if, when building at a workbench, you didn't have to have all the resources in your inventory, but could access the contents of the containers within a radius of 6 blocks (just as an example) - I always have several boxes with the resources around my workbench.

    This sounds good, I will put it on our to-do list :)


    A simple "replace mode" (on/off button) in "C" menu, with a green overlay when you target a block to replace it, if you have the right type of block in your hands (and a red one otherwise), could perfectly do the job. No new tools or further justification is required.

    This sounds like an amazingly simple yet good solution ^^ Only problem is that the radial menu is already a bit bloated... so maybe it's better if we had a separate tool for that... we'll have to think about that :saint:

    Basically we could "easily" add a paint brush which replaces block textures. The necessary game mechanics are already there (accessible in the creative mode F8 tools) ^^

    I'm only struggling with finding a reasonable way to change the material in survival mode... it feels a bit weird if a wooden block could be turned into a metal block just by using a paint brush, for example :thinking:


    I think we need another way or another tool for that... maybe a hammer & chisel? It could be a dedicated tool then to replace existing blocks in the world with another block (you just need the new block in your inventory). What do you think about that?

    Wow, these are many npcs :wat: The 1st number is the amount of visible npcs, i.e. actively loaded npcs in your proximity (this is the problematic number), and the 2nd number is the total amount of living npcs in the world (this number isn't problematic at all).


    It's weird that the 1st number is higher than the 2nd number... this indicates that the game either can't keep up with despawning npcs (those npcs which either die or npcs which are not persistent, like skeletons, ghouls etc), or something is wrong there :thinking:


    However, the 1st number is definitely too high (and most likely the reason for the fps drops). It means that there are 26k npcs in your direct proximity ("proximity" is basically the area of loaded detail chunks). A reasonable number is supposed to be below 100, but below 1000 is probably also ok (there is no strict limit, but the higher the number, the higher the impact on performance)...

    Do you mind sending a report (as long as these numbers are that high)? It could maybe contain more information about what's going on (and why the 2nd number is lower than the 1st one) ^^

    Thank you so much for your kind words CedarMan and FioO :)


    QoL: I feel like pressing ESC while in Map view should close the map instead of bringing up the menu.

    If you're in map edit mode (i.e the cursor is visible), ESC is indeed supposed to stop the edit mode... but it sounds like you want the player to put away the map item when pressing ESC?


    It would be great to have cobble stone and asphalt (and maybe other stone patterns) in the terrain manipulator tool as well, because it looks a bit weird to set them as blocks into a world in many occasions, especially if they should interconnect between buildings, instead of belonging to a certain building. Do you think it is something doable in the future? I'm not sure about array limits, etc. Thanks for considering! <3

    It would be indeed nice to have more terrain materials... and it's definitely our intention to add more materials in a future update ^^ When it comes to cobble stone, you're probably looking for something like block ID 265, is that correct?


    is it just me that is no longer able to disassemble boats nor destroy them on my MP server? this is affecting all players including admins. I do know it was working not sure since when it stopped, last update maybe.

    Oh, yes, I can confirm that :/ This seems to be happening in multiplayer only... unfortunately there are no more hotfixes planned, but we will fix that with the next update! :)

    - When spawning npc in places with 4/5 blocks high, they teleport on the roof. Old java din't has that so pls bring it back npc's can spawn it those area's (for my village and dungons)

    Yeah, unfortunately this indeed happens sometimes... I will take a closer look at this issue :thinking:


    - weird bug : when playing with firends they sometimes have hal/unloaded chunks thta wont load, but if they dig a hole in it it loads??? And if I restart my PC it seems they don't have the unloaded chunks anymore. Bit weird

    If chunks don't load in multiplayer, this indicates that there is either a connectivity issue (resulting in packet loss), or more likely another program interfers with the connection (e.g. a firewall or anti-virus program)... however, if this happens again, do you mind sending us a report? It would be helpful if both the host (the one who loaded the world) and the other player (who can't see the chunks) would send a report at the same time. To do that, open the console and type report (maybe add some additional information then like "chunk does not load in multiplayer") ;)


    - sugg: Add some battleaxes pls :verysad: :verysad: :verysad: :verysad:

    It's on our to-do list, but unfortunately I have no ETA for that yet... some new items will make it into the next update, but I can't say for sure if this will also include a battleaxe :silenced:


    - a feature for npc's they only attack players you choose?

    This would be an interesting feature, but probably we have to implement taming for animals first (because that would require the game to track the relationship between npcs and individual players anyway)


    - armor don't giving extra health. Is it becasue you only can get it via command?

    Armor doesn't give extra health, it just decreases the damage you get. But right now this only applies to armor that is available in the crafting menu, so armor that's only spawnable via command does not provide any protection yet (but this will change with the next update) ^^


    - is there a way to give yourself more health or set your health by(200) or (150)

    Currently this is only possible through the Plugin API: the "Player" object provides a method setMaxHealth(), which allows you to change the max health of a player.

    Hmm... basically there is a random factor (unless it's not working for some reason) :wat: For regular rain, there is a 33% chance to get good weather, and for heavy rain, there is a 20% chance to get good weather. Maybe it's a bit too low... we will raise that chance with the next update :)

    That's weird :thinking: Hard to tell what's causing it... there are basically two things that could be responsible for this: this is either related to many npcs spawning (or being actively alive in your proximity), especially if spawn rates are set to higher values or if skeleton spawn at night is enabled, lots of npcs could end up in your area. Or this could be related to the engine version maybe (we've updated to Unity 2023.1)...


    When experiencing the drops, do you mind sending a report about that? Maybe the log file contains more information about what's going on. To do that, just open the console and type "report" (maybe add some additional information then, like "sporadic fps drops") :)