Integrations — Motorhome | Quasar Store | Quasar Store
Documentation
Integrations
Frameworks, inventories, wardrobes, phones, target, text UI, weather sync, dispatch and quests supported by Quasar Motorhome, how each is detected and how to add your own.
Everything that depends on another resource lives in a small, unencrypted bridge file under client/custom/ or server/custom/. On start, Motorhome looks at which resources are running and switches on the matching bridge; every other bridge stays silent.
Layer
Supported
Without it
Framework
es_extended · qb-core (Qbox through its QBCore layer)
Required — ownership, money and items come from it.
Each layer is a small table in config/main.lua that maps a resource name to the bridge it should use. A renamed resource, or one that behaves like a supported one, is a single extra line:
lua
local frameworks = {
['es_extended'] = 'esx',
['qb-core'] = 'qb',
['qbx_core'] = 'qb', -- add this line on Qbox if it is not detected
['my-core'] = 'qb', -- a renamed qb-core
}
local inventories = {
['ox_inventory'] = 'ox_inventory',
['my-inventory'] = 'qs-inventory', -- a fork that behaves like qs-inventory
}
The same pattern applies to wardrobes and phones. Run only one resource per layer — with two inventories running, either may be picked.
Set Config.UseTarget = true to replace the [E] prompts with target options: the motorhome door, the exit and doorbell, the stash and its vault code, the wardrobe, storage furniture, junk and the cleaning robot.
lua
Config.UseTarget = true
Config.TargetDistance = 5.0
Config.TargetWidth = 5.0
Config.TargetLength = 5.0
Config.ZoneDebug = false-- draws the zones while you tune them
When a break-in sets off the alarm, client/custom/dispatch/default.lua shows every player with the Config.ReqJobPolice job a notification with the street name and a flashing blip that fades out. To send it to your dispatch script instead, replace the body of that handler:
lua
RegisterNetEvent('motorhome:client:notifyCops')
AddEventHandler('motorhome:client:notifyCops', function(coords)-- call your dispatch export here, for example:-- exports['ps-dispatch']:CustomAlert({ coords = coords, message = 'Motorhome break-in' })end)
Interiors hold their own clock and clear weather, so weather sync is paused on the way in and resumed on the way out. client/custom/weather/weather.lua sends the pause events for qb-weathersync, cd_easytime and vSync; add a line there for any other sync script.
While decorating or using the furniture creator, the radar and qs-interface are hidden through ToggleHud in config/main.lua. Add your own HUD's hide export to that function:
lua
functionToggleHud(bool)
DisplayRadar(bool)
if GetResourceState('qs-interface') == 'started'then
exports['qs-interface']:ToggleHud(bool)
end-- exports['my-hud']:SetVisible(bool)end
With qs-inventory running, every player receives seven motorhome quests when they load in. Titles, descriptions, rewards and required levels are in server/custom/missions.lua.
The decoration editor flies a free camera, which anticheats read as noclip. If you run FiveGuard, put its resource name in Config.FiveGuard and the player is given a temporary freecam and noclip bypass only while the editor is open.
lua
Config.FiveGuard = 'fiveguard'-- your FiveGuard resource name, or false
Supporting something that is not on the list takes one file and one line:
Copy the closest bridge
Duplicate the file that behaves most like yours — for example client/custom/inventory/qs-inventory.lua — and give it your resource's name.
Change the guard and the calls
Every bridge starts with a guard such as if Config.Inventory ~= 'qs-inventory' then return end. Set it to your name, then replace the exports inside — OpenStash for an inventory, openWardrobe for a wardrobe.
Register it for detection
Add your resource to the matching table in config/main.lua, and restart.
Framework bridges work the same way: client/custom/framework/ and server/custom/framework/ hold the ESX and QBCore versions of each function — money, items, ownership, the police count and where the motorhome_inside column lives.
41 translations ship in locales/: ar, bg, bn, ca, cs, da, de, el, en, es, et, fa, fi, fr, he, hi, hr, hu, id, it, ja, ko, lt, lv, ms, nl, no, pl, pt, ro, ru, sk, sl, sv, sw, th, tr, uk, ur, vi and zh. Set one convar to change the language of every Quasar resource at once:
bash
setr qs:locale "es"
Prices in the interface follow Config.Intl — set the locale and currency there to show 1.250 € instead of $1,250.