Changelog
v2.5.x - Thunderstore Polish & Reliability Patch - 5/13/26
A focused reliability update fixing Thunderstore integration, improving log clarity, and hardening case-insensitive matching.
🔧 Fixes & Improvements
-
Thunderstore JSON Parsing Fixed
- Added
[JsonIgnore] to latest field in ThunderstorePackageV1 to prevent Unexpected character '{' deserialization crashes.
- Switched API search parameter from
?namespace= to ?search= for accurate mod lookups.
- Added
ThunderstoreSearchResponse wrapper to correctly parse paginated {"next": "...", "results": [...]} responses.
-
Human-Readable Mod Details in Logs
- Kick messages now display:
ModName (GUID) vVersion instead of raw GUIDs.
- Example:
CheatMenu_Public (0a26c5bd-f173-47f8-8f50-006dd6806ce6) v1.4.2
- Background verification logs now show full details:
Verified and cached ModName (GUID) vVersion on Thunderstore.
-
Case-Insensitive GUID Matching
ParseBlacklistedMods(), ParseWhitelistedMods(), and ParseRequiredMods() now normalize all entries to .ToLower().
Com.MyMod = com.mymod = COM.MYMOD — all match reliably.
-
Vanilla Client Support Hardened
- Handshake timeout now explicitly auto-authorizes vanilla clients when no required mods are configured.
- No more false kicks for legitimate players without mods.
-
Server Broadcast Messages
- Kick/ban announcements now appear in cyan chat for all players via
[HAC] prefix.
- Messages are safely truncated and HTML-stripped to survive the game's chat filter.
-
Background Verification Optimization
- Unknown mods are authorized first, then verified silently in the background—no handshake timeouts.
- Pre-warmed Thunderstore cache on server start enables instant verification (<50ms).
⚙️ Config Notes
- All new Thunderstore settings (
Enable Thunderstore Whitelist, Community Identifier, etc.) are optional and default to off.
- Existing configs remain fully backwards-compatible—no migration needed.
🐛 Bug Fixes
- Fixed case-sensitivity mismatch causing valid GUIDs to bypass blacklist/whitelist checks.
- Fixed Thunderstore API search returning 0 results due to incorrect query parameter.
- Fixed JSON deserialization crash when
latest field contained an object instead of string.
- Fixed handshake timeout incorrectly kicking vanilla clients when no required mods were set.
- Fixed background verification logging to show full mod details instead of just GUID.
hotbug fixes
- Asynchronous Logging: LogInfraction now offloads disk writes to a background task so the game thread never freezes.
- XP Progress Capping: Instead of resetting XP to 0 and returning false, the code now caps the gain to the maximum allowed and returns true, ensuring you always make progress.
- O(1) XP Calculation: Replaced the expensive .Sum() loop with a running total dictionary to prevent frame drops in high-density areas like Crescent Grove.
- Generous Defaults: Increased default XP thresholds in Awake to better support modded maps.
- Generous EasyAnticheat Verification: plvsmvwvre came back around and somehow managed to slip through, this is tested throughly to see if stuff like that is actually verificated and public on thunderstore.
Old Updates
v2.4.x - Menu Overhaul - 3/16/26
-
Changed Enable Mod Blacklist to false by default.
-
Added the Nessie.ATLYSS.EasySettings soft dependency.
-
Implemented the AddSettings UI so you can configure everything in-game (including text fields for SteamIDs and blacklists, and dropdowns for punishment types).
-
Updated README.md fully.
-
Bug Fixes:
- Should fix the bug where the menu is straight up not appearing
- Prepared for qa-branch
v2.3.x - The Stability & Behavioral Overhaul - 1/18/26
Major Networking & Logic Rewrite
- Fixed Connection Issues: Switched handshake networking to Binary P2P (SteamNetworkingMessages). This resolves the
k_EResultInvalidParam errors and prevents players from timing out while loading into the server.
- Integrity Logic Change: Removed "Strict Hashing" integrity checks which were causing false positives for vanilla players or those with different mod versions.
- New Mod Enforcement: Switched to a Blacklist System. The server now accepts all mods by default and only kicks clients if they have a specific GUID listed in the
BlacklistedModGUIDs config.
- New Behavioral Detections:
- Infinite Stamina: Detects players sprinting without losing stamina.
- Consumable Spam: Prevents using items faster than humanly possible (Macro detection).
- Weapon Swap Spam: Prevents animation canceling via rapid weapon switching.
- Parry Botting: Detects inhuman block input speeds.
- Crash Fixes: Resolved
NullReferenceException errors in the movement validation patch.
- Stability: Added a safety delay to the handshake to ensure the player object is fully initialized before checking.
- Bug Fixes:
- fixed a bug that was lingering like a fly, server reinit re registration
- Updated Readme for more clarification (2/14)
Public Test Updates (Pre-v2.3.0)
- Codetalker Update: Updated dependencies to latest version - 1/17/26
- Validation Improvements: Made validation abide by Thunderstore policy (reading names + GUIDs) - 11/22/25
- Game Update: Updated compatibility for latest game patch - 1/11/26
- Fixes: Fixed missing detections and extended verification length - 10/14/25
- SteamID: Added Whitelist/Blacklist for SteamIDs - 10/12/25
v2.2.0 - Refactory
- Fixed "Players getting railed on skill init" bug.
- Fixed fly/movement checks and host boolean logic.
- Added logging configuration choices.
- Patched Teleportation by call.
- Airborne Check: Added height limiting check.
- Revive Fix: Fixed revive detection logic (Angela's Tears requirement).
- Currency: Added Currency Add Check back.
- Syncing: Added CodeTalker Anti-Cheat Syncing.
v1.0.7 - Bugfix
- Fixed skill initialization issues.
v1.0.6 - Stability & Feedback
- Fixed Critical Initialization Bug: Dynamic Haste ID detection moved to correct loading point.
- Log Archiving: Added automatic log archiving to prevent massive file sizes.
- Announcements: Added public punishment announcements to chat.
- Confirmation: Added server start confirmation message.
v1.0.5 - Lag Compensation Fix
- Movement: Overhauled movement detection to be tolerant of lag.
- Config: Added
Max Effective Speed, Grace Buffer, and Time Threshold configs.
- Speed Hack: Improved detection using dynamic baseline recording.
- Vulnerability Fix: Corrected cast time validation for instant-cast skills.
- Paths: Standardized log file paths.
v1.0.4
- Intelligent Skill cooldown check improvement.
- Flagged speedhack properly.
v1.0.3
v1.0.2
- Airborne check re-enabled.
v1.0.0