Hot Summer Deals are Here!
Celebrate with up to 99% off on 17,600 resources
02
Days
02
Hours
57
Mins
30
Secs

Fake Player Plugin v1.6.6.12.8

Spawn realistic fake players on Paper/Purpur servers with skins, chat, tab-list, and full hot-reload
### Performance Optimizations
  • Rotation broadcast cachelastSentVisualRotation map caches last broadcast yaw/pitch per bot; rotation packets dropped when delta < 0.5°, eliminating redundant head-rotation broadcasts under heavy load.
  • Direct NMS fast-pathssendRotationDirect() and sendPositionSync() call PacketSendListener directly on the NMS ServerGamePacketListenerImpl instead of Bukkit's sendPacket(Player) wrapper.
  • Tab-list batchingbroadcastTabListRemove() sends a single ClientboundPlayerInfoRemovePacket per bot instead of N individual packet sends. Applied to all despawn paths.
  • Frozen bot early return — Skips all per-bot work (AI, physics, handlers, fall damage, position sync) for frozen bots at the top of the tick lambda.
  • Location reusebefore Location captured once per tick and reused across head-AI target distance, mining-lock check, gaze vector, fall-damage delta, and position-sync threshold — eliminates redundant bot.getLocation() calls.
  • Throttled subsystems — Auto-eat runs every ~4 ticks per bot. Fall damage runs every other tick (accumulated fall distance is still tracked via NMS getFallDistance()).
  • Active-bot UUID snapshotactiveBotUuids set built once per tick for O(1) contains() in head-AI filtering and tab-list remove.
  • Mining-lock optimization — Reuses before Location for distanceSquared check instead of calling bot.getLocation() again.

### Bugfixes
  • Position sync dependency on Head AIonlineSnapshot and player-position arrays now always populated regardless of doHeadAi. Previously, when Head AI was disabled, position sync packets were never sent — bots appeared frozen on other clients.
  • Swim AI jumping-field reset — Removed incorrect && (isNavigating || isInWaterOrBubbleColumn(bot)) guard that skipped tickSwimAi(). The jumping field stuck at true after a bot exited water because setJumping(bot, false) was never called.
  • Ground detection for partial blocksisBotOnGround() restored to loc.clone().subtract(0, 0.08, 0).getBlock().isPassable(). The getBlockAt(getBlockX(), getBlockY()-1, ...) replacement misdetected slabs and stairs.
  • isInBubbleColumn() deprecation — Replaced deprecated Player.isInBubbleColumn() with block-type check. -Xlint:deprecation added to compileJava.

### Performance Subsystem
  • /fpp perf commandcheck/top/report/history/spark subcommands. Background monitor samples TPS, MSPT, CPU, GC, memory every sample-interval-ticks, keeps rolling history-minutes, warns on consecutive threshold breaches.
  • Built-in self-profilerBuiltinFppProfiler with lock-free LongAdder sampling, thread-local call stack, adaptive detail reduction. Enabled via performance.self-profiler.enabled.
  • Benchmark sessions/fpp perf report starts a 10-minute method-level benchmark, reminds every 2 minutes, exports Spark-style call tree to plugins/FakePlayerPlugin/performance-report/.
  • Perf providersSparkPerfProvider (preferred, reads Spark-API snapshots) and BuiltinPerfProvider (fallback via CraftServer + JMX).
  • Auto-exportPerformanceReportExporter writes .txt reports on: benchmark finish, threshold warning (export-on-warning: true), plugin disable, and fatal exceptions.
  • Perf placeholders%fpp_perf_tps%, %fpp_perf_mspt%, %fpp_perf_cpu_process%, %fpp_perf_cpu_system%, %fpp_perf_gc_avg_time%, %fpp_perf_gc_avg_frequency%, %fpp_perf_health%.
  • Profiling instrumentation — Hot paths in FakePlayerManager.tick(), NmsPlayerSpawner.tickPhysics(), PacketHelper, tickSwimAi(), tickAutoEat(), fireTickHandlers(), tickFallDamage() profiled when self-profiler is active.
  • Language keys — Full perf-* set in en.yml for all /fpp perf output.

