roblox-best-practices

roblox-best-practices is a skill for Claude Code from andrian-syh/roblox-best-practices-skill. It costs 168 tokens per session (4,321 once invoked), scanned A, original, MIT.

A set of coding standards for Luau, the programming language used in Roblox scripts. It covers how scripts are laid out, named, secured, and kept efficient.

In plain words
What is it for?
Use it when writing, reviewing, or refactoring Roblox Script, LocalScript, or ModuleScript files.
Why use it?
It gives Roblox developers consistent rules for writing and reviewing code, including server-authoritative behavior and careful use of CPU, memory, and network resources.

Skill for Claude Code

Written for Claude Code: argument-hint in frontmatter.

Good fit Use it when writing, reviewing, or refactoring Roblox Script, LocalScript, or ModuleScript files.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/andrian-syh/roblox-best-practices-skill/roblox-best-practices
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add andrian-syh/roblox-best-practices-skill --skill roblox-best-practices
Clone the repo
git clone --depth 1 https://github.com/andrian-syh/roblox-best-practices-skill

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for roblox-best-practices

README.md
[![agentmods](https://agentmods.dev/badge/skills/andrian-syh/roblox-best-practices-skill/roblox-best-practices/github.svg)](https://agentmods.dev/skills/andrian-syh/roblox-best-practices-skill/roblox-best-practices)
Your own site
<a href="https://agentmods.dev/skills/andrian-syh/roblox-best-practices-skill/roblox-best-practices"><img src="https://agentmods.dev/badge/skills/andrian-syh/roblox-best-practices-skill/roblox-best-practices/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for roblox-best-practices

Your own site · 80×15
<a href="https://agentmods.dev/skills/andrian-syh/roblox-best-practices-skill/roblox-best-practices"><img src="https://agentmods.dev/badge/skills/andrian-syh/roblox-best-practices-skill/roblox-best-practices.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 168 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,321 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00168 $0.04321
Opus 5.5 $0.00067 $0.01728
Sonnet 5.5 $0.00034 $0.00864
Haiku 4.5 $0.00017 $0.00432

Measured today against content hash 62bb6e58bfe0, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

roblox-best-practices scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

roblox-best-practices/SKILL.md · 201 lines

How it starts

The opening of the file, as written. The whole thing — 201 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Roblox Game Development Best Practices

Framework-agnostic standards for clean, resource-frugal Luau. They govern how each script is written, not how the project is structured.

Goals, in priority order: correct → secure (server-authoritative) → efficient (CPU/memory/network) → readable → consistent.

Skill version 2.3.1. If this contradicts a newer release, the installed copy is stale; see CHANGELOG.md.

Session Invariants (must survive compaction)

A summary that drops these rules silently downgrades every file written afterwards. Two standing obligations:

  1. Carry it forward verbatim in any summary, handoff, plan, or task note. It is active instruction, never compressed into "follow the Roblox skill".
  2. Re-read this file before acting whenever the card's full text is not visible in your context. Never reconstruct these rules from memory — a half-remembered layout rule looks deliberate and is worse than none.
ROBLOX LUAU SKILL - INVARIANT CARD
1  Three sections, this order:
   -- // VARIABLES // --   Services > Modules > Objects > Configuration > State Management
   -- // FUNCTIONS // --   definitions only (ModuleScript: Private before Public)
   -- // INITIALIZATION // --   everything that runs
2  Documentation Comments (Luau Comments) - default style, adapts to the project.
   Default block: --[[ ]] above the function, desc > @param > @return.
   Moonwave --[=[ ]=] or --- is equally correct when that is the project's style.
   - Desc <= 3 lines and <= 250 chars, contract-level, states PURPOSE.
   - Desc never names what the body does to get there: no APIs, algorithms,
     collaborators, data structures, or code paths.
   - Desc carries NO volatile content: no numbers, thresholds, tunable names,
     feature names, or anything that needs editing when the body is retuned.
     When a detail cannot be avoided, state it at the most general level
     that stays true after the body changes.
   - Tags use Moonwave syntax: @param <name> <type> -- <description>
     and @return <type> -- <description>. Only when they add what the
     signature cannot show.
   - English preferred as the universal language. No em dashes or double-hyphen
     dashes as punctuation (the -- in a tag is a separator, not punctuation).
     No emoji.
   - IN-BODY COMMENTS: banned in code you write. Make names and
      structure say it; put the why in the block above. Never delete
      an existing one; propose removal once, Advisory only.
   - Tool directives (--!strict, -- selene:, -- stylua:, any linter's allow
     comment) are not commentary. Never remove one. Never add a suppression
     unasked: fix the code, or report the finding and let the user decide.
   - Self-documenting code outranks commentary everywhere.
   - Existing project comment style wins. Recommend this style when the user
     asks to restyle; never impose it.
3  Server is authoritative. Validate every remote arg: type, range, ownership, rate.
4  Clean up everything created. Every connection has an owner and a teardown path.
5  No avoidable per-frame garbage. Never poll what has a signal.
   Cold paths are exempt, and periodic work on a timer is scheduling.
6  UpdateAsync + backoff. Save on PlayerRemoving. Flush on BindToClose.
7  Re-validate after every yield: player gone? instance dead? session changed?
   Only where a yield sits between the check and its use.
8  Never add --!strict unbidden. Never make a [Beta] feature the production default.
9  Reuse before writing: project, then stdlib, then engine API. Search, never
   assume - no claim about a file you have not opened. No wrapper or
   abstraction without a caller. But brevity has two hard limits:
   - It NEVER reduces what was asked for. Short because it does less = failed.
   - It NEVER costs readability. One statement per line, descriptive names,
     blank lines kept. Less code means less WORK, not less whitespace.
10 User authority outranks this skill. Recommend; never refactor unasked.

Read the full file on GitHub · 201 lines

Files

What ships with it

40 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today Changed · +3 lines 62bb6e58bfe0
  2. 12d ago Changed · +1 lines 9ee37fc8561f
  3. 23d ago Changed · +4 lines · -16 tokens per session c3f439697392
  4. 2mo ago First seen · 193 lines · 184 tokens per session scan A 6ff927bf06a6

Subscribe to this mod's changes

roblox-best-practices is a skill published in the GitHub repository andrian-syh/roblox-best-practices-skill (11 stars, last pushed yesterday), licensed MIT. It adds 168 tokens to every session and 4,321 once invoked, about $0.0007 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories