QuickZone
A high-performance, physics-free spatial query library for Roblox. Maintain 60 FPS with 1M+ zones.
Install / Use
/learn @LDGerrits/QuickZoneREADME
Why use QuickZone?
The Physics Bottleneck. Traditional zone libraries act as wrappers for Roblox's physics engine (e.g., GetPartsInPart or .Touched), binding spatial logic to collision meshes. This results in expensive geometry calculations, unpredictable overhead, low flexibility, and much worse performance as the number of zones grows.
Clean Architecture. QuickZone takes a different approach. By separating what you track (Groups), where you track them (Zones), and how you respond (Observers), it eliminates monolithic, instance-bound logic and keeps your codebase clean.
Physics-Free Scaling. QuickZone achieves O(N log Z) scaling by bypassing the physics engine in favor of pure geometric math and a custom Linear Bounding Volume Hierarchy (LBVH). Performance is driven by the number of entities, while the map size is virtually irrelevant.
Agnostic. Whether you prefer classic event-driven programming, robust lifecycle management (observe()), or zero-allocation polling for ECS architectures, QuickZone can fit your workflow.
Total Performance Control. The runtime cost is entirely in your control. Through a budgeted scheduler, the workload is smeared across frames and only consumes as much CPU time as you explicitly allow. Paired with contiguous arrays that produce virtually zero garbage collection (GC) pressure, QuickZone produces a flat, predictable performance profile.
What it offers
-
Endless Scale: The number of zones has zero impact on performance. Maintain 60 FPS even with over a million zones in your game.
-
Track Anything: Track BaseParts, Models, Attachments, Bones, Cameras, or even custom tables. If it has a position, QuickZone can track it.
-
Budgeted Scheduler: Set a hard frame budget (e.g., 1ms) to completely eliminate lag spikes. Workloads are smeared across frames to maintain a flat, predictable performance profile.
-
Shape Support: Support for Blocks, Balls, Cylinders, Wedges and CornerWedges without relying on physics collision meshes.
-
Lifecycle Management: Use the
observepattern for 100% reliable cleanup. Say goodbye to jugglingonEnterandonExitevents (though classic event-driven programming is still supported). -
ECS & Data-Oriented: Built-in support for zero-allocation iterators and deterministic manual stepping, making it a perfect fit for ECS architectures.
-
Decoupled Architecture: Separate game logic from spatial instances. Bind behaviors directly to categories of entities (Players, NPCs, Projectiles) for a clean, scalable codebase.
-
Zero-Allocation Runtime: By utilizing contiguous arrays and object pooling, QuickZone produces close to zero GC pressure, avoiding memory-related stutters.
-
No Dependencies: QuickZone is a standalone, lightweight library that does not rely on any other external packages.
Related Skills
node-connect
345.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
104.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
