# Installation

{% stepper %}
{% step %}
**Download the resources**

Download both `cfx-djs-anims`,  [CFX portal](https://portal.cfx.re/login) and place them in your resources folder.
{% endstep %}

{% step %}
**Add to server.cfg**

Add `cfx-djs-anims`  to your `server.cfg` after all dependencies

```
ensure cfx-djs-anims
```

{% endstep %}

{% step %}
**Add Emotes to Script**

Add the required items to your inventory resource — see [Addon Scripts](#items) below info
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
All emotes are included and already pre-configured with our models, so they are ready to use out of the box. The additional config we provide is mainly for developers or those using addon scripts—we only include the necessary information needed to integrate everything smoothly into your setup.
{% endhint %}

***

## Emotes List <a href="#items" id="items"></a>

Make sure to add all required items to your inventory resource using the format that matches your setup.

{% columns %}
{% column %}
**Animation Name**
{% endcolumn %}

{% column %}
**dict name**
{% endcolumn %}

{% column %}
**clip name**
{% endcolumn %}
{% endcolumns %}

|                |                             |                                                                                                                                                                                                 |
| -------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Soda           | anim\@djs\@drink\@soda      | <ul><li>djs\_drink\_soda\_idle</li><li>djs\_drink\_soda\_sip\_quick</li><li>djs\_drink\_soda\_sip\_long</li></ul>                                                                               |
| Chips          | anim\@djs\@food\@chips      | <ul><li>djs\_food\_chips\_idle</li><li>djs\_food\_chips\_bite\_single</li><li>djs\_food\_chips\_bite\_loop</li><li>djs\_food\_chips\_handful\_loop</li></ul>                                    |
| Shots          | anim\@djs\@drink\@shot      | <ul><li>djs\_drink\_shot\_idle</li><li>djs\_drink\_shot\_quick</li></ul>                                                                                                                        |
| Coffee         | anim\@djs\@drink\@coffee    | <ul><li>djs\_drink\_coffee\_idle</li><li>djs\_drink\_coffee\_sip\_quick</li><li>djs\_drink\_coffee\_sip\_long</li></ul>                                                                         |
| Plated         | anim\@djs\@food\@plated     | <ul><li>djs\_food\_plate\_idle</li><li>djs\_food\_plate\_bite\_single</li><li>djs\_food\_plate\_bite\_loop</li></ul>                                                                            |
| Ice Cream Cone | anim\@djs\@food\@cone       | <ul><li>djs\_food\_cone\_idle</li><li>djs\_food\_cone\_bite\_single</li><li>djs\_food\_cone\_lick\_single</li><li>djs\_food\_cone\_lick\_multiple</li><li>djs\_food\_cone\_lick\_loop</li></ul> |
| Margarita      | anim\@djs\@drink\@margarita | <ul><li>djs\_drink\_margarita\_idle</li><li>djs\_drink\_margarita\_sip\_quick</li><li>djs\_drink\_margarita\_sip\_long</li><li>djs\_drink\_margarita\_sip\_loop</li></ul>                       |

***

## Addon Emote  / Developer Scripts

Make sure to add all required items to your emote / dev resource using the format that matches your setup.

{% tabs %}
{% tab title="RP Emotes" %}
Add the emotes below to your `rpemotes-reborn` into `client/AnimationList.lua`.

{% code expandable="true" %}

```
["soda_idle"] = {
    "anim@djs@drink@soda",
    "djs_drink_soda_idle",
    "Soda Idle",
    "drink",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},

["soda_sip_quick"] = {
    "anim@djs@drink@soda",
    "djs_drink_soda_sip_quick",
    "Soda Sip Quick",
    "drink",
    AnimationOptions = { EmoteDuration = 2000 }
},

["soda_sip_long"] = {
    "anim@djs@drink@soda",
    "djs_drink_soda_sip_long",
    "Soda Sip Long",
    "drink",
    AnimationOptions = { EmoteDuration = 4000 }
},
["chips_idle"] = {
    "anim@djs@food@chips",
    "djs_food_chips_idle",
    "Chips Idle",
    "food",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},

["chips_bite_single"] = {
    "anim@djs@food@chips",
    "djs_food_chips_bite_single",
    "Chips Bite",
    "food",
    AnimationOptions = { EmoteDuration = 2000 }
},

["chips_bite_loop"] = {
    "anim@djs@food@chips",
    "djs_food_chips_bite_loop",
    "Chips Bite Loop",
    "food",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},

["chips_handful_loop"] = {
    "anim@djs@food@chips",
    "djs_food_chips_handful_loop",
    "Chips Handful",
    "food",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},

["shot_idle"] = {
    "anim@djs@drink@shot",
    "djs_drink_shot_idle",
    "Shot Idle",
    "drink",
    AnimationOptions = {}
},

["shot_quick"] = {
    "anim@djs@drink@shot",
    "djs_drink_shot_quick",
    "Take Shot",
    "drink",
    AnimationOptions = { EmoteDuration = 2000 }
},

["coffee_idle"] = {
    "anim@djs@drink@coffee",
    "djs_drink_coffee_idle",
    "Coffee Idle",
    "drink",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},

["coffee_sip_quick"] = {
    "anim@djs@drink@coffee",
    "djs_drink_coffee_sip_quick",
    "Coffee Sip Quick",
    "drink",
    AnimationOptions = { EmoteDuration = 2000 }
},

["coffee_sip_long"] = {
    "anim@djs@drink@coffee",
    "djs_drink_coffee_sip_long",
    "Coffee Sip Long",
    "drink",
    AnimationOptions = { EmoteDuration = 4000 }
},

["plate_idle"] = {
    "anim@djs@food@plated",
    "djs_food_plate_idle",
    "Plate Idle",
    "food",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},

["plate_bite_single"] = {
    "anim@djs@food@plated",
    "djs_food_plate_bite_single",
    "Plate Bite",
    "food",
    AnimationOptions = { EmoteDuration = 2000 }
},

["plate_bite_loop"] = {
    "anim@djs@food@plated",
    "djs_food_plate_bite_loop",
    "Plate Eating",
    "food",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},

["cone_idle"] = {
    "anim@djs@food@cone",
    "djs_food_cone_idle",
    "Cone Idle",
    "food",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},

["cone_bite"] = {
    "anim@djs@food@cone",
    "djs_food_cone_bite_single",
    "Cone Bite",
    "food",
    AnimationOptions = { EmoteDuration = 2000 }
},

["cone_lick_single"] = {
    "anim@djs@food@cone",
    "djs_food_cone_lick_single",
    "Cone Lick",
    "food",
    AnimationOptions = { EmoteDuration = 2000 }
},

["cone_lick_multiple"] = {
    "anim@djs@food@cone",
    "djs_food_cone_lick_multiple",
    "Cone Lick Multiple",
    "food",
    AnimationOptions = { EmoteDuration = 3000 }
},

["cone_lick_loop"] = {
    "anim@djs@food@cone",
    "djs_food_cone_lick_loop",
    "Cone Lick Loop",
    "food",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},

["margarita_idle"] = {
    "anim@djs@drink@margarita",
    "djs_drink_margarita_idle",
    "Margarita Idle",
    "drink",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},

["margarita_sip_quick"] = {
    "anim@djs@drink@margarita",
    "djs_drink_margarita_sip_quick",
    "Margarita Sip Quick",
    "drink",
    AnimationOptions = { EmoteDuration = 2000 }
},

["margarita_sip_long"] = {
    "anim@djs@drink@margarita",
    "djs_drink_margarita_sip_long",
    "Margarita Sip Long",
    "drink",
    AnimationOptions = { EmoteDuration = 4000 }
},

["margarita_sip_loop"] = {
    "anim@djs@drink@margarita",
    "djs_drink_margarita_sip_loop",
    "Margarita Sip Loop",
    "drink",
    AnimationOptions = { onFootFlag = AnimFlag.MOVING }
},
```

{% endcode %}
{% endtab %}

{% tab title="Scully Emotes" %}
Add the emotes below to your `scully_emotemenu` into `shared/data/emotes/anything.lua`

{% code expandable="true" %}

```
{
    name = "sodaidle",
    label = "Soda Idle",
    icon = "glass-water",
    command = "sodaidle",
    category = "Drinks",
    dictionary = "anim@djs@drink@soda",
    animation = "djs_drink_soda_idle",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},
{
    name = "sodasipquick",
    label = "Soda Sip Quick",
    icon = "glass-water",
    command = "sodasipquick",
    category = "Drinks",
    dictionary = "anim@djs@drink@soda",
    animation = "djs_drink_soda_sip_quick",
    options = {
        duration = 2500,
        move = false,
        loop = false
    }
},
{
    name = "sodasiplong",
    label = "Soda Sip Long",
    icon = "glass-water",
    command = "sodasiplong",
    category = "Drinks",
    dictionary = "anim@djs@drink@soda",
    animation = "djs_drink_soda_sip_long",
    options = {
        duration = 4000,
        move = false,
        loop = false
    }
},

{
    name = "chipsidle",
    label = "Chips Idle",
    icon = "burger",
    command = "chipsidle",
    category = "Food",
    dictionary = "anim@djs@food@chips",
    animation = "djs_food_chips_idle",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},
{
    name = "chipsbitesingle",
    label = "Chips Bite Single",
    icon = "burger",
    command = "chipsbitesingle",
    category = "Food",
    dictionary = "anim@djs@food@chips",
    animation = "djs_food_chips_bite_single",
    options = {
        duration = 2500,
        move = false,
        loop = false
    }
},
{
    name = "chipsbiteloop",
    label = "Chips Bite Loop",
    icon = "burger",
    command = "chipsbiteloop",
    category = "Food",
    dictionary = "anim@djs@food@chips",
    animation = "djs_food_chips_bite_loop",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},
{
    name = "chipshandfulloop",
    label = "Chips Handful Loop",
    icon = "burger",
    command = "chipshandfulloop",
    category = "Food",
    dictionary = "anim@djs@food@chips",
    animation = "djs_food_chips_handful_loop",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},

{
    name = "shotidle",
    label = "Shot Idle",
    icon = "martini-glass",
    command = "shotidle",
    category = "Drinks",
    dictionary = "anim@djs@drink@shot",
    animation = "djs_drink_shot_idle",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},
{
    name = "shotquick",
    label = "Shot Quick",
    icon = "martini-glass",
    command = "shotquick",
    category = "Drinks",
    dictionary = "anim@djs@drink@shot",
    animation = "djs_drink_shot_quick",
    options = {
        duration = 2000,
        move = false,
        loop = false
    }
},

{
    name = "coffeeidle",
    label = "Coffee Idle",
    icon = "mug-hot",
    command = "coffeeidle",
    category = "Drinks",
    dictionary = "anim@djs@drink@coffee",
    animation = "djs_drink_coffee_idle",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},
{
    name = "coffeesipquick",
    label = "Coffee Sip Quick",
    icon = "mug-hot",
    command = "coffeesipquick",
    category = "Drinks",
    dictionary = "anim@djs@drink@coffee",
    animation = "djs_drink_coffee_sip_quick",
    options = {
        duration = 2500,
        move = false,
        loop = false
    }
},
{
    name = "coffeesiplong",
    label = "Coffee Sip Long",
    icon = "mug-hot",
    command = "coffeesiplong",
    category = "Drinks",
    dictionary = "anim@djs@drink@coffee",
    animation = "djs_drink_coffee_sip_long",
    options = {
        duration = 4000,
        move = false,
        loop = false
    }
},

{
    name = "plateidle",
    label = "Plate Idle",
    icon = "utensils",
    command = "plateidle",
    category = "Food",
    dictionary = "anim@djs@food@plated",
    animation = "djs_food_plate_idle",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},
{
    name = "platebitesingle",
    label = "Plate Bite Single",
    icon = "utensils",
    command = "platebitesingle",
    category = "Food",
    dictionary = "anim@djs@food@plated",
    animation = "djs_food_plate_bite_single",
    options = {
        duration = 2500,
        move = false,
        loop = false
    }
},
{
    name = "platebiteloop",
    label = "Plate Bite Loop",
    icon = "utensils",
    command = "platebiteloop",
    category = "Food",
    dictionary = "anim@djs@food@plated",
    animation = "djs_food_plate_bite_loop",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},

{
    name = "coneidle",
    label = "Cone Idle",
    icon = "ice-cream",
    command = "coneidle",
    category = "Food",
    dictionary = "anim@djs@food@cone",
    animation = "djs_food_cone_idle",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},
{
    name = "conebitesingle",
    label = "Cone Bite Single",
    icon = "ice-cream",
    command = "conebitesingle",
    category = "Food",
    dictionary = "anim@djs@food@cone",
    animation = "djs_food_cone_bite_single",
    options = {
        duration = 2500,
        move = false,
        loop = false
    }
},
{
    name = "conelicksingle",
    label = "Cone Lick Single",
    icon = "ice-cream",
    command = "conelicksingle",
    category = "Food",
    dictionary = "anim@djs@food@cone",
    animation = "djs_food_cone_lick_single",
    options = {
        duration = 2500,
        move = false,
        loop = false
    }
},
{
    name = "conelickmultiple",
    label = "Cone Lick Multiple",
    icon = "ice-cream",
    command = "conelickmultiple",
    category = "Food",
    dictionary = "anim@djs@food@cone",
    animation = "djs_food_cone_lick_multiple",
    options = {
        duration = 3500,
        move = false,
        loop = false
    }
},
{
    name = "conelickloop",
    label = "Cone Lick Loop",
    icon = "ice-cream",
    command = "conelickloop",
    category = "Food",
    dictionary = "anim@djs@food@cone",
    animation = "djs_food_cone_lick_loop",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},

{
    name = "margaritaidle",
    label = "Margarita Idle",
    icon = "martini-glass-citrus",
    command = "margaritaidle",
    category = "Drinks",
    dictionary = "anim@djs@drink@margarita",
    animation = "djs_drink_margarita_idle",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},
{
    name = "margaritasipquick",
    label = "Margarita Sip Quick",
    icon = "martini-glass-citrus",
    command = "margaritasipquick",
    category = "Drinks",
    dictionary = "anim@djs@drink@margarita",
    animation = "djs_drink_margarita_sip_quick",
    options = {
        duration = 2500,
        move = false,
        loop = false
    }
},
{
    name = "margaritasiplong",
    label = "Margarita Sip Long",
    icon = "martini-glass-citrus",
    command = "margaritasiplong",
    category = "Drinks",
    dictionary = "anim@djs@drink@margarita",
    animation = "djs_drink_margarita_sip_long",
    options = {
        duration = 4000,
        move = false,
        loop = false
    }
},
{
    name = "margaritasiploop",
    label = "Margarita Sip Loop",
    icon = "martini-glass-citrus",
    command = "margaritasiploop",
    category = "Drinks",
    dictionary = "anim@djs@drink@margarita",
    animation = "djs_drink_margarita_sip_loop",
    options = {
        duration = -1,
        move = true,
        loop = true
    }
},
```

{% endcode %}
{% endtab %}

{% tab title="Zykes Propaligner" %}

* Copy the item config **(non-consumable)** and put it into your inventory item list like normal.

{% code expandable="true" %}

```
{
    label = "Soda Idle",
    dict = "anim@djs@drink@soda",
    clip = "djs_drink_soda_idle",
},
{
    label = "Soda Sip Quick",
    dict = "anim@djs@drink@soda",
    clip = "djs_drink_soda_sip_quick",
},
{
    label = "Soda Sip Long",
    dict = "anim@djs@drink@soda",
    clip = "djs_drink_soda_sip_long",
},

{
    label = "Shot Idle",
    dict = "anim@djs@drink@shot",
    clip = "djs_drink_shot_idle",
},
{
    label = "Take Shot",
    dict = "anim@djs@drink@shot",
    clip = "djs_drink_shot_quick",
},

{
    label = "Coffee Idle",
    dict = "anim@djs@drink@coffee",
    clip = "djs_drink_coffee_idle",
},
{
    label = "Coffee Sip Quick",
    dict = "anim@djs@drink@coffee",
    clip = "djs_drink_coffee_sip_quick",
},
{
    label = "Coffee Sip Long",
    dict = "anim@djs@drink@coffee",
    clip = "djs_drink_coffee_sip_long",
},

{
    label = "Margarita Idle",
    dict = "anim@djs@drink@margarita",
    clip = "djs_drink_margarita_idle",
},
{
    label = "Margarita Sip Quick",
    dict = "anim@djs@drink@margarita",
    clip = "djs_drink_margarita_sip_quick",
},
{
    label = "Margarita Sip Long",
    dict = "anim@djs@drink@margarita",
    clip = "djs_drink_margarita_sip_long",
},
{
    label = "Margarita Sip Loop",
    dict = "anim@djs@drink@margarita",
    clip = "djs_drink_margarita_sip_loop",
},
{
    label = "Chips Idle",
    dict = "anim@djs@food@chips",
    clip = "djs_food_chips_idle",
},
{
    label = "Chips Bite",
    dict = "anim@djs@food@chips",
    clip = "djs_food_chips_bite_single",
},
{
    label = "Chips Bite Loop",
    dict = "anim@djs@food@chips",
    clip = "djs_food_chips_bite_loop",
},
{
    label = "Chips Handful",
    dict = "anim@djs@food@chips",
    clip = "djs_food_chips_handful_loop",
},

{
    label = "Plate Idle",
    dict = "anim@djs@food@plated",
    clip = "djs_food_plate_idle",
},
{
    label = "Plate Bite",
    dict = "anim@djs@food@plated",
    clip = "djs_food_plate_bite_single",
},
{
    label = "Plate Eat Loop",
    dict = "anim@djs@food@plated",
    clip = "djs_food_plate_bite_loop",
},

{
    label = "Cone Idle",
    dict = "anim@djs@food@cone",
    clip = "djs_food_cone_idle",
},
{
    label = "Cone Bite",
    dict = "anim@djs@food@cone",
    clip = "djs_food_cone_bite_single",
},
{
    label = "Cone Lick",
    dict = "anim@djs@food@cone",
    clip = "djs_food_cone_lick_single",
},
{
    label = "Cone Lick Multiple",
    dict = "anim@djs@food@cone",
    clip = "djs_food_cone_lick_multiple",
},
{
    label = "Cone Lick Loop",
    dict = "anim@djs@food@cone",
    clip = "djs_food_cone_lick_loop",
},
```

{% endcode %}
{% endtab %}
{% endtabs %}

***

## **Inventory Icons**

Make sure to add these icons to your preferred inventory’s image folder for them to display correctly.

{% stepper %}
{% step %}

### Ox Inventory

`ox_inventory/web/images`
{% endstep %}

{% step %}

### QS Inventory

`qs-inventory/html/images`
{% endstep %}
{% endstepper %}

{% file src="/files/VCSpiMd6eorjxXfWrAmS" %}

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.djscollections.com/requirements/food-and-drink-animations/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
