COWMODSКаталог модов

Fake Player Plugin 2.0 (FPP)

Advanced NPC / Bot plugin for Paper, Purpur, and Folia 1.21+

Автор: Janky-Development34,9 тыс.67обновлён 13 окт. 2026 г.
Механики игрыУправлениеМобы

Описание

FakePlayerPlugin 2.0

FakePlayerPlugin 2.0

Server-side bots that actually behave like players

AFK farms · mining · mob grinders · automation · bot rentals

Version Paper Java License

Download  •  Source  •  Wiki  •  Discord


[!TIP] You log off. Your farms stop. Your mines go quiet. Not anymore. FPP 2.0 spawns real server-side bots that keep your farms, mines and grinders running while you're away. Free, open source, no license key, no paywall.

FPP spawns server-side bot entities for AFK farms, automated tasks, testing and NPC simulations, with real A* pathfinding, PvE combat, precise clicking and a full GUI suite. It is deliberately not a fake-online-count tool: no tab list, no server-list entry, no player spoofing, ever.

🧩 19 systems⌨️ 25 commands📜 MIT open source🌿 1.21+ Folia ready

⚔️ PvE combat for AFK mob farms

A bot guarding a mob farm

Guard a post and hit every mob that comes into reach, with real client combat.

  • 🎯 Mob-type selection, detect range and target priority
  • ⏱️ Real attack-charge pacing, best weapon, line of sight
  • 🛡️ --stand holds a post for farms, --chase hunts and returns to its post
/fpp attack Guard --stand --mobs zombie,husk

⛏️ Find & mine, no X-ray

A bot mining a vein of ore

Search, path to and mine ores, logs or any block list, ranked by walking effort. Only blocks the bot could actually see get targeted.

  • 🔧 Tool auto-equip and real client dig logic
  • 🎒 Inventory-aware: deposits at storage when full
  • 🚧 Anti-stuck watchdogs
/fpp find Miner ores --radius 16

🧱 Clear areas layer by layer

A bot clearing a pit layer by layer

Clear a chunk, an area, a selection or a radius. The bot digs down from inside, seals water and lava, collects the drops, deposits them at storage and builds itself up when it gets stuck.

🖱️ Click automation & multitasking

Bots mining and eating at the same time

Spawn bots with their actions already running.

  • 🎯 Left or right-click at the exact aim point, only on what is under the hit box
  • 🔁 Hold, or repeat on your own pacing
  • 🍖 Auto-eat from the off-hand, in parallel with mining, moving and combat
  • 🧠 Move, find, click and attack all at once, arbitrated by priority instead of cancelling each other
/fpp spawn --name Cobble left-click --hold

💰 Bot rental economy

The bot rental shop GUI

Let players pay real currency for a bot and hours of runtime.

EconomyVault, Vault2.0 or ExcellentEconomy
BillingPer hour, tracked live, extendable mid-rental
PackagesBulk tiers, rank discounts, auto-renew, built-in shop GUI
ExpiryAuto-despawns the instant paid time runs out, inventory saved
No economy?/fpp rent give needs no economy plugin at all
DefaultOff. Opt in only if you want it

🏷️ Live nametags & rarity skins

A three-row nametag and a legendary skin roll
  • 🪪 A three-row tag: live activity (idle, moving, mining, fighting, eating), custom name and the mandatory owner tag
  • 🎲 Skins roll from configurable rarity pools, up to a 1 in 100,000 legendary roll
  • 💾 Signed once via MineSkin and cached forever

🧰 And everything else

Every other system
SystemWhat it does
🧭A* PathfindingParkour, bridging and block-breaking, every path verified before the first step
🔀MultitaskingMovement arbitrated by priority, not by cancelling other tasks
🍎Auto-EatOff-hand eating that never interrupts work
🖥️GUI SuiteBot list hub, per-bot settings, global settings with debug toggles, help menu
👻Invisible to PlayersNo tab-list entry, no server-list count, no join / leave / death noise
💽PersistenceBots, inventories, XP, rentals and tasks survive restarts. SQLite or MySQL
🌐Proxy NetworksVelocity and BungeeCord with shared MySQL and cross-server placeholders
🔄Config SyncIdentical configuration across every backend on a proxy network
🌿Folia SupportTicking, nametags and pathfinding are all region-thread safe
🔑LuckPerms-FaithfulNo hard-coded operator bypasses; your permissions plugin decides
🧬ViaVersion-AwareBots register the native protocol, so ViaVersion never flags them
🆔Readable Bot UUIDsDeterministic UUIDs with the bot number embedded, zero collision risk with real accounts
📊Performance Tooling/fpp perf dashboard, history, benchmark reports and Spark integration
🏷️PlaceholderAPIPlaceholders for bots, owners and rentals

⌨️ Commands

Everything runs off one root command: /fpp (aliases /fakeplayer, /fp).

