el4cteo/roblox-skills

roblox-code-review

Review Roblox/Luau code for exploits, data loss, memory leaks, performance problems, lifecycle bugs, policy issues, and deprecated or superseded APIs, using a severity-ranked checklist and the full 2026 deprecation map.

소스 보기
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

Roblox code review

Review in severity order. Report each finding with file:line, severity, what breaks, and the fix. Verify claims against the code (and the engine reference when unsure) — don't pattern-match blindly.

Severity guide

SeverityExamples
CriticalClient-authoritative rewards/damage/currency; unvalidated remote args (NaN, instance spoofing); purchases granted outside ProcessReceipt or non-idempotent; data saved with SetAsync from multiple servers without session locking; secrets/API keys in replicated code; unfiltered player text shown to others.
HighData loss paths (no BindToClose, saving default data after a failed load, no retry); memory leaks (connections, player-keyed tables); InvokeClient; per-frame remotes; infinite yields (WaitForChild without timeout on optional instances, RemoteFunction handlers that can yield forever); streaming-unsafe client indexing.
MediumDeprecated/superseded APIs; wait/spawn/delay; polling loops; server-side tweens; missing pcall on network/yielding APIs; missing late-joiner handling; race conditions on CharacterAdded.
LowStyle, naming, missing types, magic numbers, dead code, minor inefficiencies.

Checklist

Security (roblox-security)

  • Every OnServerEvent/OnServerInvoke: types checked with typeof, numbers math.isfinite, strings

length/UTF-8 checked, instances IsA + IsDescendantOf(trusted), rate limited, context checked.

  • No server-only logic, admin lists, or secrets in ReplicatedStorage/StarterPlayer/Workspace.
  • ProximityPrompt/ClickDetector/Touched handlers re-validate distance/state on the server.
  • Gameplay-critical unanchored parts are server-owned.

Data (roblox-data-stores)

  • Session locking (ProfileStore or equivalent); UpdateAsync for read-modify-write; retries with backoff.
  • BindToClose flushes saves in parallel; no saves of Instance/Vector3/mixed tables.
  • Failed loads never overwritten with defaults; player-keyed tables cleared on leave.
  • Keys stable (User_{UserId}), Studio uses a separate store/universe.

Monetization (roblox-monetization)

  • Single ProcessReceipt; idempotent by PurchaseId; returns PurchaseGranted only after persisting.
  • Pass perks checked on join and after in-session purchase; prices not hardcoded; paid random items

disclose odds and respect PolicyService.

Correctness & lifecycle (roblox-architecture)

  • Handles players already in game (for _, p in Players:GetPlayers()) and characters already spawned.
  • Per-character state rebuilt on respawn; per-player state cleaned on PlayerRemoving.
  • No yields at module top level; no circular requires; one owner per piece of state.
  • Deferred-event safe (doesn't rely on handlers running synchronously).
  • Client code streaming-safe (WaitForChild/nil checks for Workspace content).

Performance (roblox-performance)

  • No per-frame FindFirstChild/GetDescendants/Instance.new; params objects reused.
  • Event-driven instead of polling; think loops throttled and staggered.
  • Tweens and cosmetic effects on clients; remotes batched/throttled; payloads minimal.
  • Connections disconnected / instances destroyed; no unbounded caches.

Text & safety (roblox-text-chat)

  • All player-authored text shown to others filtered server-side (FilterStringAsync), fail closed.
  • Chat uses TextChatService; public editable text rate-limited (≥ 1 minute).

Modern API usage

  • task.*, *Async variants, Raycast, mover constraints, PivotTo, Animator:LoadAnimation,

TextChatService, UIDragDetector, workspace collision-group APIs, CreatePath+ComputeAsync.

Code quality (roblox-luau)

  • --!strict with typed public APIs; services via GetService; no _G/shared.
  • Clear module boundaries; config separated from logic; tests for pure logic (roblox-testing).

Output format

text
## Summary
<2–3 sentences: overall risk, the most important fixes>

## Findings
1. [Critical] src/server/Shop.server.luau:42 — Price read from client argument.
   Impact: exploiters buy anything for 0 coins. Fix: look up ITEMS[itemId].price on the server.
2. [High] ...

## Modernization (optional)
- Replace `wait()` → `task.wait()` (12 occurrences) ...

Offer to apply fixes; when fixing, keep behavior identical except for the bug, and re-run the relevant checks (type check, tests, Studio playtest via roblox-studio-mcp).

같은 저장소의 Skills

더 많은 Skills

모든 Skills
el4cteo
커뮤니티

roblox-security

Anti-exploit design - never trust the client, validate every remote argument (NaN, spoofed instances, strings), rate limiting, ProximityPrompt/ClickDetector abuse, network ownership, movement and hit validation, economy/trade duplication, code confidentiality, secure teleports, heuristics, Ban API. Use when writing server handlers for client input, combat/economy/trading, or reviewing for exploits.

설치 수
2
GitHub Stars
29
업데이트
9월 28일
el4cteo
커뮤니티

roblox-analytics-liveops

Analytics and live ops - AnalyticsService economy/funnel/onboarding/progression/custom events, player segments, experience configs via ConfigService, A/B experiments, badges, experience notifications, timed events, daily rewards, season passes. Use when instrumenting a game, tuning economy or onboarding, running A/B tests or feature flags, or planning live events and re-engagement.

설치 수
2
GitHub Stars
29
업데이트
9월 28일
el4cteo
커뮤니티

roblox-architecture

Roblox project structure and client/server model - replication, where code and assets belong (ServerScriptService, ReplicatedStorage, StarterPlayer), RunContext, service/controller bootstrapping, player/character lifecycle, CollectionService components, attributes, streaming-safe client code, library choices. Use when starting a project, deciding where code goes, or fixing replication/streaming bugs.

설치 수
2
GitHub Stars
29
업데이트
9월 28일
el4cteo
커뮤니티

roblox-audio

Sound and music - the Audio API (AudioPlayer, AudioEmitter, AudioListener, AudioDeviceOutput, Wire, effects, faders), classic Sound/SoundGroup, 2D vs 3D audio, music and SFX volume, client vs server playback, asset permissions, streaming caveats, voice routing, text-to-speech. Use when adding music, sound effects, spatial audio, mixing, or fixing sounds that don't play.

설치 수
2
GitHub Stars
29
업데이트
9월 28일