Posts by red51

    Apropos, gibt es schon einen ungefähren ETA für das nächste Update?

    Vermutlich diesen oder nächsten Monat ;)


    Viel cooler wäre wenn man die Schiffe irgendwann selber bauen könnte :D

    Der Wunsch wurde immer wieder mal geäußert (vor allem auch auf Fahrzeuge bezogen)... was zumindest geplant ist ist die Möglichkeit, größere Schiffe zu bebauen. Um vll den Spagat Richtung "selbstgebaute Schiffe" hinzubekommen wäre die sinnvollste Lösung wahrscheinlich ein Grundgerüst pro Fahrzeug-Typ zu haben, welches man dann bebauen könnte. Bei Booten/Schiffen wäre das vll ein Floß


    Ich dachte jetzt ,man hätt die Sturm dynamik auf dem wasser noch mal erhöht.

    Tatsächlich ist der Sturm selber gar nicht anders, neu sind bei dem Bild eigentlich nur die Wellen ^^ Derzeit gibt es keine richtigen Wellen auf dem Ozean, zwar stellt das Spiel das Wasser so dar, dass es eine gewisse Struktur hat, aber effektiv ist das Wasser immer platt bzw. flach. Mit dem Update würden richtige 3D Wellen dazukommen (und natürlich dabei auch das Bootsverhalten spürbar ändern), besonders bei Unwetter werden es auch entsprechend stärkere Wellen.


    Ich hätte gerne das ein Plugin-Ordner genauer Untersucht wird :wacko: und hier auch weitere *.jar mit in die Ladeliste einbaut.

    Grund: Durch meine Spielerein ist die ToolsAPI auf ca. 20Mb gewachsen. Ich habe da einige Libs und möchte die in einer Separaten Datei/Plugin auslagern. Es würde Sinn mache die beiden in einem Plugin-Ordner abzulegen.
    Aber dann gewinnt das Alphabetische Plugin im Ordner, aus dem dann die plugin.yml herangezogen wird für die Prio und so. Ich glaube die weiteren werden dann nicht mehr geladen.
    :D Können hier im Ordner alle Plugins gefunden werden?

    Theoretisch müsste das bereits möglich sein :) Standardmäßig prüft das Spiel, ob es einen "lib" Ordner gibt (innerhalb eines Plugins) und lädt die .jars darin dann als Abhängigkeit. Wenn hingegen ein Plugin als Lib für andere Plugins dienen soll, musst du die loadorder in der plugin.yml anpassen, wie Devidian schon sagt. Das Spiel lädt Plugins in der Reihenfolge abhängig ihrer loadorder (bei gleicher loadorder dann hingegen alphabetisch). Für ein Plugin, was als Dependency eines anderen Plugins dient, müsstest du entsprechend eine niedrige loadorder wählen (zB die vorgeschlagenen -999) ;)


    Algemein, wenn der WorkShop kommt, hat der auch eine Größenbeschränkung? Müsste ich mir dann noch gedanke über die Plugin Größe machen?

    Bei Steam gab es damals mal eine Größenbeschränkung, aber meines Wissens nach gibt es die nicht mehr (d.h. kein Limit mehr). Ich würde dennoch versuchen, Plugins und Mods so klein wie möglich zu halten, da die Downloadgeschwindigkeiten in Steam manchmal deutlich schwanken können...


    Ansonsten scheint es aber bei mod.io ein Limit zu geben. Online finde ich 8 GB, weiß aber nicht, ob das wirklich noch aktuell ist (ist schon ein paar Jährchen alt). So 100% steht noch nicht fest, ob wir lieber zu Workshop oder mod.io gehen (Steam würde die breitere Masse erreichen, mod.io hingegen plattformunabhängig sein und auch für nicht-Steam Versionen funktionieren) :thinking:


    Ich wollte mal einfach fragen, wann ein neues Update in Planung ist und evtl was drin ist? :)

    Voraussichtlich diesen oder nächsten Monat, aber leider kann ich noch nicht 100% sagen, was alles seinen Weg ins Update finden wird :saint: Kommt ein wenig darauf an, ob das Update noch im Juli oder eher im August erscheint.

    Die gute Nachricht: Wir haben mit der Arbeit an einigen großen, wichtigen Features begonnen (bewegliche Teile, bessere Höhlen, besseres NPC Pathfinding usw), die werden aber nicht im kommenden Update reinkommen.

    Ausnahme könnten die Höhlen sein: Aber hier würde ich das vll erstmal als "experimentelles Feature" reinbringen, d.h. man kann sie für neue Welten testweise aktivieren. Würde da gerne etwas Feedback sammeln und wenn alles passt, würde ich sie für alte Welten rückportieren.

    (das Problem ist nämlich, dass die Integration in Bestandswelten immer etwas heikel ist, vor allem aber wenn die Höhlengenerierung Probleme macht oder wir doch nochmal ändern wollen, das wirklich unheimlich viel Aufwand ist... daher lieber erst etwas Feedback sammeln) :D


    Das nächste Update wird in erster Linie die oben gezeigten Ozeanwellen reinbringen (mit neuer Bootsphysik etc) und das Wasser wurde generell angepasst (Fließverhalten usw). Außerdem sind viele Altlasten behoben, die schon ewig Probleme machten (zB "Geisterblöcke" die bei Terrainbearbeitung übrig blieben und im LOD zu Spitzen führten, Harke kann Terrain nun weicher gestalten usw), und generell eine Reihe Bugs behoben. Die Änderungen in der Plugin API sind auch umfangreich (auch wenn das für viele Spieler natürlich auf Anhieb erstmal nicht so relevant ist).


    Alles andere, woran wir momentan noch arbeiten (zB Items beim Reiten benutzen) ist noch unfertig, da kommts ein wenig darauf an, ob es in den nächsten 1-2 Wochen fertig wird oder nicht :)


    Auf Steam wurde geschrieben, dass du Ende diesen Monats, damit rechnen kannst.

    Die Info ist zwar nicht komplett falsch, aber wo genau hast du die her? :D Oder wer hat das gesagt? Ich kann mich eigentlich nicht erinnern, mich verplappert zu haben (zumal ich wirklich nicht 100% sicher bin, ob es wirklich diesen Monat kommt)  :saint:

    Danke für die Info! Dass Umbruch manchmal fehlerhaft durchgeführt wird ist mir auch schon aufgefallen, doch dass Rich Tags auch zerstört werden können wusste ich noch nicht :wat: Jedenfalls sollten beide Probleme mit dem nächsten Update endlich behoben sein ^^

    Ja, das macht auf jeden Fall Sinn ^^ Ich packe es mal auf unsere Liste :)


    Könnte man ein Poster in das Maßband laden und das Verhalten von Postern übernehmen um die gelben Punkte zu ersetzen? Das wäre 5 Sterne

    Wie meinst du das genau? Soll das Poster dann anstelle des Markers angezeigt werden?


    Ich wünsche mir seit langem die Möglichkeit der Fixierung des Maßbandes, als ob ich einen Zollstock auf den Boden legen könnte.

    Wie Nebeltrinker schon sagt, die Funktion gibts tatsächlich schon seit einer Weile ;)

    Dafür könnte man ja ein exposePlugins in die server.properties einfügen was per default false ist. Wenn ich meine Plugins dann entsprechend anpasse, werde ich genau so vorgehen, so war der plan.

    Ja, das wäre natürlich möglich :saint: Würde das dann aber standardmäßig vmtl. deaktivieren, d.h. ein Admin müsste die Einstellung explizit auf true setzen, damit es funktioniert. Wahrscheinlich würde ich sie dann Plugins_ExposePlugins oder ggf. Server_WebserverExposePlugins nennen. Ich kann das mit dem nächsten Update reinpacken :)

    red51 Gibt es mehr solche versteckten Einstellungen und/oder Konsolenbefehle für Blaupausen?

    ich frage für unsere Wiki :)

    Im Prinzip alle Optionen, die in der config.properties sichtbar sind (beginnend mit Game_Blueprints*) ^^ Die einzige versteckte Option ist Game_BlueprintsPlaceDelay, womit festgelegt werden kann, wie lange es dauert, bis eine Blaupause platziert ist.


    Ansonsten greifen bei Konsolenbefehle diverse Baubefehle (setl, setr, setp, size, gridrotation etc). Spezifische Blaupausen-Befehle sind eigentlich nur blueprints (zum Öffnen der Blaupausen-Übersicht), blueprintinfo <datei> (um Infos zu einer Blaupause anzuzeigen) und undoblueprint (um explizit das letzte Platzieren einer Blaupause rückgängig zu machen). Ggf. könnte man hier noch gamedir blueprints miteinbeziehen, was direkt den Blaupausen-Ordner auf der Festplatte öffnet ;)

    Dem Video ist eigentlich ganz gut zu entnehmen, dass ich im Singleplayer spiele.👉👈

    Stimmt, sorry, dumme Frage, mein Fehler :silenced::D:saint:


    Sie landen halt immer da, wo Sie auch gespawnt sind.

    Achso, also ist das immer ihr originaler Spawnpunkt, d.h. kein zufälliger Punkt o.ä? Wie ist das mit dem refreshnpcs Befehl? Im Video hast du ihn zwar eingegeben, aber zu dem Zeitpunkt hatten sie bereits ihre fehlerhafte Position bzw. sie einfach beibehalten (was tatsächlich zu erwarten war). Aber wie ist es, wenn sie an einer Position sind, die nach einem Neuladen der Welt wahrscheinlich wieder zurückgesetzt wird? Wenn du dann den Befehl eingibst, landen sie dann auch wieder an der Spawnposition, oder behalten sie dann erstmal ihre Position bei (die dann erst beim Neuladen zurückgesetzt wird)? Das würde helfen herauszufinden, ob der "Server" (auch im SP läuft quasi ein Server, nur ohne Netzwerk und so) denn die korrekte Position hat, sie nur nicht oder falsch in die Welt-Datenbank geschrieben wird, oder ob es zw. Client und Server eine Abweichung gibt ^^

    Irgendwo bei 8.5+ fiel mir auf, dass die Zeit in einem Intervall von etwa 5 Ingameminuten einen Rücksprung macht und sich dann wieder nach vorne dreht, bis sich der Vorgang wiederholte

    Diese Rücksprünge treten auf, wenn die Zeit zwischen Client und Server zu stark abweicht. Bis zu einem kleinen Maß toleriert das Spiel eine Abweichung (und versucht sie langsam auszugleichen), aber wenn sie zu groß wird, gibts den harten Sprung...


    Woher das jedoch genau kommt bzw. in dem Fall kam ist schwer zu sagen... vielleicht war damals auch ein Bug, der das begünstig hat, bin mir da leider nicht mehr sicher :thinking:


    Nun, wenn ich es über die Konsole mit settimespeed hochschraube wird der Befehl zwar angenommen, jedoch nach einem Relog bzw. längerer Offlinedauer trotz dass der Server noch nicht neugestartet hat wieder auf 60 gesetzt

    Ja, der Konsolenbefehl ist leider nur für die Session gültig, d.h. nach einem Neustart des Servers ist es wieder zurückgesetzt :silenced:


    Irgendwas um den Dreh bei 50000-60000 rum wurden wieder die 60 genommen, aber die 50000 blieben eingetragen. Alles unter ~50000 ging, aber nach einigen Sessions waren nach jedem Serverneustart wieder die 60 aktiv, ich glaube es gab dazwischen keinen Fix oder Patch.

    Also der theoretisch höchstmögliche Wert wäre 2147483647 (max. Wert eines vorzeichenbehafteten ints)... das Spiel setzt an der Stelle auch keinen künstlichen Höchstwert an. Bei so dermaßen hohen Werten kann es aber sein, dass die Zeit effektiv nicht voranschreitet (aufgrund von Rundungsfehlern). Da ist es dann sinnvoll, die Zeit generell auszuschalten (einfach Wert 0 eintragen)... allerdings bleibt sie dann auch wirklich stehen.


    Für Realtime wäre der sauberste Weg wirklich 1440 einzutragen. Nur leider bedeutet das wirklich nur, dass ein Ingame-Tag 24 Stunden dauert. Damit wird die Zeit nicht automatisch an die Systemzeit angepasst (dafür wäre wiederum ein Plugin nötig).


    Funktioniert das denn weiterhin nicht, wenn du diesen Wert in die server.properties einträgst? Bzw. gibt es in dem Fall weiterhin Probleme mit springenden Schatten o.ä?

    Vielen Dank für das Video! Also das ist ja ein merkwürdiges Phänomen 8| Ist das im Multiplayer oder Singleplayer? Verwendest du Plugins?

    Ich konnte es bei mir leider bisher nicht reproduzieren... hast du von deiner Seite einen Weg das zu reproduzieren bzw. ist dir etwas aufgefallen, unter welchen Umständen die Npcs ihre Position verlieren?

    Alles klar! Die Plugin-Klasse selbst erhält dann die Möglichkeit eine Route zu registrieren (zB registerWebserverHandler()), bei welcher der Pfad angegeben werden kann sowie optional auch ein Handler für die Requests. Die Route wird dann (um Kollisionen zu vermeiden) immer "/plugins/pluginname/<pfad>" sein. Zusätzlich zum Handler gibts aber dann auch ein neues HttpRequestEvent, aus welchem du die Http-Methode (GET, POST, PUT etc), den Pfad, Query Parameter, Header, Body (byte[] sowie String) und Remote-Adresse erhalten kannst. Für die Response kannst du dann den Response-Code, ContentType, Response-Header sowie -Body setzen ^^


    vielleicht könntest du auch noch eine route integrieren die auch ohne plugins funktioniert /pluginlist die eine liste der installierten plugins + version zurück gibt? Das würde nativ wahrscheinlich mehr sinn machen, könnte man auch für andere consumer verwenden.

    Sowas war mal vorgesehen, allerdings haben wir das erstmal nicht reingepackt, damit von außen nicht ersichtlich ist, welche Plugins ein Server explizit verwendet... kA ob es überhaupt sinnvoll ist, aus sowas ein Geheimnis zu machen, bzw. ob manche Server-Admins evtl. nicht wollen, dass ihre Plugins preisgegeben werden? :hushed:

    Sorry for my late response, but yes, the Player has a method setInvisible() that should make him invisible for other players ;)

    But unfortunately there is no direct way to load a custom model for the player... only thing you could do is load a custom Prefab and sync it manually with the player position. That should work well enough for other players.

    Yeah, unfortunately there is only one foal variant atm :saint: But I'm currently working on more variants, maybe they will be ready with the next update :)

    Habe den Beitrag mal in einen separaten Thread verschoben :D Jedenfalls wird im Multiplayer die Tagesdauer durch die Einstellung Settings_TimeDuration in der "server.properties" Datei im Spielverzeichnis festgelegt. Standardwert ist 60 (60 Minuten == 1 Ingame Tag), wenn du zB Realtime möchtest, müsstest du 1440 dort eintragen (60 Min * 24 h) :)


    Allerdings wird die Zeit damit nicht direkt mit der realen Zeit synchronisiert. Möchtest du das, oder gehts dir nur um die Tagesdauer?

    red51 wäre es evtl möglich über den integrierten webserver plugindaten bereitzustellen? Ich überlege gerade wie es möglich wäre z.b. die karten-oberflächendaten bereitzustellen ohne das man zusätzlich noch mein nodejs backend auf dem server installiert haben muss. Das ist in den meisten Fällen wahrscheinlich eh nicht so ohne weiteres möglich. Es würde reichen wenn ich über ein plugin eine Datei erstellen kann, z.b. json und die dann so speichern kann das es über den webserver abrufbar ist. Gut für die Oberflächendaten wäre wahrscheinlich eine sqlite kopie sinnvoller aber war ja auch nur ein beispiel, obs jetzt eine json Datei oder eine db Datei ist kommt aufs selbe raus. Jedenfalls muss es kein route handler sein der auf anfragen reagiert oder sowas.

    Ja, das müsste möglich sein ^^ Wahrscheinlich wäre es sogar am einfachsten, wenn das Plugin einen eigenen Route-Handler registriert. Vll wäre dann ein API-Event HttpRequestReceived o.ä. am sinnvollsten, wo du die Http-Methode (GET, POST, PATCH etc) bekommst sowie den Header, und du dann über das Event die Response festlegen kannst. Würde das so passen?

    Sorry für die späte Antwort! Das ist echt merkwürdig, denn spätestens mit dem Static bzw. Statisch Flag sollten Npcs sich nicht mehr bewegen :wat: Wenn dieser Flag aktiv ist sollten Dinge wie Kollision usw. keine Rolle mehr spielen. Wann genau ändern sich die Positionen denn? Immer nach einem Spielstart? Was passiert wenn du den Befehl refreshnpcs eingibt (damit werden alle Npcs neu geladen), ändern sie dabei auch ihre Position?

    Hmm da durch meine Shop und Marketplace viele assets aus dem spiel geladen werden vielleicht? (also Case 2) Discord Connect lief ja schon länger ohne Probleme vorher, klar kann das ein zusätzlicher Faktor sein aber zuletzt kamen Shop und MArketplace dazu, die haben eigentlich keine Threads, höchstens ein paar Timer im Shop für den refill, aber der dürfte planmäßig nur einmal die Stunde laufen. Bin mir gerade nicht sicher ob er da einen eigenen Thread für macht. Laut KI jedenfalls nicht.

    Also wenn die Assets aus dem Spiel geladen werden, dann werden da eigentlich keine Daten ausgetauscht, zumindest nicht über den Webserver :thinking: Die sollten diesen Bug also eigentlich nicht triggern... nur normale Assets, die auch tatsächlich vom Server heruntergeladen werden (aber auch hier ist das eher bei neuen Spieler relevant, da nach dem Download die Assets lokal gecached werden).

    Timer verwenden auch keine Threads, auch die Plugin-Funktionen executeDelayed() oder enqueue() verwenden keine Threads.


    Aber ich werde mit der nächsten Gelegenheit eine Änderung einbauen, mit welcher die "Create new JNIEnv" (zumindest bei aktivierten Debug-Optionen) zusätzlich auch einen Stacktrace ausgibt (für C# und Java), dann würde man sofort sehen, woher die Threads tatsächlich kommen :) Aber idealerweise ist der Bug mit den leakenden JNIEnvs (was letztenendes den SATB-Crash verursacht) bis zum nächsten Update auch sowieso behoben :drunk:


    kann ich den Xms wert eigentlich auch über eine server property steuern oder muss ich den mit Plugins_VMOptions überschreiben? Die KI meint der Wert wäre etwas niedrig gewählt :D

    Sorry, ich habe die Frage oben übersehen :saint: Aber ja, auch dafür gibts eine Einstellung, leider aber versteckt. Du musst dafür Plugins_InitialMemory zur server.properties hinzufügen, also zB Plugins_InitialMemory=512 für 512 MB Startmemory. Standardmäßig ist das nur auf 32 gesetzt (was wir vll tatsächlich etwas anheben könnten) ^^