COWMODSКаталог модов

AnonymousPotion

Players under Invisibility never have their name shown in death messages — unless they are the victim

Автор: Zeffut2530обновлён 11 окт. 2026 г.
Механики игрыОбщениеУтилиты

Описание

AnonymousPotion

A player under Invisibility never has their username shown in a death message. It is replaced with obfuscated text — the scrambling characters Minecraft animates client-side.

One exception: when the invisible player dies, their own name is shown in plain text.

Zeffut was slain by ▓╫≡┼╪▒≈╬
Zeffut tried to swim in lava to escape ▓╫≡┼╪▒≈╬
Steve was slain by Zeffut          ← Zeffut is invisible, but he is the victim

No player ever sees the real username — operators included. The gameplay is the same for everyone, and the server log keeps the real identity for moderation.

Features

  • Every kind of death. Melee, bow, trident, tamed wolves, indirect deaths such as "tried to swim in lava to escape…". The plugin rewrites the message tree and never parses the sentence, so every death type and every client language works without a list of cases.
  • Fixed-length obfuscation. Always the same width, whoever the killer is. A length that matched the real username would give it away on a server with few players online.
  • No leak on hover. In vanilla, hovering a username shows the real name and UUID, and clicking it pre-fills /tell <name>. Both are stripped from the replacement.
  • Custom weapon names too. A renamed sword can identify its owner just as well as a username. Obfuscated by default, switchable off.
  • Offline killers covered. Hit someone, disconnect, and let them die of the fall — you stay anonymous for 60 seconds. Without this, quitting was a free bypass.
  • Fail-closed. If anything throws while handling a death, the message is dropped rather than sent through. A bug must never leak a username — that is the one thing this plugin exists to prevent.
  • Nothing else is touched. Chat, join and quit messages, advancements, the tab list and nametags all stay vanilla.

Configuration

KeyDefaultWhat it does
obfuscated-length8Number of characters in the obfuscated text, 1–32. The same for every player.
filler-characteraBase character. Minecraft swaps each character for a random glyph of the same width, so this setting fixes the width on screen.
obfuscate-weapon-nametrueAlso obfuscate custom weapon names, which can give the killer away.
log-real-namestrueWrite the real usernames of obfuscated players to the server log, for moderation.
telemetrytrueSend anonymous usage statistics. false turns every send off.
telemetry-hosthttps://eu.i.posthog.comThe PostHog instance the statistics are sent to. Change it to point at a self-hosted instance.

/anonymouspotion reload reloads the config in place — permission anonymouspotion.admin, operators by default.

Known limitations

  • If the Invisibility effect expires while an arrow is in flight, the archer is named in plain text. The effect is read at the moment of death, not at the moment of the shot.
  • Turning log-real-names off removes every trace of the killer: the server's own log shows the obfuscated name too, so the option does not merely trim moderation output, it removes it.
  • The plugin rewrites the death message at HIGHEST priority. Another plugin that replaces the message with flat text, or that writes after this one, can bypass the obfuscation.

Telemetry

The plugin sends anonymous usage statistics to PostHog. Set telemetry: false in config.yml to turn it off.

What is sent: a random installation id generated on first start, four properties attached to every event, plus five events.

The four properties present on every event, whichever it is:

  • app: the plugin's short name, always anonymouspotion. It tells this plugin apart from other projects sharing the same PostHog project.
  • source: the server platform, always paper.
  • mc_version: the server's Minecraft version, for example 1.21.11.
  • component_version: the plugin version, for example 1.0.0.

The body also carries $ip set to null. That is not data — it is the instruction telling PostHog not to record the request's IP address, nor derive a geolocation from it. Without it, the server's public IP would be stored by the service.

