Why Rewind?
Everything you need for production-ready hit validation
Server-Authoritative
All hit validation happens on the server. Never trust the client. Built-in anti-abuse with duplicate detection, distance sanity checks, and rate limiting.
Lag Compensation
Automatically rewind player positions to match what the attacker saw at shot time. Synced clocks ensure accurate timestamp reconciliation.
Multi-Mode Validation
Support for raycast weapons, projectile traces, capsule sweeps, and melee attacks. Configure per-weapon profiles with custom parameters.
R6 & R15 Support
Automatic rig detection with built-in hitbox profiles for both character types. Easily extend with custom profiles.
Scaled Avatars
Full support for scaled avatars. Hitboxes automatically adjust based on character scale. Per-weapon scale multipliers available.
Debug Tools
Built-in Iris debug panel for real-time visualization of hitboxes, shot traces, and performance stats. Toggle on/off in-game.
Simple API
Get started with just a few lines of code. Rewind handles all the complexity of lag compensation, leaving you with a clean validation interface.
- ✓ High-level Validate() API
- ✓ Per-weapon configuration
- ✓ Automatic rig detection
- ✓ Built-in type definitions
-- Server-side hit validation
local Rewind = require(ReplicatedStorage.Rewind)
-- Validate a raycast hit
local result = Rewind.Validate(player, "Ray", {
origin = origin,
direction = direction,
clientTime = timestamp,
weaponId = "Rifle",
})
if result.hit then
result.humanoid:TakeDamage(25)
end