Entwickler

TRS Server Rules

Plugin und Server-Mod, mit dem du TRS-Client-Funktionen auf deinem Server sperrst, erzwingst oder begrenzt: Plattformen, Config, Protokoll und alle Modul-IDs.

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.

TRS Server Rules steuert nur den TRS Client. Es ist kein Anti-Cheat: Andere Clients ignorieren es, und ein veränderter Client kann sich als TRS Client ausgeben.

Herunterladen und installieren

Alle Plattformen stecken in einem GitHub-Release: github.com/theredstonee/TRS-Launcher/releases/tag/server-plugin. Überblick: Für Server.

PlattformDateiHinweise
Spigot, Paper, Purpur, Foliatrs-server-rules-bukkit-<version>.jarEine Jar für Minecraft 1.8.8 bis zur neuesten Version. Regeln je Welt.
Velocity 3.xtrs-server-rules-velocity-<version>.jarRegeln je Unterserver (servers:).
BungeeCord, Waterfalltrs-server-rules-bungee-<version>.jarRegeln je Unterserver (servers:).
Sponge (API 8 und neuer)trs-server-rules-sponge-<version>.jarRegeln je Welt.
Fabric 1.20.1, 1.21.1, 1.21.4, 1.21.11trs-server-rules-fabric-<mc>-<version>.jarNur auf dem Server. Config config/trs-server-rules.yml.
NeoForge 1.21.1, 1.21.11trs-server-rules-neoforge-<mc>-<version>.jarNur auf dem Server. Config config/trs-server-rules.yml.
Forge 1.20.1trs-server-rules-forge-1.20.1-<version>.jarNur 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.

Hinter einem Proxy (Velocity, BungeeCord) gehen die Regeln des Proxys vor einem TRS-Server-Rules-Plugin auf dem Unterserver.

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).

FormBedeutungBeispiel
true / false, eine Zahl oder ein NameGenau 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:

actionWirkung
ignoreNichts (Standard).
notifyDer Spieler bekommt notify-message im Chat.
kickDer 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 wirken bypass-permission und trsrules.admin zusätzlich, wenn LuckPerms oder eine andere Mod mit fabric-permissions-api installiert ist.

Befehle

BefehlWirkung
/trsrules reloadConfig 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.

RichtungMinecraft 1.13 und neuerMinecraft 1.12 und älter
Server → Client (Regeln)trsclient:rulesTRS|Rules
Client → Server (Hello)trsclient:helloTRS|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 v größ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

IDName
fpsFPS
pingPing
effectsPotion Effects
clockClock
memoryMemory
packsActive Resource Packs
scoreboardScoreboard
tabPingTab List Ping
bossBarBoss Bar
titlesTitles
warningsWarnings
hungerOverlayHunger Overlay
pinnedNotePinned Note

PvP

IDName
cpsCPS
keystrokesKeystrokes
armorArmor
toggleSprintToggle Sprint
toggleSneakToggle Sneak
reachReach
comboCombo
speedSpeed
crosshairCrosshair
hitColorHit Color
oldAnimations1.7 Animations
lowFireLow Fire
shieldPositionShield Position
hitboxesHitboxes
noHurtCamNo Hurt Cam
itemCounterItem Counter
hitFeedbackHit Feedback

Welt

IDName
coordsCoordinates
serverServer Address
minimapMinimap
worldMapWorld map
freelookFreelook
zoomZoom
fullbrightGamma
autorefillAuto-Refill
blockOutlineBlock Outline
waypointsWaypoints
colorsColors
panoramaPanorama Screenshots
notesWorld Notes

Chat

IDName
chatChat Improvements
autoGgAuto-GG
textHotkeysText Hotkeys
socialSocial
chatMentionsMentions
chatHeadsChat Heads
chatFilterChat Filter

Redstone

IDName
redstoneSignalSignal Strength
redstoneOverlaySignal Overlay
redstoneClockClock Meter
circuitLibraryCircuit Library

Leistung

IDName
fpsBoostFPS Boost
dynamicFpsDynamic FPS
borderlessFullscreenBorderless Fullscreen
entityCullingEntity Culling
particlesParticles
worldDetailsWorld Details
builtinOptimizationsBuilt-in Optimizations
netOptimizeNetwork Optimization
lowLatencyLow Input Latency
fastConnectFast Connect

Sonstiges

IDName
titleScreenTitle Screen
menuStyleMenu Style
trsOnlineTRS Online Features
capePhysicsCape Physics
emotesEmotes
clipsClips & Recording
cinematicCamera Paths (inkl. Freecam)
halloweenHalloween
tooltipsBetter Tooltips
serverProfilesServer Profiles
screenshotsScreenshot Tools
keySearchKey Binding Search
autoReconnectAuto Reconnect
queueAlertsQueue & Alerts
streamerModeStreamer 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.

CodeWirkung
§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.