Skip to content

helix_missions

Visual mission and quest system for FiveM with an in-game flow editor, branching objectives, rewards, rating tiers, and player progress tracking.

Version: 0.1.0 | License: Commercial | Dependencies: helix_lib, oxmysql

Features

  • In-Game Flow Editor -- Visual node-based mission editor with place, move, connect, and delete tools
  • 12 Objective Types -- go_to, collect, deliver, eliminate, escort, survive, interact, vehicle, stealth, custom, checkpoint, photograph
  • Branching Objectives -- Missions with multiple paths, conditions, and outcomes
  • Rating System -- Gold, silver, and bronze completion ratings based on time taken
  • Reward System -- Money, items, XP, reputation, and custom rewards with per-rating bonuses
  • Storylines -- Chain missions into multi-chapter storylines with player choices
  • Player Progress -- Per-player mission state, cooldowns, completion history, and aggregate stats
  • NPC Integration -- Works with helix_npc for mission-giving NPCs
  • Group Missions -- Cooperative multi-player missions with min/max player counts
  • Failure Conditions -- Death, time limit, distance, detection, NPC death, vehicle destroyed, or custom
  • Blip Management -- Automatic map blips with per-objective-type sprites and colours
  • Test Mode -- Test missions in-editor with skip, teleport, invincibility, and force-complete tools

Requirements

Installation

  1. Download the latest release from GitHub
  2. Place helix_missions in your resources folder
  3. Add ensure helix_missions to your server.cfg (after helix_lib and oxmysql)
  4. Configure shared/config.lua to your liking
  5. Restart your server

Directory Structure

helix_missions/
+-- fxmanifest.lua
+-- client/
|   +-- main.lua                # Client bootstrap, NUI callbacks, keybinds
|   +-- ObjectiveRenderer.lua   # Blips, markers, and world rendering
|   +-- MissionHUD.lua          # Mission tracker overlay
|   +-- MissionRuntime.lua      # Client-side mission state machine
|   +-- EditorMode.lua          # In-game visual editor
|   +-- TestMode.lua            # Mission test/debug mode
+-- server/
|   +-- main.lua                # Server bootstrap, net events, admin events
|   +-- MissionManager.lua      # Mission CRUD, start/complete/fail logic
|   +-- ObjectiveManager.lua    # Objective validation and advancement
|   +-- PlayerProgress.lua      # Per-player state, saves, cooldowns, stats
+-- shared/
|   +-- config.lua              # All configuration
|   +-- types.lua               # EmmyLua type annotations
+-- nui/                        # React + Vite editor and HUD UI
+-- nui-dist/                   # Built NUI output

Configuration

All configuration lives in shared/config.lua.

General

OptionTypeDefaultDescription
Config.General.max_active_missionsnumber3Max missions a player can have active simultaneously
Config.General.auto_save_intervalnumber60Seconds between auto-saving player progress
Config.General.debugbooleanfalseEnable debug logging
Config.General.default_localestring'en'Default language for mission text
Config.General.allow_replaybooleantrueWhether players can replay completed missions
Config.General.default_replay_cooldownnumber3600Seconds before a mission can be replayed

Editor

OptionTypeDefaultDescription
Config.Editor.max_objectives_per_missionnumber50Maximum objectives per mission
Config.Editor.max_npcsnumber20Maximum NPCs per mission
Config.Editor.max_propsnumber30Maximum props per mission
Config.Editor.max_triggersnumber20Maximum triggers per mission
Config.Editor.max_rewardsnumber10Maximum rewards per mission
Config.Editor.max_failure_conditionsnumber10Maximum failure conditions per mission
Config.Editor.auto_save_intervalnumber30Editor auto-save interval (seconds)
Config.Editor.version_historybooleantrueEnable mission version history
Config.Editor.max_versionsnumber50Maximum versions to keep

HUD

OptionTypeDefaultDescription
Config.HUD.positionstring'top-right'Mission tracker position on screen
Config.HUD.default_expandedbooleantrueWhether tracker starts expanded
Config.HUD.max_visible_objectivesnumber5Max objectives shown in tracker
Config.HUD.show_distancebooleantrueShow distance to objective
Config.HUD.show_timerbooleantrueShow time remaining for timed objectives
Config.HUD.notification_durationnumber5000Notification duration in ms

Performance

OptionTypeDefaultDescription
Config.Performance.objective_check_intervalnumber500Milliseconds between objective condition checks
Config.Performance.entity_lod_distancenumber100.0Distance at which entities LOD/despawn
Config.Performance.max_concurrent_missionsnumber20Max concurrent missions across all players
Config.Performance.blip_render_distancenumber500.0Distance at which blips become visible
Config.Performance.max_entities_per_missionnumber50Max spawned entities per mission
Config.Performance.server_tick_ratenumber1000Server-side mission processing interval (ms)

Integration

OptionTypeDefaultDescription
Config.Integration.use_helix_npcbooleantrueUse helix_npc for mission NPCs
Config.Integration.use_helix_economybooleantrueUse helix_economy for rewards/costs
Config.Integration.use_helix_craftingbooleantrueUse helix_crafting for item requirements
Config.Integration.use_helix_dispatchbooleantrueUse helix_dispatch for dispatch integration

Rewards

OptionTypeDefaultDescription
Config.Rewards.default_currencystring'cash'Default currency type for money rewards
Config.Rewards.max_cash_rewardnumber100000Maximum cash reward per mission
Config.Rewards.xp_multipliernumber1.0XP multiplier for all rewards
Config.Rewards.first_completion_bonusnumber1.5Bonus multiplier for first completion
Config.Rewards.rating_thresholds.goldnumber0.75Complete in under 75% of estimated time for gold
Config.Rewards.rating_thresholds.silvernumber1.0Complete within estimated time for silver
Config.Rewards.rating_thresholds.bronzenumber1.5Complete within 150% of estimated time for bronze

Objective Types

TypeDescription
go_toNavigate to a location
collectCollect items from the world
deliverDeliver items to a location or NPC
eliminateEliminate targets
escortEscort an NPC to a destination
surviveSurvive for a duration
interactInteract with an object or NPC
vehicleVehicle-based objective (drive to, deliver vehicle)
stealthComplete without being detected
customCustom objective via export/callback
checkpointPass through checkpoints in order
photographPhotograph a target

Keybinds

ActionDefaultDescription
Toggle TrackerMShow or hide the mission tracker
Open JournalJOpen the mission journal
InteractEInteract with mission elements
Toggle EditorF10Open or close the mission editor (requires permission)

Permissions

PermissionDescription
helix.missions.editorAccess to the in-game mission editor
helix.missions.adminAccess to admin commands (publish, archive, force-complete, server stats)

Communication

helix_missions uses network events rather than traditional exports. All client-server communication flows through RegisterNetEvent handlers and NUI callbacks.

Integration Events

Other scripts can listen for mission lifecycle events:

lua
-- Server-side: listen for mission completion
AddEventHandler('helix_missions:missionCompleted', function(source, missionId, rating)
    print(('Player %d completed mission %s with %s rating'):format(source, missionId, rating))
end)

Premium FiveM Scripts for Qbox, QBCore & ESX