Show the command reference
CommandUsagePermissionDescription
/fpp spawn--name <name>fpp.spawnSpawn one bot at your location
/fpp despawn<name>|all|ownfpp.despawnDespawn bots by name, owner or count
/fpp list[page]fpp.listList all currently active bots
/fpp move<bot> --to <target>fpp.movePathfind to a bot, player or coordinates
/fpp left-click<bot> --repeat|holdfpp.left-clickBreak blocks / attack at the exact aim point
/fpp right-click<bot> --repeat|holdfpp.right-clickUse items / interact at the exact aim point
/fpp find<bot> <block> -r <n>fpp.findSearch, path to and mine nearby blocks
/fpp storage<bot> [--deposit]fpp.storageSet or manage bot storage targets
/fpp attack<bot|all> [--once]fpp.attackSwing / attack, guard or chase mobs
/fpp sneak<bot> [on|off]fpp.sneakToggle a bot's sneaking state
/fpp freeze<bot|all> [on|off]fpp.freezeFreeze or unfreeze a bot in place
/fpp inventory<bot>fpp.inventoryOpen a bot's full inventory
/fpp rename<bot> <name>fpp.renameChange a bot's display name
/fpp info[bot|spawner] <name>fpp.infoQuery a bot's session history
/fpp check--allfpp.checkRun a full system health check
/fpp settings[bot]fpp.settingsOpen the interactive settings GUI
/fpp rentbuy|extend|info|givefpp.rentRent a bot with real economy currency
/fpp reload[all|config|lang]fpp.reloadReload plugin configuration
/fpp help[page]fpp.helpShow the command help menu

[!NOTE] fpp.admin and fpp.op grant full access, fpp.use is the default user tier, and every command breaks down further into fpp.<command>[.<action>][.<scope>] nodes, down to per-permission bot limits like fpp.spawn.limit.5.


📋 Requirements

ServerPaper or Purpur 1.21+ (up to 1.21.11 and the 26.1.x to 26.3.x releases), or Folia. Not Spigot or CraftBukkit
Java21 or newer
OptionalVault / Vault2.0 / ExcellentEconomy (rentals), LuckPerms, PlaceholderAPI, ViaVersion, Spark

💜 Free & open source

  • ✅ No license key, no paywall, runs unconditionally
  • ✅ Full source: audit it, fork it, self-host it
  • ✅ Pull requests welcome under the contributing guidelines

[!IMPORTANT] Player spoofing, bot chat, a runtime addon loader and license / DRM checks are deliberately excluded and won't be re-added.


Join the community

Setup help, bug reports and feature discussion happen in the open, not behind a support ticket.

Discord GitHub Modrinth Hangar

Made by Janky Dev · NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.

Галерея

Последние версии

Все версии →
release

Fake Player Plugin 2.0 (FPP) 2.1.5

2.1.5
13 окт. 2026 г.2,3 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bungeecord, folia, paper, purpur, velocity
Скачать
Что нового
Bots now act, fight, mine, walk and load chunks like a real client, with a new pathfinder, reworked GUI and automation commands. ### Added - **`/fpp clear`** - layer-by-layer excavation of a chunk, area, selection or radius. Permission `fpp.clear`. - **Spawn actions** - `/fpp spawn ... <action> [then|wait t <action> ...]` starts work as soon as the bot is online. Config: `spawn-actions.*`. - **`/fpp menu`** hub and a **Chunks** settings category. - **Rent GUI** and shop integration - `/fpp rent` shop, auto-renew, bulk discounts, placeholders, cancellable `FppRentalPurchaseEvent`. - **Find** `--scan` mode reports what is visible without moving. - **Build ID** in every jar: banners, GUI credit, `%fpp_build%`. ### Changed - **Left/right-click** ported from the 26.3 client's click logic (`--once`, `--repeat`, `--hold`). - **PVE / `/fpp attack`** rebuilt as client combat: `--stand` guard, `--chase` hunter, real attack packets, no damage shortcut. Config `attack-mob.*`. - **Find** only reports blocks with an exposed face - no X-ray. - **Pathfinding rebuilt** in-house (Pathetic removed): A* over real collision shapes (parkour, ladders, swimming, doors, bridging); Folia-safe. - **Chunk loading** is client-authentic: no plugin chunk tickets, bots just report a render distance. - **GUI overhaul** with card grids, paging, back buttons; creator head at bottom-left; new startup/shutdown banners. - **Economy** has one price engine; failed spawns refund. - **No bot chat events**: no join/leave/death/advancement messages or relay. `messages.join-message`/`leave-message` removed. ### Fixed - **plugin.yml** parse error (`fpp.rent.free`/`fpp.rent.auto`) that stopped the plugin loading. ### Performance - Viewer snapshot built once per tick; faster pathfinder and Find/Clear. ### Removed - ~140 unused methods, four dead classes, unit tests, Pathetic and old `pathfinding.*` options.
release

Fake Player Plugin 2.0 (FPP) 2.1.0

