Player State Detection Modules

2 Modules

Server-side monitors for Humanoid WalkSpeed, MaxHealth property tampering, and GodMode exploits.

# Overview

Exploiters frequently execute scripts that modify internal properties of their character's Humanoid instance—such as setting Humanoid.WalkSpeed = 120 or locking Humanoid.Health = math.huge.

RAC provides 2 server-side monitors that supervise character properties and damage absorption:

  1. PropertyTamperDetector: Reverts unauthorized changes to WalkSpeed, JumpPower, and MaxHealth.
  2. GodModeDetector: Detects damage cancellation hooks and impossible healing rates.

# 1. PropertyTamperDetector (PropertyTamperDetector.luau)

# Monitored Properties

The server maintains an authoritative baseline for every character:

Property Authoritative Value Allowed Variance Action on Tamper
Humanoid.WalkSpeed 16.0 (or sprint value) $\pm 2.0$ Revert property immediately & flag incident
Humanoid.JumpPower 50.0 (or high-jump value) $\pm 5.0$ Clamp back to authoritative power
Humanoid.MaxHealth 100.0 (or armor buff) $0.0$ Revert immediately to server baseline

# Reversion Mechanism

When a client modifies a property locally, Roblox may replicate the change or allow the client to experience desynchronized physics. The PropertyTamperDetector compares the current property value against the server-registered baseline on every scan tick:

if math.abs(humanoid.WalkSpeed - authoritativeWalkSpeed) > allowedVariance then
    -- Immediately revert the property on the server
    humanoid.WalkSpeed = authoritativeWalkSpeed
    -- Record tamper report
    self:ReportTamper(player, "WalkSpeed", humanoid.WalkSpeed, authoritativeWalkSpeed)
end

# 2. GodModeDetector (GodModeDetector.luau)

Exploiters often hook into client metatables to suppress Humanoid.TakeDamage calls or immediately reset their health to full upon receiving damage.

# Detection Strategies

# Strategy A: Impossible Healing Rates

The server tracks health changes over time. If a player heals more than MaxLegitimateHealingPerSecond (default $25.0\text{ HP/s}$) without an active medkit or regeneration aura, a GodMode violation is raised.

# Strategy B: Health Value Verification

The detector verifies that:

  • Health does not equal math.huge, 1.#INF, or NaN.
  • Health never exceeds Humanoid.MaxHealth.

# Strategy C: Damage Cancellation Check

When the server deals verified damage via Humanoid:TakeDamage(amount), it schedules a follow-up check $0.15\text{s}$ later. If the player's health did not decrease and no valid shield was active, the script is flagged for damage cancellation.


# Next Steps