Skip to main content

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
Check every config file carefully and set them up to your liking.
3

Reload and test

Reload the resource and toggle the UI to confirm your configuration.
Console
Use default /gm or your custom command in-game to open/close the UI.

Tutorial pages

Control the built-in onboarding/tutorial carousel via config/tutorial.lua.
config/tutorial.lua
  • id: stable identifier used internally.
  • title/text: content shown in the UI.
  • media: optional relative path under ui/dist/ (WebP, GIF, PNG).
  • mediaAlt: optional accessible description.

Core settings

All core settings live in config/config.lua.

General

  • Config.Debug: Enables verbose logging via Bridge.Debug(...).
  • Config.Language: Sets UI language. Supported keys match Language.* tables in config/language.lua (default: en, also de).
  • 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.
config/config.lua

Network indicator

Configure the on-screen indicator that shows networked entity usage.
config/config.lua
Above ~90 entities you may see performance issues. The hard limit is around 110 on RedM.

Notifications

  • Enable Config.NetworkIndicator.Notify.enabled = true to show a warning when the networked ped count nears or exceeds capacity. This uses Bridge.notify(...) and localized strings NotifyHighNetworkPoolTitle and NotifyHighNetworkPoolText from config/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
Lower foregroundAlpha for subtler bars; raise background.a if the bar is hard to see against bright scenes.

Permissions and access control

Control who can toggle Gamemaster with a single function.
config/config.lua
You can combine checks (ACE + job + groups) in the same function when needed.

Data, categories, and items

Customize what appears in the grid UI using config/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 need id, name, type, and model. Optional fields include image, tags, condition, and variants (for grouped horses).
config/data.lua
label = T('SomeKey', 'Fallback') uses the active language from config/language.lua with a safe fallback.

Conditions

Gating logic lives in Data.conditions. Reference by string from an item’s condition field.
config/data.lua
Define as many as you need and reuse them across items.

Default favorites

Seed the 1-9 favorites bar for first-time users with Data.defaultFavorites. Values are item ids or nil.
config/data.lua
If server-side favorites are present, they override these defaults after character selection.

Horse mount models

The list Data.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.
Avoid manual edits to config/data_items_generated.lua as it is intended to be machine-generated and may be replaced by updates.

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:
Place WebP images in that folder. The fxmanifest.lua already exposes this path to the game UI.

How the path is chosen

  • If you set image on 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
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.
Use WebP format to keep file sizes small and loading fast. Recommended resolution is around 256-512 px on the short edge.

Language and localization

Localize all UI strings in config/language.lua. Two languages ship by default: English (Language.en) and German (Language.de).
  • Change active language by setting Config.Language = 'en' or Config.Language = 'de' in config/config.lua.
  • Edit text by changing values inside the language tables. Keep keys stable across languages.
config/language.lua
Respect placeholders like {name}, {slot}, {count} when translating. They are replaced at runtime.

Testing and troubleshooting

  • Toggle command not working: Confirm your permission function returns true for your account. In ACE mode, verify your identifiers and group mapping.
  • UI shows no items: Ensure config/data_items_generated.lua is loaded in fxmanifest.lua (it is by default) and that Data.items merges correctly. Use Config.Debug = true and Bridge.Debug(...) to inspect.
  • Network indicator missing: Check Config.NetworkIndicator.enabled = true and that your entity counts exceed minVisible.
  • Animations not playing: Verify the dict and name pair 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).