
Fake Player Plugin (FPP)
Spawn realistic fake players on your Paper server — complete with tab list presence, server list counts, join/quit messages, and in-world entities. Can also be used as configurable AFK bots to keep your server active.
Fake Player Plugin (FPP) 1.6.6.8
release2 мая 2026 г.v1.6.6.8 (2026-05-02)
Bot Join/Leave Message Overhaul
- Bot join/leave messages now use custom
bot-join/bot-leavelang keys fromen.ymlinstead of vanilla "joined/left the game" — fully customizable with MiniMessage formatting - Vanilla quit messages are always nulled for bots; leave messages are broadcast explicitly via
BotBroadcast.broadcastLeaveByDisplayName()— no more missing leave messages - Death-despawn leave messages fire 20 ticks after death (after kill message + entity removal) for proper ordering: kill message → leave message
Skin System Improvements
- Skin fetch retry count increased from 3→5 (
MAX_FALLBACK_ATTEMPTS) — bots try up to 5 pool names before falling back to Steve/Alex SkinRepository.getAnyValidSkin()retries with different random names on failure;SkinManager.tryFallback()handles null/invalid results gracefully- All skin retry/failure messages converted to
Config.debugSkin()— silent by default, visible only withlogging.debug.skin: true
Ping System
ping.enableddefault changed fromtruetofalse— ping simulation is now opt-in (existing configs unaffected; migration v69→v70)
Help Menu
HelpGuinow includesping(REPEATER) andskin(PLAYER_HEAD) commands in the Bots category
Extension Config & Resource System
FppExtensionnow provides 6 convenience methods:getDataFolder(),getConfig(),saveDefaultConfig(),saveDefaultResources(),saveResource(),reloadConfig()FppApiexposes 3 cross-extension methods:getExtensionDataFolder(),saveDefaultExtensionConfig(),getExtensionConfig()ExtensionLoadercreates per-extension data folders automatically;/fpp reload extensionsnow syncs config keys
Per-Bot Settings GUI Overhaul
- BotSettingGui now has 5 categories: ⚙ General · 💬 Chat · 🗡 PvE · 🧭 Pathfinding · ⚠ Danger
- General: frozen, respawn-on-death (new), head-AI, swim-AI, chunk-radius, pick-up-items, pick-up-xp, rename, share-control (new)
- PvE (new, replaces PvP): smart-attack mode (OFF/ON still/ON move), mob type selector (90+ entries), detect range, target priority
- Pathfinding (new): follow-player, parkour, break-blocks, place-blocks
- Danger: reset-all-settings (new), delete bot — both double-click confirm
PvE Smart Attack Mode
- Per-bot tri-state:
OFF/ON_NO_MOVE(stationary) /ON_MOVE(pursues via PathfindingService); persisted in DB v21 /fpp attack <bot> --mob --movemaps toON_MOVE;pveEnabledis now a convenience accessor
Attack Hunt Mode
- New
/fpp attack <bot|all> --hunt [<mob>] [--range <n>] [--priority <mode>]— autonomous roaming mob hunt (range 32, not locked); Permission:fpp.attack.hunt
New Commands
/fpp save— checkpoint all bot data to disk (Perm:fpp.save)/fpp setowner <bot> <player>— transfer bot ownership (Perm:fpp.setowner)/fpp bots [bot]— paginated GUI of manageable bots (aliases:mybots,botmenu; Perm:fpp.settings)/fpp skin <bot> <username|url|reset>— apply Mojang/URL skin or reset (Perm:fpp.skin)/fpp find <bot> <block> [--radius] [--count]— scan + mine nearby blocks (Perm:fpp.find)/fpp groups [gui|list|create|delete|add|remove]— personal bot groups (Perm:fpp.groups)/fpp sleep <bot|all> <x y z> <radius>— auto-sleep at night (Perm:fpp.sleep)/fpp stop [<bot>|all]— cancel all active tasks (Perm:fpp.stop)/fpp move <bot> --coords <x> <y> <z>— navigate to coordinates with~offsets/fpp move <bot> --roam [x,y,z] [radius]— autonomous random wandering (persists across restarts)
Per-Bot Features
respawnOnDeath— auto-respawn on death;autoEatEnabled/autoPlaceBedEnabled— per-bot automation overridesnavAvoidWater/navAvoidLava— per-bot pathfinding avoidance;defaultWaterPathAvoidanceEnabled(init:true)- Mob type selector GUI — 54-slot paginated chest for toggling specific mob types per-bot
- Share control — grant/revoke controller access to other players from BotSettingGui
Extension / Addon API
FppExtensioninterface — drop.jarfiles intoextensions/; auto-loaded, sorted by priority; lifecycle:onEnable(FppApi)/onDisable()- 20+ API event classes; full access to commands, tick handlers, settings GUI tabs, navigation, service registry
Random Name Generator
bot-name.mode: random(new default) — generates realistic Minecraft-style usernames on the fly; no moreBot1234
WorldEdit Integration
--weselflag for/fpp mineand/fpp place— uses current WorldEdit selection; Permissions:fpp.mine.wesel,fpp.place.wesel
Automation Defaults
- New
automationsection:auto-eat: true,auto-place-bed: true— copied to new/restored bots; existing bots keep per-bot values
Pathfinding & Knockback Fixes
- Door/gate/trapdoor handling; ladder/vine/scaffolding climbing; knockback fix for 1.21.9+; organic walk wobble (±5°); sprint-jump on airborne→ground transition
Folia Support
folia-supported: trueinplugin.yml; compatible with Folia's regionised threading model
Configuration
- Config version: 65 → 70 (v65→v67: mass-disable-threshold, bot-name.mode, follow-recalc-interval; v67→v70: ping latency-effect, spike, enabled-default changes)
- DB Schema: v18 → v22 (v18→v19: nav_avoid_water/lava; v19→v20: ping; v20→v21: pve_smart_attack_mode, respawn_on_death; v21→v22: auto_milk_enabled, prevent_bad_omen, ping_user_set)
Permissions
- New nodes:
fpp.save,fpp.setowner,fpp.skin,fpp.attack.hunt,fpp.find,fpp.sleep,fpp.stop,fpp.mine.wesel,fpp.place.wesel,fpp.tph.all
Fake Player Plugin (FPP) 1.6.6.7
release27 апреля 2026 г.v1.6.6.7 (2026-04-26)
Extension / Addon API
- New
FppExtensioninterface — third-party developers can drop.jarfiles intoplugins/FakePlayerPlugin/extensions/and FPP will auto-load them on startup ExtensionLoaderscans extension jars forFppExtensionimplementations, instantiates them, and registers them as addons sorted by priority- Full addon lifecycle:
onEnable(FppApi)/onDisable()with access to commands, events, tick handlers, settings GUI tabs, metadata, navigation API, and service registry - 20+ API event classes for bot interactions (spawn, despawn, move, mine, place, attack, follow, chat, etc.)
- See
EXTENSIONS.mdin the repository for the complete addon developer guide
Random Name Generator
- New
bot-name.mode: random(default) — generates realistic Minecraft-style usernames on the fly when the name pool is empty or whenmode: randomis set bot-name.mode: pool— legacy behaviour, picks frombot-names.yml- No more
Bot1234fallback names; every auto-generated name looks like a real player
New Commands
/fpp find <bot> <block> [--radius <n>] [--count <n>]— bot scans nearby chunks for the target block type, reserves matching locations, and mines them one by one. Async chunk snapshot scanning with progressive mining and raytrace visibility check. Permission:fpp.find/fpp groups [gui|list|create <name>|delete <name>|add <group> <bot>|remove <group> <bot>]— personal bot groups with GUI management. Group bots together for bulk commands. Permission:fpp.groups/fpp sleep <bot|all> <x y z> <radius>— registers a sleep-origin; bot auto-walks to the nearest free bed within radius at night and sleeps./fpp sleep <bot|all> --stopclears the origin. NMS sleep/wake with temporary bed placement. Permission:fpp.sleep/fpp stop [<bot>|all]— instantly cancels all active tasks for a bot (move, mine, place, use, attack, follow, find, sleep). Permission:fpp.stop/fpp move <bot> --coords <x> <y> <z>— navigate a bot to exact world coordinates; supports~relative offsets. Permission:fpp.move/fpp attack <bot> --mob --move— PvE mob-targeting mode now supports pursuit; bot chases the target when out of melee range and stops to attack when in reach. Permission:fpp.attack
WorldEdit Integration
- New
--weselflag for/fpp mineand/fpp place— uses the player's current WorldEdit selection as the work area instead of manual--pos1/--pos2 - Soft-dependency:
WorldEditadded toplugin.ymlsoftdepend list - Permissions:
fpp.mine.wesel,fpp.place.wesel
Automation Defaults
- New
automationconfig section:auto-eat: true— bots eat food from inventory when hunger prevents sprintingauto-place-bed: true— bots may place a bed from inventory for auto-sleep, then break it after waking
- Values are copied to newly spawned/restored bots; existing bots keep per-bot overrides
Pathfinding & Knockback Fixes
- Door handling — bots now correctly open and pass through wooden doors, fence gates, and trapdoors during pathfinding
- Ladder and vine climbing — ASCEND/DESCEND moves now support ladders, vines, and scaffolding
- Knockback fix double-check — resolved residual knockback issues on 1.21.9+ with tiered strategy verification
- Organic walk wobble — subtle sine-wave yaw drift (±5°) on straight WALK segments for more human-like movement
- Sprint-jump naturalness — jump fires on first airborne→ground transition instead of fixed 6-tick timer
Folia Support
folia-supported: truedeclared inplugin.yml- Compatible with Folia's regionised threading model
Proxy & Communication
- Enhanced proxy communication with error handling and pending bot despawn management
fpp.tph.allpermission — teleports all accessible bots to the sender at once
Configuration
- Config version: 65 → 67
chunk-loading.mass-disable-threshold: 100— auto-releases chunk tickets when bot count exceeds this threshold to prevent mass-bot lagbot-name.mode: random(new default)pathfinding.follow-recalc-interval: 100(new key)
Permissions
- New nodes:
fpp.find,fpp.sleep,fpp.stop,fpp.attack.hunt,fpp.mine.wesel,fpp.place.wesel,fpp.tph.all - All nodes declared in
plugin.ymlfor LuckPerms tab-completion
Technical
- Database schema updates for bot groups and despawn snapshot persistence
BotGroupCommand,BotGroupStorefor group managementFindCommandwith async chunk snapshot scanning and block reservation systemSleepCommandwith NMS sleep/wake and night-watch repeating taskStopCommandwith dependency injection of other command instances for bulk cancellation
Fake Player Plugin (FPP) 1.6.6.2
release21 апреля 2026 г.v1.6.6.2 (2026-04-21)
🐛 Critical Bug Fixes
-
/fpp despawn allinventory preservation — Fixed critical bug where bulk despawn (/fpp despawn all,/fpp despawn --random [n],/fpp despawn --num <n>) completely erased all bot inventories and XP. Root cause:FakePlayerManager.removeAll()had zero snapshot logic — it just cleared internal maps and scheduled entity removal without capturing any data. Single-bot despawn (/fpp despawn <name>) worked correctly because it called a different method (delete()) that had proper snapshot code.removeAll()now implements the same synchronous snapshot system: captures inventory (main/armor/extra) and XP (total/level/progress) for ALL bots before any maps are cleared or entities are removed. Bulk and single-bot despawn now behave identically. -
Dimension spawn coordinate fix — Bots spawned directly in the Nether or End now stay at their exact spawn coordinates. Previously, Minecraft's portal/respawn logic would teleport bots during the 5-tick spawn grace period, corrupting coordinates.
BotSpawnProtectionListenernow blocks ALL teleport causes (PLUGIN,UNKNOWN,NETHER_PORTAL,END_PORTAL,END_GATEWAY) during the spawn window, not justPLUGINandUNKNOWN. Bot identification during spawn also improved — fallback UUID lookup ensures bots are recognized even before the PDC key is written.
💾 Despawn Snapshot Persistence Across Restarts
-
Remember bot inventory when rejoining — Bot inventory and XP are now fully preserved across server restarts after manual despawn. When you
/fpp despawn <name>(withbody.drop-items-on-despawn: false), the bot's inventory (main/armor/extra slots) and XP (total/level/progress) are saved to a persistent snapshot (stored in thefpp_despawn_snapshotsdatabase table ordata/despawn-snapshots.ymlfallback when DB is disabled). When you/fpp spawnthe same bot name later — even after a server restart — the snapshot is automatically restored, giving the bot back everything it had before despawn. -
New database table
fpp_despawn_snapshots— Schema v17 → v18 adds a dedicated table for despawn snapshot persistence:bot_name,server_id,inventory_data(pipe-separated slot encoding),xp_total,xp_level,xp_progress,saved_at. Snapshots are loaded at startup viaFakePlayerManager.initDespawnSnapshots()and consumed on next same-name spawn. YAML fallbackdata/despawn-snapshots.ymlis used whendatabase.enabled: false. -
Respects
body.drop-items-on-despawntoggle — Whentrue, items physically drop to the ground (old behavior, no snapshot). Whenfalse(new default for all existing installs via config migration v64→v65), inventory and XP are snapshotted and restored on respawn.
⚙️ Configuration & Settings
-
New config key:
messages.death-message(defaulttrue) — Controls whether bots broadcast vanilla death messages. Whenfalse, death messages are suppressed at the event level (PlayerDeathEvent.deathMessage(null)), preventing any death announcements for bots. Added in config v63→v64. -
Config migration v64→v65 — Forces
body.drop-items-on-despawn: falsefor all existing installs. The old JAR default (true) caused silent item loss on/fpp despawnbecause items would drop to the ground and disappear. The new default (false) preserves inventory via snapshots — bots keep their items across despawn/spawn cycles and server restarts. -
SettingGui improvements — Body category now has a
body.drop-items-on-despawntoggle (chest icon — "Drop items on despawn: drop inventory + xp when despawned vs preserve for next spawn"). Messages category now has amessages.death-messagetoggle (skeleton skull icon — "Broadcast vanilla death message when a bot dies").
🔧 Technical Improvements
-
SettingGui branding update —
SKIN_OWNER_NAMEchanged from"El_Pepes"to"F_PP"for UI skull rendering consistency. -
BotSpawnProtectionListener detection robustness —
isFppBot()is now instance-based (not static) and includes a UUID-based fallback lookup againstFakePlayerManager.activePlayersfor bots that haven't had their PDC key written yet (fires during the very firstPlayerJoinEventinsideplaceNewPlayer()). -
Language file cleanup — Fixed several rendering inconsistencies in
en.ymlmessage keys (delete-success,bot-rename,chat-*,swap-*,move-listpos-empty,place-*— corrected character sequences for consistent display).
📋 Config & Database Versions
-
Config version: 63 → 65
- v63→v64: Added
messages.death-message: true - v64→v65: Forced
body.drop-items-on-despawn: falsefor existing installs
- v63→v64: Added
-
Database schema: 17 → 18
- v17→v18: New
fpp_despawn_snapshotstable for inventory/XP persistence across restarts
- v17→v18: New
Fake Player Plugin (FPP) 1.6.6.1
release21 апреля 2026 г.v1.6.6.1 (2026-04-20)
FPP BungeeCord Companion (fpp-bungee.jar)
- New standalone BungeeCord/Waterfall proxy plugin — drop
fpp-bungee.jarinto your BungeeCordplugins/folder; no config needed - Registers
fpp:proxyplugin-messaging channel; listens forBOT_SPAWN,BOT_DESPAWN,SERVER_OFFLINEmessages from backend servers - Maintains a live bot registry; pings all backend servers every 5 s and caches total player counts
- Intercepts
ProxyPingEventto inflate the proxy-level server-list player count and hover sample list (up to 12 bot names shown) - Prints a prominent anti-scam warning on every startup — FPP and this companion are 100% free; if you paid for them you were scammed
- Source:
bungee-companion/module in the FPP repository
Bug Fixes
- Bot join/leave message color fix —
BotBroadcastnow parses display names with full MiniMessage + legacy&/§color support. Previously, color tags in bot display names could render as raw text in join/leave broadcasts; display names now render exactly as defined inen.yml
Fake Player Plugin (FPP) 1.6.6
release20 апреля 2026 г.v1.6.6 (2026-04-20)
FPP Velocity Companion (fpp-velocity.jar)
- New standalone Velocity proxy plugin — drop
fpp-velocity.jarinto your Velocityplugins/folder; no config needed - Registers
fpp:proxyplugin-messaging channel; listens forBOT_SPAWN,BOT_DESPAWN,SERVER_OFFLINEmessages from backend servers - Maintains a live bot registry; pings all backend servers every 5 s and caches total player counts
- Intercepts
ProxyPingEventto inflate the proxy-level server-list player count and hover sample list (up to 12 bot names shown) - Prints a prominent anti-scam warning on every startup — FPP and this companion are 100% free; if you paid for them you were scammed
- ⚠️ See the Velocity Companion section above for install steps and official download links
Follow-Target Automation (/fpp follow)
- New
/fpp follow <bot|all> <player> [--stop]command — bot continuously follows an online player; path recalculates whenever the target moves >3.5 blocks --stopcancels following on one or all bots- FOLLOW task type persisted in
fpp_bot_tasks— bot resumes following after server restart if the target is online - Permission:
fpp.follow
Per-Bot PvE Settings (now fully live)
BotSettingGuiPvP tab now has live-editable per-bot PvE controls:pveEnabledtoggle,pveRange,pvePriority(nearest/lowest-health),pveMobTypes(entity-type whitelist — empty = all hostile)- Settings persisted in
fpp_active_bots(DB schema v15→v16) - Config keys:
attack-mob.default-range,attack-mob.default-priority,attack-mob.smooth-rotation-speed,attack-mob.retarget-interval,attack-mob.line-of-sight
Skin Persistence Across Restarts (DB v16→v17)
- Resolved bot skins are now saved to
fpp_active_bots(skin_texture+skin_signaturecolumns) - Bots reload their cached skin on server restart — no additional Mojang API round-trip needed
Server-List Config Keys
- New
server-list.count-bots(defaulttrue) — controls whether bots are included in the displayed server-list player count - New
server-list.include-remote-bots(defaultfalse) — include remote proxy bots in the server-list count (NETWORK mode) - Config v60→v61 migration adds both keys with no behaviour change for existing installs
pathfinding.max-fall
- New
pathfinding.max-fallkey (default3) — A* pathfinder will not descend more than this many blocks in a single unbroken fall
Bug Fixes & Build
Attribute.MAX_HEALTHcompatibility — fixedNoSuchFieldErrorcrash on Paper/Purpur 1.21.1 and older. NewAttributeCompatutility resolves the correct enum constant at class-load time (MAX_HEALTHon 1.21.3+,GENERIC_MAX_HEALTHon older builds) — all Paper 1.21.x versions are now fully supported- FPP Velocity banner — replaced
█block characters in the anti-scam section with═double-line rules matching the rest of the console banner style; version bumped to 1.6.6 - IntelliJ build —
fpp-velocity.imlwas missing, causing the IntelliJ artifact builder to output an emptyfpp-velocity.jar; the module file is now committed with the correct source root and full Velocity API transitive classpath
DB Schema v15 → v16 → v17
- v15→v16:
fpp_active_botsgainspve_enabled BOOLEAN DEFAULT 0,pve_range DOUBLE DEFAULT 16.0,pve_priority VARCHAR(16),pve_mob_type VARCHAR(64)— per-bot PvE settings - v16→v17:
fpp_active_botsgainsskin_texture TEXT,skin_signature TEXT— persists resolved skin data across restarts
Config v60 → v61 → v62 → v63
- v60→v61:
server-listsection added (count-bots,include-remote-bots) - v61→v62:
pathfinding.max-falladded - v62→v63:
attack-mob.*default config keys added
