Installation

2 min readUpdated 2 weeks ago

Overview

ML Missions is a quest system built from an in-game creator. NPCs hand out missions made of objectives, squads play them together, and rewards, reputation and cooldowns are saved in the database. NPC lines can be voiced with ElevenLabs or your own audio files.

Quick Start

  1. Download from CFX Portal
  2. Extract to your resources folder as ml_missions
  3. Add to server.cfg:
server.cfg
1ensure oxmysql
2ensure ox_lib
3ensure ml_bridge
4ensure ml_missions
Load Order

ml_missions must start AFTER ml_bridge. Optional resources such as xsound, ML Inventory, ml_skills and ml_battlepass start before it.

Database

Tables are created on first start:

  • ml_missions: mission definitions
  • ml_mission_npc: mission NPCs
  • ml_missions_xp: player reputation with each NPC
  • ml_mission_completed: one-time missions each player has finished
  • ml_mission_battlepass_runs, ml_mission_battlepass_outbox, ml_mission_battlepass_guard: battlepass progress queue, used only with ml_battlepass

Voice Lines

  1. Open server/config_server.lua
  2. Set your ElevenLabs key in Config.TTS.ElevenLabs.ApiKey

Audio is saved in cache/tts/ inside the resource. Each server builds its own cache over time. To use your own recordings, put .mp3, .wav or .ogg files in cache/tts/ and pick Custom File as the audio source in the creator.

No Voice Lines

Set Config.TTS.Enabled = false in shared/config/config.lua to run without voice lines. No API key needed.

Verify

The console prints the version banner, with a line that starts with:

cfg
1[ml_missions] Resource started

Open the creator with /missioncreator.

  • Resource does not start: check that oxmysql, ox_lib and ml_bridge start first.
  • /missioncreator does nothing: the player lacks the Creator permission. Grant ml_missions.creator with ACE, or use an admin group detected by ml_bridge.
  • NPC not spawning: check the ped model and the NPC position in the creator, and look for database errors in the console.
  • No voice: check Config.TTS.Enabled, the API key in server/config_server.lua, and that xsound is running.
  • Clothing reward missing in the loot editor: ML Inventory must be running.