If your core runs under another name, add it to the list at the top of config/main.lua, pointing to the bridge it is compatible with:
For a framework that is compatible with neither, copy custom/qb/ to custom/<name>/, change the calls inside — player, identifier, job, money, admin — and map your resource to <name> in the same list.
To support another target resource, add a branch to client/custom/target/main.lua. It only needs to fill in five functions — addLocalEntity, removeLocalEntity, addBoxZone, removeZone and destroyAll — and add its name to detect() at the top of the file.
Messages such as "Membership purchased." or "Workout cancelled." are shown by the script's own toasts, styled like its windows, so no notification resource is needed. To send them through your own system instead, replace Notification in custom/client.lua:
While the creator is open the minimap is hidden, and so is the qs-interface HUD when it is running. That happens in ToggleHud in the same file, if you want to hide your own HUD too.
Creator actions and membership purchases can be posted to Discord as embeds with the player's name, server id and identifiers (Steam, Discord, license, FiveM…). The URLs go in server/webhooks.lua:
28 translations ship in locales/: Arabic (ar), Bulgarian (bg), Catalan (ca), Czech (cs), Danish (da), German (de), Greek (el), English (en), Spanish (es), Persian (fa), French (fr), Hindi (hi), Hungarian (hu), Italian (it), Japanese (ja), Korean (ko), Dutch (nl), Norwegian (no), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Slovenian (sl), Swedish (sv), Thai (th), Turkish (tr), Simplified Chinese (zh-CN) and Traditional Chinese (zh-TW).
To add another, copy en.json to the new code, translate it and set Config.Locale to that code. Anything left untranslated falls back to English, and the console says which keys are missing.