2.1.0
12 окт. 2026 г.1,4 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bungeecord, folia, paper, purpur, velocity
Скачать
Что нового
### Fixed - **Network Protocol Error kick** (`Cannot remove from team ...`): a per-viewer packet guard keeps scoreboard teams consistent, so TAB/LuckPerms/AFK-display teams can no longer desync a client. - **Hot reload** (PlugManX): classes preloaded, shutdown steps isolated, leftover bots purged. ### Changed - **Honest bots:** tab list off by default (`tab-list.enabled`; when on, listed only as `[Bot] - name`, enforced for every viewer); no fabricated ping; `%fpp_online%`/`%fpp_total%` count real players only; bots can't take a real account's name. - **Name tag:** three separate rows with vanilla-style plates (`nametag.second-line.background-opacity`, `row-spacing`); name `#A78BFA`, indicator `#BAFF4F`. Vanilla name can't reappear, and the tag follows a mounted bot without lag. ### Added - **Auto mount** (`body.auto-mount`, default on): boats and moving minecarts pick bots up like villagers; bots stay seated; a real player boarding a boat takes the first seat. - **Mount memory:** a bot that despawns in a vehicle returns in it (a shared vehicle is re-boarded), like a player logging back in. - **Auto update** (`update-checker.auto-update`, default on): Modrinth release is downloaded to `plugins/update/`, SHA-512 verified, installed on restart.
release

Fake Player Plugin 2.0 (FPP) 2.0.6.1

2.0.6.1
20 сент. 2026 г.3,8 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bungeecord, folia, paper, purpur, velocity
Скачать
Что нового
### Added - Minecraft 26.3 Support - `CompatibilityChecker.isSupportedVersion` now accepts `26.3.x` alongside `26.1.x` and `26.2.x`. The unsupported-version warning and wiki version ranges now read `up to 1.21.11, and 26.1.x–26.3.x`. - Compile-time Paper dev bundle stays on `26.1.2.build.65-stable`. ### Fixed - Vanilla Bot Name Showing Over the Custom Nametag - The team packets that hide a bot's vanilla over-head name were gated on `PacketHelper`'s unrelated tab-list reflection init, so if that init failed the hide was silently skipped and the vanilla name drew on top of the custom text_display tag. Those packets no longer depend on it. - Failures while sending the hide-team packets are now written to the debug log, and a failure to build the hide team logs a warning at startup instead of failing silently. ### Added - Console & Command-Block Spawning - `/fpp spawn` can now be run from the server console and from command blocks, not just in-game - admin-tier (`fpp.spawn`) only, and `--location <x> <y> <z> <world>` is now mandatory for them since neither has a location of its own to fall back on. User-tier spawns (`fpp.spawn.user`) still require a real player: personal bot ownership, the per-player bot limit, and the spawn cooldown all key off a player's UUID, which console/command-block senders don't have.
release

Fake Player Plugin 2.0 (FPP) 2.0.6

2.0.6
2 сент. 2026 г.2,5 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bungeecord, folia, paper, purpur, velocity
Скачать
Что нового
### Added - `/fpp spawn --location` - Admins (`fpp.spawn`) can now spawn a bot at an arbitrary spot instead of only their own location: `/fpp spawn --location <x> <y> <z> <world>`, combinable with `--name`. User-tier spawns (`fpp.spawn.user`) are unaffected and still always spawn at the sender's own location. Tab-completes coordinates and world names. ### Improved - Left/Right-Click Overhaul - **Auto tool-switch**: before mining a block, `/fpp left-click` now auto-equips the best available tool (highest tier of the right category - pickaxe/axe/shovel/hoe) already in the bot's inventory, the way a competent player would. Toggle via `left-click.auto-tool-switch` in `config.yml` (default on). Reuses the same tool-selection logic `/fpp find`'s auto-mining already relied on, instead of a second copy of it. - **Off-hand fallback for right-click**: a bot's right-click now tries the main hand first and, only if that action had no effect, retries with the off-hand item - mirroring the vanilla client's own hand-loop exactly. Bots carrying a shield or food off-hand can now actually use it; previously the off-hand was never touched by right-click at all. - **Fixed:** a bare `/fpp right-click <bot>` (no `--once`/`--repeat`/`--hold` flag) skipped the mode-specific permission check entirely - a player holding only `fpp.right-click.stop` could still start a default click. Now always gated on the resolved mode's permission, matching `left-click`. - **Fixed:** `/fpp right-click`'s task-resume path silently did nothing if its cached aim state was missing (e.g. after certain restart races) - the task stayed registered but never actually ran. It now rebuilds a fresh aim from the bot's own view and resumes normally, matching `left-click`. - Internal: `LeftClickCommand`/`RightClickCommand` now share one base class for aim geometry, stand-location search, and the stop/cleanup/save-restore lifecycle instead of two nearly-identical ~1000-line copies; the three parallel `ONCE/REPEAT/HOLD/STOP` mode enums collapsed into one.
release

Fake Player Plugin (FPP) 2.0.5

