Website: None
./gradlew build
Requires Java 25 for Folia 26.1.2.
FakePlayer is suppose to emulate the activities of real players in achievement, death, and leave/join messages. It does this by collecting data on the most frequent death, achievement and join/leave frequencies and emulates them randomly based on what’s most common. This plugin also has support for DiscordSRV, SQL, Tab and Velocity support using FakePlayerAPI.
If you have velocity use FakePlayersAPI to display player count on the proxies.
These messages would follow logic such as not displaying messages of fake players who are in the game. That is to keep the realism of the fake players. These fake messages also only generate for fake players. So it wouldn’t say a real player was killed.
Fake player placeholder which includes online players
An api so other plugins can hook into it. Ability to hook into other plugins, like YATPA, FASTMOTD.
It pull from past joined players usernames, and if they happen to join it replaced with another’s.
Config option - fake join and leave messages ( where you could set a range of how many fake players will leave and join within a configurable time period )
Config option - ( be able to turn off and on ) fake dynamic death messages of people fake dying ( with a configurable time period of how often these messages occur ) ( death messages based on real rates )
Config option - ( be able to turn off and on ) fake dynamic achievement message ( with a configurable time rate of how often it occurs ) ( achievement message based on real rates )
SQL and Velocity support.
DiscordSRV Support
# Server identity
server:
# Unique server UUID. Required only when MySQL is enabled.
id: ""
# MySQL/shared player count settings
mysql:
enabled: false
host: ""
port: 3306
database: ""
username: ""
password: ""
# Fake player population
fake-players:
min: 6
max: 10
# Fake activity timing.
# Frequency is measured in ticks.
# 20 ticks = 1 second.
# 1200 ticks = 1 minute.
# -1 = dynamic, learned from real server activity.
activity:
join-leave:
frequency: -1
deaths:
enabled: true
frequency: -1
achievements:
enabled: true
frequency: -1
# Learning settings for dynamic timing.
learning:
# Drops timing samples that are unusually far from normal.
# 0 drops nearly everything.
# 100 keeps everything.
outlier-drop-percent: 97
# Real-player identity tracking
identity:
# Exempt a real player from being used as a fake player after this many real joins.
exempt-after-joins: 3
# Interaction protections
interactions:
tpa-guard:
# If a real player sends a teleport request to a fake player,
# FakePlayer treats that fake player as unavailable and makes the request fail.
# Each pattern must expose a named group called target, or use the first capture group.
command-patterns-recognized:
- "^/(?:tpa|tpask|call|etpa|essentials:tpa)\\s+(?<target>[A-Za-z0-9_]{3,16})(?:\\s|$)"
- "^/(?:tpahere|tphere|etpahere|essentials:tpahere)\\s+(?<target>[A-Za-z0-9_]{3,16})(?:\\s|$)"
# DiscordSRV forwarding
discordsrv:
forward:
join-leave: true
deaths: true
achievements: true
- %fakeplayer_count%
- fakeplayer.reload
- fakeplayer.exempt
- fakeplayer.interaction.bypass
None for the default shaded build.
PacketEvents is required only when building with
-PshadePE=false.
- Tab Plugin Purpose: FakePlayer count on Tab
- FakePlayerAPI Purpose: Shows Player count on velocity
- YATPA Purpose: A TPA plugin made for FakePlayers
- FakePlayerYATPA Purpose: Legacy standalone YATPA denial hook; FakePlayer now includes the built-in hook ( redundant and not needed anymore )
- GrimYATPA Purpose: Disables teleportation checks when using Grim
- RegularRank Purpose: Adds a rank "regular" so it can be exempted from Fakeplayer names ( redundant and not needed anymore )
fakeplayer:reloadfakeplayer
fakeplayer:rfp


