Tags
Creators
Details
All versions
1.1.4
Release
Vanish++ 1.1.47 months ago 222
Compatibility
Minecraft: Java Edition
1.21.x
1.20.6
Platforms
Bukkit
Folia
Paper
Purpur
Spigot
Changes
Added
can_throwVRule: New personal rule controlling whether vanished players can throw items (eggs, snowballs, ender pearls, potions, bows, crossbows). Default:false. Fully integrated with interactive chat buttons ([Allow 1m],[Allow permanently],[Hide notifications]).- Staff Glow Indicator: Vanished players now render with a glowing outline for staff with
vanishpp.see. Uses packet-level metadata injection β non-staff never see it. Enabled by default (vanish-appearance.staff-glow: true). - Vanish State Resync Engine: New
resyncVanishEffects()system that reapplies all vanish state (team, prefix, metadata, fly, night vision, collision, mob targeting, visibility, glow) without touching storage. Triggered automatically on respawn, world change, and gamemode change. - Respawn Handler: Vanish state (fly, invisibility, glow, collision) is now fully restored after death and respawn.
- World Change Handler: Nether/End portal transitions no longer break vanish state.
- Gamemode Change Handler: Changing gamemode (e.g.,
/gamemode survival) while vanished no longer disables flight. - [Unvanish] Button: All blocked-action messages now include a convenient
[Unvanish]button alongside[Allow 1m],[Allow permanently], and[Hide notifications]. - Fast Sync Loop: Heartbeat task now runs every 10 ticks with visibility fix, team/prefix reapply, glow metadata resend, and mob targeting β ensuring all vanish features stay in sync continuously.
- Explicit Glow Metadata Packets: Staff glow is now sent via direct ProtocolLib
ENTITY_METADATApackets rather than relying on entity respawn metadata, ensuring the glow appears instantly. - Multi-Stage Join Prefix: Tab prefix is now reapplied at 2, 20, and 60 ticks after join β catches TAB plugin async overrides at different pipeline stages.
- Snapshot Silent Chests: Barrels and containers are now opened as inventory snapshots (copy of the real inventory). Changes sync back on close. This eliminates
Container.startOpen()entirely, preventing animation and sound at the source. - Reload Resync:
/vreloadnow refreshes team prefix and resyncs all online vanished players' effects. - Setup Advisor (Config Sanity Checker): On startup, Vanish++ now scans the active configuration and warns if:
hooks.simple-voice-chat.enabledistruebut SimpleVoiceChat is not installed.hooks.essentials.simulate-join-leaveistruebut EssentialsX is not installed.- Any message string contains a PlaceholderAPI placeholder (
%token%) but PlaceholderAPI is not installed. - Warnings are printed to the console and shown in-chat to all players with
vanishpp.seeon their next login, making it easy to spot setup issues without reading logs.
- Comprehensive Automated Test Suite: 143 unit tests across 6 test classes covering every feature β commands, event listeners, storage, permissions, rules, and integration scenarios. All tests pass on clean build.
- Full Localization (i18n): Complete multi-language support.
- All messages and system reports moved to
lang/en.yml. - Automatic fallback system for missing keys.
- Simplified
config.ymlwith a newlanguagetoggle.
- All messages and system reports moved to
- Rich Text Support: Integrated MiniMessage for modern, easy-to-read chat formatting using tags (e.g.,
<red>,<bold>,<click>). - PlaceholderAPI Integration: Full support for dynamic placeholders in all plugin messages and the Action Bar.
- Folia Support: Rewritten scheduler and event handling to support Folia's multi-threaded region architecture.
- Config Reload: Added
/vreloadcommand to apply configuration and language changes instantly without server restarts. - Interactive Reports: Professional clickable components in all command outputs.
- Titan Stealth Engine: Absolute packet-level invisibility for vanished administrators. The server now acts as if the vanished player does not exist in the network data.
- Tab List & Info Filtering: Blocked
PLAYER_INFOandPLAYER_INFO_UPDATEpackets to prevent any tab list flicker or presence detection. - Ghost-Proof Spawning: Intercepted
SPAWN_ENTITYandNAMED_ENTITY_SPAWNto ensure vanished players are never spawned on unauthorized clients. - Absolute Metadata & Update Blocking: High-priority interceptors for
ENTITY_METADATA,ENTITY_EQUIPMENT,ANIMATION,ENTITY_EFFECT,ENTITY_STATUS, andENTITY_SOUND_EFFECTto ensure zero data leakage. - Movement & Velocity Filtering: Blocked
ENTITY_VELOCITY,REL_ENTITY_MOVE,ENTITY_LOOK,ENTITY_TELEPORT, andENTITY_HEAD_ROTATIONto eliminate coordinate-level leaks. - Action Scrubber: Intercepted
COLLECT(item pickups) andSET_PASSENGERS(mounting) to scrub vanished names even when they are not the primary entity. - Team Scrubbing: Intercepted
SCOREBOARD_TEAMto remove vanished names from any raw team packets sent to non-staff.
- Tab List & Info Filtering: Blocked
- Plugin Hiding: "Vanishpp" is now hidden from
/plugins(or/pl) for non-OPs. Administrators see a filtered list with a delayed interactive notification to temporarily unhide or acknowledge the feature. - Strict Command Permissions: All commands now enforce strict permissions in
plugin.yml. Unauthorized players cannot see commands in Tab-Complete. - Config Logic:
vanishMessage,unvanishMessage,fakeJoinMessage, andfakeQuitMessagelogic updated. Setting these to"false","none", or leaving them empty inconfig.ymlnow properly disables the message. - Persistence: Acknowledging the plugin hiding warning now saves the preference to
data.ymlspecifically for the current version.
Changed
- Silent Chest Architecture: Replaced the spectator-mode workaround with a snapshot inventory system. Vanished players now open a copy of the container, and edits sync back on close β no animation, no sound, full item interaction.
- Throwable Blocking: Throwables (eggs, bows, ender pearls, etc.) are now governed by the
can_throwVRule instead of being unconditionally blocked. Players can toggle this rule like any other. - Spawn Egg Messages: Spawn eggs now use the standard
sendRuleDenysystem withcan_throw, providing interactive buttons instead of a static message. - Sound Suppression: Silent chest sound listener now covers both
NAMED_SOUND_EFFECTandCUSTOM_SOUND_EFFECTpackets with robust multi-offset coordinate detection. - Config Structure: Significant cleanup of
config.yml. Legacy message blocks removed in favor oflang/*.yml. - Performance: Optimized visibility checks and metadata handling for better server performance.
Fixed
- DiscordSRV Join/Quit Suppression: DiscordSRV now fully suppresses join and quit announcements on Discord for players who rejoin with persisted vanish state. Previously, only chat suppression worked β Discord join messages leaked through.
- Barrel/Shulker Silent Opening: Opening barrels and shulker boxes while vanished no longer leaks the open/close animation or sound to nearby players. Previously, the
Container.startOpen()call triggered both. - Join Prefix Delay: The vanish tab prefix (
[V]) now appears within ~100ms of joining instead of taking 3+ seconds. Multi-stage reapplication handles TAB plugin async overrides. - Throwable Items Leaked Position: Throwing eggs, snowballs, ender pearls, and shooting bows while vanished created visible projectile entities that revealed the player's position. Now blocked by default via the
can_throwrule. - Spawn Egg Rule Bypass: The
CAN_INTERACTrule had no effect on spawn eggs due to incorrect check ordering. Spawn eggs are now properly governed bycan_throw. - Vanish State Lost on Respawn: Dying and respawning while vanished caused loss of fly, invisibility, glow, collision settings, and night vision.
- Vanish State Lost on World Change: Entering nether/end portals broke vanish state (visibility, fly, glow, prefix).
- Flight Lost on Gamemode Change: Running
/gamemode survivalwhile vanished disabled fly mode permanently until re-vanishing. - Reload Didn't Resync:
/vreloadpreviously only reloaded config files without resyncing active vanish effects for online players. - Mob Targeting on Vanish: Mobs that had already acquired a player as their target before
/vanishwas used would continue attacking. Fixed by explicitly clearing all matching mob targets within 64 blocks the moment a player vanishes. - Console Staff Notification: Console was silently excluded from vanish/unvanish staff notifications. It now receives the same message as staff players with
vanishpp.see. - Fly Mode Logic: Improved flight persistence on unvanish when configured.
- Dependency Resolution: Fixed an issue where the ProtocolLib dependency was not correctly detected on first install.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:kbKpK1bc:WMiCOiFr"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:kbKpK1bc:WMiCOiFr"
}

