Back to Docs
Documentation
Complete guide for setting up Multy Applications on your FiveM server
Prerequisites
- FiveM Server (build 2802+)
- QBCore or QBox Framework
- oxmysql
- MySQL database
Framework Configuration
The script automatically detects your framework (QBCore or QBox). You can also manually specify it in config.lua
:
Config.Framework = 'auto' -- Options: 'auto', 'qb-core' or 'qbox'
⚠️ Note: The script will automatically detect which framework you're using. Set to 'auto' for automatic detection (recommended), or manually specify 'qb-core' or 'qbox' if needed.
Installation
Step 1: Install the Resource
- Extract
multy-applications
to your resources directory - Folder structure:
resources/multy-applications/
Step 2: Database Setup
Tables are created automatically on first start - no manual SQL import needed.
Step 3: Configure Jobs
Edit config.lua
and add your server's jobs:
Config.Jobs = {
['police'] = {
label = 'Police Department',
bossgrades = {4, 5}, -- Grades that can manage applications
hiring = true -- Currently accepting applications
},
['mechanic'] = {
label = 'Mechanic Shop',
bossgrades = {4},
hiring = true
},
-- Add more jobs as needed
}
Step 4: Configure Discord Webhooks
Edit server/webhooks.lua
to add your Discord webhook URLs:
-- Server Logging Webhooks
local WEBHOOK_URLS = {
applications = "YOUR_WEBHOOK_URL_HERE", -- For new applications
reviews = "YOUR_WEBHOOK_URL_HERE", -- For approved/denied
settings = "YOUR_WEBHOOK_URL_HERE" -- For settings changes
}
-- Manager Notification Webhooks (per job)
local MANAGER_WEBHOOKS = {
['police'] = {
url = "YOUR_WEBHOOK_URL_HERE",
roleId = "DISCORD_ROLE_ID" -- Optional: ping this role
},
['mechanic'] = {
url = "YOUR_WEBHOOK_URL_HERE"
}
}
Step 5: Configure NPC Location
In config.lua
, set where players apply:
Config.NPC = {
enabled = true,
model = 'ig_paper',
coords = vector4(47.9939, -870.9911, 30.4665, 64.4816),
blip = {
enabled = false,
sprite = 280,
color = 3,
scale = 0.8,
label = "Job Applications"
},
target = {
system = 'auto', -- 'auto', 'qb-target', 'ox_target', 'drawtext'
label = "Apply for Jobs",
icon = "fas fa-briefcase",
distance = 2.0
}
}
Step 6: Add to server.cfg
Add to your server.cfg
:
ensure oxmysql
ensure multy-applications
Configuration
Basic Settings
Config.Locale = 'en' -- Language (en, es, fr, de, it, nl)
Config.Commands = {
apply = 'apply' -- Command to open menu
}
Config.Notifications = {
enabled = true, -- Manager notifications for new applications
sound = true,
duration = 5000
}
Rate Limits
- 3 applications per hour per player
- 30 webhook requests per minute
Discord Webhook Settings
Config.Webhooks = {
enabled = true,
botName = "QB Applications",
botAvatar = "https://cdn3.emoji.gg/emojis/4631_blobclipboard.png",
color = {
new_application = 3447003, -- Blue
approved = 65280, -- Green
denied = 16711680, -- Red
settings_changed = 16776960 -- Yellow
}
}
Usage
Players
- Interact with NPC or use
/apply
- Select job and fill application
- Check status anytime
Managers
- Access panel via NPC or
/apply
(requires boss grade) - Review and approve/deny applications
- Manage custom questions
- Toggle hiring on/off
Features
- Multi-Framework Support: Works with QBCore and QBox with automatic detection
- Custom Questions: Add job-specific questions
- Discord Integration: Webhook notifications for applications
- Rate Limiting: Prevents spam
- Multi-Language: Supports 6 languages (English, Spanish, French, German, Italian, Dutch)
- Auto Database Setup: No manual SQL needed
- Framework Auto-Detection: Automatically detects QBCore or QBox
Troubleshooting
Common Issues:
- Applications not saving: Check oxmysql connection
- Webhooks failing: Verify Discord URL format
- NPC missing: Check coordinates and model name
- Manager access denied: Verify job grade in config
Debug Mode:
Config.Debug = true -- Add to config.lua
Security
- Server-side webhook storage
- Input sanitization
- Rate limiting protection
- Permission-based access control