Migrating from Roblox
Moving a Roblox experience to Vital.sandbox
Overview
Roblox is a consumer game platform with managed hosting, a built-in discovery system, and an in-platform marketplace. Players connect through the Roblox client and app rather than a direct server connection.
Vital.sandbox is a standalone platform with no dependency on Roblox or its services. Players connect via a master list or direct IP. Asset formats, the resource system, and scripting patterns differ from Roblox. Platform-specific features such as the storefront, avatar marketplace, and social graph have no equivalent outside the Roblox platform.
Platform comparison
| Area | Roblox | Vital.sandbox |
|---|---|---|
| Open source | No | Yes |
| Base game required | No — Roblox client | No — standalone |
| Licensing | Roblox Terms of Service | No restrictions |
| Hosting | Roblox-managed cloud | Self-hosted |
| Discovery | Roblox game page, social graph | Master list or direct IP |
| Monetization | Robux, in-platform marketplace | Your own implementation |
| Revenue cut | 30–75% platform fee | None |
| Language | Luau (typed Lua superset) | Lua |
| Maintenance | Active | Actively developed |
| Rendering | Roblox engine | Godot 4 — PBR, SDFGI, SSR, SSAO, volumetric fog, glow, full GFX API |
| Physics | Roblox physics (Bullet-based) | Godot physics — rigid body, character, vehicle, area, collision shapes, raycast |
| Networking | Roblox replication | Built-in sync — net IDs, ISyncable, server-authoritative replication |
| UI | ScreenGui / BillboardGui | Native WebView, Canvas 2D, SVG, Render Targets, custom fonts and textures |
| Audio | Roblox Sound objects | Audio 2D + Audio 3D — spatial attenuation, pitch, FX chain |
| Model formats | .rbxm, Roblox CDN | GLB |
| Texture formats | Roblox CDN | JPG, PNG, WEBP, BMP, DDS, KTX, EXR |
| Collision formats | Built into Roblox parts | Built into GLB |
| Audio formats | Roblox CDN | OGG, WAV, MP3 |
| Database | DataStoreService | MySQL — core.database with async query API |
| HTTP | HttpService | util.http — GET/POST, custom headers, timeout |
| File I/O | None built-in | util.file — read, write, hash, delete |
What carries over
Roblox uses Luau, a typed superset of Lua 5.1. Most scripting logic — tables, functions, closures, coroutines — translates directly once you adapt to the API surface:
| System | Roblox | Vital.sandbox |
|---|---|---|
| Events | • RemoteEvent• BindableEvent• :Connect | • util.event.on• util.event.off• util.event.emit• util.event.emit_callback |
| Timers | • task.delay• task.spawn• task.cancel | • util.timer.create• util.timer.next_tick |
| HTTP | • HttpService:GetAsync• HttpService:PostAsync | • util.http.get• util.http.post |
| Database | • DataStoreService | • core.database.create• core.database_query.select• core.database_query.insert• core.database_query.update• core.database_query.delete• core.database_query.fetch• core.database_query.execute |
| 3D Models | • Instance.new("Model")• Instance.new("MeshPart")• ContentProvider:PreloadAsync | • core.model.load• core.model.unload• core.model.create |
| Vehicles | • Custom VehicleSeat rigs | • physics.vehicle_body.create• physics.vehicle_wheel.create |
| UI | • ScreenGui • BillboardGui • SurfaceGui | • core.webview.create• core.svg.create• core.svg.create_from_raw |
| Audio | • Sound objects | • core.audio_2d.create• core.audio_3d.create |
| Images | • Roblox CDN textures | • core.image.create |
| File I/O | • None built-in | • util.file.read• util.file.write• util.file.exists• util.file.delete• util.file.hash• util.file.size• util.file.contents |
| Networking | • Roblox replication layer | • core.engine.get_entity_by_net_id |
| Async scripting | • task library• Coroutines | • util.thread.create• util.thread.current• util.promise.create |
What does not carry over
- Roblox assets — marketplace models,
.rbxmfiles, avatar items. Models must be exported to GLB and re-imported. Images must be exported to a supported format. This is a manual process per asset. - Luau type annotations — Vital.sandbox uses standard Lua. Luau-specific syntax (
string,number,::casts,--!strict) must be removed. - Roblox services —
Players,ReplicatedStorage,ServerStorage,Workspace,TweenService, etc. are Roblox-specific. The underlying patterns have equivalents in Vital.sandbox but require explicit reimplementation. - Avatar system — Roblox's avatar pipeline, character appearance, and R6/R15 rigs are platform-specific. Characters must be implemented with your own GLB assets.
- In-platform discovery and monetization — the Roblox storefront, Robux, and the game page are platform features with no equivalent outside Roblox.