Links
Tags
Creators
Details
All versions
2.0.3
Beta
Fake Player Plugin (FPP) 2.0.33 months ago 1,513
Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
Platforms
BungeeCord
Folia
Paper
Purpur
Velocity
Changes
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 inLeftClickCommandnow excludesItem,ExperienceOrb, andAbstractArrowfrom valid attack targets, matching whatAttackCommand's ray trace (viaEntity#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 wasnull, not whether the entity was still valid, so an externally-removed tag never came back. It now checksisValid()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+ProtocolPipelineImplconstruction 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.
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:oioBwOz4:HNCNiv8O"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:oioBwOz4:HNCNiv8O"
}

