Skip to content

Add translation blocking to prevent server-side mod detection#6348

Open
YeaiDoNotKnowAGoodUsername wants to merge 1 commit intoMeteorDevelopment:masterfrom
YeaiDoNotKnowAGoodUsername:translation-blocking
Open

Add translation blocking to prevent server-side mod detection#6348
YeaiDoNotKnowAGoodUsername wants to merge 1 commit intoMeteorDevelopment:masterfrom
YeaiDoNotKnowAGoodUsername:translation-blocking

Conversation

@YeaiDoNotKnowAGoodUsername
Copy link
Copy Markdown

@YeaiDoNotKnowAGoodUsername YeaiDoNotKnowAGoodUsername commented Apr 24, 2026

Type of change

  • Bug fix
  • New feature

Description

Servers like Donut SMP check for translation keys on signs to detect mods. So I added a mixin that strips the translate tag from sign NBT packets when they come from the server. It replaces them with the fallback text instead. This way translation keys like key.meteor-client.open-gui don't get resolved, so servers can't detect which mods you have.

It works on all translation keys on signs (front and back), and it's always-on so you don't need to toggle it.

How It Works

The mixin intercepts BlockEntityUpdateS2CPacket packets when they're received from the server. It looks at the NBT data in the packet and checks both front_text and back_text for messages arrays. For each message in the array, if it contains a translate tag, the mixin removes that tag and replaces it with a text tag set to the fallback value. This prevents the client from trying to resolve the translation key, so the server can't detect if the key exists on your client.

The fallback text is the plain text version that servers send as a backup in case translation fails. By using this instead of the translation key, the sign still displays readable text but without exposing which mods or resource packs you have installed.

What It Works On

  • All translation keys on signs (front and back text)
  • All mods and resource packs that use translation keys
  • Any server that uses translation key checking for mod detection
  • Always-on, So you don't have to look or find it So you don't have to deal with accidental getting banned

Since it works at the NBT packet level, it blocks translation keys from anything - mods, resource packs, or any other source that uses translate tags on signs.

Related issues

None

How Has This Been Tested?

Built it and went on a server with translation key checks - didn't get detected.

Checklist:

  • My code follows the style guidelines of this project.
  • I have added comments to my code in more complex areas.
  • I have tested the code in both development and production environments.

@CypherNebula84
Copy link
Copy Markdown

You should add a toggle but its on by default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants