TRS Server Rules
TRS Server Rules ist ein kostenloses Plugin und Server-Mod. Es sagt dem TRS Client, was auf deinem Server erlaubt ist: einzelne Module sperren, erzwingen oder ihre Einstellungen festlegen und begrenzen – global, je Welt oder je Unterserver.
Herunterladen und installieren
Alle Plattformen stecken in einem GitHub-Release: github.com/theredstonee/TRS-Launcher/releases/tag/server-plugin. Überblick: Für Server.
| Plattform | Datei | Hinweise |
|---|---|---|
| Spigot, Paper, Purpur, Folia | trs-server-rules-bukkit-<version>.jar | Eine Jar für Minecraft 1.8.8 bis zur neuesten Version. Regeln je Welt. |
| Velocity 3.x | trs-server-rules-velocity-<version>.jar | Regeln je Unterserver (servers:). |
| BungeeCord, Waterfall | trs-server-rules-bungee-<version>.jar | Regeln je Unterserver (servers:). |
| Sponge (API 8 und neuer) | trs-server-rules-sponge-<version>.jar | Regeln je Welt. |
| Fabric 1.20.1, 1.21.1, 1.21.4, 1.21.11 | trs-server-rules-fabric-<mc>-<version>.jar | Nur auf dem Server. Config config/trs-server-rules.yml. |
| NeoForge 1.21.1, 1.21.11 | trs-server-rules-neoforge-<mc>-<version>.jar | Nur auf dem Server. Config config/trs-server-rules.yml. |
| Forge 1.20.1 | trs-server-rules-forge-1.20.1-<version>.jar | Nur auf dem Server. Config config/trs-server-rules.yml. |
Jar herunterladen
Nimm aus dem Release die Datei für deine Server-Software.
Installieren
Leg sie in den Ordner plugins (Plugins) bzw. mods (Server-Mods) und starte den Server einmal. Spieler müssen nichts
installieren – der TRS Client versteht die Regeln schon.
Config anpassen
Plugins legen config.yml in ihrem Datenordner an (plugins/TRSServerRules/ bei Spigot/Paper/Bungee, plugins/trs-server-rules/ bei Velocity, config/trsserverrules/ bei Sponge), Server-Mods config/trs-server-rules.yml. Danach
/trsrules reload.
Konfiguration
# TRS Server Rules – control TRS Client features on your server.
# Note: members of the TRS team with the "serverrules.bypass" permission can override these rules
# after an in-game confirmation. This is documented on purpose.
modules: # global
minimap: false # false = forced off, true = forced on
fullbright: false
settings:
zoom.factor: {max: 4}
cinematic.freecamFairPlay: true
worlds: # Bukkit/Sponge/mods: per world; Velocity/Bungee: "servers:" per backend server
pvp_arena:
modules: {zoom: false, freelook: false}
message: "" # optional text shown once to TRS Client players
missing-client: # players whose client does not answer with a TRS Client hello
action: ignore # ignore | notify | kick
timeout-seconds: 10
notify-message: "This server works best with the TRS Client."
kick-message: "Please join with the TRS Client."
bypass-permission: trsrules.bypass # players with this server permission get no rules
Alles auskommentiert (oder nicht vorhanden) heißt: nichts gesperrt, der Spieler entscheidet.
modules
<Modul-ID>: true | false. false sperrt das Modul aus, true erzwingt es an. Ein Modul, das nicht drinsteht,
bleibt Sache des Spielers. Alle IDs: Modul-IDs.
settings
<Modul-ID>.<Einstellungs-ID>: … – die Einstellungs-IDs sind die Schlüssel eines Moduls in der Config-Datei des TRS
Clients config/trsclient.json (flags, numbers, choices).
| Form | Bedeutung | Beispiel |
|---|---|---|
true / false, eine Zahl oder ein Name | Genau diesen Wert erzwingen (Kurzform von {value: …}) | minimap.fairPlay: true |
{value: x} | Wert erzwingen – an/aus, Zahl oder Auswahl (über ihren Namen) | cinematic.smoothing: {value: SMOOTH} |
{min: a, max: b} | Zahl begrenzen (eine Seite reicht) | zoom.factor: {max: 4}, fullbright.level: {max: 200} |
Unbekannte Module oder Einstellungen ignoriert der Client – eine Config funktioniert also auch mit älteren und neueren TRS-Client-Versionen.
worlds / servers
Regeln für einzelne Welten (Bukkit, Sponge, Server-Mods: worlds:) oder Unterserver (Velocity, BungeeCord:
servers:), jeweils mit eigenen modules: und settings:. Ein Eintrag dort geht vor den globalen Eintrag mit demselben
Schlüssel; alles andere kommt aus dem globalen Teil.
message
Optionaler Text, den der TRS Client einmal als TRS-Hinweis zeigt, wenn die Regeln ankommen. Leer = kein Hinweis.
missing-client
Was mit Spielern passiert, deren Client nicht innerhalb von timeout-seconds mit einem TRS-Client-Hello antwortet:
action | Wirkung |
|---|---|
ignore | Nichts (Standard). |
notify | Der Spieler bekommt notify-message im Chat. |
kick | Der Spieler wird mit kick-message gekickt. |
bypass-permission
Spieler mit dieser Server-Permission (Standard trsrules.bypass) bekommen gar keine Regeln – für deine Admins und
Builder.
bypass-players und bypass-op-level
bypass-players: []– Namen oder UUIDs, die keine Regeln bekommen, auf allen Plattformen.bypass-op-level: 0– nur Server-Mods (Fabric/NeoForge/Forge haben kein Permission-Plugin): Operatoren ab diesem Level bekommen keine Regeln (0= aus). Auf Fabric wirkenbypass-permissionundtrsrules.adminzusätzlich, wenn LuckPerms oder eine andere Mod mit fabric-permissions-api installiert ist.
Befehle
| Befehl | Wirkung |
|---|---|
/trsrules reload | Config neu laden und die neuen Regeln an alle Spieler schicken. |
/trsrules status <spieler> | Zeigt, ob der Spieler den TRS Client nutzt und welche Regeln gelten. |
Permission trsrules.admin; bei Fabric, NeoForge und Forge OP-Level 3.
TRS-Team-Bypass
Mitglieder des TRS-Teams, deren Rolle das Team-Recht serverrules.bypass hat, können ein gesperrtes Modul oder eine
gesperrte Einstellung trotzdem benutzen. Wenn sie es ändern wollen, fragt der TRS Client zuerst: „Dieser Server sperrt
„Minimap“. Als TRS-Team trotzdem benutzen?“. Ja hebt genau diese Sperre auf, bis sie den Server verlassen.
- Es gibt ihn, damit das Team Funktionen auf jedem Server testen und Spielern helfen kann.
- Der Spiel-Server erfährt davon nichts und kann es nicht abschalten.
- Er ist bewusst offen dokumentiert: hier, auf der Seite Für Server, in der README des Plugins und als Kommentar oben in jeder erzeugten Config.
- Die Ausnahme für dein eigenes Team ist die Server-Permission aus
bypass-permission– die hast du komplett selbst in der Hand.
Protokoll
Für alle, die eine eigene Umsetzung schreiben wollen. Plugin Messaging (Custom Payload), Inhalt ist UTF-8-JSON als rohe Bytes (ohne Längenpräfix), höchstens 32 KiB.
| Richtung | Minecraft 1.13 und neuer | Minecraft 1.12 und älter |
|---|---|---|
| Server → Client (Regeln) | trsclient:rules | TRS|Rules |
| Client → Server (Hello) | trsclient:hello | TRS|Hello |
Server registrieren beide Namen, wo die Plattform es erlaubt (gemischte Versionen hinter ViaVersion).
Hello
Der Client registriert die Kanäle und schickt nach dem Betreten (Spielphase) hello.
Regeln
Der Server antwortet mit rules – immer, auch leer – und schickt sie erneut nach einem Weltwechsel (Proxy:
Serverwechsel) und nach /trsrules reload.
Ersetzen und vergessen
Jede rules-Nachricht ersetzt den bisherigen Regelsatz komplett. Beim Trennen verwirft der Client alle Regeln.
Hello (Client → Server):
{"v":1,"client":"trsclient","version":"0.20.0","mc":"1.21.11","loader":"fabric","modules":["fps","minimap","zoom"]}
Regeln (Server → Client):
{"v":1,
"modules":{
"minimap":{"enabled":false},
"fullbright":{"enabled":false},
"zoom":{"settings":{"factor":{"max":4.0}}},
"cinematic":{"settings":{"freecamFairPlay":{"value":true}}},
"toggleSprint":{"enabled":true}
},
"message":"Optionaler Text, den der Client einmal zeigt"}
enabled: false= gesperrt aus,enabled: true= erzwungen an, fehlt = der Spieler entscheidet.settings.<id>:{"value": x}erzwingt einen Wert (Bool, Zahl oder Auswahl über den Enum-Namen),{"min": a, "max": b}begrenzt eine Zahl.- Unbekannte Module und Einstellungen werden ignoriert. Bei
vgrößer als 1 liest der Client nur die Felder, die er kennt.
Modul-IDs
Die IDs sind in jeder Minecraft-Version gleich. Ein Modul, das es in einer Version nicht gibt, wird einfach ignoriert. Die Namen sind die englischen Namen aus dem TRS-Menü.
HUD
| ID | Name |
|---|---|
fps | FPS |
ping | Ping |
effects | Potion Effects |
clock | Clock |
memory | Memory |
packs | Active Resource Packs |
scoreboard | Scoreboard |
tabPing | Tab List Ping |
bossBar | Boss Bar |
titles | Titles |
warnings | Warnings |
hungerOverlay | Hunger Overlay |
pinnedNote | Pinned Note |
PvP
| ID | Name |
|---|---|
cps | CPS |
keystrokes | Keystrokes |
armor | Armor |
toggleSprint | Toggle Sprint |
toggleSneak | Toggle Sneak |
reach | Reach |
combo | Combo |
speed | Speed |
crosshair | Crosshair |
hitColor | Hit Color |
oldAnimations | 1.7 Animations |
lowFire | Low Fire |
shieldPosition | Shield Position |
hitboxes | Hitboxes |
noHurtCam | No Hurt Cam |
itemCounter | Item Counter |
hitFeedback | Hit Feedback |
Welt
| ID | Name |
|---|---|
coords | Coordinates |
server | Server Address |
minimap | Minimap |
worldMap | World map |
freelook | Freelook |
zoom | Zoom |
fullbright | Gamma |
autorefill | Auto-Refill |
blockOutline | Block Outline |
waypoints | Waypoints |
colors | Colors |
panorama | Panorama Screenshots |
notes | World Notes |
Chat
| ID | Name |
|---|---|
chat | Chat Improvements |
autoGg | Auto-GG |
textHotkeys | Text Hotkeys |
social | Social |
chatMentions | Mentions |
chatHeads | Chat Heads |
chatFilter | Chat Filter |
Redstone
| ID | Name |
|---|---|
redstoneSignal | Signal Strength |
redstoneOverlay | Signal Overlay |
redstoneClock | Clock Meter |
circuitLibrary | Circuit Library |
Leistung
| ID | Name |
|---|---|
fpsBoost | FPS Boost |
dynamicFps | Dynamic FPS |
borderlessFullscreen | Borderless Fullscreen |
entityCulling | Entity Culling |
particles | Particles |
worldDetails | World Details |
builtinOptimizations | Built-in Optimizations |
netOptimize | Network Optimization |
lowLatency | Low Input Latency |
fastConnect | Fast Connect |
Sonstiges
| ID | Name |
|---|---|
titleScreen | Title Screen |
menuStyle | Menu Style |
trsOnline | TRS Online Features |
capePhysics | Cape Physics |
emotes | Emotes |
clips | Clips & Recording |
cinematic | Camera Paths (inkl. Freecam) |
halloween | Halloween |
tooltips | Better Tooltips |
serverProfiles | Server Profiles |
screenshots | Screenshot Tools |
keySearch | Key Binding Search |
autoReconnect | Auto Reconnect |
queueAlerts | Queue & Alerts |
streamerMode | Streamer Mode |
Codes im Chat oder MOTD
Auch ohne Plugin kann ein Server unsichtbare Codes schicken: jeder Buchstabe mit einem § davor, in einer
Chat-Nachricht oder im MOTD. Sie gelten, bis der Spieler den Server verlässt, und wirken auch neben TRS Server Rules.
| Code | Wirkung |
|---|---|
§t§r§s§n§o§f§r§e§e§c§a§m (trsnofreecam) | Freecam aus. |
§t§r§s§f§a§i§r§f§r§e§e§c§a§m (trsfairfreecam) | Freecam nur mit Fair Play (keine Kamera durch Wände). |
§t§r§s§r§e§s§e§t§f§r§e§e§c§a§m (trsresetfreecam) | Hebt die Freecam-Codes wieder auf. |
§f§a§i§r§x§a§e§r§o (fairxaero) | Fair Play für Minimap und Weltkarte (erzwingt auch Fair Play bei der Freecam). |
§n§o§m§i§n§i§m§a§p (nominimap) | Keine Minimap. |
§r§e§s§e§t§x§a§e§r§o (resetxaero) | Hebt die Karten-Codes (und die Freecam-Codes) auf. |
Die Karten-Codes sind die verbreiteten Codes anderer Karten-Mods – vorhandene Fair-Play-Plugins wirken also auch beim TRS Client.