s0apysfederati0n-HardAntiCheat icon

HardAntiCheat

Anti-cheat plugin for Atlyss multiplayer. (In Public Testing)

CHANGELOG

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

  • General bug fixes.

v1.0.2

  • Airborne check re-enabled.

v1.0.0

  • Initial release.