### Config
  • New performance: blockenabled, spark-enabled, placeholders, sample-interval-ticks, history-minutes, warn-mspt, warn-tps, warn-consecutive-samples, warn-cooldown-minutes, auto-profiler-timeout-seconds, self-profiler.enabled, self-profiler.method-level, self-profiler.export-on-warning.
  • Swap player-aware settings — New swap.player-aware.* keys for nearby-player detection radius, idle threshold, idle bonus percent, active penalty percent.
  • ConfigMigrator — Updated for config-version 76 to handle new keys.
  • FppMetrics integration — FastStats metrics startup with graceful fallback when FastStats is unavailable.

### API & Internal
  • FppApi — Added getOnlineCount(), removePlayerBody(UUID) (shutdown-safe), disableAllAddons().
  • FppSchedulerrunAtEntityRepeatingWithId() returns int taskId for per-entity repeating tasks.
  • CommandManager/fpp perf registered with fpp.perf permission (child of fpp.op in plugin.yml).
  • NmsPlayerSpawnertickPhysics() reverted to original doTickMethod.invoke() via reflection; guard restored to || doTickMethod == null.
  • FakePlayerEntityListener — Removed exact damage-canceller detector/tracer in favor of simpler body.damageable switch.
  • FakeChannelPipeline — Handler insertion refactored for channel-active vs connection-set path.
  • BotPersistencesaveForShutdown() saves snapshot without clearing active-bots to prevent destructive overwrite on restart.
  • Shutdown lifecycle — Profiler stopped before monitor; extension class loaders closed; disableAllAddons() called; saveForShutdown() runs before body removal.
### Core Updates
- nLogin compatibilityNmsPlayerSpawner now suppresses nLogin (com.nickuc.*) PlayerJoinEvent listeners for fake players alongside the existing SimpleVoiceChat suppression. Auth plugins that expect normal client login pipelines no longer kick/despawn FPP bots during spawn.
### 🎯 Main Focus
  • Fix bot despawn after spawn bug — bots no longer instantly despawn due to stale spawn-protection checks or missing WorldGuard session state after teleport/respawn
  • PacketEvents fail injection — suppressed kicks caused by "packetevents" + "inject" errors that triggered an infinite despawn loop on every bot join
  • LuckPerms patch — pre-caches LuckPerms user data before placeNewPlayer() to prevent ServerThreadLookupException on Folia and ensure Vault/WG hooks resolve correctly at spawn time

### 🐛 Debug GUI & Chat Broadcasting
  • Debug Settings GUI/fpp settings now has a 🐛 ᴅᴇʙᴜɢ category with 23 clickable toggles for every debug.yml category (master, general, startup, NMS, database, packets, network, config-sync, chat, swap, commands, head-ai, right-click, etc.)
  • Debug Chat Broadcast — new debug-chat: false key in debug.yml. When enabled, all FppLogger.debug() output is sent to online players with fpp.op or fpp.notify as in-game chat messages (gray prefix: [ꜰᴘᴘ DEBUG/<topic>] <message>)
  • Runtime debug toggling — debug categories can be flipped on/off without restarting via the GUI; changes are saved to debug.yml immediately

### 🖱️ Left-Click Command Improvements
  • Auto-target hostile mobs — bots now automatically detect and attack hostile mobs (Monsters, Slimes, Ghasts, Phantoms, Hoglins, Shulkers, EnderDragon) in their forward cone when no block is targeted
  • Auto-aiming — bot head and body smoothly rotate to face the targeted mob
  • Multi-flag parsing — fixed --once, --repeat, --hold, and --stop flag handling so multiple flags can be specified correctly in a single command

