Overview
About nCore DevKit
It's a browser for GTA V's data that runs inside the game. Open it with F10, type part of a prop name and the list updates on every key. Enter puts the prop in front of you on the ground, frozen and facing you, and Alt+C copies a Lua snippet with the real model name filled in. I made it because I got tired of alt-tabbing to websites and text dumps for every prop name and animation clip.
The data is from game build v3717.0, split into 46 categories. Among them are 21,561 props, 921 vehicles, 1,109 peds, 184 weapons and 20,179 animation dictionaries with 269,414 clips. It's the base game only, so addon vehicles and props your server streams itself are not in the list.
Most of them can be previewed in the world. An animation plays the exact clip you picked from the dictionary. Weapons, clothing and tattoos go on a frozen mannequin only you see, so your own character isn't touched. Props and vehicles are only visible to you as well, and the dock buttons turn them or move them closer and further. Interiors and world placements like ATMs or gas pumps teleport you there with a screen fade. Switching entries, stopping, or stopping the resource removes everything the preview spawned. Esc leaves the preview running unless you change KeepOnClose.
Two previews do reach other players. An explosion is real, so they see and hear it. By default it does no damage, and you can turn the damage up in the config. Also by default a ped preview makes you that ped for everyone until your look is put back.
The snippets are plain template files in data/snippets/, so you can change them. 42 categories have one. Shaders, vehicle flags, weapon flags and apparel restriction tags have none, and the mod kit and livery snippets are general examples that don't use the entry you picked yet. When an entry is missing a value the template needs, I chose to show no code and print a warning in F8 rather than hand you a snippet with a hole in it.
Access goes through ACE (ncore_devkit.browse and ncore_devkit.elevated) or identifier lists in the config, and on ESX, QBCore and QBox a group or job can open it too. Weapons, explosions, IPLs, interiors, cutscenes and static emitters need elevated. elevated does not include browse through ACE, so give both. Your own scripts can search and look up the same data through exports, and they work in both editions.
Requirements
- OneSync on
- No framework and no database. Favorites go into a JSON file in the resource folder.
- Optional: ESX, QBCore or QBox for the group or job check. Start ncore_devkit after the framework, it's detected once at start.
- Optional: ncore_hud or ox_lib for notifications (GTA's own feed is used without them), and a chat resource that listens to
chat:addMessagefor the chat lines - Game build 3717 to preview every entry. On a lower build, entries from the newer DLCs can't be previewed.
In the download
The ncore_devkit resource with the data index and the snippet templates, README.md with the full feature list, the config notes and a troubleshooting table, INSTALLATION.md and CHANGELOG.md.
Editions
Escrow and Full source have the same features and get the same updates. In the Escrow edition the Lua code is protected by Cfx.re escrow and runs with your Cfx.re account's server key. The config, locale, bridge, snippet and tool files and the browser panel stay open to edit. Full source has every file readable.
New versions are announced on intelnpc.com. You download the resource again (Escrow from your Cfx.re account, Full source from Tebex) and keep your config/config.lua and favorites.json.
Support
Support is on intelnpc.com and I reply within 72 hours. Payments and refunds are handled by Tebex under their terms.
Not approved, sponsored or endorsed by Rockstar Games.
What you get
Config open, core escrowed
Docs
Read it before you buy
The same docs that ship with the script, updated with every release.
In-game GTA V data browser for FiveM. Search it, preview it in the world, copy the code.
nCore Development · intelnpc.com · Resource: ncore_devkit · Version: see fxmanifest.lua
What it is#
nCore DevKit puts the game's data inside the game. You open it with F10, type a few letters, press Enter and the thing shows up in front of you. Then you copy a Lua snippet with the real name already filled in. I made it because I got tired of alt-tabbing to websites and text dumps every time I needed a prop name, an animation clip or a particle asset.
It's meant for developers and admins. A player only gets in with a permission you give: ACE, an identifier list, or on ESX, QBCore and QBox an admin group or job. The data comes from game build v3717.0 (Online 1.72): 46 categories with 103,097 entries, plus 269,414 animation clips, 81,206 speech lines and 33,912 world placements. The entries include 21,561 props, 921 vehicles, 1,109 peds, 184 weapons and 20,179 animation dictionaries. It's the base game only, so models your server streams itself (addon vehicles, MLO props) are not in the list.
Features#
The browser#
- A left column for browsing, a right column for details and activity, and a dock at the bottom. Open it with
/gdb,/gdb <term>,/gdb find <term>or F10, close it with Esc. It needs the browse permission. - 46 categories, grouped as Spawn, Motion, Effects, Looks, World, Audio and Reference. Each one can be switched off with
Config.Categories.<key>, and it's then gone from the browser and the search. - Results update on every key. Exact matches come first, then names that start with your text, then names where your text starts after a separator, then anything that contains it. Shorter names come first and the match is highlighted. Long lists render as you scroll. Display is capped at
Config.Search.MaxResults(5000), and the count shows the real total. - With an empty search you get a hand-picked "Start here" list of showcase entries and the total record count.
- The Categories tab has 7 collapsible groups with totals. Click a category to search only in it. Categories that need the
elevatedpermission show a lock. - The detail panel shows the category, the label and every data field of the selected entry. Animation dictionaries list their clips, speech voices their lines and location groups their placements as clickable chips (up to 300, with "N of total"). The chip you pick is what the preview and the snippet use.
- Clips can be added to the global search with
Config.Search.IncludeClipsInGlobalSearch = true(off by default). It adds all 269,414 clip names to the main search and makes loading and typing slower. - Up and Down move, PgUp and PgDn jump a page (
Config.Search.PageSize), Enter previews,/jumps to the search box, Delete stops everything, Esc closes. - The activity timeline keeps the last 60 events (previews, errors, stops, picks, favorites) with a live "time ago" label.
Snippets#
- The selected entry shows a Lua snippet with its real name and values filled in. Copy it with the button, C (when the search box isn't focused) or Alt+C.
- The templates are plain files in
data/snippets/with{{field}}placeholders, so you can change them. If an entry is missing a value the template needs, no broken code is shown and a warning goes to the F8 console. - 42 categories have a template. Shaders, vehicle flags, weapon flags and apparel restriction tags don't. The vehicle mod kit and livery templates are general examples that don't use the entry you picked yet.
In-world preview#
Enter, a double-click or the Preview button. 41 of the 46 categories can be previewed. Starting a new preview stops the old one first. The 5 reference-only categories (scenario groups, shaders, vehicle flags, weapon flags, apparel restriction tags) say so instead of failing.
- Props and vehicles spawn in front of you on the ground, frozen, invincible and facing you. Props stand at
Config.Preview.Distance(2.5 m), vehicles atConfig.Preview.VehicleDistance(6 m), locked with the engine running. Only you see them. - By default a ped preview makes you that ped (
Config.Preview.PedsOnSelf = true), and other players see that model change. Your model, clothes, hair, health and armor are saved first and put back afterwards. SetPedsOnSelf = falseto spawn the ped in front of you instead. - Weapons, weapon components, ped damage packs, clothing, ped props and tattoos go on a frozen local mannequin, so your own character isn't touched. The mannequin model is
Config.Preview.MannequinModel(mp_m_freemode_01). - Pickups are spawned for you only.
- For an animation you pick a clip chip and preview it, and that exact clip loops. The preview checks that it really plays and tells you if the clip isn't in the dictionary.
- Scenarios start in place. Clipsets walk a mannequin forward with the walk and strafe style.
- A waypoint recording is drawn as a pink line in the world, with a map waypoint at the start.
- Particles loop, timecycle filters apply (your previous one comes back), screen effects loop and camera shakes play. Their strength is in
Config.Effects. - Explosions are
elevatedonly. It's a real explosion at least 12 m in front of you. Other players see and hear it, and an anticheat that watches explosions will see it too. By default it does no damage (Config.Effects.ExplosionDamageScale, default 0.0). Raise it and it damages what's near it. You're made invincible while it plays and the fire is put out when it stops. - Mod kits, liveries, paint, xenon and window tint go on a fresh vehicle. The handling preview puts you in the driver's seat of a local copy.
- IPLs toggle and are put back afterwards. Interiors, zones, garages and world placements teleport you there with a screen fade. If an interior belongs to a DLC that isn't loaded, it names the DLC. IPLs, interiors, static emitters and cutscenes are
elevatedonly. - World placements come in 34 groups (ATMs, gas pumps, vending machines, bus stops, jukeboxes, seats, payphones, CCTV, fire hydrants and more). Each group lists the nearest placements first with distance and zone, up to
Config.Search.MaxPlaces(300). Pick one and preview it to go there. - A teleport fades out, waits for the world to load (
Config.Preview.LoadTimeout, 10 s) and fades in. If you're driving, your vehicle comes along. A landing more than 30 m off target is reported. Your starting point is remembered, except when/gdb waypointmoves you. - Audio covers sounds, radio stations (sit in a vehicle first, your station comes back), music events, audio scenes, script, ambient and mission audio banks, police reports, mission-complete jingles and alarms.
- A speech line plays on a mannequin with that voice. A voice shows its first 300 lines as chips.
- A static emitter preview turns that world sound off so you can hear the difference, then back on. Cutscenes load and play.
- The dock buttons turn a spawned prop or vehicle 15 degrees left or right, and Closer and Further move it toward you or away from you, between
Config.Preview.ZoomMin(1 m) andConfig.Preview.ZoomMax(12 m). - Esc leaves the preview running and tells you how to clear it (
Config.Preview.KeepOnClose, default on). Your keys don't move your character while the browser is open unless you setConfig.Preview.KeepInput = true. - Every preview records what it spawned and loaded: entities, models, particles, animation dictionaries, clipsets, weapon assets, IPLs, interiors, audio banks, screen effects, timecycle and your own model. All of it is removed when you switch entries, stop, or the resource stops.
Stop all and teleport commands#
- The Stop all button, Delete in the browser or
/gdb stopallends every preview, effect, filter and the demo on your client. For anelevateduser the stop goes to every player on the server, the server checks the permission first, and everyone gets a notice. The server console commandgdbstopalldoes the same. /gdb waypointtakes you to your map waypoint on solid ground./gdb backtakes you back to where the first teleporting preview moved you from (/gdb waypointdoesn't count).
Picks and favorites#
- T, Alt+T or
/gdb takeadds the entry to your session picks and prints "category: name" to chat and the F8 console. The Picks tab shows them newest first, and you can remove one or clear them. Switches and limits are inConfig.Picks(200 per session). - F or Alt+F stars an entry. Favorites are saved on the server against your license in
favorites.jsonin the resource folder, up toConfig.Picks.MaxFavorites(500). No database.
Permissions#
- There are two levels.
browse(ncore_devkit.browse) opens the browser.elevated(ncore_devkit.elevated) adds the gated categories and the server-wide Stop all.elevateddoes not includebrowsethrough ACE, so give both. - ACE is the default. You can also put identifiers in
Config.Permissions.Identifiers(browse) andConfig.Permissions.ElevatedIdentifiers(elevatedandbrowse), no ACE needed. - On ESX the player's group, on QBCore and QBox the job name is compared with
Config.Permissions.Groups(admin,superadmin). A match givesbrowseonly, neverelevated. Startncore_devkitafter your framework, the framework is detected once at start. - Permissions are checked when the player joins, and again when ESX or QBCore reports the character as loaded. Any other change applies after a rejoin or a restart of the resource.
- The
elevatedgates are weapons, weapon components, explosions, IPLs, interiors, cutscenes and static emitters. Each gate can be turned off inConfig.Elevated. - Favorites, Stop all and report requests are each limited per player, 20 per 10 seconds (
Config.RateLimit). Favorites are checked and capped on the server before they're saved. - A player without access who presses F10 is told which ACE line an admin has to add.
- With
Config.Dev.EnabledandConfig.Dev.BypassPermissionsboth on, everyone has full access. That's for a dev server only, and the server prints a warning while it's on.
Tools for you#
/gdb reportwritesreports/report_<time>_<id>.txton the server with version, framework, permissions, the active preview, cleanup counters and recent log lines. Switch and size are inConfig.Report./gdb debugor/gdbdebugshows a debug overlay with index size, categories, your permissions, the active preview, cleanup counters and the last log lines. It only runs while it's visible. You can bind a key withConfig.Keybind.Debug(unbound by default)./gdb demopreviews a list of entries one after another, made for recording videos./gdb demo <category>runs only that category's steps. The 8 default steps are inConfig.Demo.Tour(category,name,holdin ms, optionalclipandasset). Stop all ends it.- With
Config.Notify.Provider = 'auto'notifications try ncore_hud, then ox_lib, then GTA's own feed. A provider that fails is skipped from then on, and/gdb notifyresettries it again. Other values:ncore_hud,ox_lib,builtin. - The panel scales itself on tall screens or uses
Config.Ui.Scale. Ten colors can be changed inConfig.Ui.Theme. It respects reduced motion. - Fonts and icons ship with the resource. The panel loads nothing from the internet.
- In-game messages, help and key descriptions come from
locales/en.lua, with English as the fallback. The browser panel text is English. - A setting missing from your config gets its default.
Config.Debug = trueprints extra lines to the console. Warnings always print.- While the browser is open it sets
LocalPlayer.state.lrNuiOwner, so other nCore panels (ncore_hud, ncore_vibehud) know it owns the mouse and keyboard. - The data loads the first time you open the browser. While it's closed and nothing is previewed, no Lua thread runs.
For developers#
| Export | Side | What it does |
|---|---|---|
Search(term, options) |
client, server | Searches the enabled categories. options.category, options.limit. Returns records whose name contains the term. The first call loads the whole index. |
Lookup(category, name) |
client, server | One record by exact name, or nil. |
GetCategories() |
client, server | The enabled categories with key, label, kind, count and fields. |
GetClips(dictionary) |
client, server | Clip names in an animation dictionary. |
GetPlaces(group) |
client, server | Placements of a location group with model, position, rotation and zone. |
GetSnippet(record) |
client, server | The filled snippet for a record, or nil. |
GetDumpVersion() |
client, server | The build the data came from: v3717.0 (Online 1.72) [DLC: mp2025_02_g9ec]. |
OpenBrowser(term) |
client | Opens the browser (permission checked), optionally with a search term. |
CloseBrowser() |
client | Closes it. |
IsBrowserOpen() |
client | true or false. |
PreviewStop() |
client | Stops the active preview and runs the cleanup. |
-- client or server
local hits = exports.ncore_devkit:Search('bench', { category = 'objects', limit = 5 })
for _, record in ipairs(hits) do print(record.name) end
local bench = exports.ncore_devkit:Lookup('objects', 'prop_bench_01a')
print(exports.ncore_devkit:GetSnippet(bench))
-- client only
exports.ncore_devkit:OpenBrowser('bench')The exports work the same in the Escrow and the Full source edition.
Weapon component entries carry their attach bone, type and default flag. 155 of them are liveries for 13 weapons.
tools/ has offline Lua tools that add weapon bones and Mk II liveries to the index from a public dump pinned to one commit and checked by sha256. You don't need them to run the script. They need Lua 5.4 and curl or wget.
Requirements#
- OneSync.
- Optional: ncore_hud or ox_lib for notifications (GTA's own feed works without them). A chat resource that listens to
chat:addMessage(the standard chat or ncore_chat) for the chat lines of picks and/gdb help. - No framework, no database. ESX, QBCore or QBox are only used for the group or job check.
- The data is from game build 3717. On a server with a lower
sv_enforceGameBuild, entries from newer DLCs can't be previewed, and the panel says the model isn't valid on this build.
Keys and commands#
| Key or command | Who | What it does |
|---|---|---|
| F10 | browse | Opens the browser. Each player can rebind it in FiveM key settings (Config.Keybind.Open). |
/gdb [term] |
browse | Opens the browser. Any other text is used as a search. |
/gdb find <term> |
browse | Opens the browser searching for the term. |
/gdb take |
browse | Adds the active preview to picks. |
/gdb waypoint |
browse | Teleports you to your map waypoint. |
/gdb back |
browse | Teleports you back to where the first preview moved you from, not counting /gdb waypoint. |
/gdb stopall |
browse, elevated for server-wide |
Stops every preview. elevated users stop it for everyone. |
/gdb debug, /gdbdebug |
browse | Debug overlay on or off. |
/gdb demo [category] |
browse | Runs the demo tour. |
/gdb report |
browse | Writes a diagnostic report. |
/gdb notifyreset |
browse | Lets failed notification providers be tried again. |
/gdb help |
browse | Lists the subcommands in chat. |
gdbstopall |
server console, or elevated with command.gdbstopall |
Stops every player's previews. |
| Up, Down, PgUp, PgDn | in browser | Move through results. |
| Enter or double-click | in browser | Preview. |
| T / Alt+T | in browser | Take (T only when the search box isn't focused). |
| F / Alt+F | in browser | Favorite. |
| C / Alt+C | in browser | Copy the snippet. |
| Delete | in browser | Stop all. Inside the search box only when the cursor is at the end of the text. |
/ |
in browser | Focus the search box. |
| Esc | in browser | Close. |
The command name comes from Config.Command (gdb). Change it and every command above changes with it.
Where to configure#
| File | What's in it |
|---|---|
config/config.lua |
Every setting: command, keys, permissions, elevated gates, preview, effects, search, picks, demo tour, reports, notifications, rate limit, categories, UI, locale, debug. |
locales/en.lua |
In-game messages, help text and key descriptions. |
data/snippets/*.lua |
The snippet templates. |
bridge/client.lua, bridge/server.lua |
Notifications, chat output and framework lookups. |
tools/ |
The offline data tools. |
Config.Framework (auto, esx, qb, qbox, standalone) only feeds the group check in Config.Permissions.Groups. Use ACE or the identifier lists for access.
A few settings the sections above don't name:
| Setting | Default | What it does |
|---|---|---|
Config.Enabled |
true |
false keeps the browser and the /gdb commands closed for everyone. |
Config.Keybind.Enabled |
true |
false registers no keys. The commands still work. |
Config.Permissions.AceFallback |
true |
With false, ACE stops counting for browse once groups (on a framework) or identifier lists are set, and for elevated once ElevatedIdentifiers is set. With nothing else set, ACE stays on so nobody is locked out. |
Config.Effects.ParticleScale, TimecycleStrength, CamShakeIntensity, ExplosionCameraShake |
1.0, 1.0, 0.5, 0.4 |
Size and strength of those previews. |
Config.Effects.ParticleSweepRadius |
25.0 |
When a particle preview stops and its effect is already gone, leftover particles within this many meters are removed. 0 turns it off. |
Config.Effects.ExplosionFireSweepRadius |
20.0 |
Fire within this many meters is put out when an explosion preview stops. |
Config.Picks.Enabled, EchoToChat, EchoToConsole |
true |
Picks on or off, and where a pick is printed. |
Config.Report.LogLines, Directory |
150, reports |
Log lines kept for the report, and the folder it's written to. |
Config.Notify.Duration |
4000 |
How long an ncore_hud notification stays, in ms. |
In the escrow edition these files stay readable and editable, and so does the browser panel in web/.
Troubleshooting#
| What you see | What to do |
|---|---|
| F10 says "No DevKit access" | Add add_ace group.admin ncore_devkit.browse allow (or the player's identifier to Config.Permissions.Identifiers), then rejoin. Permissions are read on join. |
A category has a lock, or says it needs ncore_devkit.elevated |
Give ncore_devkit.elevated too. It does not include browse, so a player needs both lines. |
| "The DevKit browser is disabled in the config." | Config.Enabled is false. |
| A prop or vehicle says it isn't a valid model on this build | It's from a DLC newer than your server's game build. See Requirements. |
| Your addon vehicle or streamed prop isn't in the list | The list is the base game only. Copy a snippet of a similar entry and put your model name in it. |
| No snippet shows and F8 says "snippet for ... is missing ..." | That entry has no value for a field the template needs. The template in data/snippets/ is still fine. |
F8 says data/index/manifest.json is missing |
The data folder didn't copy over fully. Download the resource again and replace the data folder. |
/gdb report says "The report could not be written." |
The reports folder is missing. Create it again inside the resource folder. |
| F8 says a notification provider is broken | Fix or update that resource, then /gdb notifyreset. Config.Notify.Provider = 'builtin' uses GTA's own feed only. |
| Other players saw you change into a ped | That's the ped preview on yourself. Set Config.Preview.PedsOnSelf = false. |
| An explosion preview hurt nothing | That's the default. Config.Effects.ExplosionDamageScale is 0.0. |
Docs#
- INSTALLATION.md - setup step by step.
- CHANGELOG.md - what changed in each version, and how to update.
Editions#
Escrow and Full source have the same features and the same updates. In the escrow edition the Lua code is encrypted by Cfx.re and runs with your Cfx.re account's server key. Config, locale, bridge, snippet and tool files stay editable in both. Full source gives you all the code.
Support#
Support is on intelnpc.com and I reply within 72 hours. It covers installing, configuring and bugs in the script as shipped. Payments and refunds are handled by Tebex under their terms. Send your server build, the console error, the file from /gdb report if you can, and your Tebex transaction ID.
nCore DevKit is made by nCore Development. It is not approved, sponsored or endorsed by Rockstar Games.
- Copy the
ncore_devkitfolder intoresources/[ncore](create the[ncore]folder if you do not have one yet). - Add these lines to
server.cfg, after your framework if you use one:
set onesync on
ensure ncore_devkit
add_ace group.admin ncore_devkit.browse allow
add_ace group.admin ncore_devkit.elevated allow- Restart the server, then press
F10or type/gdbin game.
ncore_devkit.browse opens the browser. ncore_devkit.elevated adds weapons, weapon components, explosions, IPLs, interiors, cutscenes, static emitters and the server-wide Stop all. elevated does not include browse, so a player who should have both needs both lines. Instead of ACE you can put identifiers in Config.Permissions.Identifiers and Config.Permissions.ElevatedIdentifiers in config/config.lua. Permissions are read when a player joins, so rejoin after you change them.
Important#
- Required: OneSync. No framework, database or other resource is needed.
- Optional: ESX, QBCore or QBox (detected at start, used only for the group or job check in
Config.Permissions.Groups),ncore_hudorox_libfor notifications (detected), and a chat resource that listens tochat:addMessage, like the standard chat orncore_chat, for the chat lines. - The data is from game build 3717. On a lower
sv_enforceGameBuild, entries from newer DLCs can't be previewed. - Do not rename the folder, and keep the
reportsfolder:/gdb reportwrites into it. - If F8 says
data/index/manifest.json is missing, thedatafolder didn't copy over fully. Download the resource again and replace it. - Keep
Config.Dev.EnabledandConfig.Dev.BypassPermissionsset tofalseon a live server, and grantncore_devkit.elevatedonly to trusted admins.
Updating#
Download the new version (Escrow from your Cfx.re account, Full source from Tebex), keep your own config/config.lua and favorites.json, and copy the new files over the old ones. A setting the new version adds gets its default even if your config doesn't have it yet. CHANGELOG.md lists what changed.
Updates don't install themselves. When a new version is out, download it again (escrow from your Cfx.re account, full source from Tebex), keep your own config/config.lua and favorites.json, and copy the new files over the old ones. Any setting a new version adds gets its default even if your config doesn't have it yet. New versions are announced on intelnpc.com.
1.0.10#
First public release. Everything the script does is listed in README.md.
€14.99
Ready when you are
Instant delivery, checkout right here on the site, and a Discord full of people who will answer before you pay.