2.0.5
9 авг. 2026 г.3,7 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bungeecord, folia, paper, purpur, velocity
Скачать
Что нового
### Added — Bot Auth System Bots can now play along with a login-wall plugin instead of sitting there unauthenticated. Off by default (`auth.enabled: false`); needs `database.enabled: true` to remember passwords across joins. - **Auto-register / auto-login**: on a bot's first join it generates a strong random password, encrypts and stores it (AES-256/GCM, key in `auth.key` in the plugin data folder, never in config.yml or logs), then sends `auth.register-command` as the bot after a randomized human-like delay. Every later join sends `auth.login-command` with the same remembered password instead. - **Works against any login plugin** built around a `/register <password> <password>` / `/login <password>` command shape — the defaults already match nLogin, AuthMe, LoginSecurity, CrazyLogin, and xAuth. Commands are replayed exactly like a real client's typed chat command (through `PlayerCommandPreprocessEvent`), not a bare command dispatch, so plugins that hook that event directly (most login plugins, including nLogin) still see the attempt. - **Dedicated nLogin integration**: nLogin's command path throws for a bot's connection no matter what, so it's authenticated through nLogin's own public API instead — fully optional, inert if nLogin isn't installed. - **A bot stands still and doesn't turn its head** from the moment it joins until its register/login outcome is known (read from the login plugin's own reply — chat, title, subtitle, or action bar), exactly like a real not-yet-authenticated player; `auth.pending-timeout-ticks` is the hard fallback so an unrecognized response never leaves a bot stuck frozen. - **New `/fpp auth` command**: `on`/`off`, `status [bot]`, `reset <bot>`, `setpassword <bot> <password>`. New permission `fpp.auth` (default `op`, included in `fpp.op`). - **New settings GUI category** (`🔐 ᴀᴜᴛʜ`): toggle, register/login command templates, delay/timeout ticks, and password length/complexity — see [Configuration](Configuration). ### Added — "Bot Console" Color Theme Every chat message, GUI, and console log now pulls from one consistent violet/lime palette instead of the scattered ad-hoc colors (blue accents, plain named colors, mismatched grays) used previously. Purely visual — no config or permission changes. - Chat/GUI text: violet (`#A78BFA`) primary accent, lime (`#BAFF4F`) success/highlight, red (`#FF6A5C`) errors, plus a consistent ink/mute/mute-2/line neutral scale for body text, captions, and dividers. - Console output (`FppLogger`, the startup/shutdown banners) recolored to match with true-color ANSI. - `language/en.yml`'s header now documents the full palette for anyone customizing messages by hand. ### Added — Auth & Perf Settings/Help Categories - The settings GUI (`/fpp settings`) gained a **🔐 ᴀᴜᴛʜ** and a **📈 ᴘᴇʀꜰ** category (general, body, auth, perf, debug) — the perf category exposes every `performance.*` config option, including the self-profiler, with changes restarting the monitor live instead of requiring `/fpp reload`. - The help GUI (`/fpp help`) split `auth` and `perf` out of the catch-all **ᴄᴏʀᴇ** category into their own tabs, each with a distinct accent color.
beta

Fake Player Plugin (FPP) 2.0.4

