Roblox Performance

SkillDocs & knowledge

Use when profiling Roblox performance or diagnosing FPS, memory, network, mobile, or hot-path problems.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Roblox Performance skill

What this skill tells your AI

The instructions your AI receives, as published by tabooharmony/roblox-brain in skills/roblox-performance/SKILL.md and read by ahel’s review.

When to Load

Use when profiling, diagnosing lag, or setting performance budgets. For code-level micro-optimizations (pooling, throttling, relevance filtering, lazy loading) load roblox-luau-patterns; this skill measures and tunes the engine.

Quick Reference

Profiling Tools

  • MicroProfiler (Ctrl+F6): Per-frame breakdown: scripts, physics, rendering. Primary tool for finding what's slow.
  • Developer Console (F9): Stats tab: memory, network, render stats. Server Stats for server-side metrics.
  • Script Profiler (Ctrl+Alt+F5): Per-script CPU usage and heap allocations.

Performance Targets

MetricStarting targetInvestigate at
Server heartbeat< 16ms> 33ms
Client FPS (desktop)60< 30
Client FPS (mobile)45< 30
Memorydevice-specificsustained growth

"Expensive" means the profiler shows it on a hot frame path (raycasts, clones, large finds, replication-heavy writes). Throttle by judgment from measurements, not a universal number, and re-measure after shipping: profile before and after on representative devices and confirm the targeted metric moved without regressions. Micro-optimizations live in roblox-luau-patterns.

Parallel Luau

  • Use Actors only after profiling identifies isolatable CPU work.
  • Workers compute; synchronize before restricted DataModel writes.
  • SharedTable and mutexes add coordination cost; they do not replace ownership boundaries.

Object Pooling

-- Pre-clone, reuse. get() returns a lease token; release() requires it,
-- so duplicate or foreign releases never re-list the object.
local obj, lease = pool:get()
-- ... use obj ...
pool:release(obj, lease)

Canonical pool code (token-lease ownership): roblox-luau-patterns.

StreamingEnabled Essentials

  • On by default. Container-scoped: only Workspace descendants stream. ModelStreamingBehavior = Improved streams non-BasePart descendants with their parent Model; Legacy streams only BaseParts.
  • Streamed-out = parented to nil, not destroyed. Luau refs persist if it streams back.
  • Config (Studio): target defaults 1024, min 64; set StreamingIntegrityMode; tune from data.
  • Gotcha: FindFirstChild("DistantPart") returns nil if streamed out. Use WaitForChild with timeout.

Mobile

  • Profile geometry, textures, particles, UI, and shadows on low-end devices.

Full reference with code examples and API tables: references/full.md

Signals

GitHub stars
44
Forks
3
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
roblox-performance
Source
github.com/tabooharmony/roblox-brain