# F.A.Q > Frequently asked questions for ML Missions Category: QUESTS SYSTEM · Source: https://miciomods.it/docs/ml-missions-faq · Last updated: 2026-07-28 ## Setup **How do I change the language?** Set `Config.Settings.Locale` to the desired locale code: **shared/config/config.lua** ```lua Config.Settings = { Locale = 'en', } ``` **Why is the script not starting?** 1. Verify all dependencies are running (`ox_lib`, `oxmysql`, `ml_bridge`) 2. Check ensure order in `server.cfg`: `ml_missions` must load after `ml_bridge` 3. Look for database errors in the server console **Why can't I open the mission creator?** The creator requires admin permissions (ace perms for QBCore/QBox, admin group for ESX). Wait for the `[ml_missions] Resource started` message in console before using the command. Default command: `/missioncreator`. **Why are NPCs not spawning?** Verify the NPC was saved correctly in the creator, the ped model exists in `shared/config/peds.lua`, and there are no database errors in the server console. ## NPCs **Can the same NPC spawn in multiple locations?** Yes. In the NPC editor, add entries to `Additional Positions` below the main coordinates. The same NPC spawns at all positions with shared quests and reputation. **If an NPC has multiple positions, where do I turn in the quest?** The turn-in blip always points back to the specific position where the quest was accepted. Other positions of the same NPC will not show the turn-in option in their dialogue. **Can two players talk to the same NPC at once?** No. Only one player at a time can open the dialogue. Others see a "This NPC is busy" notification. The lock releases when the first player closes the dialogue, disconnects, or after a 5-minute idle timeout. ## Creator **How do I create a mission?** Open the creator with `/missioncreator`, click "New Mission", fill in the title and objectives. Use the map to place coordinates. Save and the mission is immediately available in-game. **Can I test a mission without publishing?** Yes. The creator has a "Test Mission" button that launches a temporary version for you only. Test missions bypass cooldowns and logging, and are cleaned up automatically. **How do I assign missions to NPCs?** Create an NPC in the creator, choose its ped model and position. Assign quests to the NPC's pool as `fixed` (always available) or `random` (rotated from a pool). Set `minQuestsInPool` and `maxQuestsInPool` to control rotation. **Can I restrict a mission to a job or a gang?** Yes. The Required Job field accepts both jobs and gangs, comma separated. The player only needs to match one entry. ## Objectives **What objective types are available?** 12 types: `GOTO_COORDS`, `KILL_PEDS`, `DEFEND_AREA`, `ESCORT`, `TAKE_VEHICLE`, `INTERACT_PROGRESS`, `RETRIEVE_ITEM`, `CHECK_ITEM`, `HEIST_LOOT`, `GATHER_REWARD`, `INTERACTION_TALK`, and `TURN_IN` (auto-generated). **Can objectives run in parallel?** Yes. Use `activateOnStart` to trigger an objective when another starts, or `activateOnEvent` to trigger on specific events. Use `pauseUntilComplete` to hold an objective until a dependency finishes. **What is zombie mode?** When enabled on `KILL_PEDS` or `DEFEND_AREA` objectives, enemy NPCs use unarmed combat and zombie animations regardless of weapon configuration. **How do I build a bank job style grab?** Use a `HEIST_LOOT` objective and pick a preset per loot point: cash or gold trolleys, a safe crack, table stacks of cash, gold, cocaine or weed, a jewelry case smash, a laptop grab, bolt cutters, container grind or crate crowbar. The prop spawns in the world, the grab plays a synced animation, and each point can require a minigame and pays its own rewards. ## Squads **How do squads work?** The squad leader invites nearby players (within `NearbyPlayerDistance`). When the leader starts a mission, all members participate. Rewards are distributed evenly. If all squad members die, the mission fails. **Can I set a minimum squad size?** Yes. Set `squadOptions.minMembers` on the quest in the creator to require a minimum number of players before the mission can start. **Can I require specific jobs to be online before a quest can start?** Yes. In the creator, use the `Required Jobs Online` panel to add one or more entries. Each entry has a job name and a minimum online count. The quest only starts if every listed job meets its minimum. Example: require 2 `police` and 1 `bcso` online. ## Rewards **What reward formats are supported?** Three formats: - **Fixed loots**: Guaranteed item drops from a defined pool - **Probability loots**: Percentage-based drops with configurable loop count - **Money**: Random amount between min and max, to a specific account (cash/bank) Squad bonuses can multiply rewards based on squad size. **Can I modify rewards from another script?** Yes. Use `Handlers.ModifyRewards()` in `open/handlers_server.lua` to intercept and modify money and item arrays before distribution. See the Developer page for examples. ## XP / Reputation **How does the XP system work?** Each NPC tracks reputation per player. Completing missions for an NPC grants `reputationPoints`. Failing can deduct `xpPenaltyOnFail`. Gate missions behind `requiredXp` to create progression chains. **Can I access XP from external scripts?** Yes. Use the server exports: `getXP`, `setXP`, `addXP`, `removeXP`. See the Developer page. ## Cooldowns **What is the difference between global and personal cooldown?** **Global:** One player completes a quest, ALL players must wait before it can be started again. **Personal:** Each player has their own cooldown timer per quest. Set via `isPersonalCooldown` in the creator. **How do one-time missions work?** Set `isOneTimeOnly = true` in the creator. The quest can only be completed once per player, tracked in the `ml_mission_completed` database table. ## TTS **Where are TTS audio files cached?** Server-side at `cache/tts/` inside the resource folder. The cache survives script updates because the folder is not part of the `files{}` section in `fxmanifest.lua`. **Does the same dialogue call ElevenLabs every time?** No. The first request generates the audio and stores it in `cache/tts/`. Subsequent requests for the same text + voice ID read directly from disk. Zero extra API credits are consumed. **Why does the first TTS line sometimes play with a small delay?** The first request triggers the ElevenLabs HTTP call (1-3 seconds). Subsequent requests are instant thanks to the disk cache. A silent audio warm-up runs at client boot to reduce the delay further. **Can I use my own MP3 files instead of ElevenLabs?** Yes. Drop the file in `cache/tts/` (`.mp3`, `.wav` or `.ogg`, max 2 MB, plain file names) and select Custom File as the audio source in the creator. Works for NPC greetings, mission briefings and Talk objectives, and never calls the API. **Is there a limit on ElevenLabs usage?** Generation is capped at 50000 characters per player per hour and single lines are cut at 500 characters. Cached lines replay from disk and cost nothing. ## Live Missions **How do I see the missions currently running?** Open the creator and switch to the Live Missions tab. Every active run is listed with its squad, elapsed time and objective progress, and the list refreshes on its own. **Can staff act on a stuck mission?** Yes. From the Live Missions tab an admin can force complete, force fail, or teleport to the squad leader. Access is controlled by `Config.Permissions.LiveActions`, which falls back to the Creator tier when the block is removed. ## Community Hub **What is the Community Hub?** The Community Hub connects to the Micio Mods API. Browse, download, upload, vote on, and report community-created missions directly from the in-game creator. No additional setup required. **Is my server data shared?** No. Only mission configuration data is shared. Your server license is used for rate-limiting and vote tracking, not exposed publicly. ## Updates **How do I update the script?** 1. Download latest from CFX Portal 2. Backup `shared/config/` and `server/config_server.lua` 3. Replace all files except config folders 4. Restart the resource Missions, NPCs, and XP data are stored in the database and survive updates.