Desarrolladores

TRS Server Rules

Plugin y mod de servidor para bloquear, forzar o limitar funciones del TRS Client en tu servidor: plataformas, configuración, protocolo e IDs de módulos.

TRS Server Rules es un plugin y mod de servidor gratuito. Le dice al TRS Client qué está permitido en tu servidor: desactivar módulos, forzarlos o fijar y limitar sus ajustes, de forma global, por mundo o por servidor del proxy.

TRS Server Rules solo controla el TRS Client. No es un anticheat: otros clientes lo ignoran y un cliente modificado puede hacerse pasar por TRS Client.

Descargar e instalar

Todas las plataformas están en una versión de GitHub: github.com/theredstonee/TRS-Launcher/releases/tag/server-plugin. Resumen: Para servidores.

PlataformaArchivoNotas
Spigot, Paper, Purpur, Foliatrs-server-rules-bukkit-<version>.jarUn jar para Minecraft 1.8.8 hasta la versión más reciente. Reglas por mundo.
Velocity 3.xtrs-server-rules-velocity-<version>.jarReglas por servidor (servers:).
BungeeCord, Waterfalltrs-server-rules-bungee-<version>.jarReglas por servidor (servers:).
Sponge (API 8 y posteriores)trs-server-rules-sponge-<version>.jarReglas por mundo.
Fabric 1.20.1, 1.21.1, 1.21.4, 1.21.11trs-server-rules-fabric-<mc>-<version>.jarSolo en el servidor. Configuración config/trs-server-rules.yml.
NeoForge 1.21.1, 1.21.11trs-server-rules-neoforge-<mc>-<version>.jarSolo en el servidor. Configuración config/trs-server-rules.yml.
Forge 1.20.1trs-server-rules-forge-1.20.1-<version>.jarSolo en el servidor. Configuración config/trs-server-rules.yml.

Descarga el jar

Elige en la versión el archivo para tu software de servidor.

Instálalo

Ponlo en la carpeta plugins (plugins) o mods (mods de servidor) e inicia el servidor una vez. Los jugadores no tienen que instalar nada: el TRS Client ya entiende las reglas.

Ajusta la configuración

Los plugins crean config.yml en su carpeta de datos (plugins/TRSServerRules/ en Spigot/Paper/Bungee, plugins/trs-server-rules/ en Velocity, config/trsserverrules/ en Sponge), los mods de servidor config/trs-server-rules.yml. Después, /trsrules reload.

Con un proxy (Velocity, BungeeCord), las reglas del proxy tienen prioridad sobre un plugin TRS Server Rules en el servidor de destino.

Configuración

# 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

Si todo está comentado (o no existe), no se bloquea nada y decide el jugador.

modules

<id del módulo>: true | false. false bloquea el módulo desactivado, true lo fuerza activado. Un módulo que no aparece sigue siendo decisión del jugador. Todos los IDs están en la sección «IDs de módulos» más abajo.

settings

<id del módulo>.<id del ajuste>: …: los IDs de ajustes son las claves de un módulo en el archivo de configuración del TRS Client config/trsclient.json (flags, numbers, choices).

FormaSignificadoEjemplo
true / false, un número o un nombreForzar exactamente este valor (forma corta de {value: …})minimap.fairPlay: true
{value: x}Forzar un valor: sí/no, número u opción (por su nombre)cinematic.smoothing: {value: SMOOTH}
{min: a, max: b}Limitar un número (basta un lado)zoom.factor: {max: 4}, fullbright.level: {max: 200}

El cliente ignora los módulos o ajustes desconocidos, así que una configuración funciona también con versiones más antiguas y más nuevas del TRS Client.

worlds / servers

Reglas para mundos concretos (Bukkit, Sponge, mods de servidor: worlds:) o servidores del proxy (Velocity, BungeeCord: servers:), cada uno con sus propios modules: y settings:. Una entrada ahí tiene prioridad sobre la entrada global con la misma clave; todo lo demás viene de la parte global.

message

Texto opcional que el TRS Client muestra una vez como aviso TRS cuando llegan las reglas. Vacío = sin aviso.

missing-client

Qué pasa con los jugadores cuyo cliente no responde con un saludo de TRS Client dentro de timeout-seconds:

actionEfecto
ignoreNada (predeterminado).
notifyEl jugador recibe notify-message en el chat.
kickEl jugador es expulsado con kick-message.

bypass-permission

Los jugadores con este permiso del servidor (predeterminado trsrules.bypass) no reciben reglas: para tus administradores y constructores.

bypass-players y bypass-op-level

  • bypass-players: [] – nombres o UUID que no reciben reglas, en todas las plataformas.
  • bypass-op-level: 0 – solo mods de servidor (Fabric/NeoForge/Forge no tienen plugins de permisos): los operadores con al menos este nivel no reciben reglas (0 = desactivado). En Fabric, bypass-permission y trsrules.admin también funcionan si LuckPerms u otro mod con fabric-permissions-api está instalado.

Comandos