2.0.4
25 июл. 2026 г.1,2 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bungeecord, folia, paper, purpur, velocity
Скачать
Что нового
### Added — Multitasking (Reverses the v2.0.0 Single-Action System) Bots can now run multiple tasks at once instead of being limited to one. Starting a new task no longer cancels every other running task for that bot — `move`, `find`, `left-click`, `right-click`, `attack`, and PVE auto-combat are now independent systems that can all be active on the same bot simultaneously, the same way `auto-eat` already ran alongside a paused task. - **PVE always runs.** Auto-combat no longer stands down while a manual task is active; it only ever *chases* a target when nothing else currently owns the bot's movement. - **Movement is arbitrated by priority, not cancellation.** Only one navigation can drive the bot at a time: an explicit `/fpp move` always gets it, a manual hand-action's short walk-to-reach (`left-click`/`right-click`/`find`) outranks background movement (PVE's chase), and background movement never interrupts anything. A request that loses out declines gracefully instead of hijacking the bot mid-walk. - **`/fpp find` no longer collides with `/fpp left-click`** — each now has its own navigation owner. - **Auto-eat is fully parallel when eating from the off-hand** — mining, moving, and combat all continue untouched. Only the main-hand fallback still pauses briefly. - **Restart persistence now resumes both click tasks** if a bot had `left-click` and `right-click` both active when the server stopped, instead of restoring only one. - **Every command's cleanup is now scoped to what it actually owns**, so stopping one task can no longer silently cancel an unrelated concurrent task's navigation. **What this doesn't change:** a bot still has one head and one main hand — two hand-actions aimed at different targets will still visibly alternate the bot's aim between them each tick. ### Added — Configurable Left/Right-Click Interval The pacing of held `/fpp left-click`/`/fpp right-click` automation (`--repeat`/`--hold`) is no longer a fixed constant — it's a server-wide default that every bot can individually override. - **New config options**: `left-click.interval-ticks` (default `4`, matches vanilla's own block `destroyDelay`) and `right-click.interval-ticks` (default `4`, matches the vanilla client's own `rightClickDelay`) in `config.yml`. Entity attacks are unaffected either way — those are still paced solely by the held weapon's real attack-speed cooldown, exactly like a real player. - **Per-bot override**: each bot's `⚙ ɢᴇɴᴇʀᴀʟ` settings category now has **ʟᴇꜰᴛ-ᴄʟɪᴄᴋ ɪɴᴛᴇʀᴠᴀʟ** and **ʀɪɢʜᴛ-ᴄʟɪᴄᴋ ɪɴᴛᴇʀᴠᴀʟ** tiles (1–40 ticks); leaving a bot on the global default requires no configuration. Overrides persist across restarts (YAML and database, schema bumped to v27). - No new permission node — gated by the existing `fpp.settings` bot-ownership model, same as `chunk-load-radius` and the PVE range tile. ### Fixed — Dead `fpp.mine.*` Permission Nodes Removed `fpp.mine`, `fpp.mine.start`, `fpp.mine.once`, `fpp.mine.stop`, `fpp.mine.area` — leftovers from the old `/fpp mine` command that was replaced by `/fpp left-click`/`/fpp right-click` several versions ago. They were still being silently granted through `fpp.op`'s children list without ever having their own permission declaration, and nothing in the codebase checked them. A full audit confirmed every other permission in `Perm.java` now has exactly one plugin.yml declaration with no dangling wildcard references. ### Added — Bot Rental Economy Players can now pay real economy currency to rent a bot for a set number of hours; the bot auto-despawns the moment its paid time runs out. Off by default (`economy.enabled: false`). - **New `/fpp rent` command family**: `buy <hours>`, `extend <bot> <hours>`, `info [bot]`, `give <player> <bot|--new> <hours>` (grant hours without charging — console-usable), `clear <bot>`. - **Provider-agnostic economy layer**: reflective, soft-dependency support for **Vault**, **[Vault2.0](https://github.com/shalom25/Vault2.0)** (same `Economy` interface, transparently covered by the Vault provider), and **ExcellentEconomy** (own API, configurable currency id), with zero compile-time dependency on any of them. - **Shop-plugin friendly**: `/fpp rent give` never touches an economy plugin itself — any shop plugin can run it as a purchase's console reward command with no FPP-side integration needed. - **Expiry sweep**: warns the owner before time runs out, then despawns safely at zero. `fpp.rent.unlimited` exempts a player's bots from expiring. - **Settings GUI tile** (`⚙ ɢᴇɴᴇʀᴀʟ` → ʀᴇɴᴛᴀʟ ᴛɪᴍᴇ) and new placeholders `%fpp_rental_count%`, `%fpp_rental_remaining%`. Persists across restarts (YAML + DB, schema bumped to v26). - **New permissions**: `fpp.rent`/`fpp.rent.info` (in `fpp.use`), `fpp.rent.give`, `fpp.rent.unlimited` (both default `op`). New wiki page: [Economy](Economy). ### Hardened — Vanilla Nametag Hiding Now Self-Heals Unconditionally The bot's real name is hidden via a packet-only scoreboard team, but anything that puts a bot on a *different* team (another plugin, an admin's `/scoreboard teams join`, …) silently evicts it, bringing the real name back. The re-assertion now fires on every nametag-refresh sweep (~10 ticks) for every active bot unconditionally, instead of only when the activity label changed — the hide no longer lapses for more than one sweep interval, regardless of cause.
beta

Fake Player Plugin (FPP) 2.0.3

2.0.3
20 июл. 2026 г.1,5 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bungeecord, folia, paper, purpur, velocity
Скачать
Что нового
## v2.0.3 (Beta) ### Fixed — Left-Click Mining Could Get a Bot Kicked ("Invalid Entity Attacked") - While mining, a held left-click resolves its target with the same combined block+entity ray a real client uses — but unlike a real client, nothing stopped it from picking a **dropped item, XP orb, or arrow** floating near the block it was breaking and sending an attack packet at it. The vanilla server disconnects any client that attacks one of those (`multiplayer.disconnect.invalid_entity_attacked`) — a real client's own UI never lets you target them with left-click, so this path only existed because a bot drives raw packets directly. The crosshair ray trace in `LeftClickCommand` now excludes `Item`, `ExperienceOrb`, and `AbstractArrow` from valid attack targets, matching what `AttackCommand`'s ray trace (via `Entity#isAttackable()`) already did. ### Fixed — Bot Nametag Could Be Permanently Lost - The bot's floating name tag is a real world entity (a `TextDisplay`), so anything capable of removing an entity — `/kill`, WorldEdit, another plugin's cleanup pass — could remove it. The periodic refresh loop only checked whether its cached reference was `null`, not whether the entity was still *valid*, so an externally-removed tag never came back. It now checks `isValid()` and respawns the tag within half a second (10 ticks) of it disappearing, making the tag effectively unremovable instead of merely "usually present." ### Added — ViaVersion-Aware Bot Connections - A bot's connection never performs a real handshake/login, so ViaVersion (when installed) had no record of it — any lookup of the bot's protocol version came back empty, which is the source of console warnings about not being able to determine a bot's client version. Bots are now registered with Via's connection manager as running the **server's own native protocol version** (i.e. "no translation needed"), using the same `UserConnectionImpl` + `ProtocolPipelineImpl` construction Via's own channel initializer uses for a real connection, and unregistered again on despawn. Entirely reflective and a no-op if ViaVersion isn't installed or its internals ever change shape.
beta

Fake Player Plugin (FPP) 2.0.2

