
VanishSystem
Stay hidden with all your administraitive controls that can hide you on the packet level.
VanishSystem
VanishSystem is made for staff who need to vanish without players finding out.
PacketEvents is optional and off by default. VanishSystems normal hiding system works on its own. If you want a additional privacy layer, install PacketEvents and enable the setting in the config.
With PacketEvents vs without
| Visibility | Base VanishSystem | With PacketEvents |
|---|---|---|
| Player model | Hidden | Hidden |
| Tab entry | Hidden | Hidden, with optional visible in tab mode |
| Name tab completion | Filtered | Filtered at packet level too |
| Supported target commands | Hidden players return a normal not found response | Same |
| Server list count and hover sample | Adjusted where the platform allows it | Filtered at packet level |
| Movement, equipment, and metadata packets | Somewhat filtered | Filtered per viewer |
| Footsteps, particles, and animations | Some can still reach the client | Filtered |
| Collisions, projectiles, and pressure plates | Prevented | Prevented |
| Mob targeting | Prevented | Prevented |
Compatibility
- Version: 1.19.x - 26.2
- Supported platforms: Bukkit, Spigot, Paper, Purpur, Pufferfish, Folia, Velocity, BungeeCord, Waterfall, and Sponge
Main Features
Core vanish
- Vanish yourself or another online player
- Set an offline player to join vanished
- Local or network wide vanish
- Timed vanish with automatic reappearance and extension
- Explicit
onandoffcommands that cannot accidentally toggle the wrong way - Silent vanish and reappear options
- Per viewer fake join and quit messages
- Reveal yourself to one viewer without becoming visible to everyone
- Hide from one viewer without changing your global state
- Automatic vanish on join through permissions
- Optional world based profile changes
- Persistent UUID based state across restarts, reloads, and transfers
- Stored actor, cause, profile, scope, reason, case ID, and timestamp
Profiles and visibility levels
Profiles let staff use different rules for different jobs. Watching a suspected cheater should not need the same setup as building at spawn while hidden.
Included profiles:
default- a safe general purpose setupstrict-ghost- no interaction and as little world impact as possibleobservation- detailed monitoring without world changesinvestigation- close observation with stronger audit requirementsspectator- spectator style movementbuilder- building while hiddenevent-staff- practical event tools with chat protectiondeveloper- unrestricted testing while invisibleowner- the highest default visibility level
Layered visibility is optional. When enabled a viewer can see a hidden player only when their
see level is high enough for that player's use level.
- Protected accounts
- Per player reveal and hide exceptions
- Separate use and see levels
- Live LuckPerms refresh support
/vanish whycansee <viewer> <target>for readable visibility explanations
Ghost mode and safety
- Player and entity collision prevention
- Hidden hitboxes do not block normal block placement
- Projectiles pass through hidden staff
- Fishing hooks and leads cannot attach to them
- Pressure plates, tripwire, sculk sensors, shriekers, dripleaf, turtle eggs, and farmland protection
- Existing mob targets are cleared when a player vanishes
- Hidden players are ignored for sleeping percentage checks
- Configurable damage, hunger, air, fire, and freezing protection
- Void rescue
- Short reappearance protection
- Unsafe reappearance checks with an explicit
--confirmoverride - Nearby safe location search where the platform can perform it safely
- State restoration only replaces values VanishSystem actually changed
Restrictions and chat safety
- Block breaking and placement
- Entity damage and projectiles
- Item dropping and pickup
- Experience pickup
- Containers, redstone, signs, trading, breeding, leashing, mounting, sleeping, and fishing
- Buckets, fire tools, bonemeal, brushes, and shears
- Creative inventory protection
- Command allowlists or denylists
- Temporary interaction unlocks that relock themselves
- Lock, timed unlock, or one message unlock
- Confirmation oriented chat modes
- Separate unlock and bypass permissions
- Protection for configured public facing commands
- Clear warning indicators while chat or interaction is unlocked
Silent containers
- Silent container opening for chests, barrels, shulkers, hoppers, droppers, furnaces, brewing stands, lecterns, and ender chests
- Packet level suppression of the lid animation and the open sound, sent only to the viewers who should not see it
- A compatibility fallback when PacketEvents is disabled
- Audit records for every silent open
Observation tools and indicators
- Select a player manually, or choose the nearest, next, or previous target
- Follow a selected player
- Silent teleport and saved return locations
- Target information with health, food, ping, gamemode, world, and coordinates
- Optional per viewer target glow when the packet layer supports it
- Action bar, boss bar, title, sidebar scoreboard, and chat reminders
- Separate warning states for unlocked chat, unlocked interaction, or degraded network sync
- Configurable personal sounds
- Player preferences are remembered
Storage, audit, and recovery
- File storage by default
- SQLite support
- MySQL and MariaDB support through HikariCP
- Prepared statements
- Bounded asynchronous storage queue
- Ordered writes so an older save cannot overwrite a newer state
- Independent local and network state rows
- Versioned network tombstones for reliable reveals
- Hash chained audit records
- Startup schema migration
- Health probes and reconciliation
- Durable network recovery journal
- Last known good configuration on failed reload
Cross server support
- Velocity, BungeeCord, and Waterfall companions
- Local or network wide vanish
- Shared authoritative SQL state
- Signed and replay protected bridge messages
- Immediate invalidation hints with database polling as recovery
- Proxy side protection for supported commands, suggestions, counts, and ping samples
- Bounded queues and outage recovery
Diagnostics
/vanish doctor checks the active hiding layers, storage health, PacketEvents state, configuration,
and network synchronization. Useful if you are having issues with the plugin or suspect VanishSystem is causing issues.
For even more information, enable diagnostics and run:
/vanish debug confirm
The report is made and saved under VanishSystem's debug-reports folder.
Extra Details
Commands
The root command and aliases are configurable.
| Command | Description |
|---|---|
/vanish | Toggle your own vanish |
/vanish on|off|toggle [player] [flags] | Change vanish state explicitly |
/vanish timed <duration> [profile] | Vanish for a set time |
/vanish extend <duration> | Extend a timed vanish |
/vanish offline <player> <on|off> | Change an offline player's next login |
/vanish network <on|off> | Change between local and network wide vanish |
/vanish profile <name> | Change profile without a visible gap |
/vanish level <number> | Change your use level |
/vanish list [offline|network] | List hidden players you are allowed to see |
/vanish status [player] | Explain a player's current state |
/vanish whycansee <viewer> <target> | Explain a visibility decision |
/vanish revealto|hideto <player> [duration] | Add a viewer specific exception |
/vanish pickup|xppickup <on|off> | Control item or experience pickup |
/vanish fly <on|off|speed> | Control vanish flight |
/vanish nightvision|noclip <on|off> | Control private movement effects |
/vanish visibleintab <on|off> | Stay visible in the tab list |
/vanish publicchat <lock|unlock|once> | Control public chat safety |
/vanish interact <lock|unlock> [duration] | Control interaction safety |
/vanish target <player|nearest|next|previous|clear> | Select an observation target |
/vanish follow <player|off> | Follow a target |
/vanish tp <player> | Teleport silently |
/vanish return | Return to a saved location |
/vanish fakejoin|fakequit [player] | Send a fake presence message |
/vanish audit [player] [limit] | Read permitted audit records |
/vanish doctor | Run health checks |
/vanish debug [confirm] | Create a redacted support report |
/vanish sync | Re send authoritative network state |
/vanish menu | Open the staff menu |
/vanish reload | Reload safely |
Command flags
| Flag | Purpose |
|---|---|
-s, --silent | Suppress the announcement |
-t, --show-in-tab | Stay listed in tab |
-n, --network | Use network scope |
-p, --profile <name> | Select a profile |
-l, --level <number> | Set a use level |
-d, --duration <time> | Make the state temporary |
-r, --reason "<text>" | Record a reason |
-c, --case <id> | Record a case or ticket ID |
--confirm | Confirm a guarded action |
--dry-run | Preview a supported profile change |
--no-return | Do not capture a return point |
--no-fake-message | Suppress the fake public message |
Permissions
| Node | What it covers |
|---|---|
vanish.use | Vanish yourself. Most staff need this and vanish.see and nothing else |
vanish.see | See hidden players |
vanish.use.others, .offline, .network, .timed | Vanish someone else, an offline player, network wide, or on a timer |
vanish.silent, vanish.showintab | Use the flags that change how a vanish is announced |
vanish.revealto, vanish.hideto | Per viewer exceptions |
vanish.chat.unlock, vanish.chat.bypass | Speak in public chat while hidden |
vanish.interact.unlock, vanish.interact.bypass | Override interaction restrictions |
vanish.break, vanish.place, vanish.container, vanish.pickup, and the rest | One node per restriction, so a builder profile and an observation profile can differ |
vanish.fly, vanish.noclip, vanish.nightvision, vanish.spectator | Individual movement abilities |
vanish.target, vanish.follow, vanish.teleport, vanish.return | Observation tools |
vanish.audit, vanish.audit.reason, vanish.audit.location, vanish.audit.ip | Reading the audit log, split so the sensitive fields stay separate |
vanish.protected | Lower ranked staff cannot reveal or force toggle you |
vanish.bypasscmd, vanish.bypassspam, vanish.bypassteleportback | Bypasses for the command denylist, the rate limit, and the return teleport |
vanish.admin | Bundles the staff tool nodes for a single grant |
Configuration
VanishSystem splits its settings by responsibility, so the main config does not become one enormous file.
plugins/VanishSystem/
├── config.yml
├── messages.yml
├── announcements/config.yml
├── audit/config.yml
├── chat/config.yml
├── containers/config.yml
├── discovery/config.yml
├── ghost/config.yml
├── gui/config.yml
├── indicators/config.yml
├── movement/config.yml
├── network/config.yml
├── profiles/config.yml
├── restrictions/config.yml
├── safety/config.yml
├── target/config.yml
├── visibility/config.yml
└── language/en.yml
PlaceholderAPI
%vanish_is_vanished% %vanish_state%
%vanish_profile% %vanish_duration%
%vanish_use_level% %vanish_see_level%
%vanish_target% %vanish_packet_layer%
%vanish_online_visible% %vanish_online_public%
%vanish_hidden_total% %vanish_sync_status%
%vanish_public_chat_locked%
Known boundaries
- The normal Bukkit layer cannot suppress every sound, particle, metadata, or team packet. Enable PacketEvents when resistance to packet inspection matters.
- Arbitrary output from
/list,/who, or third party plugins is not generically rewritten. Supported target commands and VanishSystem's own output are viewer aware. - Minecraft's legacy UDP Query response cannot be rewritten safely by this build.
- Inventory inspection is not included at all. Use a dedicated inventory plugin alongside this one.
- Audit export, Redis transport, advancement/recipe suppression, and most third party map or Discord adapters are not included.
- Per viewer glow requires PacketEvents and is disabled on Folia.
- Folia target information uses published snapshots and can lag by one refresh.
- Folia reappearance stays at the current position and uses a terrain only safety check during the synchronous state transition.
- Plain Spigot exposes fewer safe hooks than Paper, so some server list and rich message behavior falls back gracefully.
Useful Info
PacketEvents setup guide
- Install the latest version of PacketEvents.
- Open
plugins/VanishSystem/config.yml. - Set
packetevents.enabled: true. - Restart the server.
- Run
/vanish doctorand check that the packet layer reports as active.
If PacketEvents is missing, disabled, or not working, VanishSystem keeps the normal hiding system and reports the reduced coverage.
Cross server setup guide
- Set
storage.type: mysqlon each backend. - Point every backend at the same database.
- Give every backend a unique
server-name. - Enable the network module.
- Configure the same shared secret everywhere.
- Install the matching Velocity or BungeeCord companion.
- Restart the proxy and backends.
- Check
/vanish doctorand/vanishproxy status.
Developer API
if (VanishAPI.isVanished(player)) {
return;
}
if (!VanishAPI.canSee(viewer, target)) {
continue;
}
Сервер для плагина VanishSystem - как у профи
Плагин VanishSystem создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином VanishSystem для друзей можно за пару минут - BungeeHost всё уже подготовил.
