Skip to content

Customization

What each item does is built in the menu and saved in the database. The files decide the rest: the command, the keys, how things are shown, and how the resource talks to your framework.


FileWhat it decidesOpen?
config.luaLanguage, command, cancel key, placed-prop interaction, image path, progress barYes
bridge/client_bridge.luaNotifications, health, armour, stress, food and thirst, item counts, jobs, target, progress barYes
bridge/server_bridge.luaFramework detection, usable items, adding and removing items, jobs, notifications, the item listYes
locales/*.luaEvery piece of text, in game and in the menuYes
data/*.luaThe lists behind the menu’s pickersYes
html/The menu (HTML, CSS, JS)Readable
client/, server/Item logicEscrowed

OptionWhat it doesDefault
Config.LocaleLanguage of the menu and the messages. See Languages'en'
Config.CommandThe command that opens and closes the menu'itemcreator'
Config.CommandDescriptionThe name of that command in FiveM’s key bindings, where it can be given a key. It has none by default'Open Item Creator Menu'
Config.CancelKeyDefault key for cancelling what an item started. See below'X'
Config.InteractionHow a placed prop is picked back up: 'drawtext', 'ox_target' or 'qb-target'. With either target value, the bridge uses whichever of ox_target or qb-target is running'drawtext'
Config.ImageInventoryPathWhere the menu finds item pictures, as <path><item name>.png'nui://ox_inventory/web/images/'
Config.ProgressBar'custom' for the built-in bar, 'ox_lib' for ox_lib’s. If ox_lib is not running, the built-in bar is used'custom'

Not on ox_inventory? Set Config.ImageInventoryPath to your inventory’s image folder, for example nui://qb-inventory/html/images/.


CommandDefault keyWhat it does
/itemcreatornoneOpens or closes the menu. Needs ACE mic_itemcreator.open
/cancelitemanimConfig.CancelKey (X)Stops the animation, scenario or walking style an item started, resets speed, ends superpowers, and removes an attached prop

While positioning an Attach Prop, these keys apply. Each one is listed in FiveM’s key bindings under a “Placement:” name, so players can move them:

KeyDoes
← → ↑ ↓Move the prop left, right, forward, back
Page Up / Page DownMove it up or down
Numpad 4 / 6Yaw
Numpad 8 / 5Pitch
Numpad 7 / 9Roll
XPreview the animation
EConfirm
BackspaceCancel

Everything you can pick from a list in the menu comes from data/, and you can add to any of them:

FileWhat it lists
data/animations.luaAnimations
data/scenarios.luaScenarios
data/walkingstyles.luaWalking styles
data/bones.luaBones a prop can be attached to
data/particles.luaParticle effects
data/screeneffects.luaScreen effects
data/sounds.luaSounds
data/cars.luaCars, by label and model
data/peds.luaPed models
data/clothing.luaThe animations played when a clothing piece or prop is put on

Keep each entry in the same shape as the ones around it. The menu reads these files when it opens; after editing, restart the resource.


Nine files ship in locales/:

Config.LocaleLanguage
enEnglish
esSpanish
deGerman
frFrench
itItalian
ptPortuguese
ruRussian
ch-znChinese
jpJapanese

The comment in config.lua also mentions tr and ch; neither exists. Use the codes above.

The same file translates the in-game messages and the menu, so there is only one place to edit.

Adding a language:

  1. Copy locales/en.lua to a new file, for example locales/pl.lua.
  2. Inside it, change Locales['en'] to your code, and translate the text on the right of each line. Keep the keys and any %s.
  3. Add the file to shared_scripts in fxmanifest.lua, above locales/lib.lua.
  4. Set Config.Locale to your code, refresh, and restart.

A missing key prints Translation key "…" not found in the console and shows the key itself on screen.


Two open files in bridge/. Keep the function names — the rest of the resource calls them by name.

bridge/server_bridge.lua

FunctionWhat it is for
(detection)Uses ESX if es_extended is started, otherwise QBCore if qb-core is started. QBox is found as qb-core, through its QBCore compatibility
Bridge.RegisterUsableItemRegisters each configured item as usable with your framework
Bridge.AddItem, Bridge.RemoveItem, Bridge.GetItemCountItems: bundles, pick-ups, required items, Remove on Use
Bridge.GetPlayerJob, Bridge.GetPlayerJobGradeThe job restriction
Bridge.NotifyServer-side notifications
Bridge.GetAllItemsThe item list in the menu: from ox_inventory, then ESX’s registered items, then QBCore’s shared items

bridge/client_bridge.lua

FunctionWhat it is for
Bridge.NotifyEvery notification. Falls back to the GTA feed with no framework
Bridge.AddHealth, Bridge.AddArmorHealth/Armor
Bridge.AddFoodThirstFood/Thirst: esx_status on ESX; on QBCore the consumables:server:addHunger and addThirst events
Bridge.AddStressStress: esx_status on ESX; consumables:server:addStress on QBCore
Bridge.GetItemCountAlways Attached Prop: ox_inventory’s count if it runs, otherwise player data
Bridge.AddTargetEntityThe pick-up option on a placed prop, for ox_target or qb-target
Bridge.ProgressBarProgress bars: ox_lib or the built-in one. There is a marked spot, with a commented example, to add another progress bar resource

Your HUD uses different events for hunger, thirst or stress? Change them in Bridge.AddFoodThirst and Bridge.AddStress. Another notify resource? Replace the body of Bridge.Notify. Another framework or inventory? Fill in the same functions for it in both files.


Network in the menu lists item configurations shared by other servers. Import asks which of your own items should receive that configuration, then opens it for you to adjust and save. To share one of yours, export it from your item list with a public name, a description and an author name — it becomes visible to every server using the network.

The list is downloaded from GitHub, so your server needs outbound internet access for it to fill.