Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
BotanicPupPatch
PUP FPS collision/statics guards, crystal-wall exclusion and optional FGN AI-target ownership with nearby-player server fallback. Logs off by default.
By Botaniclas
| Date uploaded | 6 days ago |
| Version | 1.10.5 |
| Download link | Botaniclas-BotanicPupPatch-1.10.5.zip |
| Downloads | 35 |
| Dependency string | Botaniclas-BotanicPupPatch-1.10.5 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2351PUP82-PUP_FPS
A smart building combiner for massive Valheim bases with single-player and client-server multiplayer support. Controls: [ combine, ] restore, \ highlight, F8 emergency restore.
Preferred version: 1.0.34README
BotanicPupPatch 1.10.5
Zusatzmod für PUP FPS, der Kollisions- und Statikprobleme beim Laden von Clustern und bei Besitzerwechseln im Multiplayer abfangen soll.
Funktionen
- Hält Carts, Tiere und Monster an, solange benötigte Cluster-Kollision fehlt.
- Pausiert Gebäudestatik, solange die benötigte Kollision noch nicht bereit ist.
- Zusätzlicher Schutz bei Mob-Besitzerwechseln mit FiresGhettoNetworking (FGN).
- Mit FGN bleibt PUPs konkurrierende Server-Netzwerkoptimierung aus; Cluster und Kollisionsschutz bleiben aktiv.
- Schließt normale Kristallwände vom Clustern aus, damit ihr ursprüngliches Aussehen erhalten bleibt.
Funktionsweise
Der Mod prüft die benötigte Kollision vor Ort. Solange sie fehlt, warten Bewegung, AI beziehungsweise Statik. Sobald sie bereit ist, läuft das normale Verhalten weiter. Benötigte Kollision bleibt auch außerhalb von PUPs normalem Spieler-Abstand aktiv.
Fertige Prüfungen werden wiederverwendet und bei relevanten Änderungen erneuert. Nicht mehr benötigte Prüfdaten werden freigegeben. Keine zusätzlichen Welt-Scans oder Warte-Timer. Eigene Logs sind standardmäßig aus.
Optional: BotanicServerAuthority
Für Authority 2.1.2 schützt PupPatch zusätzlich Besitzerwechsel: offenes Inventar, ausstehende Inventarantworten, Reiten/Steuern/Ziehen und bekannte laufende Aktionen verhindern die Übergabe. Der bisherige Besitzer übergibt selbst; fehlende Antworten erlauben keine erzwungene Übernahme. Das Ziel bestätigt seine lokal geladenen Collider. Bestehende Collider- und Statik-Guards bleiben aktiv.
Authority kommt nur auf den Dedicated Server; PupPatch 1.10.2 auf Server und alle Clients. Ohne Authority entstehen keine Übergabeanfragen. Das Zusatzmodul hat keinen eigenen Timer oder Update-Aufruf. Bereits erkannte Inventar-/Nachfüllsperren vermeiden zusätzliche Aktionsscans; vor Freigabe greifen sämtliche Prüfungen wieder. Neu erfasste physische Objekte verwenden bei Bedarf den bestehenden Physik-Guard.
Nachfüllen: Material, Brennstoff oder Munition per Interaktion startet zehn Sekunden Schutz vor Authority-Besitzerwechseln; jedes weitere Nachfüllen verlängert ihn. Gilt für Smelter-basierte Öfen/Meiler/Mühlen, Kochstellen, Feuerstellen, Gärfässer, Schildgeneratoren und Geschütztürme. Automatische Brennstoffverbrauchs-Updates verlängern den Schutz nicht. Bei einem getrennten oder nicht mehr verfügbaren Besitzer bleibt die native Wiedervergabe möglich; kein Warten auf diese zehn Sekunden. Vanilla prüft im vorhandenen Takt (ungefähr zwei Sekunden), FGN kann bei einer neuen Stationsinteraktion früher übernehmen. Alle Collider-/Inventar-Guards bleiben bestehen.
Optional: FGN-Kampfziel-Besitz
Bei vorhandener FGN-Installation standardmäßig an. Auf Server und allen Clients dieselbe Einstellung verwenden; Änderungen erfordern Neustart. Datei: BepInEx/config/botanic.pup.patch.cfg.
[FGN AI Ownership]
EnableAIOwnership = true
ServerFallbackPingMs = 200
ServerFallbackRadius = 6
- FGN bevorzugt das aktive Spielerziel der KI statt des letzten Schadensverursachers. Normaler Ping- und Übergabeschutz bleibt erhalten.
- FGNs bestehende Zwei-Sekunden-Prüfung aktiviert Zielmeldungen nur bei mindestens zwei geeigneten Spielern im aktiven Bereich. Echte Zielwechsel lösen dann direkt eine Übergabeprüfung aus; unveränderte Ziele erzeugen keine Meldungen. Ein neues Nichtspielerziel löst keine direkte Übergabe aus.
- Verschwundene Spielerziele werden ebenfalls per Ereignis verworfen, auch wenn die KI ihre zerstörte Zielreferenz noch behält. Wechsel zwischen Nichtspieler-Zielen erzeugen keine Meldungen.
- Ziel-Ping über dem Grenzwert und anderer geeigneter Spieler aus FGNs bestehender Kandidatenliste höchstens sechs Meter vom Mob entfernt: Server übernimmt nach Collider-Freigabe. Der Mob muss zusätzlich innerhalb dessen ursprünglichem 3×3-Suchbereich liegen.
- Kein anderer geeigneter Spieler so nah: Das KI-Ziel behält/erhält den Mob auch bei hohem Ping. Diese gewünschte Ausnahme geht vor FGNs relativem Kampf-Ping-Schutz.
- Entfällt die Ausnahme, geht Besitz zurück zum aktuellen KI-Ziel; ohne Spielerziel an einen geeigneten Spieler.
- Distanz/Grenzwert sind serverseitig einstellbar.
ServerFallbackPingMs = 0nutzt 250 ms Abstand zum besten anderen aktiven FGN-Kandidaten. Unbekannter Ping löst keine Server-Übernahme aus. EnableAIOwnership = false: keine FGN-/Besitz-/KI-Hooks dieser Zusatzfunktion. Eine einmalige Verbindungsabfrage bestätigt den Server-Modus; keine laufende Abfrage. Clients mit fehlender/abgeschalteter Funktion behalten FGNs ursprüngliche Auswahl. Vorhandene Config-Werte werden nicht überschrieben.
Benötigt originales FGN 1.5.36, serverseitig Balance Creature Ownership = true; für Server-Übernahme zusätzlich SSS aktiv. Beide FGN-Optionen Server ZDO Ownership Transfer müssen aus sein. Gezähmte, gerittene/gesteuerte Mobs und Bosse bleiben außerhalb dieser Regel. ServerBuildings ist dafür nicht erforderlich.
Keine laufende Zielbeobachtung pro KI-Update. Zieländerungen eines markierten Mobs werden nach dem laufenden KI-Aufruf zusammengefasst; Übergaben warten weiterhin auf FGNs Schutzregeln und fertige Collider. Ping, Abstand, Markierungen und ausstehende Übergaben werden im bestehenden Zwei-Sekunden-Takt geprüft. Kein zusätzlicher Timer oder Zielscan. Fehlende Erstmeldungen werden nur während der Aktivierung erneut angefordert.
Server und Clients auf 1.10.5 aktualisieren. Clients vor 1.9.0 nehmen an der Ereignisfunktion nicht teil; für sie bleibt die originale FGN-Auswahl bestehen.
Besitzerwechsel prüfen: In der F5-Konsole botanic_ai_status ausführen. Zeigt bis zu sechs wilde Mobs innerhalb von 30 Metern samt Besitzer, KI-Ziel und Regel. Nur das KI-Ziel beim aktuellen Besitzer ist autoritativ; andere Clients erhalten dessen Markierung nicht. Gezähmte Tiere und Bosse sind aus dieser Statusliste ausgeschlossen; ihre Besitzverwaltung bleibt unverändert.
1.10.5 behebt gelöschte Client-Markierungen: FGNs Balance-Aufruf läuft auch auf Clients. Unser Hook führte dort fälschlich Server-Aufräumarbeiten aus und entfernte die für Zielereignisse benötigte Markierung. Diese Aufräumarbeiten laufen jetzt ausschließlich auf dem Dedicated Server. Gezähmte Tiere, ServerAuthority und die Übergabeschutzregeln bleiben unverändert.
Mit 1.10.5 auf dem Server erscheinen zusätzlich SERVER-Zeilen: FGNs Kandidatenzahl, geeignete Spieler am Mob, Besitzer-Protokoll, Prefab-/Typfilter und tatsächliche Server-Markierung. Bitte diese Zeile bei weiterhin fehlendem Zielwechsel mit angeben. Die Abfrage liest nur vorhandenen Zustand und sendet höchstens sechs Diagnoseanfragen pro Aufruf. Keine automatischen Abfragen, Dauerlogs oder neuen Timer.
1.10.4 behebt den Installationsabbruch Ambiguous match found. Nach Update und Neustart soll hooks=True erscheinen; bei aktivem Dedicated-Server-Modus zusätzlich clientseitig server confirmed=True und Current session=True. Besitzregeln, Ping-/Collider-Schutz und Config bleiben erhalten. Ein Treffer kann bei einem Mob ohne Ziel den Angreifer als echtes KI-Ziel setzen; dann ist die Übergabe beabsichtigt.
Abhängigkeiten
- BepInExPack Valheim 5.4.2351
- PUP FPS 1.0.33 – andere Versionen sind nicht unterstützt.
- Optional: FiresGhettoNetworking; bisherige Guards mit 1.5.36 und 1.5.28 geprüft. Neue Kampfziel-Funktion ausschließlich mit originaler 1.5.36.
Installation
- Spiel und Server beenden.
- ZIP im Modmanager importieren oder
BotanicPupPatch.dllnachBepInEx/plugins/BotanicPupPatch/kopieren. - Auf Dedicated Server und allen Clients dieselbe Version installieren, dann neu starten. Vorige Zusatz-DLL ersetzen.
Bereits geclusterte Kristallwände müssen mit PUP wiederhergestellt und neu geclustert werden. Für die Kollisionsfixes ist kein Cache-Reset nötig.
Bereits zerstörte Objekte werden nicht wiederhergestellt. Automatisiert geprüft; echter Dedicated-Spieltest der neuen Funktion steht aus.