Skip to content

Dynamic Billboard Advertising

Check the start order first. The asset pack must start before the script:

server.cfg
ensure rs_ad_agency_assets
ensure rs_ad_agency

Then check the server console for another resource that replaces the level meta (see the next question). Ads are placed on a board when you are within about 250 m of it, so drive closer if a distant board still shows its old face. Staff can run /rsad_audit to tour every board and list any that fail in F8.


rs_ad_agency_assets uses replace_level_meta to add the render slots ads are drawn in. Only one resource on a server can replace the level meta. If another resource also does, the two conflict and one of them stops working. Keep only one of them running.


Starter kiosks are placed only once, on the first start with a new database. If they were removed, or AgencyConfig.Kiosk.StarterLocations was emptied before that start, place kiosks yourself:

In-game command
/rsad_kiosk place [label]

Also check that AgencyConfig.Kiosk.Enabled = true and that AgencyConfig.Access.Points is 'kiosk' or 'both'.


Check the interaction mode:

config.lua
AgencyConfig.Access.Interaction = 'auto' -- key | target | auto
AgencyConfig.Access.TargetResource = 'auto' -- auto | ox_target | qb-target

auto uses your target resource when one is running, and the Press E prompt otherwise. With the prompt, stand within 1.6 m of a kiosk or 2.2 m of a rep. A kiosk already in use belongs to that player until they finish; others nearby watch their session live.


A player is an agency admin if they have the command.rsadagency ACE, the general command ACE, or one of the framework groups in AgencyConfig.Framework (Qbox god / admin, QBCore god / admin, ESX superadmin / admin).

server.cfg
add_ace group.admin command.rsadagency allow

If every player can open the admin panel, check that test mode is off: AgencyConfig.OpenTestAccess = false.


  • Make sure Qbox, QBCore, or ESX starts before rs_ad_agency.
  • Check that the player has enough money in the configured account (AgencyConfig.Rental.PaymentAccount, bank by default).
  • ESX has no crypto account. With PaymentAccount = 'crypto' on ESX, renting is refused rather than charging another account.
  • Without a framework, set AgencyConfig.Rental.AllowUnchargedStandalone = true to allow free rentals.

Rent
rent = daily base price
ร— traffic multiplier -- 1.0 up to 3.0
ร— term multiplier -- 1.0, 6.0 or 24.0
ร— (1 + extra slides ร— 0.25)

With the defaults, a quiet board costs $500 for 1 day, $3,000 for 7 days, and $12,000 for 30 days. Busy boards cost more: every 25 views in the last 7 days add 10%, up to 3ร—. Change a single boardโ€™s day price in the admin panelโ€™s Boards tab, or the defaults in AgencyConfig.Rental and AgencyConfig.DefaultBasePrice.


Billboards in the city range from about 2:1 to almost 4:1, and media fits inside its own layer without cropping. Drag the layerโ€™s corners past the edges of the board until no bar shows on any side. Layers can be made larger than the board for exactly this reason, so keep text and logos near the middle of your artwork.


Press H in the editor to toggle a live preview on the real billboard. TAB shows or hides the editor tools.


A rental includes one slide. Up to 5 slides rotate on the board, and each extra slide adds 25% to the rental price. Slides are chosen when renting; adding one later in the editor charges its share for the time left on the rental.


How do I keep a board for the police or for announcements?

Section titled โ€œHow do I keep a board for the police or for announcements?โ€

Open /adagencyadmin, go to Boards, and open the boardโ€™s reservations. A board can be kept for chosen players or jobs, or dedicated: free and permanent, for example for server announcements or a police board.


In /adagencyadmin:

  • Rentals: clear the ad, or revoke the rental with no refund, a refund for the time left, or a full refund.
  • Players: stop a player from renting, and let them back in later.

Only boards near the player render. Unrented boards use pre-baked house ad textures, which cost almost nothing, and a board that leaves the area releases its render slot for the boards ahead. The limits are in Rendering and Performance on the Configuration page; raise them only after testing in a dense area such as Vinewood.


The admin panelโ€™s Settings tab saves its changes in the database, and those take priority over config.lua. Open the setting in the panel and press Reset to go back to the file value. Rendering, house ad, model, framework, and keybind settings also need restart rs_ad_agency.


Yes. The two scripts use separate render types, and the billboard renderer never touches the ones Custom Car Stickers uses, so both can run on the same server.


Kiosk and billboard positions assume the standard GTA V map. On a custom map, move or remove the starter kiosks from the admin panelโ€™s Locations tab, and turn off renting in the Boards tab for any board your map changes.


Back up the rs_ad_agency_* database tables together with the rs_ad_agency/data/ads/ folder. Rentals reference both their database records and the stored ad media.


No. The resource creates its own SQL tables on the first start. Make sure your oxmysql database user can create tables.