Dynamic Billboard Advertising
This page documents the intended integration surface: the open server/bridge.lua, the configuration, and the in-game admin panel. There are no public gameplay exports. Internal NUI callbacks, network events, and database tables are not public APIs.
Server Bridge
Section titled โServer Bridgeโserver/bridge.lua is left open so the script can fit any framework, staff system, or economy. Keep the function names and return values when you change them.
| Function | Returns | Used for |
|---|---|---|
AgencyServer.isAdmin(source) | boolean | Agency admin checks: console, test mode, ACE, and framework groups |
AgencyServer.playerJob(source) | string or nil | The playerโs job name on Qbox, QBCore, or ESX |
AgencyServer.ownerIdentifier(source) | string | The identifier that owns a rental (the playerโs license) |
AgencyServer.rentalPaymentProvider(amount) | string | Which economy charges a rental, or 'unavailable' |
AgencyServer.chargeRental(source, amount, reason, provider) | ok, provider, charged | Takes the rent |
AgencyServer.refundRental(source, amount, provider, reason) | boolean | Pays a refund back when an admin revokes a rental |
Custom Staff Permissions
Section titled โCustom Staff PermissionsโAdd your own staff check inside AgencyServer.isAdmin, before its final return false:
-- server/bridge.lua, inside AgencyServer.isAdmin(source)if exports['my_staff']:IsStaff(source) thenreturn trueendCustom Economy
Section titled โCustom EconomyโTo charge rent through your own banking resource, change the three payment functions together:
function AgencyServer.rentalPaymentProvider(amount)return (tonumber(amount) or 0) > 0 and 'my_banking' or 'free'end
function AgencyServer.chargeRental(source, amount, reason, requestedProvider)if amount <= 0 then return true, 'free', 0 endlocal paid = exports['my_banking']:RemoveMoney(source, amount, reason) == truereturn paid, 'my_banking', paid and amount or 0end
function AgencyServer.refundRental(source, amount, provider, reason)if amount <= 0 or provider ~= 'my_banking' then return true endreturn exports['my_banking']:AddMoney(source, amount, reason) == trueendCommands
Section titled โCommandsโ| Command | Access | Purpose |
|---|---|---|
/adagency | Player | Open the agency manager: find, rent, and edit boards |
/adagencyadmin | Staff | Open the admin panel |
/rsad_kiosk place [label] | Staff | Place a kiosk with a live preview |
/rsad_kiosk remove, /rsad_kiosk list | Staff | Remove or list kiosks |
/rsad_npc place, remove, list | Staff | Place, remove, or list agency reps |
/rsad_audit [code] | Staff | Tour every board and check that its ad renders; results in F8. stop ends the tour |
/rsad_goto <code> | Staff | Stand at a boardโs viewing spot; run again to return |
Board codes look like RS-BB-0144 and appear on every board card in the agency manager and the admin panel.
Keybinds
Section titled โKeybindsโ| Key | Where | Action |
|---|---|---|
| E | Near a kiosk or rep | Use it (in key interaction mode) |
| H | Ad editor | Preview the ad on the real billboard |
| TAB | Ad editor | Show or hide the editor tools |
| Mouse wheel | Placing a kiosk or rep | Rotate the preview |
| Enter / Left click | Placing a kiosk or rep | Place it |
Admin Panel
Section titled โAdmin Panelโ/adagencyadmin manages the whole agency in game:
| Tab | What staff can do |
|---|---|
| Overview | Income, rentals, boards, kiosks, and reps at a glance |
| Boards | Set day prices, turn renting on or off, clear ads, teleport, and manage reservations |
| Rentals | Hover a board to preview every slide; extend, clear the ad, or revoke |
| Players | Stop players from renting, and let them back in |
| Locations | Kiosks and reps, with teleport and remove |
| Settings | Every configuration value, with an explanation on hover; changes apply live |
Reservations and Dedicated Boards
Section titled โReservations and Dedicated BoardsโA board can be kept for chosen players or jobs, so only they can rent it, or dedicated: free and permanent, for example for server announcements or a police board.
Revoking a Rental
Section titled โRevoking a RentalโA revoked rental can be refunded in three ways: no refund, a refund for the time left, or a full refund. Refunds go back through the economy that charged the rental.