Skip to content

Export and use it

Playing it in game

Unzip the download into a folder in resources, add one line to server.cfg and restart. Then type the command in chat, or play it from your own script or menu.

What is in the zip

The download is named after your animation, friendly_wave.zip for the wave. The files sit directly in the zip, without a folder around them:

client.lua
fxmanifest.lua
stream/friendly_wave.ycd
  • stream/friendly_wave.ycd

    The animation dictionary with your clip in it.
  • fxmanifest.lua

    Registers the resource and its client script. Nothing to edit.
  • client.lua

    Registers the chat command /friendly_wave, loads the dictionary and plays the clip on your ped.

Install the resource

  1. 1

    Make a folder in resources

    In your server's resources directory, create a folder for the animation, for example friendly_wave. The folder name does not change the command.

  2. 2

    Unzip into it

    Put the contents of the zip into that folder, so it holds fxmanifest.lua, client.lua and the stream folder directly.

  3. 3

    Add it to server.cfg

    ensure friendly_wave
  4. 4

    Restart the server

    Restart the whole server and reconnect. Animations register when the server starts; a resource restart or refresh is not enough. Then type /friendly_wave in chat.

The result page lists the same steps under Animation resource ready.

Command, dictionary and clip

All three carry the name of the animation:

  • Chat command

    /friendly_wave
  • Animation dictionary

    friendly_wave
  • Clip

    friendly_wave

The command plays the clip on repeat until another task takes over the ped, such as another animation. Every builder export is its own resource, so any number of them can run side by side.

In scripts and emote menus

A builder clip plays like any GTA animation: load the dictionary, then start the clip on the ped. This plays the wave once; use 1 instead of 0 after -1 to repeat it, as the chat command does:

local dict, clip = 'friendly_wave', 'friendly_wave'
RequestAnimDict(dict)
while not HasAnimDictLoaded(dict) do Wait(10) end
-- flag 1 repeats until the ped gets another task, 0 plays once
TaskPlayAnim(PlayerPedId(), dict, clip, 8.0, -8.0, -1, 0, 0, false, false, false)

Emote menus such as dpemotes and rpemotes, and trainers such as Menyoo, take the dictionary and clip name the same way. The steps are on the AI Animations page: Emote menus and Menyoo. For the wave, the Menyoo line is:

<Anim dict="friendly_wave" name="friendly_wave" />

Good to know

The resource does not depend on a framework. It runs the same on ESX, QBCore, Qbox or a server without one.