Mod Access Control
Running a modded Minecraft server is a constant balancing act. One player sneaks in a client-side cheat, another joins with a mismatched version of a required library, and suddenly your carefully tuned world is full of crashes and complaints. Mod Access Control exists to solve exactly that problem. It is a server-side mod that gives server owners precise control over which mods players may or must not have installed, and it behaves identically across Forge, Fabric, and NeoForge with a single shared config file and one unified /mac command suite.
If you have ever wished you could simply say "no" to a specific mod at the door, this is the tool you have been looking for.
How the Handshake Works
Mod Access Control uses a two-stage handshake to keep things efficient. At login, the client and server perform a lightweight protocol and loader exchange. Before the player actually enters the world, the full mod list is verified. After that, periodic re-checks use the already reported list, so there are no repeated heavy transfers that could lag your server.
One important detail: clients must also install this mod to complete the handshake. Clients without it are denied on join, though this behavior is configurable through the requireClientMod option if you prefer a softer approach.
Required Mod Checks
You can enforce mods in three different ways:
- presence — the mod simply has to be there.
- version_range — the installed version must fall inside an allowed range.
- strict — the version must match exactly.
This flexibility matters when you run a tightly curated modpack where a single version drift can break everything.
Policies, Rules, and Live Management
The policy system supports whitelist, blacklist, or switch mode, which is a dual-mode setup with a hot-swappable active policy and interval re-checks. You do not need to restart the server to change your mind about a rule. Using /mac commands, you can view, edit, reload, and save whitelist, blacklist, and required lists live, complete with tab-completion. The /mac learn command even lets you build a list in one click from any player's current mods.
For admins who want to test before committing, dry-run mode detects and logs violations without kicking anyone. Every player's mod list is also persisted in JSONL format and can be audited later with /mac audit or /mac recent. Online admins receive chat, action-bar, and sound notifications on every block, so nothing slips past unnoticed.
If you would rather skip manual file wrangling entirely, the foxygame.net launcher offers a one-click install path for Mod Access Control, pulling the correct build for your loader and keeping it updated without you touching a single jar file.
Player Feedback and Exemptions
Nobody likes a vague kick message. The disconnect screen lists exactly which required mods are missing, which versions mismatch, and which banned or off-list mods were found, plus a customizable footer hint area. Messages follow the server's configured language, with zh_cn, zh_tw, en_us, ja_jp, and ru_ru shipped as JSON catalogs that are easy to extend.
You can also exempt specific players by name or UUID, or exempt all OPs, so your staff never gets locked out by their own rules.
Supported Versions and Loaders
Mod Access Control for Minecraft is built to work across modern loaders. It runs on Forge, Fabric, and NeoForge, and supports the Minecraft versions those loaders target, including the 1.20.x and 1.21.x lines. Because the config is shared, moving your rules between loaders is painless.
Configuration Basics
The config file lives at <server>/config/mod_access_control.json and is auto-generated on first start. Key options include:
- enabled — master switch
- requireClientMod — require the client mod (default true)
- strictLoader — require a matching mod loader
- requiredCheckMode — presence, version_range, or strict
- policy.mode — whitelist, blacklist, or switch
- language — server message language
- exemptPlayers / exemptOps — exemptions
- dryRun — log violations without kicking
- allowedMacVersions — restrict which versions of this mod may connect
Corrupted configs are automatically backed up and reset, and failures are caught and logged rather than crashing your server.
Getting Started
To download Mod Access Control, grab the build that matches your loader and drop it into your server's mods folder. If you are wondering how to install it on the client side, the process is identical: place the jar in the client mods directory so the handshake can complete. Run /mac help in-game for the full command list, then start with dry-run mode until your rules look right.
For server owners tired of policing mod lists by hand, Mod Access Control turns a messy, manual job into a few simple commands. Set your policy, watch the audit log, and let the handshake do the rest.