roblox-networking · tabooharmony — Claude Code skill: what it does, how to install
Audits Roblox client-server networking: RemoteEvent validation, rate limits, NaN checks, and exploit defense. Useful when writing network remotes.
npx skills add TabooHarmony/roblox-brain --skill roblox-networking -a claude-codeWhat roblox-networking does
The skill provides architecture rules for Roblox client-server communication. It treats every client argument as attacker-controlled. The server must validate types, bounds, distances, ownership, and cooldowns. Prices, damage, and rewards come strictly from server-owned data. Under Server Authority, simulation runs through InputAction and BindToSimulation(), not remotes.
It outlines edge cases in Luau serialization. Numerical checks must start with x ~= x and math.abs(x) == math.huge, since NaN invalidates standard comparison operators. Strings must pass through utf8.len before saving to DataStore. When replicated, functions become nil and metatables are stripped. UnreliableRemoteEvent carries a hard 1000-byte cap per packet.
Typed schemas do not replace server runtime validation. Pinning generators helps, but the server must still inspect every incoming payload field by field.
What it helps with
- Validate RemoteEvent arguments for types, NaN, and infinity on the server
- Set up cooldowns and call rate limits for client packets
- Prevent malformed UTF-8 strings from breaking DataStore saves
- Separate reliable state from UnreliableRemoteEvent traffic within 1000-byte limits
Example prompts for the agent
- Review server validation for my purchase RemoteEvent to block exploits
- Add NaN and infinity guards to incoming combat damage remotes
- Calculate packet size budgets and rate limits for UnreliableRemoteEvent
How to install roblox-networking
1Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-networking -a claude-code2Manually: put the files in place
~/.claude/skills/roblox-networking/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/roblox-networking/
1Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-networking -a codex2Manually: put the files in place
.agents/skills/roblox-networking/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-networking -a cursor2Manually: put the files in place
.cursor/skills/roblox-networking/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install TabooHarmony/roblox-brain roblox-networking2Manually: put the files in place
.github/skills/roblox-networking/SKILL.md1Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-networking -a gemini-cli2Platform CLI
gemini skills install https://github.com/TabooHarmony/roblox-brain --path skills/core/roblox-networkingManually: put the files in place
.devin/skills/roblox-networking/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-networking -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about roblox-networking
How do I install roblox-networking in Claude Code?
Run npx skills add TabooHarmony/roblox-brain --skill roblox-networking -a claude-code.
What does the roblox-networking skill do?
It provides guidelines and verification checks for Roblox networking in Luau. The skill guides server-side validation, exploit mitigation, and payload budgeting across remote types.
What engine rate limit applies to FireServer calls in Roblox?
Each remote type shares an engine ceiling of around 500 FireServer requests per second per client across all remotes of that type.
Source text
SKILL.md · MIT
--- name: roblox-networking description: "Use when adding, changing, or auditing RemoteEvents/RemoteFunctions: argument validation, rate limits, server authority, exploit prevention." when_to_use: "Also for anything sent between client and server, laggy or dropped events, desync, payload size, cooldowns, and security reviews of remotes." last_reviewed: 2026-10-14 sources: - https://create.roblox.com/docs/scripting/events/remote - https://create.roblox.com/docs/scripting/security/security-tactics - https://create.roblox.com/docs/scripting/security/client-server-boundary - https://create.roblox.com/docs/projects/server-authority - https://create.roblox.com/docs/reference/engine/classes/UnreliableRemoteEvent - https://create.roblox.com/docs/reference/engine/classes/Workspace#GetServerTimeNow - https://1axen.github.io/blink/ - original --- # roblox networking ## When to Load Load when adding a remote, handling untrusted input, adding cooldowns, or assigning authority. ## Quick Reference - Every client argument is attacker-controlled; validate type, size, ownership, state, distance, cooldown on the server. - Look up prices, damage, rewards, permissions from server-owned definitions. - Choose the authority model first: Server Authority uses client prediction + server rollback, and is not `SetNetworkOwner`. - Under Server Authority, simulation input uses `InputAction`/`BindToSimulation()` + `UseFixedSimulation`, not a remote. - Events for most gameplay requests; keep `RemoteFunction` calls short and bounded. - `RemoteEvent` for reliable state; not ordered vs property/attribute replication — one explicit channel or version state. `UnreliableRemoteEvent` only for replaceable data; droppable, 1000-byte cap. - Engine ceiling: each remote type has ~500 FireServer req/s/client, pooled across same-type remotes — a ceiling, not a target. - Measure payload and fire rate under load; budget rate × bytes × recipients; snapshot on join, diffs after. - Hit timestamps are untrusted context, never proof. Bound freshness and validate server history; see full.md §3a. - Typed schemas do not replace security checks. Pin generators and verify generated output in CI. - Check NaN/infinity first (`x ~= x`, `math.abs(x) == math.huge`): `NaN` defeats `<`/`>`. `utf8.len` catches malformed UTF-8 that fails a DataStore save. - Serialization: functions arrive `nil`, metatables stripped, mixed keys mangled, `nil` truncates tables, tables are copies — validate field by field, share state via server-owned snapshots/ids. - Server Authority needs `AuthorityMode = Server` + its bundle; misprediction/rollback are normal (full.md). - Rate limits protect the server; validation still rejects invalid requests. Bindables are same-side only: tables copied, metatables stripped, `Invoke` yields until `OnInvoke` returns. - Record suspicion with thresholds; never punish one malformed packet. - Edit-mode play: wrap the network layer so `RunContext:IsEdit()` gets a loopback mock (full.md). **Need details?** `references/full.md` has validation, throttling, and mock patterns.
© TabooHarmony · MIT · TabooHarmony/roblox-brain
Similar skills
Everything for Game dev and 3D: Unity, Unreal, Godot, Blender →roblox-networking by other authors comes first.