Forest Logo
search
package_2

guard

By @moxxum

Roblox

Mirrored

guard

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

check_circle

Safe for commercial use

infoThe package archive does not include its license text; the license is declared in its manifest metadata.

Automated license review — not legal advice.