JG Docs
Advanced Garages

Interaction Methods

Choose one interaction method for everything or a different method for each interaction type

Use a target on a retrieval ped and a key prompt in a separate parking zone. Both can work at the same garage.

Edit Config.InteractionMethod in config/config.lua. This controls how players use interactions placed in the location creator.

One method for everything

The default is a single string. Existing string configurations still work:

config/config.lua
Config.InteractionMethod = "textui"

Choose one of these methods:

ValueHow players interactProvider setting
textuiRead a screen prompt and press its keyConfig.DrawText
targetUse your targeting systemConfig.Target
3dtextuiUse a prompt near the entity or the point or zone centreConfig.DrawText3d
radialSelect an entry in the radial menu while nearbyConfig.RadialMenu

A method for each type

Replace the string with a table to mix methods. This example uses key prompts for points and parking zones, targets for peds, 3D prompts for vehicles and radial menus for objects:

config/config.lua
Config.InteractionMethod = {
  point = "textui",
  polyzone = "textui",
  vehicle = "3dtextui",
  ped = "target",
  object = "radial"
}

Every entry accepts textui, target, 3dtextui or radial. Missing entries use textui; an empty table also uses textui for everything. Unrecognised values fall back to textui.

KeyInteraction type in the creator
pointA point with a radius
polyzoneA polygon area
vehicleAn interaction attached to a placed vehicle
pedAn interaction attached to a ped
objectAn interaction attached to a placed object

vehicle means the interaction's placed vehicle, not whether the player is driving. The choices apply to all interactions of that type in this script, not to individual locations. Decorative entities, spawn points and location boundaries without an interaction aren't affected.

For a target retrieval ped and a separate key-based parking zone, set ped = "target" and polyzone = "textui". In the garage editor, add a Ped opening interaction and a separate Polyzone parking interaction. If parking uses a point instead, set point = "textui".

Choose providers

Keep these settings separate from Config.InteractionMethod. They choose which installed resource handles each method:

config/config.lua
Config.Target = "auto" -- or "ox_target", "qb-target"
Config.DrawText = "auto" -- or "jg-textui", "qb-DrawText", "okokTextUI", "ox_lib", "ps-ui"
Config.DrawText3d = "auto" -- or "sleepless_interact"
Config.RadialMenu = "auto" -- or "ox_lib"

auto detects a supported running resource. Install and start the providers for every method you select before starting jg-advancedgarages. Set a provider explicitly if you have more than one installed and want a particular one.

3dtextui requires sleepless_interact. Its prompt is near the entity or the point or zone centre, within 2.5 metres; it doesn't cover the whole polygon. Use textui or radial if players should interact anywhere inside a polygon.

Garages supports both ox_target and qb-target. When Config.Target = "auto", ox_target is preferred if both are running. For target parking from inside a vehicle, qb-target must have its own Config.DisableInVehicle set to false.

Existing Garages configs

Config.InteractionMethod replaces the old Config.UseTarget and Config.UseRadialMenu switches. If you haven't added it, old configs still work: UseTarget = true selects target, otherwise UseRadialMenu = true selects radial, otherwise textui is used.

Once you add Config.InteractionMethod, its string or table takes priority over both old switches. You don't need Config.UseRadialMenu = true to use radial.

Restart jg-advancedgarages after changing the config. Visit each interaction type you changed and check that the selected prompt opens the expected action.

Last updated 29 September 2026

On this page