Migrating from FiveM

Moving a FiveM server to Vital.sandbox


Overview

FiveM is a multiplayer framework for GTA V. It supports Lua and C# scripting, a CEF-based UI layer, and custom asset streaming on top of the GTA V engine. Server operators are subject to FiveM's Terms of Service.

Vital.sandbox is a standalone platform with no dependency on GTA V or its assets. Asset formats, the resource system, and scripting patterns differ from FiveM.


Platform comparison

AreaFiveMVital.sandbox
Open sourcePartiallyYes
Base game requiredYes — GTA V client installNo — standalone
LicensingFiveM Terms of ServiceNo restrictions
HostingSelf-hostedSelf-hosted
DiscoveryExternal master listExternal master list
MonetizationYour own implementationYour own implementation
Revenue cutNoneNone
LanguageLua or C#Lua
MaintenanceActiveActively developed
RenderingGTA V rendererGodot 4 — PBR, SDFGI, SSR, SSAO, volumetric fog, glow, full GFX API
PhysicsGTA V physicsGodot physics — rigid body, character, vehicle, area, collision shapes, raycast
NetworkingFiveM OneSyncBuilt-in sync — net IDs, ISyncable, server-authoritative replication
UINUI (CEF)Native WebView, Canvas 2D, SVG, Render Targets, custom fonts and textures
AudioGTA V audioAudio 2D + Audio 3D — spatial attenuation, pitch, FX chain
Model formats.YDR, .YDD, .YFT, .YBNGLB
Texture formats.YTDJPG, PNG, WEBP, BMP, DDS, KTX, EXR
Collision formats.YBNBuilt into GLB
Audio formats.AWCOGG, WAV, MP3
DatabaseMySQL via oxmysql (plugin)MySQL — core.database with async query API
HTTPPerformHttpRequestutil.http — GET/POST, custom headers, timeout
File I/OLoadResourceFile / SaveResourceFileutil.file — read, write, hash, delete

What carries over

FiveM's Lua scripting model is the closest of any platform to Vital.sandbox. Event patterns, resource structure concepts, and async patterns all have direct equivalents:

SystemFiveMVital.sandbox
EventsAddEventHandler
TriggerEvent
TriggerClientEvent
TriggerServerEvent
util.event.on
util.event.off
util.event.emit
util.event.emit_callback
TimersSetTimeout
SetInterval
ClearTimeout
util.timer.create
util.timer.next_tick
HTTPPerformHttpRequestutil.http.get
util.http.post
Database• oxmysql (plugin)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• Custom streaming
.YDR / .YDD / .YFT / .YTD
core.model.load
core.model.unload
core.model.create
Vehicles• FiveM vehicle API
• GTA V natives
physics.vehicle_body.create
physics.vehicle_wheel.create
UI• NUI (CEF browser)core.webview.create
core.svg.create
core.svg.create_from_raw
Audio• GTA V audio systemcore.audio_2d.create
core.audio_3d.create
Images.YTD texturescore.image.create
File I/OLoadResourceFile
SaveResourceFile
util.file.read
util.file.write
util.file.exists
util.file.delete
util.file.hash
util.file.size
util.file.contents
Networking• FiveM OneSynccore.engine.get_entity_by_net_id
Async scriptingCitizen.CreateThread
Wait
util.thread.create
util.thread.current
util.promise.create

What does not carry over

  • GTA V assets — map, vehicles, peds, interiors, audio. You need your own assets in supported formats.
  • GTA V native calls — anything that invokes GTA V natives (GetEntityCoords, TaskGoStraightToCoord, etc.) addresses the GTA binary directly and has no equivalent.
  • C# resources — must be rewritten in Lua.
  • FiveM resource manifest (fxmanifest.lua) — Vital.sandbox uses manifest.yaml with a different structure.
  • OneSync entity locking — Vital.sandbox uses its own server-authoritative replication model via ISyncable.

On this page