2.0.2
10 июл. 2026 г.1 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bungeecord, folia, paper, purpur, velocity
Скачать
Что нового
## v2.0.2 (Beta) ### Fixed — Permissions No Longer Bypass LuckPerms - Removed the hard-coded `player.isOp()` shortcuts (`Perm.hasOrOp`, `BotAccess.isAdmin`, `BotListGui.isAdmin`, `BotSettingGui.isOp`) that granted admin access to server operators even when a permissions plugin like LuckPerms explicitly denied the relevant `fpp.*` node. Every permission check now goes through `hasPermission()` only, so LuckPerms grants/denies are always respected, operators included. - Fixed `canUse()` gates that were stricter than the granular permission nodes they were meant to allow — players granted only `fpp.left-click.once`/`.stop`, `fpp.right-click.once`/`.stop`, `fpp.despawn.own`, `fpp.move.to`/`.coords`, or `fpp.inventory.own` were previously blocked at the command dispatcher before those fine-grained nodes were ever checked. - Added the missing `fpp.inventory.own` permission constant and wired it into the `/fpp inventory` command and the right-click-to-open-inventory listener — this node was documented in `plugin.yml` but had no effect at all. ### Fixed — Folia Compatibility - Fixed a `TickThread` crash ("Accessing entity state off owning region's thread") when refreshing a bot's floating name-tag activity line. The nametag refresh loop now dispatches to each bot's owning region thread on Folia instead of running on the global region thread. - Fixed bots showing their vanilla over-head name doubled up with the custom name-tag display on Folia. Folia's Scoreboard/Team API is a documented gap (global state the project hasn't implemented for regionised ticking), so hiding the vanilla name no longer touches `Bukkit.getScoreboardManager()`/`Team` at all — a `PlayerTeam` is built directly from NMS and its `ClientboundSetPlayerTeamPacket`s are sent straight down each viewer's connection. - Fixed a client-crashing bug in that same rework: sending a "remove from team" packet for a bot whose name had never actually been added (e.g. a second bot's very first spawn) made the vanilla client throw and disconnect ("Network Protocol Error"). The plugin now only sends a removal for a name it actually tracked as hidden. - Fixed `onDisable()` crashing on Folia with `IllegalPluginAccessException` ("Plugin attempted to register task while disabled") when despawning bots during shutdown. `FppScheduler` now detects a disabled plugin and runs the work directly instead of scheduling it — safe, since Folia halts all region ticking before `onDisable()` runs. - Fixed Head-AI being hard-disabled on Folia entirely. The restriction predated the current per-bot region-thread dispatch and was never removed after the rest of the tick loop became Folia-safe; it now runs on Folia the same as on Paper. ### Changed — `/fpp spawn` Is Now In-Game Only - `/fpp spawn` can no longer be run from the server console (or dispatched as console) — it requires a real player sender, matching most other bot commands. - Removed world/coordinate targeting (`/fpp spawn <world> [x y z]`) — a bot always spawns at the commanding player's own location now. The `fpp.spawn.coords` permission node is gone along with it. ### Performance - Removed reflective `Method.invoke()` calls from every hot per-tick NMS path in `NmsPlayerSpawner` (`doTick()`, `getHandle()`, and everything built on it — `setJumping`, `setHeadYaw`, `setMovementForward`, `setMovementStrafe`, `applyServerVelocity`, and more) in favor of direct calls. `ServerPlayer.tickPhysics()`'s `doTick()` invocation alone accounted for ~69% of the plugin's own profiled self-time in benchmark reports; this scales linearly with bot count, so the win grows with server size.
beta

Fake Player Plugin (FPP) 2.0.1

