Posts by red51

    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") :)

    Das Problem ist, dass alle Bauelemente immer einem Chunk zugewiesen sind... während die Welt horizontal unendlich viele Chunks generieren kann, gibt es in der Höhe (aus Gründen der Optimierung) nur eine begrenzte Anzahl an Chunks: Es gibt 12 unterirdische Chunks (unter 0) sowie 17 überirdische Chunks. Bei einer Chunkhöhe von 64 Blöcken ist der tiefste bebaubare Punkt damit bei -768 und der höchste bebaubare Punkt bei 1088.


    Man kann das Limit via Blaupausen tatsächlich teilweise umgehen, nur leider werden Bauelemente nicht übernommen (und Objekte zerfallen, wenn sie keinen Kontakt zu einer soliden Oberfläche haben, allerdings werden sie in den Höhen auch nicht korrekt abgespeichert) :/ Wir können das aber mit dem nächsten Update ändern: Bauteile werden dann einfach dem höchsten Chunk zugewiesen. Ist leider keine optimale Lösung, da u.a. auch die Präzision leidet, je weiter man ins All reist (andererseits ist die Präzision dort eh nicht mehr wirklich gegeben). Für eine kleine Raumstation oder ein Raumschiff sollte es aber reichen :D

    Es scheint tatsächlich so zu sein, dass solide Bauelemente in der Blaupausen-Vorschau nicht durch transparente Bauelemente hindurch sichtbar sind... das ist so natürlich nicht gewollt, das werden wir mit dem nächsten Update beheben ;)

    Danke für die Rückmeldung sowie die Plugin-Daten! Ich vermute in dem Fall, dass im Plugin zB irgendwo ggf. eine Endlosschleife o.ä ist, oder es zumindest sowas auslöst :thinking: Leider bleibt dadurch der entsprechende Thread des Spiels zwangsläufig hängen... da das Spiel mehrere Threads verwendet, läuft vieles meist noch weiter, aber ein Teil der Dinge (wofür der hängende Thread verantwortlich war) kann nicht mehr abgearbeitet werden.

    Natürlich ist nicht auszuschließen, dass es auch ein Bug im Spiel ist, der durch das Plugin getriggert wird... ich werde mir das einmal genauer anschauen und versuchen, das Problem irgendwie zu reproduzieren.


    Wir werden mit dem nächsten Update auch ein Monitoring dafür einbauen, was sowas hoffentlich detektieren sollte... aber falls ihr sonst nochmal dieses Problem haben solltet, sag bitte Bescheid :)

    gibt es irgendwie eine Möglichkeit, das man von der Klasse Area erben kann.

    Das funktioniert leider nicht so richtig... das Problem ist, dass es auf nativer Seite nur die generische "Area" gibt. Wenn man also eine Area aus zB dem "PlayerEnterAreaEvent" ausliest, ist das nicht zwangsläufig dasselbe Area-Objekt, das du vorher erstellt hast. Intern werden Areas nur über ihre ID identifiziert. Das könnten wir theoretisch zwar ggf. ändern, aber die eigentliche Area-Referenz geht spätestens verloren, wenn eine Area aus der Datenbank ausgelesen wird. Sprich wenn du zB einen "FactoryPlot" erstellst und in der Datenbank speicherst und beim nächsten Mal ausliest, dann wird es automatisch zur "Area" (das lässt sich leider nicht ändern) :silenced:


    Muss man neue Areas immer noch selbst in einer eigenen Datenbank speichern oder werden neu erstellte Areas von Plugins auch, wie deine WorldProtection-Areas in die World-Datenbank gespeichert und wir müssen nur die ID speichern? :thinking:

    Es gibt temporäre und persistente Areas - letztere werden dauerhaft in der Datenbank gespeichert, bis sie explizit gelöscht werden ;) Das kann über den 2. Parameter von Server.addArea() bestimmt werden.

    Sorry für meine späte Antwort, ist leider zwischendurch etwas untergegangen :/


    Hi red51 ich habe mal Versucht das npc.setBehaviour zu benutzen, irgend wie klappt das nicht wie ich Dachte.

    Das Problem war zuvor, dass die Änderung am Behaviour teilweise keine Wirkung hatte, wenn der Alert-State noch gesetzt ist. Leider gab es zuvor aber auch einen kleinen Bug, dass der Alert-State nicht über die API geändert werden konnte... das wurde aber mit dem letzten Hotfix korrigiert.

    Nun sollte es eigentlich funktionieren, wenn du das Behaviour änderst. Wichtig ist oftmals auch, dass die AttackReaction auch geändert wird (der Name ist etwas irreführend, denn effektiv ist das das Verhalten, was bei aktivem Alert-State ausgeführt wird) ;)


    Bei den NPC's wehre es vieleicht nicht schlecht wenn man die Aktuellen Einstellungen Einstellungen über die API abfragen kann. (Ist warscheinlich schon auf der Liste^^)

    Welche Einstellungen meinst du genau? Behaviour und AttackReaction? Das können wir mit dem nächsten Update einbauen ^^


    Ich Denke die API zum Einstellen der NPC's kommt noch, Kleidung, Waffen. Ich habe schon gesehen, ich könnte auch eine neue Variante in die DB hinzufügen, wehre das Sinvoll? Nach jedem Update Weck oder auch nach jedem Neustart?

    Items kommen noch, aber Kleidung kannst du bereits über die API einstellen: Dafür musst du dir das Clothes Objekt des Npcs holen (via Npc.getClothes()). Das Clothes-Objekt kann dann angepasst werden (Kleidungsstücke entfernt oder hinzugefügt werden) :)


    Zu den NPC's bei mir Spawn "nur" die Skelette in der Nacht, ich bin acuh schon was Herum gelaufen aber Piraten oder Babaren habe ich noch nicht gesehen. Ich habe allerdings noch keine neue Insel Betreten und bin in einem Gemäßigten Biom.

    Meist ist es so, dass wenn Skelette Nachts aktiv sind, man kaum Banditen antrifft, da diese nicht spawnen, wenn Skelette in der Nähe sind (der Skelett-Spawn aber insgesamt recht hoch ist).


    Barbaren sind aber meist häufig anzutreffen, da diese auch tagsüber spawnen. Barbaren findest du aber nur auf ariden Inseln.


    Piraten gibt es bisher leider noch nicht^^


    :!: Was mir gerade noch Aufgefallen, ich hatte für meine NPC-Info in der ToolsAPI, ein Funktionalietät das mann mit Gedrückter [ALT] die Maus Bekommen hat, vorher konnte mann in ein TextEingabeFeld Klicken dadurch wurde der PlayerUIElementClickEvent Ausgelöst und ich konnte das Ausblenden beim Loasassen von [ALT] verhindern.

    Jetzt scheint dieser Event nicht mehr Durch zu kommen. Mit gedrückter [ALT] Taste kann ich leider keinen Text eingeben. Das UITextField hatte ich auch Extra auf Clickable gestellt, das hat jetzt keine Efeckt mehr.

    Die [ALT] wurde in disableClientsideKeys eingetragen. Bei UIElemnten wird der PlayerUIElementClickEvent weiterhin ausgefürt (mit [ALT]).

    Wurde am UITextField was verändert?

    Wir haben daran eigentlich nichts geändert, was dazwischenfunken sollte :wat: Aber ich kann bestätigen, dass man das Click-Event nicht erhält beim Textfeld (bzw. nur ganz an der linken oder rechten Ecke). Hat sich das vorher anders verhalten bzw. hat man immer das Click-Event erhalten, egal wo man hingeklickt hat?


    Ich würde mir da nur noch ein "ScrollToEnd" Wünschen, oder die Scroll Position einstellen. :thinking: 0-100% wehre vieleicht am Sinvollsten, ich Überlege Text an zu Zeigen in dem mann Suchen könnte und zu der Position Springen könnte, aber es muss ja irgendwas einheitliches sein. Die Höhe der Gesammt Scroll Flache wehre auch nicht schlecht, aber da müsste ich die Automatische Größe eines Labels in Pixel umrechnen :D

    Ich schaue mal, was sich da machen lässt ;)


    Welches Projeckt muss ich jetzt nehmen?

    High Definition 3D


    Bei den UIElementen, speziell bei Internals.addUIElementToPlayer auf InGameMenuLayer habe ich noch das Phenomän wenn ich ein UIElement als Button Nutze und beim Klicken z.B. das Image ändere. 'Habe ich gerade das Phänomen sobald ich zweimal den Button benutze und mit der Maus das Element Verlasse, da wird irgendwas genullt.

    Hmm... schwer zu sagen, was das verursacht... kannst du mir evtl. ein kleines Plugin senden, mit welchem der Fehler reproduziert werden kann? Dann kann ich mir mal genauer anschauen, was da los ist ^^


    Die anderen Probleme mit dem Style sind gefixt, jedenfalls Klappen alle anderen UIElement Projekte nach dem Fix :thumbup:

    Danke für die Rückmeldung, freut mich, dass das klappt :) :thumbup:


    Beim ColorPicker scheint noch irgendwas mit der Farbe nicht optimal zu sein:

    Tatsächlich wird eine RGB Farbe erwartet... das ist generell nicht optimal, da ColorRGBA nur eine RGBA Farbe ausgibt... vmtl. werden wir die Funktion dahingehend ändern, dass sie RGBA Farben akzeptiert und auch zurückgibt :thinking:


    Allerdings glaube ich das Handwritten & FingerPaint in der API nicht klappen weil sie Handwritten1 & FingerPaint1 heißen sollten ;) Kriege ich noch nicht umgebogen :D

    Inwiefern? Bzw. was funktioniert da nicht genau? Intern heißen die Fonts tatsächlich nur Handwritten und FingerPaint, nur der lokalisierte Name ist "Handwritten 1" und "Finger Paint 1" ^^

    Vielen Dank für die Logs! Die Ausgabe k_EAuthSessionResponseAuthTicketCanceled erscheint dann, wenn die Verbindung unerwartet getrennt wird. Das kommt vom Steam Server und ist bei einem Timeout erstmal normal - unnormal ist allerdings, dass der Server selbst (zB ENet) den Timeout nicht mitbekommt :huh:


    Schwer zu sagen, was das verursachen kann... es sieht fast so aus, als würde irgendein Thread hängen... ein Bug ist nicht auszuschließen, dürfte aber dann normalerweise auch den Singleplayer betreffen. Daher fällt mein Verdacht da eher in Richtung Plugin API bzw. Plugin :thinking:

    Du sagst, dass es vor Oktober nicht auftrat? Habt ihr das Portals Plugin vor Oktober auch schon verwendet? Tritt dasselbe Problem denn auch auf, wenn das Plugin entfernt wird (falls das möglich ist und falls das Problem dann auch auftritt, kannst du dann davon nochmal einen Log senden)?


    Etwa 10 Sekunden später stürzt der Server satt ab und versucht alle 3 Minuten erfolglos neu zu starten:

    Ein Port wird leider nicht freigegeben... der wird von Steam verwendet, wenn aber der Server crasht oder sich Steam irgendwie verhaspelt, dann kann das mehrere Minuten dauern, bis der Port wieder offen ist.

    Mit dem nächsten Update werden wir eine Änderung einbauen, womit dieser eine Port ignoriert wird (denn ggf. kann der Server auch wieder gestartet werden, wenn der Port vermeintlich noch blockiert wird).


    Wenn das zu häufig passiert, kannst du den Port-Check durch den Server auch ausschalten indem du in der server.properties "Server_EnablePortCheck" auf False änderst. Kann aber sein, dass es damit noch schlimmer wird (da der Server dann nicht mehr abwartet, falls ein Port belegt ist)... in dem Fall würde ich das dann lieber wieder auf True ändern ^^


    Ich habe Bedenken, ihn zu bitten, sich probehalber auf einem anderen Server einzuloggen. Aber vielleicht gibt es einen Test-Server für solche Zwecke? :thinking:

    Ja es gibt einen Test-Server: Das wäre der Rising World Test Server - No Rules mit der IP 94.130.179.127

    Wenn das Problem wirklich so häufig bei dem User auftritt, wäre es tatsächlich hilfreich zu wissen, ob das Problem dort auch besteht :)