NPC Pro – talking, remembering street NPCs with trust, gossip and errands NPC PRO - talk to ANY ped. They remember, they gossip, they snitch. €29.99 See NPC PRO

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:addMessage for 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

  • Open for you to edit: config, locales and the framework bridge - tune it to your server.
  • No key from us, nothing calls home to us. The core is Cfx-escrowed and Cfx checks your server key when it starts.
  • Bought outright it is yours for good - the Cfx grant is permanent unless the payment is refunded or charged back.
  • Lifetime updates. Buy it once and every later version is yours.

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 elevated permission 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 at Config.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. Set PedsOnSelf = false to 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 elevated only. 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 elevated only.
  • 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 waypoint moves 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) and Config.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 set Config.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 stopall ends every preview, effect, filter and the demo on your client. For an elevated user the stop goes to every player on the server, the server checks the permission first, and everyone gets a notice. The server console command gdbstopall does the same.
  • /gdb waypoint takes you to your map waypoint on solid ground.
  • /gdb back takes you back to where the first teleporting preview moved you from (/gdb waypoint doesn't count).

Picks and favorites#

  • T, Alt+T or /gdb take adds 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 in Config.Picks (200 per session).
  • F or Alt+F stars an entry. Favorites are saved on the server against your license in favorites.json in the resource folder, up to Config.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. elevated does not include browse through ACE, so give both.
  • ACE is the default. You can also put identifiers in Config.Permissions.Identifiers (browse) and Config.Permissions.ElevatedIdentifiers (elevated and browse), 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 gives browse only, never elevated. Start ncore_devkit after 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 elevated gates are weapons, weapon components, explosions, IPLs, interiors, cutscenes and static emitters. Each gate can be turned off in Config.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.Enabled and Config.Dev.BypassPermissions both 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 report writes reports/report_<time>_<id>.txt on the server with version, framework, permissions, the active preview, cleanup counters and recent log lines. Switch and size are in Config.Report.
  • /gdb debug or /gdbdebug shows 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 with Config.Keybind.Debug (unbound by default).
  • /gdb demo previews 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 in Config.Demo.Tour (category, name, hold in ms, optional clip and asset). 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 notifyreset tries 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 in Config.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 = true prints 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.
Lua
-- 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#

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.

€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.

Ask on Discord first

nCore DevKit

€14.99

Latest script updates

Every new version on the day it ships. Updates are free for owners.

Full changelog →