2.0.1
6 июл. 2026 г.426Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bungeecord, folia, paper, purpur, velocity
Скачать
Что нового
## v2.0.1 (Beta) ### Changed — Left/Right-Click Are Now Real Clicks (Authentic Serverbound Packets) The bot left-click and right-click systems no longer re-implement what the server does on a click. Every action is now dispatched as an **authentic serverbound packet** through the bot's real packet handler (`FakeServerGamePacketListenerImpl`), so the server performs the click exactly as it does for a real player — full reach/anti-cheat validation, native Bukkit events (`BlockBreakEvent`, `PlayerInteractEvent`, `PlayerInteractEntityEvent`, …), item durability, hunger, use-timing and every item's own behaviour. - **New `BotClickDispatcher`** builds and dispatches `ServerboundPlayerActionPacket` (dig), `ServerboundAttackPacket`, `ServerboundInteractPacket`, `ServerboundUseItemOnPacket`, `ServerboundUseItemPacket` and `ServerboundSwingPacket` through the connection's live `handle*` methods. It first sends a `ServerboundPlayerLoadedPacket` (what a real client sends) so the server's `hasClientLoaded()` gate lets bot interactions through. - **Left-click mining** now sends `START_DESTROY_BLOCK` and lets the server drive destroy progress, sending `STOP_DESTROY_BLOCK` on a client-faithful predictor (creative/instant-break complete on the START tick). Removed the hand-rolled progress loop and direct `gameMode.destroyBlock` calls. - **Left-click attacks** go through the real attack packet (respecting the attack-strength cooldown), replacing the `performAttack` + forced-attack-ticker hack. - **Right-click** routes block use, item use and entity interaction through the real handlers, and **deletes** the fake shortcuts: directly `setType`-ing planted crops from a hardcoded seed→crop table, `applyBoneMeal`, and the manual place/plant/bonemeal branches. The server's `useItemOn` now handles placement, planting, bone meal, hoeing, bucket use, etc. natively for any item. - Protection plugins (WorldGuard, etc.) now block bot clicks the same way they block real players, since the real events fire. - **1:1 vanilla click resolution** — the bot's clicks now resolve targets exactly like a real client's pick: the combined block+entity ray from the bot's own eyes, nearest hit wins. Left-click attacks the entity directly under the crosshair (paced by the real attack-speed attribute) or digs the block; right-click interacts with the entity under the crosshair (armor-stand equip, feeding, breeding, trading, mounting) and, when that PASSes, falls through to the in-hand item use — the same order `Minecraft.startUseItem` follows. Removed all non-vanilla targeting: sender-aim entity picks (`rayTraceHostileEntity`, `rayTraceEntity`, the right-click `rayTraceTargetPlayer` entity branch), the left-click forward-cone auto-attack (`findBestMobTarget`), and target lock-on. An entity behind the aimed block is never picked; the sender's crosshair only designates which block to work on. - **Full debug tracing** — new `left-click` / `left-click-head` debug categories (in `debug.yml`, plus `Config.debugLeftClick()/debugLeftClickHead()`) mirroring `right-click`. Both systems now log the whole pipeline: target resolution, navigation, every dispatched packet (dig START/STOP/ABORT, attack, useItemOn, useItem, entity interact), consume detection and stop/cleanup. ### Fixed — Use Packets Silently Dropped by the Spam Limiter + Aim Drift Two bugs that made `--hold`/`--repeat` clicks stop working after a few seconds: - **Spam-limiter drop** — `handleUseItem`/`handleUseItemOn` feed the packet's Spigot-added `timestamp` field into Paper's incoming-packet spam limiter (`checkLimit`). Directly-constructed packets leave that field `0`, which looks like "no time passed since the last packet", so after ~8 uses the server **permanently dropped every use packet** (eating, placing, doors — everything). `BotClickDispatcher` now stamps `System.currentTimeMillis()` onto `ServerboundUseItemPacket`/`ServerboundUseItemOnPacket` (reflection-probed, no-op if the field ever disappears), so the limiter sees real inter-packet timing exactly as for a networked client. - **Aim tracking** — the bot's head was rotated once when the command started and could drift off the commanded target (knockback, entity interactions), leaving it staring at the wrong block forever. Both click loops now **re-aim at the commanded target every tick** (new `aimTarget`/`aimPoint` in the click state, never overwritten by transient per-tick picks): a passing entity still gets vanilla nearest-hit treatment, and the moment it's gone the crosshair is back on the commanded block. ### Fixed — Left-Click Resumes Mining After the Crosshair Leaves an Entity Block re-resolution in the left-click loop was gated behind a "dynamic target" flag that was false when the click started without a block pick (entity in front of the crosshair, a resumed task after restart, or a plain self-view click) — so once the entity was gone, the bot stopped instead of mining the block now under its crosshair. The loop now re-resolves the block pick unconditionally every tick, matching a real held click: entity in front → attack it; entity gone → seamlessly dig whatever the crosshair sees. The dead flag was removed. ### Fixed — Full Weapon Damage & Right-Click Arm Swings - **Attacks now use the held weapon's real damage** — bots aren't driven by the normal player tick path, so two things a real client gets for free never happened: the held weapon's attribute modifiers were never registered (`ATTACK_DAMAGE` stayed at fist level) and the attack-strength ticker never advanced (every hit was scaled to the ~20% spam-click minimum → a sword dealt ~1 damage). `BotClickDispatcher.attack` now calls `detectEquipmentUpdates()` and primes the attack-strength ticker before each attack; since the click loop already paces attacks at the real weapon cooldown, every hit lands at full strength — sword/axe damage, sweep, knockback and enchantments all apply. - **Right-click now swings the arm** — the server only broadcasts SERVER-sourced swings; for most interactions the vanilla *client* swings itself, which a bot has no client to do. The bot now sends its own swing on every consumed right-click (buttons, levers, bone meal, planting, placing, entity interactions) and on instant item uses (throwing pearls/eggs) — but not when a multi-tick use starts (eating, bow draw), matching the vanilla client exactly. ### Fixed — Bots No Longer Lose Inventory & Active Task Across Restarts Two persistence defects made every server restart / plugin update wipe bot inventories and running tasks: - **Inventory/XP restore was a one-shot timer** — applied a fixed 10–12 ticks after the restore chain spawned the bot, with a silent give-up if the body hadn't finished spawning yet (typical right after startup while chunks load). Both now use a retry loop (every 5 ticks, up to 30 s) that waits until the bot is online + valid, and log a warning instead of silently dropping if the bot never spawns. - **Task persistence was hollow since the click-system migration** — the task snapshot hardcoded every field to null/0 ("legacy mine/use/place removed") and the restore hook was an empty stub, so the active task was lost by design. The persistence layer now saves each bot's **active left/right-click task** (mode + world + exact aim point) to both the unified YAML and the `fpp_bot_tasks` DB table (`LEFT_CLICK`/`RIGHT_CLICK` rows), and resumes it after the restart: once the bot is fully spawned and its inventory (tools!) is restored, it re-aims at the saved point and restarts the same click mode via the normal task pipeline. New `SavedClickTask` snapshot + `getSavedTask`/`resumeSavedTask` APIs on both click commands; the dead 30-field legacy task model was replaced with a compact one. ### Fixed — Block Interactions Blocked by the Unconfirmed-Teleport Gate `handleUseItemOn` refuses **every** block interaction while `awaitingPositionFromClient` is armed — and it gets armed by any teleport/rotation done through the connection (bot spawn, `/fpp tp`, action locks, `CraftPlayer#setRotation`). A real client confirms teleports instantly; the bot never did, so levers, buttons, bone meal, planting and placement silently no-oped (the packet fell into the build-limit-message branch). Two-part fix: - `BotClickDispatcher` now **confirms pending teleports like a real client** before every interaction packet: if the connection is awaiting a position confirm, it dispatches a `ServerboundAcceptTeleportationPacket` with the pending id (clears the gate, snaps to the awaited position — the same thing a vanilla client does). - `refreshAim` rotates via NMS `absSnapRotationTo` instead of `CraftPlayer#setRotation`, which internally performs a connection teleport and would re-arm the gate every tick. ### Changed — Vanilla Click Timing & Armor-Stand Parity - **Right-click at vanilla speed** — held right-click now acts once per 4 ticks (the vanilla client's `rightClickDelay`), instead of every 8: the extra post-action pulse skip was removed. Bone meal, levers, buttons, doors and planting now trigger at real-player pace. - **No more eating through armor stands** — the vanilla client hardcodes `interactAt` on a non-marker armor stand as SUCCESS client-side, so a real player's click is always consumed there and never falls through to eating/using the held item. The bot now mirrors that: aiming at an armor stand consumes the right-click even when the server-side equipment swap does nothing. - **Held left-click attacks at exact weapon speed** — entity attacks are now paced solely by the bot's real attack-speed attribute (swing + attack packet each cycle); the loop's post-break pause no longer stacks on top (previously ≈16 ticks between sword hits instead of 12). Mining keeps its vanilla-like ~4-tick post-break pause. ### Added — Minecraft 26.2 Support Extended the runtime compatibility gate to cover the year-based `26.2.x` releases (Minecraft 26.2 "Chaos Cubed"). - `CompatibilityChecker.isSupportedVersion` now accepts `26.2.x` alongside `26.1.x` (old `1.x.y` remains supported below `1.21.12`). - The unsupported-version warning banner and wiki version ranges updated to read `up to 1.21.11, and 26.1.x–26.2.x`. - Compile-time Paper dev bundle stays on the stable `26.1.2.build.65-stable`; 26.2 runs via the existing version-safe NMS reflection.
beta

