Better Spoofer v1.2

Advanced Fake Player Spoofing for Paper 1.21+

Better Spoofer

BetterSpoofer
Advanced Fake-Player Spoofing for Paper 1.21+

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

NMS-Backed TAB Spoofing Server List Ping In-World Entities Fake Chat Holograms Daily Scheduler GUI Paper 1.21

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

The Problem BetterSpoofer Solves


Every server owner knows the paradox: players want to join active servers, but your server can only become active once players join. A server showing 0 online gets skipped on every server list. New players see the player count before they read your description, before they see your spawn, before they give you a chance.

Cheap bots and janky reflection-based fake-player plugins make it worse. They crash on updates, desync from your TAB list, show broken skins, and leave error spam in your console.

BetterSpoofer injects fully NMS-backed fake players directly into Paper's player list. They appear in TAB, on the server list, in-world, and in chat, exactly like real players. No reflection hacks, no version breakage, no console noise. Your server looks alive from the first player who sees it, and stays looking alive through every off-peak hour.




Fake players shown in the TAB player count

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Core Features

Every system is configurable. Every fake behaves exactly how you want it to.

NMS-Backed Real Fake Players

  • Spawned through Paper's own PlayerList internals, not packet injection alone
  • Count toward Bukkit.getOnlinePlayers() - visible in Dynmap, PlaceholderAPI, any plugin that queries the player list
  • FakeChannel pipeline blocks PacketEvents handler injection, eliminating the most common crash vector in competing plugins
  • ViaVersion compatibility built in - no WARN spam from cross-version clients


TAB List Spoofing

  • Custom name formats with full MiniMessage and legacy &x code support
  • Randomized ping ranges with natural drift smoothing
  • Configurable update intervals - fakes never look static
  • Sort team keeps real players above fakes, or mix them in naturally


Server List Ping Manipulation

  • Multiply, add, fix, or take the max of the real player count independently
  • Max-player slot manipulated separately from the online count
  • Custom hover sample lines with MiniMessage gradients and placeholders
  • MOTD override with per-host forced-host support


Realistic Skin System

  • Built-in skin pool with 200+ skins ready to use
  • Mojang API lookup by username - fakes wear real player skins
  • MineSkin API support with API key authentication
  • MIXED source chains Mojang, built-in, and MineSkin with configurable fallback order
  • LRU-bounded cache with configurable TTL - no redundant network calls


In-World Fake Entities with Holograms

  • TextDisplay holograms above each fake with configurable name and ping format
  • Idle arm-swing animations at configurable intervals
  • Head-tracking toward nearby real players
  • Optional random wandering within a configurable walk radius with safe surface detection
  • Gravity snap to ground on spawn - fakes stand on blocks, not mid-air


Fake Chat System

  • Configurable message pool - write your own chat lines
  • Randomized intervals between messages with per-fake cooldowns
  • Custom chat format with MiniMessage support
  • Respects viewer permission - only intended audiences see fake chat


Join and Leave Broadcasts

  • Multiple random format templates per event - broadcasts never look scripted
  • Configurable min and max stay duration for organic-looking activity
  • Full MiniMessage and legacy color code support in all formats


Daily Curve Scheduler

  • Define a 24-hour player-count curve with linear interpolation between time points
  • Configurable jitter percentage - fakes fluctuate naturally around the target
  • Gradual add and remove mode avoids sudden population spikes
  • Configurable timezone - use your server's local time, not UTC
  • Pause and resume at runtime via command - override the curve without restarting


Persistence Across Restarts

  • Fakes saved to persistence.yml on shutdown
  • Restored on startup with saved name, skin, location, game mode, and latency
  • Skin cache preserved between restarts - no redundant API fetches


Discord Webhook Integration

  • Notifications for fake add and remove events
  • Optional chat-message forwarding to Discord
  • Daily activity summary at a configurable hour in your timezone
  • HTTPS-only enforcement - refuses to send over plain HTTP
  • Batch queue with global cooldown - never hits Discord rate limits


Full GUI Management

  • Paginated inventory with player-head icons showing skin, ping, type, and source
  • Detail view: remove, teleport, and send random chat from one click
  • Remove-all button with confirmation - clear the entire fake population instantly


Plugin Compatibility

  • LuckPerms: user pre-loading prevents WorldGuard and Vault sync-lookup crashes
  • PlaceholderAPI: betterspoofer_fake_count, betterspoofer_real_count, betterspoofer_total, and more
  • ViaVersion: UserConnection stubs prevent console warnings on fake player join
  • bStats: optional metrics with config toggle


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