### 🔧 Bug Fixes & Stability
  • LuckPerms cache warmupNmsPlayerSpawner pre-loads LuckPerms user data before placeNewPlayer() to prevent ServerThreadLookupException on Folia
  • WorldGuard session refresh — complete rewrite using cold re-initialization via reflection (tryRemoveSession + Session.initialize()) to prevent stale region data after bot teleports/world changes
  • Teleport/respawn WG refreshFakePlayerEntityListener adds PlayerTeleportEvent.MONITOR and PlayerRespawnEvent handlers with delayed (1-2 tick) WG session refresh
  • Spawn protection teleport fixBotSpawnProtectionListener now allows PLUGIN and COMMAND teleports during the grace window so /fpp tph and cross-world moves work correctly; portals are still blocked
  • Despawn reason tracking — all removeBot() calls now pass descriptive reasons (spawn_body_failed, command_despawn, gui_delete, badword_cleanup, packetevents_kick, kicked_by_server, api_despawn, rename_swap, body_remove, etc.) instead of "unspecified"
  • PacketEvents kick suppressionFakePlayerKickListener silently cancels kicks containing "packetevents" + "inject" instead of despawning the bot, preventing instant-despawn loops
  • Attribution/logging cleanup — silenced license heartbeat, JSON response, and integrity check logs unless explicitly enabled via debug.yml
  • Placeholder formatting — cleaned up formatUptime one-liner in FppPlaceholderExpansion
  • Help GUI formatting — fixed indentation in lore builder
### 🔧 Folia Config Patch
- Folia config issue patched — formatting normalization across build.gradle.kts, Config.java, and plugin.yml to resolve Folia-related configuration loading problems
### ⚡ Performance & Cleanup
  • Silent License Verification — No more startup spam (Team ID, challenge, JSON response removed)
  • Debug Logging Fixed — All NMS-BOT messages now respect debug.yml (17 calls fixed)
  • Cleaner Startup Logs — Removed backups count, name pool size, debug section from banner
  • Minimal Shutdown Log — Reduced from 7 lines to 4 lines

### 🖱️ Click Commands
  • Left-Click Command — Replaced MineCommand (/fpp left-click)
  • Right-Click Command — Replaced UseCommand (/fpp right-click)
  • Legacy Removed — 2162 lines of mine/use/place code deleted
  • Net Reduction — ~500 lines of code removed overall

### 🔧 Config System
  • debug.yml — All debug settings moved to separate file
  • Config v75 — Auto-migrates and removes logging.debug.* keys from config.yml
  • License Category Removed — No longer needed (silent verification)

### 📦 Other Changes
  • Folia Support — Full compatibility with region-threaded spawning
  • Permission Checks — Bot ownership validation for /fpp attack --all, /fpp follow --all
  • New Flags/fpp despawn --own, /fpp delete --own
  • PlaceholderAPI — Updated to 2.12.2

### 📝 Documentation
  • Updated: Changelog, Configuration, FAQ, Getting-Started, Home
  • AGENTS.md added for development reference
### License System Updates
  • License server migration — Switched license verification from license.fpp.wtf to app.lukittu.com
  • Frontend credential fetch — Credentials now fetched from fpp.wtf/api/license/free with HMAC signature verification
  • Improved license logging — Better error messages and debug logging for license verification failures
  • API key authentication — Added Bearer token authentication for frontend API requests

### Bug Fixes
- License credentials fetch — Fixed API key encoding for frontend authentication
### Breaking Changes
  • Folia support removed — FPP no longer supports Folia due to fundamental incompatibilities with regionised threading and entity ticking. Use Paper/Purpur instead.
  • Body disable system removedbody.enabled config option removed. Bots always spawn with physical bodies (tab-list only mode no longer available).
  • SpigotMC distribution removed — Plugin no longer distributed on SpigotMC. Download from Modrinth, PaperMC Hangar, or BuiltByBit.

### Features Removed
  • %fpp_body% placeholder — Removed along with body disable system.
  • Body toggle in GUI — Removed from Settings GUI (body category).
  • Skin system toggle — Removed from Settings GUI.

