Skip to main content

FAQ

Installation

Nowhere. Road Minigolf has no license key step and no API.lua. You download it from the cfx.re Portal and start it.
No. Road Minigolf has no database. Courses, leaderboards and statistics are JSON files in road_minigolf/data/. See Data files.
No. The folder must stay road_minigolf. The track kit and the demo map are streamed from it, and other scripts call its exports by this name.
ESX, QBCore, Qbox and standalone. The framework is detected automatically and used for character names, entry fees, rewards and admin groups. Without a framework, everything except money works out of the box; for money on other economies add your own money functions.
It is recommended. The start guards (distance and vehicle checks), invites of nearby players, lobby announcements and the bystander view read player positions on the server and need OneSync. Without it these checks are skipped and everything else works.
No. config.lua and config.server.lua keep their values: new keys get their defaults from shared/defaults.lua. Your courses live in data/. When you update, keep your data/ folder and do not copy the empty one from the download over it.

Track kit and map

The kit is streamed from stream/ and registered by the data_file 'DLC_ITYP_REQUEST' 'stream/road_minigolf_kit.ytyp' line in fxmanifest.lua. Keep both, keep the resource name road_minigolf, and restart the whole resource (not just refresh) after an update. Clients need to download the stream files once.
SkyGarden replaces the roof models of the Rockford Plaza mall. Another map that replaces the same files conflicts with it. Leave the demo out if you already run a map there.
Open the editor → course list → Admin → Deleted courses and restore it. A deleted demo is never installed again by itself.
Models a game build does not have are hidden automatically. Many catalog props come from the stunt DLCs (stt_prop_*).

Admins and the editor

Only admins can open the editor. Check that you have the ACE minigolf.admin, one of the ESX groups or QBCore permissions in Config.Permission, or that your identifier is listed in config.server.lua. Also check that no other resource took F7: the key can be rebound under Settings → Key Bindings → FiveM, and /mgedit always works.
Qbox uses ACE groups. Either keep add_ace group.admin minigolf.admin allow in server.cfg (works on every framework) or make sure your admins are in group.admin / group.god, which Config.Permission.qbPermissions checks.
They are FiveM key mappings. Rebind them under Settings → Key Bindings → FiveM (“Minigolf editor: …”), or change the server defaults in Config.Editor.keys. The hint bar always shows the bound key.
New courses are unpublished. Publish them in the editor’s General tab or with the button in the course list. To publish new courses automatically on their first save, set Config.Editor.publishNewCourses = true.
The leaderboard starts over when the number of playable holes or the total par changes, because old scores would not be comparable. The editor asks before such a save, and the old board is archived in scores-*.json.
The server must be able to write road_minigolf/data/. The console prints which file could not be written. While both copies of a store are unreadable, saving that store stays disabled on purpose, so nothing good gets overwritten.

Playing

Players have to stand at the course start (Config.Game.startDistance, 50 m) and be out of their vehicle. Your OpenHooks.CanPlay hooks may also block dead, cuffed or jailed players. Unpublished courses can only be played solo by admins.
Nearby invites need OneSync. /mginvite <server id> works without it.
The server only accepts a holed ball when it counted a shot for that hole and the ball had time to roll (Config.AntiCheat.minRollMs, and the tee-to-cup distance for a hole-in-one). Very short tap-ins on a laggy connection can trip this; lower minRollMs if it happens often.
The results screen says why. Rewards are paid only when every hole was holed, not during the cooldown per player and course (Config.Economy.rewardCooldownMin), not for rounds faster than minSecondsPerHole per hole, and the win reward only to a sole winner.
Tune it with /mgputter while you address a ball in a test, practice or solo round, then add the printed lines to config.lua. See Putting stance.
The weapon is put away for the putter and given back after the round. With ox_inventory the inventory manages weapons itself.

Still stuck?

Discord

Open a ticket on our Discord