FiveM dev tools: find resources, check compatibility, validate Lua and server.cfg, generate jobs
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Checks whether an RPScripts product (by slug) or your own resource files fit a server: framework (QBCore, Qbox, ESX, vRP, standalone), required resources such as ox_lib, ox_inventory, ox_target or oxmysql, FXServer artifact and game build minimums, OneSync, and conflicts in your resource list. Each check is supported, unsupported or unknown with its evidence; nothing is assumed without a source.
Resources to check support for, e.g. ["ox_inventory", "ox_target"]
The resource's text files (fxmanifest.lua, Lua, JS, HTML, JSON …) with paths relative to the resource folder. Nothing is executed.
Product slug from search_products
Your server's framework
Enforced GTA V game build, e.g. 3258
FXServer artifact number, e.g. 17000
Resources your server starts (names from server.cfg ensure lines)
Checks whether an RPScripts product (by slug) or your own resource files fit a server: framework (QBCore, Qbox, ESX, vRP, standalone), required resources such as ox_lib, ox_inventory, ox_target or oxmysql, FXServer artifact and game build minimums, OneSync, and conflicts in your resource list. Each check is supported, unsupported or unknown with its evidence; nothing is assumed without a source.
| Argument | Type | Description |
|---|---|---|
| check | array | Resources to check support for, e.g. ["ox_inventory", "ox_target"] |
| files | array | The resource's text files (fxmanifest.lua, Lua, JS, HTML, JSON …) with paths relative to the resource folder. Nothing is executed. |
| onesync | boolean | |
| product | string | Product slug from search_products |
| framework | string | Your server's framework |
| game_build | integer | Enforced GTA V game build, e.g. 3258 |
| server_build | integer | FXServer artifact number, e.g. 17000 |
| server_resources | array | Resources your server starts (names from server.cfg ensure lines) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"check": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[\\w.-]{1,64}$"
},
"maxItems": 20,
"description": "Resources to check support for, e.g. [\"ox_inventory\", \"ox_target\"]"
},
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"content": {
"type": "string",
"maxLength": 512000
}
}
},
"maxItems": 200,
"minItems": 1,
"description": "The resource's text files (fxmanifest.lua, Lua, JS, HTML, JSON …) with paths relative to the resource folder. Nothing is executed."
},
"onesync": {
"type": "boolean"
},
"product": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Product slug from search_products"
},
"framework": {
"enum": [
"esx",
"qbcore",
"qbox",
"vrp",
"standalone"
],
"type": "string",
"description": "Your server's framework"
},
"game_build": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Enforced GTA V game build, e.g. 3258"
},
"server_build": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "FXServer artifact number, e.g. 17000"
},
"server_resources": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[\\w.-]{1,64}$"
},
"maxItems": 500,
"description": "Resources your server starts (names from server.cfg ensure lines)"
}
}
}Generates a complete job resource with the RPScripts Jobs Creator for QBCore, Qbox or ESX: job definition and grades with salaries and boss flags, duty, stash, garage, armory, shop, crafting, harvest/process/sell, boss office, wardrobe, teleports, billing, dispatch, player and vehicle actions, plus the framework install entries (shared jobs entry or ESX SQL) and a README. Start from a template (preset) and/or pass a full spec. The output is checked statically with RPScripts Lab before it is returned. Templates: police, sheriff, ambulance, fire, security, mechanic, cardealer, taxi, delivery, trucking, business, restaurant, fishing, mining, gang.
| Argument | Type | Description |
|---|---|---|
| name | string | Job id (overrides the template's), e.g. police |
| spec | object | A full Jobs Creator spec; replaces the template. Its shape is rpcrate.job.json from any create_job result: generate a preset, edit that file, pass it here. |
| label | string | Display name (overrides the template's) |
| preset | string | Template to start from |
| framework* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"framework"
],
"properties": {
"name": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,31}$",
"description": "Job id (overrides the template's), e.g. police"
},
"spec": {
"type": "object",
"description": "A full Jobs Creator spec; replaces the template. Its shape is rpcrate.job.json from any create_job result: generate a preset, edit that file, pass it here.",
"propertyNames": {
"type": "string"
},
"additionalProperties": true
},
"label": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Display name (overrides the template's)"
},
"preset": {
"enum": [
"police",
"sheriff",
"ambulance",
"fire",
"security",
"mechanic",
"cardealer",
"taxi",
"delivery",
"trucking",
"business",
"restaurant",
"fishing",
"mining",
"gang"
],
"type": "string",
"description": "Template to start from"
},
"framework": {
"enum": [
"qbcore",
"qbox",
"esx"
],
"type": "string"
}
}
}Generates a valid fxmanifest.lua (fx_version 'cerulean', game 'gta5') for client/server/shared Lua or JS scripts, NUI pages, maps, vehicle data files and dependencies, then validates it with the RPScripts manifest rules. Lua 5.4 is the default runtime, so no lua54 line is written.
| Argument | Type | Description |
|---|---|---|
| files | array | Files sent to clients (NUI assets, data files) |
| author | string | |
| preset | string | |
| ui_page | string | NUI page (preset nui), default html/index.html |
| version | string | |
| data_files | array | e.g. [{"type": "HANDLING_FILE", "path": "data/handling.meta"}] |
| description | string | |
| dependencies | array | Resources or constraints, e.g. ["ox_lib", "/onesync"] |
| node_version | string | Set for server-side JavaScript using Node 22 features |
Builds or changes a FiveM resource with the RPScripts AI generator (QBCore, Qbox, ESX or standalone): the agent writes Lua/NUI files, checks them (syntax, manifest, framework API) and repairs problems. Uses the signed-in customer's AI credits (typically about 3 per script). Spending requires confirm_credit_use: true, which you may only set after the user explicitly agreed to spend credits. Without a prompt, returns the status and files of an existing project. Long runs continue in the background: call again with the project_id and no prompt to collect the result.
| Argument | Type | Description |
|---|---|---|
| name | string | Name for a new project |
| locale | string | Language of names, descriptions and URLs (en, de, fr, pt, es) |
| prompt | string | What to build or change |
| framework | string | For a new project (default qbcore) |
| project_id | string | Continue an existing project instead of creating one |
| max_credits | number | Upper limit of credits this run may use (default 9) |
| confirm_credit_use | boolean | true only after the user explicitly approved spending AI credits |
Creates a signed download link for one file of a product the signed-in customer owns (from list_purchases). The link is personal, works for 5 minutes and counts toward the limit of 20 downloads per product per day. Requires signing in.
| Argument | Type | Description |
|---|---|---|
| file_index | integer | |
| product_id* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"product_id"
],
"properties": {
"file_index": {
"type": "integer",
"default": 0,
"maximum": 999,
"minimum": 0
},
"product_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Details of one RPScripts product by slug (from search_products): description, frameworks, version, categories, price, whether it can be bought, and install requirements from RPScripts Lab's static check of the download (dependencies, start order).
| Argument | Type | Description |
|---|---|---|
| slug* | string | |
| locale | string | Language of names, descriptions and URLs (en, de, fr, pt, es) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"locale": {
"enum": [
"en",
"de",
"fr",
"pt",
"es"
],
"type": "string",
"default": "en",
"description": "Language of names, descriptions and URLs (en, de, fr, pt, es)"
}
}
}All RPScripts shop categories (scripts by framework and job, MLOs, vehicles, clothing, server packs …) with their paths and URLs.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language of names, descriptions and URLs (en, de, fr, pt, es) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locale": {
"enum": [
"en",
"de",
"fr",
"pt",
"es"
],
"type": "string",
"default": "en",
"description": "Language of names, descriptions and URLs (en, de, fr, pt, es)"
}
}
}Lists the RPScripts products the signed-in customer owns (active purchases, including bundle items): product id, name, product page, files with their index for get_download_url, download availability and install requirements. Requires signing in to RPScripts.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| limit | integer | |
| locale | string | Language of names, descriptions and URLs (en, de, fr, pt, es) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 100,
"minimum": 1
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 50,
"minimum": 1
},
"locale": {
"enum": [
"en",
"de",
"fr",
"pt",
"es"
],
"type": "string",
"default": "en",
"description": "Language of names, descriptions and URLs (en, de, fr, pt, es)"
}
}
}Looks up a public FiveM server by cfx.re join code/link (e.g. cfx.re/join/abc123) or public host:port. Returns what the server or the Cfx server list publishes: hostname, player count, slots, artifact/build, OneSync, tags, public variables and resources. Private and local addresses are refused; offline servers are reported as unreachable. Player names and identifiers are not returned. shop_products lists up to six RPScripts products whose resource name the server runs (exact name; frameworks, libraries and packs excluded).
| Argument | Type | Description |
|---|---|---|
| server* | string | Join code, cfx.re/join link or "host:port" |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"server"
],
"properties": {
"server": {
"type": "string",
"maxLength": 300,
"minLength": 5,
"description": "Join code, cfx.re/join link or \"host:port\""
}
}
}Searches RPScripts documentation (installation, downloads, server packs, updates, QBCore/Qbox/ESX guides, compatibility, troubleshooting, AI workflow) and the framework API reference RPScripts reads from pinned QBCore, Qbox, ESX, ox_lib, ox_inventory, ox_target and oxmysql sources. Returns matching sections with source URLs. Pass page to read one docs page in full.
| Argument | Type | Description |
|---|---|---|
| page | string | Docs page path from a result, e.g. "getting-started/downloads" |
| limit | integer | |
| query | string | e.g. "install a server pack", "GetPlayer", "AddItem" |
| scope | string | |
| framework | string | Framework whose API reference to search |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "string",
"maxLength": 200,
"description": "Docs page path from a result, e.g. \"getting-started/downloads\""
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "e.g. \"install a server pack\", \"GetPlayer\", \"AddItem\""
},
"scope": {
"enum": [
"all",
"docs",
"api"
],
"type": "string",
"default": "all"
},
"framework": {
"enum": [
"qbcore",
"qbox",
"esx",
"standalone"
],
"type": "string",
"default": "qbcore",
"description": "Framework whose API reference to search"
}
}
}Search the RPScripts catalogue of FiveM scripts, MLOs, server packs, vehicles and assets. Filter by framework, category and USD price; results are ranked by relevance when a query is given, otherwise by popularity. Only published, listed products. 24 results per page.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| sort | string | Default: relevance with a query, popular without |
| limit | integer | Results to return from the page (max 24) |
| query | string | Search terms, e.g. "qbcore police job" or "mechanic mlo" |
| locale | string | Language of names, descriptions and URLs (en, de, fr, pt, es) |
| category | string | Category path from list_categories, e.g. "fivem-job-scripts/police-scripts" |
| frameworks | array | Only products listed for any of these frameworks |
| buyable_only | boolean | Only products that can be bought right now |
| max_price_usd |
Statically checks a FiveM resource: Lua syntax, fxmanifest.lua directives and referenced files, resource structure, undeclared dependencies, framework API calls against pinned QBCore/Qbox/ESX versions, unknown natives, net-event security and backdoor patterns. Returns diagnostics with severity, rule code, file and line and a fix. Code is parsed, never run.
| Argument | Type | Description |
|---|---|---|
| files* | array | The resource's text files (fxmanifest.lua, Lua, JS, HTML, JSON …) with paths relative to the resource folder. Nothing is executed. |
| framework | string | Framework to check API calls against; detected from the code when omitted |
| resource_name | string | Folder name of the resource (used for self-references) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"files"
],
"properties": {
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"content": {
"type": "string",
"maxLength": 512000
}
}
},
"maxItems": 200,
"minItems": 1,
"description": "The resource's text files (fxmanifest.lua, Lua, JS, HTML, JSON …) with paths relative to the resource folder. Nothing is executed."
},
"framework": {
"enum": [
"qbcore",
"qbox",
"esx",
"standalone"
],
"type": "string",
"description": "Framework to check API calls against; detected from the code when omitted"
},
"resource_name": {
"type": "string",
"pattern": "^[\\w.-]{1,64}$",
"description": "Folder name of the resource (used for self-references)"
}
}
}Parses and checks an FXServer server.cfg: syntax, argument counts and values, duplicate or conflicting settings, repeated resource starts, framework and ox resource start order, missing dependencies, OneSync/slot conflicts, secrets exposed with set/sets, weak RCON passwords, plain-text database passwords and placeholder values. Returns issues with line numbers and a suggested fix. The config is processed in memory and never stored; secret values are never echoed.
| Argument | Type | Description |
|---|---|---|
| config* | string | server.cfg text (max 256 KiB) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"config"
],
"properties": {
"config": {
"type": "string",
"maxLength": 262144,
"minLength": 1,
"description": "server.cfg text (max 256 KiB)"
}
}
}| client_scripts | array | e.g. ["client/*.lua"] or ["client.js"] |
| server_scripts | array | e.g. ["@oxmysql/lib/MySQL.lua", "server/*.lua"] |
| shared_scripts | array | e.g. ["@ox_lib/init.lua", "config.lua"] |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"files": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Files sent to clients (NUI assets, data files)"
},
"author": {
"type": "string",
"maxLength": 100
},
"preset": {
"enum": [
"basic",
"nui",
"map",
"vehicle"
],
"type": "string",
"default": "basic"
},
"ui_page": {
"type": "string",
"maxLength": 200,
"description": "NUI page (preset nui), default html/index.html"
},
"version": {
"type": "string",
"maxLength": 30
},
"data_files": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"path"
],
"properties": {
"path": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"type": {
"type": "string",
"pattern": "^[A-Z0-9_]{1,64}$"
}
}
},
"maxItems": 50,
"description": "e.g. [{\"type\": \"HANDLING_FILE\", \"path\": \"data/handling.meta\"}]"
},
"description": {
"type": "string",
"maxLength": 300
},
"dependencies": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"maxItems": 50,
"description": "Resources or constraints, e.g. [\"ox_lib\", \"/onesync\"]"
},
"node_version": {
"enum": [
"22"
],
"type": "string",
"description": "Set for server-side JavaScript using Node 22 features"
},
"client_scripts": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50,
"description": "e.g. [\"client/*.lua\"] or [\"client.js\"]"
},
"server_scripts": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50,
"description": "e.g. [\"@oxmysql/lib/MySQL.lua\", \"server/*.lua\"]"
},
"shared_scripts": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50,
"description": "e.g. [\"@ox_lib/init.lua\", \"config.lua\"]"
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Name for a new project"
},
"locale": {
"enum": [
"en",
"de",
"fr",
"pt",
"es"
],
"type": "string",
"default": "en",
"description": "Language of names, descriptions and URLs (en, de, fr, pt, es)"
},
"prompt": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "What to build or change"
},
"framework": {
"enum": [
"qbcore",
"qbox",
"esx",
"standalone"
],
"type": "string",
"description": "For a new project (default qbcore)"
},
"project_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Continue an existing project instead of creating one"
},
"max_credits": {
"type": "number",
"maximum": 500,
"minimum": 0.5,
"description": "Upper limit of credits this run may use (default 9)"
},
"confirm_credit_use": {
"type": "boolean",
"default": false,
"description": "true only after the user explicitly approved spending AI credits"
}
}
}| number |
| min_price_usd | number |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 500,
"minimum": 1
},
"sort": {
"enum": [
"relevance",
"popular",
"new",
"price-asc",
"price-desc"
],
"type": "string",
"description": "Default: relevance with a query, popular without"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 24,
"minimum": 1,
"description": "Results to return from the page (max 24)"
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Search terms, e.g. \"qbcore police job\" or \"mechanic mlo\""
},
"locale": {
"enum": [
"en",
"de",
"fr",
"pt",
"es"
],
"type": "string",
"default": "en",
"description": "Language of names, descriptions and URLs (en, de, fr, pt, es)"
},
"category": {
"type": "string",
"maxLength": 200,
"description": "Category path from list_categories, e.g. \"fivem-job-scripts/police-scripts\""
},
"frameworks": {
"type": "array",
"items": {
"enum": [
"esx",
"qbcore",
"qbox",
"standalone",
"vrp"
],
"type": "string"
},
"maxItems": 5,
"description": "Only products listed for any of these frameworks"
},
"buyable_only": {
"type": "boolean",
"default": false,
"description": "Only products that can be bought right now"
},
"max_price_usd": {
"type": "number",
"maximum": 100000,
"minimum": 0
},
"min_price_usd": {
"type": "number",
"maximum": 100000,
"minimum": 0
}
}
}