Quickstart
1
Grant permission to use Gamemaster
Add an ACE permission to your server config so your admins can use the tool.
server.cfg
Restart the resource and verify that an allowed user can toggle the tool.
2
Set the command, language, and debug mode
Open
config/config.lua and adjust basic options:config/config.lua
3
Reload and test
Reload the resource and toggle the UI to confirm your configuration.Use default
Console
/gm or your custom command in-game to open/close the UI.Tutorial pages
Control the built-in onboarding/tutorial carousel viaconfig/tutorial.lua.
config/tutorial.lua
id: stable identifier used internally.title/text: content shown in the UI.media: optional relative path underui/dist/(WebP, GIF, PNG).mediaAlt: optional accessible description.
Core settings
All core settings live inconfig/config.lua.
General
- Config.Debug: Enables verbose logging via
Bridge.Debug(...). - Config.Language: Sets UI language. Supported keys match
Language.*tables inconfig/language.lua(default:en, alsode). - Config.ToggleCommand: Chat/console command to toggle the Gamemaster UI (default:
gm). - Config.stayInvisibleAfterLeavingGm: If true, you remain invisible after leaving GM mode.
Camera and movement
- Config.InitialAltitude: Starting camera height above ground.
- Config.MinAltitude / Config.MaxAltitude: Altitude limits.
- Config.MoveSpeed: Base lateral movement speed; combine with sprint multiplier.
- Config.MoveSpeedSprintMultiplier: Hold Shift to move faster by this factor.
- Config.ZoomSpeed: Mouse wheel zoom speed (height delta).
- Config.RotateSpeed: Rotation speed when using arrow keys.
- Config.MouseRotateSensitivity: MMB rotation sensitivity.
- Config.SelectionMaxDistance: Maximum distance for selectable peds from the camera.
Example camera tuning
Example camera tuning
config/config.lua
Network indicator
Configure the on-screen indicator that shows networked entity usage.config/config.lua
Notifications
- Enable
Config.NetworkIndicator.Notify.enabled = trueto show a warning when the networked ped count nears or exceeds capacity. This usesBridge.notify(...)and localized stringsNotifyHighNetworkPoolTitleandNotifyHighNetworkPoolTextfromconfig/language.lua.
Markers and overlays
Configure selection/destination marker colors, move order indicator style, and optional infrared vision overlay.config/config.lua
All colors are RGB integers 0-255. Switch
moveOrder.type between rotate and arrow based on preference. Turn on screenShotMode to hide markers while capturing footage.Health bar colors
Tune the gradient and alpha used by the on-entity health bars.config/config.lua
Permissions and access control
Control who can toggle Gamemaster with a single function.config/config.lua
- ACE-based (recommended)
- Job-based (framework bridge)
- Group-based (framework bridge)
Use server ACE policies so you can manage access without editing code.
server.cfg
Data, categories, and items
Customize what appears in the grid UI usingconfig/data.lua.
Categories
Define your high-level categories (order and icon are supported):config/data.lua
Custom items
Add curated NPCs or animals you want to highlight. You only needid, name, type, and model. Optional fields include image, tags, condition, and variants (for grouped horses).
config/data.lua
Conditions
Gating logic lives inData.conditions. Reference by string from an item’s condition field.
config/data.lua
Default favorites
Seed the 1-9 favorites bar for first-time users withData.defaultFavorites. Values are item ids or nil.
config/data.lua
Horse mount models
The listData.horseMountModels powers the “Spawn on Horse” option with valid horse models. You can add or remove entries safely.
config/data.lua
Generated items
config/data_items_generated.lua contains a large, generated list of NPCs and animals. The UI automatically merges it with your Data.items while avoiding duplicates and grouping horse variants by breed.
Item images and file paths
Items display an image in the grid. You can either point to a custom image on disk or rely on the script’s default naming rules.Where images live
Images are served from the resource UI:fxmanifest.lua already exposes this path to the game UI.
How the path is chosen
- If you set
imageon an item, that path is used as-is. - If you do not set
image, the script builds a filename from the item id or model:- For custom items in
config/data.lua:images/items/<id>.webp - For generated items in
config/data_items_generated.lua:images/items/<sanitized_model>.webp
- For custom items in
Sanitized model means lowercase, spaces to
_, and only letters, numbers, and _. For example A_C_Horse_Turkoman_Gold becomes a_c_horse_turkoman_gold.webp.Adding custom images
1
Pick a filename that matches the item
For a custom item with
id = 'sheriff_johnson', create ui/dist/images/items/sheriff_johnson.webp.2
Override the image path if needed
You can point to a different file by setting
image on the item.config/data.lua
3
Provide images for generated models you care about
For generated items, drop files named after the sanitized model:You don’t need to cover every model. The UI can still show items without custom images.
Language and localization
Localize all UI strings inconfig/language.lua. Two languages ship by default: English (Language.en) and German (Language.de).
- Change active language by setting
Config.Language = 'en'orConfig.Language = 'de'inconfig/config.lua. - Edit text by changing values inside the language tables. Keep keys stable across languages.
config/language.lua
Testing and troubleshooting
- Toggle command not working: Confirm your permission function returns
truefor your account. In ACE mode, verify your identifiers and group mapping. - UI shows no items: Ensure
config/data_items_generated.luais loaded infxmanifest.lua(it is by default) and thatData.itemsmerges correctly. UseConfig.Debug = trueandBridge.Debug(...)to inspect. - Network indicator missing: Check
Config.NetworkIndicator.enabled = trueand that your entity counts exceedminVisible. - Animations not playing: Verify the
dictandnamepair exists in RedM; test with a simpler known animation first.
When everything is configured,
/gm should open the UI, items should load, and context menu actions should work according to your permissions.Reference snippets
Minimal working configuration
config/config.lua
Example custom items with a guard
config/data.lua
If your bridge exposes different helpers, adapt the examples accordingly (e.g.,
Bridge.getGroups, Bridge.getJob, Bridge.getPlayerData).