Skip to main content

Rewind

Server-side lag compensation for Roblox

A powerful, production-ready lag compensation framework for Roblox games. Handle hit validation, projectile traces, and melee attacks with server-authoritative precision.

Rewind = "text21/rewind@1.2.1"

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