The five events:

  • plugin_enabled (on startup): server version, obfuscated-length, obfuscate-weapon-name, log-real-names, and the server's online mode (a server setting, not a plugin setting).
  • death_obfuscated (each death where a name was obfuscated): how many names were obfuscated, whether a weapon name was actually obfuscated at that death, whether one of the killers was offline, and the kind of death (the vanilla translation key, never the rendered text).
  • obfuscation_failed (if obfuscation fails): the Java exception type, never its message.
  • command_used (each /anonymouspotion command): the subcommand used (reload).
  • session_heartbeat (every 30 minutes): server uptime and how many deaths have been obfuscated since startup.

What is never sent: no usernames, no IP addresses, no player UUIDs, no message contents. This plugin exists to stop a username from leaking — it is not going to ship those same usernames somewhere else.

Requirements

Paper 1.21.x, Java 21. No dependencies.

Последние версии

Все версии →
release

AnonymousPotion 1.1.0 — Paper 26.3 stable

1.1.0+mc26.3
11 окт. 2026 г.74Minecraft: 26.3paper
Скачать
Что нового
Stable Paper 26.3 compatibility build. Java 25 required. Built against Paper API 26.3.build.175-stable and smoke-tested on official Paper 26.3 build 175 (STABLE), with the official server checksum verified. This is a distinct stable artifact: embedded plugin version 1.1.0+mc26.3. The existing 1.1.0+mc26.3-beta.1 remains unchanged and labelled beta. Gameplay behavior, permissions and license are unchanged. Validation: 72 automated tests passed, zero failures or skips; normal-world Paper startup, plugin enable, configuration reload and clean shutdown passed; GitHub CI passed all four target jobs in both workflows on the exact source commit; independent change/artifact review approved. No two-player in-game death-message test was performed. Only Paper is claimed: Purpur and Folia were not runtime-tested. Telemetry defaults and opt-out behavior are unchanged. PostHog usage telemetry is enabled by default and uses a persistent random installation identifier (pseudonymous, not absolute anonymity). Set telemetry: false in plugins/AnonymousPotion/config.yml and fully restart the server to disable sending; /anonymouspotion reload does not recreate the telemetry client. The installation-ID file may still be read/created when sending is disabled. No player names, player UUIDs or message contents are included in the telemetry payload. The client sends $ip: null to request that PostHog not record IP/geolocation properties, but this does not hide the server's network-source IP from the receiving service; server-side processing is not independently verified. See README/config for events/properties, with these clarifications taking precedence over older absolute-anonymity/IP wording. Source commit: ed08f3e49d37a6944f5764ac686a97773aaf282e Source PR: https://github.com/Zeffut/AnonymousPotion/pull/3 CI: https://github.com/Zeffut/AnonymousPotion/actions/runs/38152883878 CI: https://github.com/Zeffut/AnonymousPotion/actions/runs/38152881602
beta

AnonymousPotion 1.1.0 — Paper 26.3 BETA

1.1.0+mc26.3-beta.1
11 окт. 2026 г.14Minecraft: 26.3paper
Скачать
Что нового
Paper 26.3 BETA compatibility build (Java 25 required). Built against Paper API 26.3.build.174-beta and smoke-tested on Paper 26.3 build 174 (BETA). This is a beta preview, not stable Paper support. The embedded plugin version remains 1.1.0; behavior, permissions and license are unchanged. Validation: 72 automated tests passed, zero skips; Paper startup/plugin enable, configuration reload and clean shutdown passed; exact-commit GitHub CI passed for all four supported targets, and independent code/artifact review approved. No two-player in-game death-message test was performed. Only Paper is claimed; Purpur/Folia were not separately runtime-tested. Telemetry disclosure and opt-out are unchanged: anonymous PostHog usage telemetry is enabled by default; set `telemetry: false` in `config.yml` to disable it (restart the server after changing this setting). No usernames, player UUIDs, IP addresses or message contents are sent; IP capture and geolocation are disabled. See the README/config for the full events and properties. Source commit: 036b66852a24758408842b16e5968e704279db0f Source PR: https://github.com/Zeffut/AnonymousPotion/pull/1 CI: https://github.com/Zeffut/AnonymousPotion/actions/runs/38144584646
release

