How it works
A big farm doesn't lag your server, your TPS is usually fine. It lags the players standing near it. Every piston that slides, every redstone lamp that flickers, every dropped item and every bone meal particle is a packet the server sends to each nearby client, and that client has to render all of it, every frame. A dense farm pushes thousands of these per second, and that flood is the FPS drop you feel the moment you walk up to it.
FPS Fixer sits in the packet stream between the server and each client. It flags any area that is changing rapidly as a farm, then trims the packets that murder frames before they ever reach the player. The piston slides, the item floods, the particle and sound spam, while leaving the farm itself completely untouched on the server. The redstone still ticks on the same clock, hoppers still collect, the output is identical to the millisecond. The only thing that changes is what each client is asked to draw. Same farm, a fraction of the rendering cost.
Everything is per-player. One player can leave it all on and another can switch it off, and neither affects the server or each other.
What it does
Piston teleport. The single biggest FPS killer at a farm is the smooth piston slide, every moving block is rendered and re-meshed frame by frame. FPS Fixer drops the slide so pistons snap straight to their final position instead. The blocks still land exactly where vanilla puts them, so there is no desync. They just teleport instead of gliding. On a piston-heavy farm this alone is the difference between 40 FPS and your normal frames.
Item limiting. Farms dump thousands of dropped items, and every one is an expensive model your GPU redraws every frame. FPS Fixer caps how many items each client renders and hides the rest at the packet level. The items still exist on the server, hoppers collect them, you can walk over and pick them up, an auto-sell plugin still sells them, the output never changes. You just render a hundred instead of five thousand. XP orbs are capped the same way.
Particle and sound limiting. Bone-meal and sea-pickle farms spit out a constant burst of particles and the sounds that ride with them. They are pure cosmetics with zero gameplay effect, and they are brutal on frames. FPS Fixer cancels the farm's particle and sound spam, with the two tied together, hide the particles and the matching sounds go quiet too.
Redstone throttle. Optional, for squeezing out the last frames. Instead of letting the client re-mesh a farm chunk every tick, FPS Fixer coalesces the block-update flood for far-away players and re-emits it a few times a second. Big extra FPS, with the tradeoff that distant redstone looks slightly choppier, so it is off by default.
Smart farm detection. Only areas that change fast enough to be a farm are ever touched. The build you are standing in, a piston door, a single redstone lamp, none of it reaches the threshold, so normal gameplay is left completely alone.
Vanilla and plugin safety. Because nothing is changed server-side, redstone timing, farm rates, hopper collection, item drops all behave exactly as they did before. No blocks are deleted and no entities are removed, only what each client renders is trimmed. Any player who wants the full vanilla view turns FPS Fixer off for themselves in one click.
Per-player and persistent. Every setting is individual: each player toggles the optimizations on or off, hides or shows particles, and picks how many items they want to render. Their choices are saved to the database and follow them through relog, restart, and on MySQL across your whole network.
Folia support. Works out of the box on Paper, Purpur, Pufferfish and Folia.
Settings menu
Run /fpsfixer to open a per-player control panel. From it each player flips FPS Fixer on or off, toggles farm particles and sound, and sets how many farm items they want rendered through a quick sign input. Buttons play configurable click sounds, and the same toggles exist as commands, running a command updates the open menu live.
Persistence
Settings are stored in a database you choose in the config, SQLite for a single server with zero setup, or MySQL to share every player's preferences across a network.
Customisation
config.yml controls every optimization, the farm-detection threshold, the item cap, particle and throttle behaviour, and the live action-bar message. The defaults are tuned to work well on their own, so you never have to open it unless you want to.
gui.yml lets you fully redesign the menu, title, items, slots and colors with full hex color support, plus the click sound.
Commands
/fpsfixer opens the settings menu.
/fpsfixer particles hides or shows farm particles and sound for you.
/fpsfixer items sets how many farm items you render.
/fpsfixer on/off turns FPS Fixer on or off for you.
/fpsfixer toggle turns the whole engine on or off (admin).
/fpsfixer stats shows live optimization numbers (admin).
/fpsfixer reload reloads the config files (admin).
Players use fpsfixer.use; admin actions sit behind fpsfixer.admin.
Requirements
Paper 1.21 or newer, or Purpur, Pufferfish or Folia. Java 21. PacketEvents plugin, FPS Fixer works entirely at the packet level, so it is required.