### New Features & Improvements
  • Pathfinding overhaul — Major improvements to BotPathfinder.java and PathfindingService.java with better A* navigation, gap walking, block break/place support, and stuck detection.
  • Mine command improvements — Added actual block breaking via nms.gameMode.destroyBlock(), improved progress tracking, and pickup flow.
  • Use command enhancements — Combined Use+Place functionality with UseMode enum, flexible targeting from bot look direction, and better ray-tracing.
  • Head AI action locking — Added actingBots concurrent set to fully disable head AI while bots perform actions (mining, using, placing).

### Bug Fixes
  • PacketEvents injection error — Added try-catch wrapper around PacketEvents registration to prevent GrimAC/ViaVersion compatibility issues from breaking bot spawns.
  • UseCommand NPE — Fixed null pointer when storing ray-trace targets; only stores non-null targets.
  • Head AI during actions — Bots now properly disable head rotation while performing mine/use/place actions.
  • Mining not breaking blocks — MineCommand now actually breaks blocks via NMS game mode.

### Code Quality
  • Removed spawnBody() config method and all references to body disable logic
  • Cleaned up FakePlayerManager.java spawn logic (no more bodyless mode)
  • Updated startup banner, metrics, and placeholders to remove body enable references
  • Removed unused custom metrics from FppMetrics.java
  • Removed outdated AGENTS.md file
  • Added note.md development tracking document

### Documentation
  • Updated all wiki pages to reflect Paper/Purpur-only support
  • Removed Folia-Support wiki page
  • Updated FAQ to explicitly state Folia is not supported
  • Updated legal documents (copyright, privacy-policy, extensions, terms-of-service)
  • Updated README.md with platform changes
## v1.6.6.11

### Bug Fixes
  • Online player count — bots now correctly subtracted from real-player count in /fpp stats and network totals (commit 6afca8a)
  • Database flush — runs outside the main thread to prevent server lag spikes (f671781)
  • Batching logic — added proper batching for DB writes and network heartbeats (528cf0e)
  • Removed dead writer/health-check logic that caused unnecessary DB overhead (fcbe072)
  • Removed pointless bot record update before clearing the list on shutdown (8c1eb56)

### Code Quality
  • Removed unnecessarily fully qualified class names across codebase (001416d)
  • General cleanup of dead code, unused fields, and redundant calls (14d1803)

### Documentation
  • Updated command reference with extension --list, spawn --notp, and attack --move flags
  • Synced config docs with pathfinding.*, skin.*, help.*, ping.*, metrics.debug, and heartbeat.enabled
EULA: Free EULA
4,624 Views
464 Downloads
Mar 17, 2026 Published
Jun 17, 2026 Updated
5.00 star(s)
Average rating (4)
1.1 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Mobs
  1. Technology
  1. Decoration
Supported software
  1. Paper
  1. Bungee
  1. Velocity
  1. Purpur
Supported versions
  1. 26.1
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
Supported languages
  1. English
Crediting original
El_pepes
Creator
Owner
Recommended for you
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,191 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 53 ratings
3,129 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,069 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 71 ratings
2,805 purchases
All-in-one dungeon creator. Create unlimited, timed dungeon experiences with your own builds
4.50 star(s) 72 ratings
2,574 purchases
4,624 Views
464 Downloads
Mar 17, 2026 Published
Jun 17, 2026 Updated
5.00 star(s)
Average rating (4)
1.1 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Mobs
  1. Technology
  1. Decoration
Supported software
  1. Paper
  1. Bungee
  1. Velocity
  1. Purpur
Supported versions
  1. 26.1
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
Supported languages
  1. English
Crediting original
El_pepes
Creator
Owner
Recommended for you
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,191 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 53 ratings
3,129 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,069 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 71 ratings
2,805 purchases
All-in-one dungeon creator. Create unlimited, timed dungeon experiences with your own builds
4.50 star(s) 72 ratings
2,574 purchases
Top