Skip to main content

Coming from FiveM

Welcome, FiveM developer! If you've been building servers, scripts, or full RP frameworks on FiveM, you'll feel right at home on HELIX. This guide walks you through every major difference so you can hit the ground running.

Why Switch?

FiveMHELIX
EngineModified RAGE (GTA V)Unreal Engine 5
GraphicsLimited to GTA V visualsNanite, Lumen, full UE5 pipeline
Map CreationYMAP / CodeWalkerHELIX Studio (full UE5 editor)
ScriptingLua, C#, JavaScriptLua (UnLua), Blueprint, JavaScript
MonetizationTebex / customBuilt-in LIX economy
HostingtxAdmin / self-hostInstant Hosting (one-click) or self-host
Anti-cheatThird-party / customBuilt-in server-authoritative

HELIX gives you a purpose-built multiplayer sandbox on a modern engine without the legal gray areas of modding a commercial game.

Resources vs Packages

In FiveM, your code lives in resources with a fxmanifest.lua at the root. In HELIX, the equivalent is a package defined by a package.json file.

FiveMHELIX
fxmanifest.luapackage.json
server.cfgConfig.json
resources/ folderpackages/ folder
ensure my-resourcePackages auto-load or toggle in Config

Here's what a typical package.json looks like compared to fxmanifest.lua:

// Blueprint packages are configured through HELIX Studio.
// No manifest file needed -- add your package via
// Content Browser > New Package and configure dependencies
// in the editor.

API Comparison Table

This is the big one. Here's how common FiveM natives map to HELIX APIs:

FiveM Native / FunctionHELIX EquivalentNotes
PlayerPedID()Client.GetLocalPlayer():GetControlledCharacter()Returns the local character pawn
SetEntityCoords(ped, x, y, z)ped:SetLocation(Vector(x, y, z))Uses Vector() instead of vector3()
TaskPlayAnim(ped, dict, name, ...)ped:PlayAnimation(path)No anim dict loading needed
FreezeEntityPosition(ped, true)ped:SetInputEnabled(false)Disables player input
DeleteEntity(entity)actor:Destroy()Works on any Actor
DropPlayer(src, reason)player:Kick(reason)Server-side only
SetNuiFocus(true, true)Input.SetInputEnabled(false)Toggles game input for UI
SendNUIMessage(data)WebUI:CallFunction(name, args)Direct function calls
SetTimeout(ms, cb)Timer.SetTimeout(cb, ms)Note: callback is the first argument
vector3(x, y, z)Vector(x, y, z)HELIX uses Vector globally

Networking: Events

FiveM uses TriggerServerEvent / TriggerClientEvent with string-based event names. HELIX Lua uses the same global function names with a similar pattern. HELIX JavaScript uses an endpoint/call model instead:

// Use the "Call Remote Event" and "Subscribe to Remote Event" nodes
// in Blueprint to send and receive events between client and server.

One key difference: HELIX events are server-authoritative by default. The server validates everything, which means way less anti-cheat headache for you.

NUI vs WebUI

FiveM's NUI system lets you load HTML/CSS/JS interfaces in-game. HELIX has WebUI, which does the same thing but with a dedicated event system instead of message passing.

FiveM NUIHELIX WebUI
SendNUIMessage({ type: 'show' })WebUI:CallFunction('show', data)
RegisterNUICallback('action', cb)WebUI:Subscribe('action', cb)
SetNuiFocus(true, true)Input.SetInputEnabled(false)
Load via ui_page 'index.html' in manifestLoad via WebUI('id', 'path/to/index.html', zOrder)

No more fiddling with SetNuiFocus cursor states -- Input.SetInputEnabled and Input.SetMouseEnabled handle input toggling cleanly.

Server Setup

FiveMHELIX
Download artifacts + cfx-server-dataDownload HELIX Server or use Instant Hosting
Configure server.cfgConfigure Config.json
Manage with txAdminBuilt-in web dashboard or CLI
Port forward 30120Port forward 7777 (default)
ensure resource-namePackages load automatically from packages/

Instant Hosting is HELIX's one-click server deployment. No VPS setup, no txAdmin configuration -- pick your region, upload your packages, and you're live. You can always switch to self-hosting later.

Quick Start Checklist

  1. Install HELIX from the official site and launch HELIX Studio
  2. Create a new package -- this replaces your FiveM resource folder
  3. Port your Lua scripts using the API comparison table above
  4. Replace NUI with WebUI -- your HTML/CSS stays the same, update the JS bridge
  5. Update your events -- HELIX Lua uses the same TriggerServerEvent/TriggerClientEvent names, but RegisterServerEvent/RegisterClientEvent instead of RegisterNetEvent
  6. Test locally with the built-in local server
  7. Deploy via Instant Hosting or your own server
tip

If you're running QBCore on FiveM, check out the QBCore on HELIX section -- it's been ported and ready to use.