Saros Mod Checker is a technical server-side utility designed to enforce environment consistency and security by inspecting the mod and resource pack lists of connected clients. It operates via a dedicated network channel handshake and runtime verification system.
Verification Logic
- Handshake: Upon connection, the server validates that the client has the mod installed.
- Data Request: The server sends a packet requesting the client's currently loaded mod list and active resource packs.
- Validation:
- Timeout: If the client fails to respond within 10 seconds, the connection is terminated.
- Blacklist Check: The server iterates through the received data and checks against the server-side configuration. Each item is checked by Filename (substring match) and SHA-256 Hash (exact match).
- Enforcement: Use of any blacklisted item results in an immediate disconnection with a specific reason message.
Server Configuration
The blacklist is managed via a JSON configuration file located at config/sarosmodchecker-blacklist.json.
{
"blacklistedNames": [
"xray",
"cheat-client"
],
"blacklistedHashes": [
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
]
}
blacklistedNames: A list of strings. If a client's mod or resource pack filename contains any of these strings (case-insensitive), it is flagged.blacklistedHashes: A list of SHA-256 hashes. Allows for precise blocking of specific file versions regardless of their filename.
Mod List Export
On every server startup, the mod automatically generates a full report of loaded server-side mods.
- Location:
[ServerRoot]/modlist.md - Content: A markdown table listing Mod Name, ID, Version, and the SHA-256 hash of the JAR file.
Administration
/checkclientmods <player>- Permission: OP Level 2
- Function: Retrieves and displays the verify data for a specific online player.
- Output: Lists all installed mods and active resource packs alongside their SHA-256 hashes in the chat. This is useful for manually verifying suspicious players or debugging hash mismatches.
Note: This wiki serves as documentation. For active discussion, please join the Discord Server.