-
Notifications
You must be signed in to change notification settings - Fork 0
Home
FrameGuard ist eine Performance- und Diagnose-Mod für Minecraft Forge 1.20.1.
Die Mod bietet ein Ingame-Performance-HUD, erweiterte Diagnosewerte, Log-Export-Funktionen und serverseitige Performance-Guards gegen typische Lag-Quellen wie TNT-Ketten, Entity-Spam und zu viele gerenderte Entities.
FrameGuard ist ab Version 0.1.0 nicht mehr nur ein HUD, sondern eine Performance- und Diagnose-Mod mit Client- und Server-Funktionen.
FrameGuard wird aktuell alleine entwickelt. Deshalb können Fehler, Bugs oder unerwartete Probleme in einzelnen Versionen auftreten. Wenn dir ein Fehler auffällt, melde ihn bitte entweder als Kommentar auf CurseForge oder über den Discord-Server.
Minecraft-Version: 1.20.1
Modloader: Forge
Java-Version: Java 17
Mod-Version: 0.1.0
Lege die FrameGuard-JAR in den Mods-Ordner deines Minecraft-Clients.
Der typische Pfad ist .minecraft/mods.
Auf dem Client bietet FrameGuard das HUD, den Ingame-Config-Screen, FPS-/Frametime-Anzeigen, Ping-Anzeige, Log-Export, Crash-Export und clientseitige Performance-Funktionen.
Lege dieselbe FrameGuard-JAR in den Mods-Ordner deines Servers.
Der typische Pfad ist server/mods.
Für Server-Funktionen muss FrameGuard auf dem Server installiert sein. Dazu gehören TPS-Sync, Server-Status im HUD, TNT Guard, TNT Activation Queue, Entity Cramming Guard, Item-Ban-System und serverseitige Performance-Profile.
Für vollständige Funktionalität sollte FrameGuard auf Client und Server installiert sein.
FrameGuard nutzt getrennte Config-Dateien für Client und Server.
Die Client-Config befindet sich unter config/frameguard/frameguard-client.toml.
Die Server-Config befindet sich unter config/frameguard/frameguard-server.toml.
Die Client-Config enthält Einstellungen für HUD, HUD-Position, HUD-Sichtbarkeit, FPS-Control, Client Entity Render Guard, Ping-/TPS-Farben, Log-Export, Crash-Export und den Ingame-Config-Screen.
Viele Client-Werte können auch direkt im Ingame-Config-Screen geändert werden.
Die Server-Config enthält Einstellungen für Performance-Profile, TNT Guard, TNT Activation Queue, Entity Cramming Guard, Item-Ban-System, Command-Permission-Level und TPS-Sync.
Die Server-Config wird bewusst nicht im Ingame-Config-Screen angezeigt. Server-Einstellungen sollen direkt über die Datei geändert werden.
Nach Änderungen an der Server-Config sollte der Server neu gestartet werden, damit alle Werte sicher übernommen werden.
FrameGuard besitzt einen Ingame-Config-Screen im Minecraft-Mods-Menü.
Der Ingame-Config-Screen zeigt nur Client-Einstellungen an. Server-Einstellungen werden dort nicht angezeigt.
Im Ingame-Config-Screen können unter anderem folgende Werte geändert werden:
HUD an oder aus
Advanced-HUD-Standardzustand
HUD-Position
HUD-Zeilenabstand
HUD-Schatten
sichtbare HUD-Zeilen
FPS-Control
Client Entity Render Guard
Warnwerte für FPS, Frametime, Ping und TPS
Log-Export-Einstellungen
Crash-Export-Einstellungen
FrameGuard zeigt wichtige Performance-Werte direkt im Spiel an.
Das normale HUD kann folgende Werte anzeigen:
FrameGuard-Titel
FPS
Frametime
Server-FrameGuard-Status
Ping
Der Serverstatus zeigt an, ob der verbundene Server ebenfalls FrameGuard geladen hat.
Wenn ein Wert nicht verfügbar ist, zeigt FrameGuard N/A an.
Das Advanced HUD zeigt zusätzliche Diagnosewerte:
TPS
durchschnittliche Frametime
P99-Frametime
maximale Frametime
1 Prozent Low FPS
Das Advanced HUD ist besonders hilfreich, um Stottern, kurze Performance-Einbrüche oder Serverprobleme besser zu erkennen.
F9 schaltet das HUD an oder aus.
F10 schaltet den erweiterten Modus an oder aus.
Shift + F9 setzt die gesammelten Performance-Werte zurück.
Die Tasten können in den Minecraft-Steuerungsoptionen geändert werden.
FrameGuard kann im Tab-Menü den Ping als Zahl anzeigen.
Das Ziel ist, das Vanilla-Ping-Symbol durch eine direkte Ping-Zahl zu ersetzen, während das Tab-Menü ansonsten möglichst nah am Vanilla-Verhalten bleibt.
Der Ping wird farblich nach den Ping-Grenzwerten aus der Client-Config eingefärbt.
Grün bedeutet guter Ping.
Orange bedeutet Warnbereich.
Rot bedeutet schlechter Ping.
FrameGuard kann die Minecraft-FPS je nach Situation begrenzen.
Die FPS-Control kann die FPS im Hintergrund reduzieren, die FPS in Menüs begrenzen und den vom Spieler gesetzten FPS-Wert nach Menü oder Hintergrund wiederherstellen.
Typische Werte sind 30 FPS im Hintergrund und 60 FPS im Menü.
FrameGuard soll den vom Spieler gesetzten normalen FPS-Wert nicht dauerhaft überschreiben.
Serverseitige Performance-Funktionen können über Profile gesteuert werden.
Die Profile befinden sich in der Server-Config unter dem Bereich performance.
Verfügbare Profile sind off, safe, balanced und aggressive.
Das Profil off deaktiviert die Performance-Guards.
Das Profil safe nutzt vorsichtige Optimierungen.
Das Profil balanced ist der Standard und bietet einen Mittelweg zwischen Performance und Verhalten.
Das Profil aggressive nutzt stärkere Eingriffe für große Server oder extreme Situationen.
Der Client Entity Render Guard reduziert Rendering-Last, wenn sehr viele Entities vorhanden sind.
Wenn die Anzahl der Entities über dem eingestellten Limit liegt, kann FrameGuard entfernte Living-Entities ausblenden. Diese Entities werden dabei nicht gelöscht und auch nicht vom Server entfernt. Sie werden nur clientseitig nicht gerendert.
Standardmäßig werden Spieler nicht ausgeblendet.
Zusätzlich können benannte Entities, Boss-Entities und gezähmte Entities geschützt werden.
Entities innerhalb der eingestellten Chunk-Distanz um den Spieler bleiben sichtbar.
Diese Funktion ist clientseitig und wird über die Client-Config gesteuert.
Der Server Entity Cramming Guard erweitert den Schutz gegen Entity-Spam auf nichtlebende Entities.
Vanilla Entity Cramming betrifft nicht alle problematischen Entity-Arten gleich stark. FrameGuard kann deshalb zusätzliche nichtlebende Entities pro Block begrenzen.
Betroffene Entities können zum Beispiel Boote, Loren, Armor Stands und andere nichtlebende Entities sein.
Gedroppte Items werden standardmäßig ignoriert.
TNT wird vom Entity Cramming Guard ignoriert, weil TNT vom TNT Guard separat behandelt wird.
Die Einstellung max_entity_cramming = 0 bedeutet, dass FrameGuard die Vanilla-Gamerule maxEntityCramming nutzt.
Wenn die Vanilla-Gamerule maxEntityCramming ebenfalls 0 ist, ist der Entity Cramming Guard aus.
Über ignored_entity_types können bestimmte Entity-Typen vom Guard ausgeschlossen werden.
Der TNT Guard ist ein serverseitiges Performance-System gegen große TNT-Mengen.
FrameGuard verhindert, dass extrem viele TNT-Entities gleichzeitig aktiv laufen und explodieren.
Intern unterscheidet FrameGuard zwischen aktiver TNT und wartender TNT.
Aktive TNT läuft normal weiter und kann explodieren.
Wartende TNT bleibt als TNT-Entity vorhanden, wird aber eingefroren. Der Fuse-Timer wird pausiert. Wartende TNT kann unsichtbar, stumm und bewegungslos gemacht werden.
Wenn wieder aktive Slots frei sind, werden wartende TNT-Entities nach und nach aktiviert.
Große TNT-Ketten können extremen Lag erzeugen, weil Explosionen sehr viele TNT-Blöcke gleichzeitig zünden.
FrameGuard kann diese TNT-Blöcke abfangen und in eine Warteschlange legen. Pro Tick werden nur begrenzt viele TNT-Blöcke aktiviert.
Dadurch laufen große TNT-Ketten kontrollierter und verursachen deutlich weniger FPS- und TPS-Einbrüche.
Wichtige Server-Config-Werte für TNT sind max_active_tnt, freeze_excess_tnt, queue_exploded_tnt_blocks, max_queued_tnt_activations_per_tick und max_queued_tnt_blocks.
FrameGuard besitzt ein serverseitiges Item-Ban-System.
Damit können Admins Items bannen, auch wenn sie von anderen Mods stammen.
Alle Item-Ban-Befehle laufen unter /frameguard.
Der Befehl /frameguard item ban bannt das Item, das der ausführende Spieler in der Hand hält.
Wenn die Mainhand leer ist, wird die Offhand geprüft.
Der Befehl /frameguard item banlist zeigt alle gebannten Items an.
Der Befehl /frameguard item list ist eine alternative Anzeige der Banliste.
Der Befehl /frameguard item unban entfernt ein Item wieder von der Banliste.
Beispiel: /frameguard item unban minecraft:bedrock
Das benötigte Permission-Level ist in der Server-Config einstellbar.
Standardmäßig ist OP-Level 3 vorgesehen.
Der Wert befindet sich in der Server-Config im Bereich commands unter permission_level.
Gebannte Items werden aus Online-Spieler-Inventaren entfernt.
Gebannte Items werden aus Enderchests entfernt.
Gebannte Items werden aus offenen Menüs entfernt.
Gebannte Items werden aus dem Cursor- oder Carried-Stack entfernt.
Gebannte gedroppte Items werden aus der Welt entfernt.
Spieler können optional benachrichtigt werden, wenn ein gebanntes Item entfernt wurde.
Offline-Spieler-Inventare werden nicht direkt bearbeitet. Sobald ein Spieler wieder joint, werden gebannte Items aus seinem Inventar entfernt.
Geschlossene Kisten und Container in der Welt werden nicht global durchsucht. Das schützt die Server-Performance.
FrameGuard kann Logs und Diagnoseinformationen exportieren.
Der Befehl lautet /frameguard exportlogs.
Der Export wird im Ordner frameguard-exports gespeichert.
Der Export kann latest.log, debug.log, Crash-Reports, FrameGuard-Configs, gefilterte wichtige Log-Zeilen und eine System-/Minecraft-/Forge-Zusammenfassung enthalten.
Der Log-Export ist hilfreich, wenn Probleme an Modpack-Ersteller, Server-Admins oder den FrameGuard-Entwickler gemeldet werden sollen.
FrameGuard kann bei einem Crash automatisch einen Export vorbereiten.
Die Funktion wird über die Client-Config gesteuert.
Wenn auto_export_on_crash aktiviert ist, versucht FrameGuard bei einem Crash relevante Logs automatisch zu exportieren.
/frameguard exportlogs erstellt einen Log- und Diagnoseexport.
/frameguard item ban bannt das Item in der Hand.
/frameguard item banlist zeigt die gebannten Items.
/frameguard item list zeigt ebenfalls die gebannten Items.
/frameguard item unban entfernt ein Item von der Banliste.
Alle Server-Befehle benötigen das in der Server-Config eingestellte Permission-Level.
Die Client-Config befindet sich unter config/frameguard/frameguard-client.toml.
Wichtige Bereiche sind hud_thresholds, hud_state, hud, fps_control, performance.client, performance.client.entity_render_guard, hud_visible, network_thresholds, session, network, crash_export und log_export.
Die Server-Config befindet sich unter config/frameguard/frameguard-server.toml.
Wichtige Bereiche sind server, tps_sync, commands, performance, performance.server.entity_cramming_guard, performance.server.tnt_guard und item_ban.
TPS ist nur verfügbar, wenn der Server FrameGuard korrekt geladen hat und TPS-Sync aktiv ist.
Prüfe, ob FrameGuard auf dem Server installiert ist und ob in der Server-Config TPS-Sync aktiviert ist.
Für reine Client-Funktionen wie HUD oder Client Entity Render Guard reicht der Client.
Für Server-Funktionen wird FrameGuard auf dem Server benötigt.
Server-Funktionen sind TPS, TNT Guard, Entity Cramming Guard, Item-Ban und Server-Performance-Profile.
Das ist der TNT Guard. Er verhindert, dass zu viele TNT-Entities gleichzeitig aktiv sind oder dass große TNT-Ketten in einem Tick komplett gezündet werden.
Ein Admin hat das Item wahrscheinlich über das Item-Ban-System gebannt.
Prüfe die Banliste mit /frameguard item banlist.
FrameGuard scannt aktuell keine geschlossenen Welt-Container global. Das schützt die Server-Performance.
Gebannte Items werden entfernt, sobald sie in Online-Spieler-Inventaren, offenen Menüs oder als Drop auftauchen.
FrameGuard FPS-Control kann Hintergrund- und Menü-FPS begrenzen. Im normalen Spiel wird der vom Spieler gesetzte FPS-Wert wiederhergestellt.
Die Client-Config befindet sich unter config/frameguard/frameguard-client.toml.
Die Server-Config befindet sich unter config/frameguard/frameguard-server.toml.
Für normale Nutzung wird das Profil balanced empfohlen.
Für vorsichtige Server wird safe empfohlen.
Für extreme TNT- oder Entity-Situationen kann aggressive genutzt werden.
Wenn die Performance-Guards deaktiviert werden sollen, kann off genutzt werden.
FrameGuard eignet sich besonders für große Forge-Modpacks, technische Server, öffentliche Modpack-Server, Diagnose bei FPS- und TPS-Problemen, TNT- und Entity-Spam-Schutz und Admin-Werkzeuge über das Item-Ban-System.
Empfohlen wird, FrameGuard auf Client und Server zu installieren, die Server-Config bewusst zu prüfen und bei Fehlerberichten den Log-Export anzufordern.
FrameGuard wird aktuell alleine entwickelt. Dadurch können Fehler, Bugs oder unerwartete Probleme in einzelnen Versionen auftreten.
Wenn du einen Fehler findest, melde ihn bitte entweder als Kommentar auf CurseForge oder über den Discord-Server.
Bitte beschreibe möglichst genau, was passiert ist, welche Version du nutzt, ob du Client oder Server getestet hast und füge bei technischen Problemen möglichst den FrameGuard-Log-Export hinzu.