ComandoEfecto
/trsrules reloadRecarga la configuración y envía las nuevas reglas a todos los jugadores.
/trsrules status <jugador>Muestra si el jugador usa el TRS Client y qué reglas se le aplican.

Permiso trsrules.admin; en Fabric, NeoForge y Forge, nivel de OP 3.

Bypass del equipo TRS

Los miembros del equipo TRS cuyo rol tiene el permiso de equipo serverrules.bypass pueden usar igualmente un módulo o ajuste bloqueado. Cuando intentan cambiarlo, el TRS Client pregunta primero: «Este servidor bloquea “Minimapa”. ¿Usarlo igualmente como equipo TRS?». Sí levanta solo ese bloqueo hasta que salen del servidor.

  • Existe para que el equipo pueda probar funciones y ayudar a jugadores en cualquier servidor.
  • El servidor de juego no se entera y no puede desactivarlo.
  • Está documentado a propósito: aquí, en la página Para servidores, en el README del plugin y como comentario al principio de cada configuración generada.
  • La excepción para tu propio equipo es el permiso de servidor de bypass-permission, que controlas por completo.

Protocolo

Para quien quiera escribir su propia implementación. Plugin messaging (custom payload); el contenido es JSON UTF-8 como bytes sin procesar (sin prefijo de longitud), como máximo 32 KiB.

DirecciónMinecraft 1.13 y posterioresMinecraft 1.12 y anteriores
Servidor → cliente (reglas)trsclient:rulesTRS|Rules
Cliente → servidor (saludo)trsclient:helloTRS|Hello

Los servidores registran ambos nombres cuando la plataforma lo permite (versiones mezcladas con ViaVersion).

Saludo

El cliente registra los canales y envía hello al entrar (fase de juego).

Reglas

El servidor responde con rules (siempre, también vacío) y las vuelve a enviar tras un cambio de mundo (proxy: cambio de servidor) y tras /trsrules reload.

Sustituir y olvidar

Cada mensaje rules sustituye por completo el conjunto anterior. Al desconectarse, el cliente descarta todas las reglas.

Saludo (cliente → servidor):

{"v":1,"client":"trsclient","version":"0.20.0","mc":"1.21.11","loader":"fabric","modules":["fps","minimap","zoom"]}

Reglas (servidor → cliente):

{"v":1,
 "modules":{
   "minimap":{"enabled":false},
   "fullbright":{"enabled":false},
   "zoom":{"settings":{"factor":{"max":4.0}}},
   "cinematic":{"settings":{"freecamFairPlay":{"value":true}}},
   "toggleSprint":{"enabled":true}
 },
 "message":"Texto opcional que el cliente muestra una vez"}
  • enabled: false = bloqueado desactivado, enabled: true = forzado activado, ausente = decide el jugador.
  • settings.<id>: {"value": x} fuerza un valor (booleano, número u opción por su nombre de enum), {"min": a, "max": b} limita un número.
  • Los módulos y ajustes desconocidos se ignoran. Con v mayor que 1, el cliente solo lee los campos que conoce.

IDs de módulos

Los IDs son iguales en todas las versiones de Minecraft. Un módulo que no existe en una versión simplemente se ignora. Los nombres son los nombres en inglés del menú TRS.

HUD

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

PvP

IDNombre
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

Mundo

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

Chat

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

Redstone

IDNombre
redstoneSignalSignal Strength
redstoneOverlaySignal Overlay
redstoneClockClock Meter
circuitLibraryCircuit Library

Rendimiento

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

Otros

IDNombre
titleScreenTitle Screen
menuStyleMenu Style
trsOnlineTRS Online Features
capePhysicsCape Physics
emotesEmotes
clipsClips & Recording
cinematicCamera Paths (incl. freecam)
halloweenHalloween
tooltipsBetter Tooltips
serverProfilesServer Profiles
screenshotsScreenshot Tools
keySearchKey Binding Search
autoReconnectAuto Reconnect
queueAlertsQueue & Alerts
streamerModeStreamer Mode

Códigos en el chat o el MOTD

Incluso sin plugin, un servidor puede enviar códigos invisibles: cada letra con un § delante, en un mensaje de chat o en el MOTD. Valen hasta que el jugador sale del servidor y siguen funcionando junto a TRS Server Rules.

CódigoEfecto
§t§r§s§n§o§f§r§e§e§c§a§m (trsnofreecam)Freecam desactivada.
§t§r§s§f§a§i§r§f§r§e§e§c§a§m (trsfairfreecam)Freecam solo con juego limpio (sin cámara a través de paredes).
§t§r§s§r§e§s§e§t§f§r§e§e§c§a§m (trsresetfreecam)Anula de nuevo los códigos de freecam.
§f§a§i§r§x§a§e§r§o (fairxaero)Juego limpio para minimapa y mapa del mundo (también fuerza juego limpio en la freecam).
§n§o§m§i§n§i§m§a§p (nominimap)Sin minimapa.
§r§e§s§e§t§x§a§e§r§o (resetxaero)Anula los códigos de mapa (y los de freecam).

Los códigos de mapa son los habituales de otros mods de mapas, así que los plugins de juego limpio existentes también funcionan con el TRS Client.