In Action



Fake players standing in-world



The fake-player list info menu



Join and leave broadcasts

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

How BetterSpoofer Compares


FeatureBetterSpooferTypical Spoofer Plugin
NMS AccessDirect class imports, zero reflection, compile-time safeRuntime reflection, breaks on Paper updates
Player ListServerPlayer via PlayerList.placeNewPlayerPacket injection only, not in Bukkit.getOnlinePlayers()
Channel PipelineFakeChannelPipeline blocks third-party handler injectionPacketEvents crash on fake player join
SkinsMojang API, MineSkin API, built-in pool, MIXED chain with fallbackSingle source or no skin support
HologramsTextDisplay entities with configurable format and MiniMessageNone or armor-stand hacks
Scheduler24-hour curve with interpolation, jitter, gradual mode, pause/resumeNone or fixed timer
GUIPaginated player-head GUI with detail view and single-click actionsCommands only
WebhookBatched queue, global cooldown, daily summary, HTTPS-onlyNone or raw HTTP without rate-limiting


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Who This Is For


  • Survival and SMP servers Keep the look of an active community during off-peak hours. Fake players chat, move, and fill the TAB list while your real players are asleep or at work.
  • RPG and economy servers A populated world makes the experience feel complete. The daily curve scheduler ramps player count to match peak hours automatically.
  • Network owners Drop BetterSpoofer into any game mode running Paper 1.21. Single-command install. Full reload support. No restarts needed for config changes.
  • New servers launching Break the cold-start problem before your real playerbase grows. A server showing 0 online gets skipped. A server showing 8-12 gets clicked. BetterSpoofer closes that gap from day one.
  • Experienced administrators You have tried other solutions. They crashed on updates. They spammed your console. They looked fake. BetterSpoofer is the one that holds up under production load.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Technical Specs


ServerPaper 1.21+, Java 21
DependenciesPacketEvents (required). LuckPerms, PlaceholderAPI, ViaVersion (optional)
NMS BridgeMojang-mapped v1_21_R7, direct imports, zero reflection
LanguagesEnglish, Polish (add your own via lang/*.yml)
FoliaNot supported - requires Paper's threading model


Commands


CommandDescriptionPermission
/spoofer add [name] [flags]Spawn a fake player. Flags: --skin source:value, --here, --real, --phantombetterspoofer.command.add
/spoofer remove Remove a specific fake player or all at oncebetterspoofer.command.remove
/spoofer listList all active fake players with name, ping, and skin sourcebetterspoofer.command.list
/spoofer info Show detailed information about a specific fake playerbetterspoofer.command.info
/spoofer chat Make a fake player send a chat messagebetterspoofer.command.chat
/spoofer skin Change a fake player's skin at runtimebetterspoofer.command.skin
/spoofer move Move a fake player entity to your locationbetterspoofer.command.move
/spoofer tp Teleport yourself to a fake playerbetterspoofer.command.tp
/spoofer equip Set equipment on a fake player (real fakes only)betterspoofer.command.equip
/spoofer countDisplay real vs fake vs displayed player countsbetterspoofer.command.count
/spoofer scheduler Control the daily curve scheduler at runtimebetterspoofer.command.scheduler
/spoofer webhook testSend a test message to the configured Discord webhookbetterspoofer.command.webhook
/spoofer guiOpen the in-game fake player management GUIbetterspoofer.command.gui
/spoofer reloadHot-reload configuration without restarting the serverbetterspoofer.command.reload


Key Permissions


PermissionDescriptionDefault
betterspoofer.adminFull access to all commands and featuresop
betterspoofer.see-realSee real player counts in /count and PlaceholderAPIop
betterspoofer.view-fakesSee fake players in TAB when viewer-permission is setop


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Get BetterSpoofer

Every minute your server shows 0 players, you are losing potential members.
The servers that win the acquisition game look active before they are.


NMS-backed. Zero reflection. Real player-list integration. Full GUI.

Purchase once. Configure once. Let it run.

Questions? Open a discussion. Feature requests are reviewed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Product Info
Statistics
19

Views

0

Purchases

0

Downloads

195.55 KB

File size

06.07.2026

Published

06.07.2026

Updated

Info
Supported software
Supported Versions
1.21 - 1.21.11
Share & Earn

Share and earn part of the profits, an estimated €0.5 per product sale.

Log in to get your link
Product Image
Better Spoofer
Better Spoofer