Overview
Services
EngineServices add capabilities Roblox does not have built in, from session-locked player data to mesh fracturing, parallel compute and a reactive UI framework.
What a service is
An EngineService is a new engine capability: something you would otherwise build yourself from low-level Roblox APIs. Services are used the same way as Roblox services, through a getter:
local Engine = require(game:GetService("ServerScriptService"):WaitForChild("Engine"))
local DataService = Engine:GetService("DataService")
local NetworkService = Engine:GetService("NetworkService")A service is loaded the first time you get it, and every call after that returns the same table. Services you never use are never loaded. See Services, Systems & Packages for how services differ from systems and packages.
Where they run
| Realm | Meaning |
|---|---|
| Shared | The same service exists on the server and on the client. What it does on each side is described on its page. |
| Server | Only on the server. Requiring it from a LocalScript errors. |
| Server, Client | A server half and a client half with different APIs, such as DataService (profiles on the server, replicated data on the client). |
See Server and Client.
All services
Data and Security
| Service | Realm | What it does |
|---|---|---|
| DataService | Server, Client | Player profiles with session locking, autosave and replication, plus DataStores, MemoryStores, topics, shared documents and purchase receipts. |
| CryptographyService | Server | Secure random numbers, SHA-2/SHA-3/BLAKE2, HMAC, authenticated encryption, signed tokens, Argon2, scrypt and one-time codes. |
| MonetizationService | Server, Client | Products, game passes, subscriptions and avatar items with safe receipts, regional prices, policy checks and a purchase ledger. |
| StatisticsService | Server | Roblox Analytics events, funnels, counters, automatic tracking, Discord webhooks and daily totals. |
Players and Networking
| Service | Realm | What it does |
|---|---|---|
| PlayerService | Shared | Names, badges, membership, device, settings, policies, character, avatar, friends and groups, cached and retried. |
| NetworkService | Shared | Named remotes with validation, rate limiting, request/response Promises, batching, streams and middleware. |
Runtime
| Service | Realm | What it does |
|---|---|---|
| SchedulerService | Shared | Spread heavy work over frames with time budgets, priorities and throttling. |
| ComputeService | Shared | Parallel Luau on Actors: worker pools, parallel for-loops and task graphs. |
| TimeService | Shared | Scaled game time, a day/night cycle with seasons, game-time timers and real-world dates. |
| PerformanceService | Shared | FPS, memory and ping, a device benchmark and automatic quality levels. |
| JunkService | Shared | Clean-up scopes for players, characters and rounds, and a leak detector. |
World
| Service | Realm | What it does |
|---|---|---|
| GeometryService | Shared | Build MeshParts from code, heightmaps and density fields; slice, deform and simplify meshes. |
| DestructionService | Shared | Breakable parts and models: health, mesh fracturing, explosions, debris and structural collapse. |
| SpatialService | Shared | Spatial indexes for proximity queries, and zones with Entered and Exited events. |
| EffectService | Shared | Pooled, quality-scaled visual effects that the server can broadcast. |
Audio and Interface
| Service | Realm | What it does |
|---|---|---|
| AudioService | Shared | Named sounds, a mixer with buses and ducking, playlists and adaptive layered music. |
| UIService | Shared | A declarative, reactive UI framework with components, themes, animation and screens. |
Configuring a service
Every service reads its settings from a configuration module. Each service page ends with a table of every setting and its default. To change one for your game, add a ModuleScript with the service's name to the Configuration folder. See Configuration.