Start typing to search packages!
guard
By @moxxum
Roblox
Mirroredguard
Anti-exploit baseline — deliberately not an anti-cheat suite. Server-authoritative position sanity (horizontal speed + teleport-distance thresholds), remote flood detection that plugs into netkit's middleware, a strike system with decay, and a configurable kick/log action. The third leg of the baseline is convention, enforced by code review: currency is never client-trusted — only datakit mutations on the server.
Server realm: Guard = "moxxum/guard@0.1.0" under [server-dependencies].
API
Guard.Init(config?) -- starts position checks + strike decay
Guard.NetMiddleware() -- pass to NetKit.Use(); blocks + strikes on remote floods
Guard.Excuse(player, secs?) -- call BEFORE game-initiated teleports (default 5s grace)
Guard.Flag(player, reason) -- manual strike (e.g. from game-specific detections)
Guard.GetStrikes(player)
Config defaults: MaxSpeed = 100 (horizontal studs/s), TeleportThreshold = 200
(horizontal studs per check), CheckInterval = 1, StrikeLimit = 5,
StrikeDecaySeconds = 30, SpawnGraceSeconds = 3, RemoteFloodPerSecond = 50,
Action = "log" (kick is opt-in), OnViolation hook (wire to analytics).
Checks use horizontal (XZ) distance so falling never flags. Skipped while seated
(vehicles), during spawn grace, and during an Excuse window. Hitting StrikeLimit
logs (and kicks when Action = "kick"), then resets the count.
Example
local Guard = require(ServerPackages.Guard)
local NetKit = require(ReplicatedStorage.Packages.NetKit)
Guard.Init({
Action = "kick",
OnViolation = function(player, reason, strikes)
Analytics.Custom(player, "guard_violation", strikes, { reason })
end,
})
NetKit.Use(Guard.NetMiddleware())
-- Anywhere the game legitimately teleports someone:
Guard.Excuse(player)
character:PivotTo(arenaSpawn)
Test
rojo build test.project.json -o test.rbxl, open in Studio, Play Solo, expect
[guard-test] ALL PASS after ~10s (flood blocking, teleport flag, excused teleport).
Package Details
Install command (Click to copy)
Version
0.1.0
License
MIT
Safe for commercial use
The package archive does not include its license text; the license is declared in its manifest metadata.
Automated license review — not legal advice.