AnonymousPotion 1.1.0 — Paper 26.2

1.1.0+mc26.2
5 окт. 2026 г.57Minecraft: 26.2paper
Скачать
Что нового
Paper 26.2 compatibility release (Java 25 required). Built against the stable Paper API for this target. The embedded plugin version remains 1.1.0; behavior, permissions and license are unchanged. Validation: 72 automated tests passed; Paper startup, configuration reload and clean shutdown passed; exact-commit GitHub CI passed. No two-player in-game death-message test was performed. Only Paper is claimed by this release; Purpur/Folia were not separately runtime-tested. Telemetry disclosure and opt-out are unchanged: anonymous PostHog usage telemetry is enabled by default; set `telemetry: false` in `config.yml` to disable it. No usernames, player UUIDs, IP addresses or message contents are sent; IP capture and geolocation are disabled. See the README/config for the full events and properties. Source commit: 1bec141f120b9df6f44da3df70a236b1cad893ca CI: https://github.com/Zeffut/AnonymousPotion/actions/runs/37314640190
release

AnonymousPotion 1.1.0 — Paper 26.1.2

1.1.0+mc26.1.2
5 окт. 2026 г.11Minecraft: 26.1.2paper
Скачать
Что нового
Paper 26.1.2 compatibility release (Java 25 required). Built against the stable Paper API for this target. The embedded plugin version remains 1.1.0; behavior, permissions and license are unchanged. Validation: 72 automated tests passed; Paper startup, configuration reload and clean shutdown passed; exact-commit GitHub CI passed. No two-player in-game death-message test was performed. Only Paper is claimed by this release; Purpur/Folia were not separately runtime-tested. Telemetry disclosure and opt-out are unchanged: anonymous PostHog usage telemetry is enabled by default; set `telemetry: false` in `config.yml` to disable it. No usernames, player UUIDs, IP addresses or message contents are sent; IP capture and geolocation are disabled. See the README/config for the full events and properties. Source commit: 1bec141f120b9df6f44da3df70a236b1cad893ca CI: https://github.com/Zeffut/AnonymousPotion/actions/runs/37314640190
release

AnonymousPotion 1.1.0

1.1.0
7 авг. 2026 г.86Minecraft: 1.21.11folia, paper, purpur
Скачать
Что нового
Adds anonymous usage telemetry, and a more accurate obfuscation report. **Telemetry (PostHog)** — five events, all identified by a random installation id generated on first start. Set `telemetry: false` in `config.yml` to turn it off. - **No personal data ever leaves the server**: no usernames, no IP addresses, no player UUIDs, no message contents. IP capture and geolocation are explicitly disabled on PostHog's side, not merely omitted from the payload. - Death events report *how many* names were obfuscated and *which kind of death* it was — the vanilla translation key, validated against a whitelist so a rendered message can never take its place. - An `obfuscation_failed` event surfaces plugin failures that were previously silent on the author's side. - The full list of events and properties is in the README and in the plugin's `config.yml`. **Fixes** - Telemetry can no longer affect gameplay: its calls sit outside the fail-closed path, so a failure there can never drop a correctly obfuscated death message. - Network calls now have connect and request timeouts, so a firewalled server no longer accumulates pending connections. Requires Paper 1.21.11 and Java 21. No dependencies.
release

AnonymousPotion 1.0.0

1.0.0
7 авг. 2026 г.11Minecraft: 1.21.11folia, paper, purpur
Скачать
Что нового
First release. Players under Invisibility have their username replaced with obfuscated text in death messages — unless they are the victim, in which case their name is shown in plain text. - Every kind of death: melee, bow, trident, indirect deaths - Hover and click stripped from the obfuscated name: no leak of the real username or UUID - Custom weapon names obfuscated too, switchable off - A killer who disconnects stays anonymous for 60 seconds - Fail-closed: on error the message is dropped rather than sent through Requires Paper 1.21.11 and Java 21. No dependencies.