/
vanishpp.scoreboard). Displays world, TPS, online count, coordinates, direction, biome, ping, health, food, armor, time, date, vanish level, and more. Updates coordinates in real-time on movement via ProtocolLib packet listener (with configurable cooldown). Toggle manually with /vscoreboard. Auto-shows on vanish, hides on unvanish. Configured in scoreboards.yml. Reloads with /vreload./vscoreboard Command: Toggle the vanish scoreboard on/off. Requires vanishpp.scoreboard.%world%, %tps%, %tps_raw%, %online%, %max_players%, %vanished_count%, %x%, %y%, %z%, %direction%, %biome%, %ping%, %gamemode%, %health%, %max_health%, %food%, %armor%, %level%/%vanish_level%, %player%, %displayname%, %memory_used%, %memory_max%, %entities%, %chunks%, %time%, %date%. PlaceholderAPI supported./vlist Interactive Player Names: Each player name in /vlist output is now clickable. Hovering shows the player's vanish level and world; clicking runs /vanish <player> to unvanish them instantly.vanishpp.update are notified without needing a server restart.vpp_schema_version and runs structured migrations on startup, allowing for future schema changes. Schema v2 adds created_at/updated_at columns for future audit trail features.vanishpp.admin or OP status are notified in-game (throttled every 5 minutes to prevent spam). Helps identify infrastructure issues without requiring log file access.sendJoinMessage()/sendLeaveMessage() methods, honouring the embed, colour, avatar, and webhook settings configured in DiscordSRV's messages.yml. Previously they were always plain bold text regardless of configuration.| separator are automatically padded so the separator lands at the same column on every line. Label widths are measured after stripping color codes. Works for any custom label length — no manual padding needed.NumberFormat.blank() API for a cleaner look.false/0 — now the intended default is always applied even on a stripped config file.removePlayerData() now uses transactions to ensure all-or-nothing deletion. Connection errors during cleanup are logged but don't partially corrupt data.BukkitSchedulerBridge instead of FoliaSchedulerBridge. Added Bukkit.getName() as a fallback detection method. Additionally, Folia forbids ScoreboardManager.registerNewTeam() on the startup thread — team setup is now deferred to the global region scheduler, and vanishTeam usages are null-guarded for the brief window before it completes.prevent-potion-effects Wrong Default: This setting defaulted to true in code, silently blocking all potion effects (including healing potions thrown by staff) on servers where the key was missing from config.yml. Corrected to false.vpp_acknowledgements table was missing from the MySQL/PostgreSQL schema. Persistent acknowledgements (ProtocolLib missing warning, config migration reports) were silently ignored for SQL storage users — they are now stored and respected correctly.removePlayerData Left Stale Acknowledgements: Removing a player's data via SQL did not delete their acknowledgement rows. Stale entries could suppress future notifications for that UUID. Now cleared along with rules and level data in a single transaction.getRules Returned Strings Instead of Booleans: getRules() returned raw SQL text values ("true", "false") instead of Boolean objects, breaking any code comparing rule values by type. Values are now parsed to Boolean before being returned.addAcknowledgement() Syntax Error: PostgreSQL ON CONFLICT clause was incomplete, missing the constraint columns. Now correctly uses ON CONFLICT (uuid, notification_id) DO NOTHING.ConcurrentModificationException in Folia's multi-region environment. Now uses immutable snapshots for safe iteration.init() multiple times (e.g., on reload) would fail with primary key violations. Now idempotent and safe to call repeatedly.AchievementMessagePreProcessEvent as a safety net in addition to DiscordSRV's native vanish check.DeathMessagePreProcessEvent as a safety net.
More Features than other plugins. Be truly invisible EVERYWHERE!