SwemCull is a client-side Minecraft performance mod that fixes the frame drops caused by SWEM (Star Worm Equestrian Mod) horses. If your FPS falls apart near a stable, a paddock, or any decent-sized herd, that is the problem this solves.
SWEM draws every horse at full detail no matter where it is — five blocks away or sixty, in front of you or behind a solid wall. SwemCull stops that work from happening for horses you can't actually see, and reduces it for horses too far away for the detail to matter.
It works with both SWEM and SWEM Lite, on NeoForge 1.21.1 and Forge or NeoForge 1.20.1. It is client-side only, so it never needs to be installed on the server and works on any multiplayer server you join.
Get up to 2.5× more FPS while keeping every horse visible.
If the horses are behind you or behind a wall, performance can improve by up to 23×.

Minecraft 1.21.1 · NeoForge · 1440p · RX 6600 · Ryzen 5 5600
⚡ Why SWEM horses cause lag
Each SWEM horse is a GeckoLib model with 179 separate bones, and SWEM redraws all of them every frame regardless of how far away the horse is or whether anything is in the way. Thirty horses in a stable means the game does that thirty times per frame.
The result is that distance makes no difference at all. Whether the horses are standing right in front of you, 60 blocks away, behind your camera, or completely hidden behind a barn, they cost the same amount of performance.
| Horse Location |
Vanilla |
Balanced ⭐ |
Extreme |
| Inside the herd |
74 FPS |
114 FPS |
120 FPS |
| 20 blocks away |
74 FPS |
118 FPS |
177 FPS |
| 40 blocks away |
74 FPS |
182 FPS |
1700 FPS* |
| 60 blocks away |
74 FPS |
184 FPS |
1700 FPS* |
| Behind a wall or off-screen |
74 FPS |
1700 FPS* |
1700 FPS* |
*Horses are culled and no longer rendered.
Test setup: 32 horses on a clean instance with only SWEM, GeckoLib, Player Animation Library, and SwemCull installed.
With the Balanced preset, every horse in the first four rows is still fully visible. The biggest improvement comes when horses are outside your view or hidden behind solid blocks — they stop affecting your FPS almost entirely.
✨ What SwemCull does
- 🧱 Horses behind walls are no longer rendered (new in 1.0.2)
- 🙈 Horses behind the player are skipped automatically
- 🐎 Distance-based horse culling
- 🎽 Distant tack is hidden before the horse itself
- 💇 Gradually reduces mane, tail, and other small details at long distances
- ⚡ Faster rendering even when horses are nearby
- 🎯 Adaptive mode automatically adjusts settings to maintain your target FPS
- 👤 Horses with riders are never culled
- 🐴 Works with both SWEM and SWEM Lite
- 🎮 Fully client-side — works on any server
🛠️ How SwemCull optimizes horse rendering
First, SwemCull restores Minecraft's normal frustum culling, which SWEM disables for its horses. This prevents horses outside your view from being rendered at all.
It then adds occlusion culling, meaning horses hidden behind solid blocks aren't rendered either. In large stables or crowded barns, this is where most of the gain comes from — walls, stall doors and buildings hide a lot of horses that were previously being drawn in full.
Even when every horse is visible, SwemCull still improves performance. It replaces several expensive per-bone rendering operations with cached versions, producing the exact same visuals while doing far less work each frame. That part helps whether you are standing in the middle of a herd or looking at a single horse.
🎚️ Presets: balancing FPS and visual quality
Choose the balance between visual quality and performance with a single command, such as /swemcull preset balanced.
| Preset |
Tack |
Mane/Tail |
Cull Distance |
Best For |
| quality |
48 |
Never |
Never |
Maximum visual quality |
| light |
34 |
50 |
92 |
Small FPS boost with almost no visible changes |
| balanced ⭐ |
24 |
36 |
80 |
Recommended for most players |
| aggressive |
14 |
22 |
56 |
Large stables |
| extreme |
6 |
10 |
36 |
Maximum performance |
Small cosmetic details are reduced first because they're barely visible at long distances but still cost performance. Horses themselves remain visible much longer, avoiding noticeable pop-in.
🛡️ Armor, blankets, leg wraps, and wings are never hidden, so horses still look complete even from far away.
⌨️ Commands and configuration
| Command |
What it does |
/swemcull |
Shows the current status |
/swemcull preset |
Switches preset |
/swemcull adaptive <fps> |
Automatically maintains your target FPS |
/swemcull overlay |
Displays live FPS, frame timing, and horse counts |
/swemcull toggle |
Enables or disables the mod |
/swemcull advanced |
Adjusts individual distances and advanced options |
On NeoForge 1.21.1, every setting is also available through the Mods menu. You can still edit config/swemcull-client.toml manually if you prefer.
🔌 Compatibility, versions and required mods
SwemCull is client-side only, works in multiplayer, is safe for existing worlds, and changes nothing about gameplay. It runs alongside Sodium, Embeddium, Iris, Oculus, EntityCulling, ModernFix, and FerriteCore.
| Minecraft |
Loader |
| 1.21.1 |
NeoForge |
| 1.20.1 |
Forge & NeoForge |
Required Mods
Note: On NeoForge 1.20.1, use the Forge version of Player Animation Library. There is no NeoForge build, but the Forge version works correctly.
❓ Frequently asked questions
Why is SWEM so laggy?
Each SWEM horse is a GeckoLib model with 179 separate bones, and SWEM redraws every one of them each frame no matter where the horse is. The cost scales with how many horses are loaded, so a stable or a breeding setup drops your framerate far more than the same number of vanilla mobs would. SwemCull removes the parts of that work you would never have seen.
How do I improve FPS in SWEM?
Install SwemCull and run /swemcull preset balanced. In testing that took 74 FPS to 114 standing inside a herd of 32 horses, and to 184 from 60 blocks away, with every horse still fully visible. Horses behind walls or outside your view stop costing anything at all. If you need more, /swemcull preset aggressive pulls the distances in further.
Does the server need this?
No. SwemCull is a client-side mod. It only changes how horses are drawn on your own machine, so it works on any multiplayer server without the server having it installed.
Does SwemCull work with SWEM Lite?
Yes. SwemCull detects which build you have and applies the same optimizations to either. SWEM Lite uses the same GeckoLib renderer and the same horse model as full SWEM, so it has the same bottleneck and benefits the same way.
Will horses look different?
Not nearby. At longer distances, cosmetic details such as tack, mane, and tail are gradually simplified. Armor, blankets, and wings are always shown, so a distant horse still looks dressed rather than bare.
Does it still improve performance when I'm looking directly at the horses?
Yes. Culling only helps for horses you can't see, but SwemCull also caches SWEM's most expensive per-bone rendering work. That part applies to every horse on screen, which is why standing inside a herd still gains around 50% framerate.
Doesn't EntityCulling already hide horses behind walls?
Not for SWEM horses. EntityCulling skips any entity that has opted out of culling, and SWEM's horses do exactly that — so EntityCulling has never hidden them, even in packs that already include it. SwemCull handles SWEM horses itself, and the two work alongside each other without any issues.
Horses pop in and out as I move around.
Increase the culling distance with /swemcull advanced cull 92, or switch to /swemcull preset light.
Horses appear late when I walk around a corner.
Disable wall culling with /swemcull advanced occlusion off. All other optimizations will continue to work.
Does it work with shaders?
Yes. SwemCull has been tested with Iris, Sodium, EntityCulling, ModernFix, and other popular performance mods.
Is it safe?
Yes. SwemCull only changes how horses are rendered. It never modifies AI, world data, entities, or servers.
Made by ItzAdoman • Licensed under LGPL-3.0 • Does not include SWEM or GeckoLib source code.