Fake Player Plugin (FPP) 2.0.0

2.0.0
5 июл. 2026 г.242Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bungeecord, folia, paper, purpur, velocity
Скачать
Что нового
# v2.0.0 ## Added — Minecraft 26.2 Support - Added support for **Minecraft 26.2.x (Chaos Cubed)**. - `CompatibilityChecker` now supports **26.1.x** and **26.2.x**, while older versions remain supported up to **1.21.11**. - Updated version warnings and documentation. - Continues compiling against **Paper 26.1.2** while remaining compatible with 26.2. ## Version 2.0 - Updated plugin version from **1.6.6.12.8** to **2.0.0**. - Moved the **Personality API** into the core plugin. ## Fixed — Right-Click Interaction - Bots now only activate **buttons, levers, and switches** when directly aiming at them. - Clicking the block they are attached to no longer activates them. ## Added — Better Out-of-Reach Clicking - Bots now try to move near the player's position before searching around the target. - Console and bot-issued commands still use the original behavior. - Commands still report "no path" if no valid location is found. ## Changed — Accurate Clicking - Bots now click the **exact point** the player is aiming at instead of the center of the block. - The aim remains accurate even after moving. - Falls back to the block-face center if an exact hit point isn't available. ## Documentation - Updated the README, wiki, FAQ, configuration, permissions, placeholders, and other documentation. - Removed outdated information and references to removed features. ## Permissions - Removed the unused `fpp.farm` permission. - Added missing permissions to the admin wildcard. - Clarified how per-bot GUI permissions work. ## Added — Task Pause & Single-Action System - Bots can now perform **only one task at a time**. - Starting a new task automatically stops the current one. - Auto-combat pauses during manual tasks and resumes afterward. - Added a pause/resume system that allows interrupted tasks to continue where they left off. ## Overhauled — Auto-Eat - Replaced the old instant-eat system with a full **Auto-Eat Controller**. - Added: - Per-bot enable/disable toggle. - Configurable hunger threshold. - Selectable allowed foods. - Food priority (off-hand → hotbar → inventory). - Bots now eat naturally, pause their current task, then resume it afterward. - Nametags show when a bot is eating. - Auto-eat settings are saved across restarts.