Skip to main content

Preview Locations

Preview locations configure the cinematic character selection scenes used by wasabi_multichar.

  • Config file: config/client/previewLocations.lua
  • Config table: Config.PreviewLocations
  • Behavior: One eligible location set is chosen at random when the multichar UI opens. Each set contains its own hidden coords, camera data, character slot ped positions, animations, props, and optional IPL/vehicle data.

Location set structure​

A location set is keyed numerically:

Config.PreviewLocations = {
[1] = {
hiddenCoords = vector4(2735.55, 1578.66, 66.47, 37.81),
pedInterior = vector3(2735.55, 1578.66, 66.47),
cinematicCam = {
pos = vector3(2719.57, 1567.66, 66.74),
pointAt = vector3(2729.24, 1574.64, 65.47),
},
slots = {
[1] = {
pos = vector4(2729.24, 1574.64, 66.47, 133.68),
cam = vector4(2724.57, 1571.66, 66.74, 301.21),
anim = { type = 'animation', dict = 'missfinale_b_ig_5', clip = 'hold_michael_loop_fra' },
attachToSlot = false,
},
},
},
}

Core fields​

FieldTypeDescription
hiddenCoordsvector4Where the invisible player ped is teleported so the area streams.
pedInteriorvector3Optional interior coords used to load the interior before displaying peds.
cinematicCamtableRequired initial cinematic camera.
slotstableRequired slot map containing ped/camera/animation settings for each character slot.

Optional location fields​

FieldTypeDescription
startCamvector3Initial static camera before cinematic waypoints. Falls back to cinematicCam.pos when omitted.
stopCamParamstableCamera transition when leaving multichar. Supports x, y, z, rotX, rotY, rotZ, duration, and scene-specific durations such as durationHeadbutt / durationDrop.
exitAnimtableOptional exit animation when selecting a character. Uses slot 1 and 2 peds.
iplsstring[]IPLs requested when loading the scene and removed when leaving.
useFladeAnimbooleanUses fade out β†’ camera cut β†’ fade in when focusing slots instead of interpolating. Keep the field name as written in config.
commonCamvector4Shared bridge camera for scenes with walls or separate slot groups.
commonCamSlotsnumber[]Slot indices that should use commonCam.
minSlotsnumberLocation is only eligible when the player has at least this many characters.
vehiclestable[]Vehicles spawned for the preview scene and deleted when the scene is destroyed.

Slot fields​

Each slots[index] entry controls one character preview ped.

FieldTypeDescription
posvector4Ped position and heading.
camvector4Camera position/rotation when this slot is focused.
animtableOptional animation or scenario config.
attachToSlotnumber or falseAttach this ped to another slot ped, useful for paired animations.
previewStartpositionvector4Optional camera starting point before interpolating to this slot's cam.

Animation examples​

Scripted animation​

anim = {
type = 'animation',
dict = 'anim@heists@heist_safehouse_intro@variations@male@tv',
clip = 'tv_part_one_loop',
prop = {
model = 'v_res_tre_remote',
bone = 57005,
placement = { 0.099, 0.017, -0.03, -64.76, -109.544, 18.717 },
},
}

Scenario​

anim = {
type = 'scenario',
name = 'WORLD_HUMAN_MOBILE_FILM_SHOCKING',
}

Vehicles​

Some preview locations can spawn vehicles as part of the scene.

vehicles = {
{ model = 'champion', pos = vector4(1101.39, -3157.05, -38.14, 267.45) },
{ model = 'emerus', pos = vector4(1099.60, -3145.44, -38.22, 180.49) },
}

Vehicles are cleaned up when the scene is destroyed or when the player exits multichar.

Tips​

  1. Use a coordinate tool or map editor to capture pos, cam, and optional previewStartposition values.
  2. For interiors, configure pedInterior and any required ipls so the scene is loaded before the camera displays.
  3. If a camera path clips through walls, use useFladeAnim, commonCam, commonCamSlots, or per-slot previewStartposition.
  4. Slot keys should match the slot numbers you want to display. They can be non-consecutive if needed.
  5. Test every location in-game after changing animations, props, IPLs, or camera transitions. This is not the part to YOLO and hope for the best.