> For the complete documentation index, see [llms.txt](https://mscripts.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mscripts.gitbook.io/docs/qbcore/general/qb-christmas/config.md).

# Config

{% tabs %}
{% tab title="config.lua" %}

```lua
Config = {}

Config.Core = "qb-core" -- Your qb-core folder name
Config.Notify = "ox" -- "qb" or "okok" or "ox" ( open code on config_functions.lua )
Config.Target = "ox" -- "qb" or "ox"
Config.Inventory = "ox" -- "qb" or "ox"
Config.EnableSongs = false -- If you want to enable the songs when the sleigh is near ( xsound needed: https://github.com/Xogy/xsound )

-- SnowboardConfiguration
Config.SnowboardMaxSpeed = 40 -- Maybe dont change this, unless you know what you are doing
Config.SnowboardMaxJump = 5.0 -- We suggest not to mess to much with this (And yes, you can jump very high).


-- Debug Mode for calender
Config.DebugMode = false  -- Enable or disable debug mode
Config.DebugDay = {day = 28, month = 11, year = 2024} -- Set the date for the debug mode
Config.CommandOpen = "openadvent" -- Command to open the advent calendar manually (If DebugMode is enabled)
Config.StartOnlyDay1 = true -- If you want to start the advent calendar only on day 1


-- Snowball settings
Config.Snowball = true -- Enable or disable snowball
Config.SnowballCommand = "snowball" -- Command to spawn the snowball manually
Config.SnowballItem = "weapon_snowball" -- Item to be given when collecting snowball
Config.CollectingTime = 3500 -- Time to collect the snowball
Config.DisableDamage = true -- Disable damage when hit by snowball

-- Snowman settings
Config.Snowman = true -- Enable or disable snowman
Config.SnowmanCommand = "snowman" -- Command to build the snowman manually
Config.SnowmanItemNeed = "weapon_snowball" -- Item needed to build a snowman
Config.ConstructionTime = 5000 -- Time to build a snowman
Config.SnowmanModel = "prop_prlg_snowpile" -- Model of the snowman


-- ░█████╗░░█████╗░██╗░░░░░███████╗███╗░░██╗██████╗░███████╗██████╗░
-- ██╔══██╗██╔══██╗██║░░░░░██╔════╝████╗░██║██╔══██╗██╔════╝██╔══██╗
-- ██║░░╚═╝███████║██║░░░░░█████╗░░██╔██╗██║██║░░██║█████╗░░██████╔╝
-- ██║░░██╗██╔══██║██║░░░░░██╔══╝░░██║╚████║██║░░██║██╔══╝░░██╔══██╗
-- ╚█████╔╝██║░░██║███████╗███████╗██║░╚███║██████╔╝███████╗██║░░██║
-- ░╚════╝░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝╚═════╝░╚══════╝╚═╝░░╚═╝

Config.ChristmasCalender = {
    [1] = { item = "phone", amount = 1, type = "item"}, -- Item to be given
    [2] = { item = "bread", amount = 1, type = "item"},
    [3] = { item = "water", amount = 1, type = "item"},
    [4] = { item = "lockpick", amount = 1, type = "item"},
    [5] = { item = "phone", amount = 1, type = "item"},
    [6] = { item = "bread", amount = 1, type = "item"},
    [7] = { item = "water", amount = 1, type = "item"},
    [8] = { item = "lockpick", amount = 1, type = "item"},
    [9] = { item = "phone", amount = 1, type = "item"},
    [10] = { item = "bread", amount = 1, type = "item"},
    [11] = { item = "water", amount = 1, type = "item"},
    [12] = { item = "lockpick", amount = 1, type = "item"},
    [13] = { item = "phone", amount = 1, type = "item"},
    [14] = { item = "bread", amount = 1, type = "item"},
    [15] = { item = "water", amount = 1, type = "item"},
    [16] = { item = "lockpick", amount = 1, type = "item"},
    [17] = { item = "phone", amount = 1, type = "item"},
    [18] = { item = "bread", amount = 1, type = "item"},
    [19] = { item = "water", amount = 1, type = "item"},
    [20] = { item = "lockpick", amount = 1, type = "item"},
    [21] = { item = "phone", amount = 1, type = "item"},
    [22] = { item = "bread", amount = 1, type = "item"},
    [23] = { item = "water", amount = 1, type = "item"},
    [24] = { item = "cash", amount = 5000, type = "cash"}, -- Example give cash
    [25] = { item = "t20", amount = 1, type = "car"}, -- Example to give a car
}


-- ░██████╗██╗░░░░░███████╗██╗░██████╗░██╗░░██╗
-- ██╔════╝██║░░░░░██╔════╝██║██╔════╝░██║░░██║
-- ╚█████╗░██║░░░░░█████╗░░██║██║░░██╗░███████║
-- ░╚═══██╗██║░░░░░██╔══╝░░██║██║░░╚██╗██╔══██║
-- ██████╔╝███████╗███████╗██║╚██████╔╝██║░░██║
-- ╚═════╝░╚══════╝╚══════╝╚═╝░╚═════╝░╚═╝░░╚═╝
Config.CommandSleigh = "sleigh" -- Command to spawn the sleigh manually
Config.ChristmasSleigh = {
    [1] = {
        zone = "Los Santos 01", -- Zone where the sleigh will be spawned
        startCoords = vector3(-1988.08, -1334.2, 95.54), -- Location where the sleigh will be spawned 
        endCoords = vector3(3351.24, -1866.16, 72.82), -- Location where the sleigh will be despawned
        heading = 320.0, -- Heading of the sleigh
        dropAmount = 12, -- 12 gifts will be dropped
        dropLocations = { -- Locations where the sleigh drops a bag with presents
            [1] = { coords = vector3(-1455.25, -1391.64, 2.7), model = "m_santa_sack" },
        },
        dropItems = { -- List of possible drops when you collect a present from the sleigh
            [1] = { item = "phone", min = 1, max = 2, chance = 100 },
        },
    },
}



-- ░██████╗███████╗░█████╗░██████╗░░█████╗░██╗░░██╗  ██████╗░██████╗░███████╗░██████╗███████╗███╗░░██╗████████╗░██████╗
-- ██╔════╝██╔════╝██╔══██╗██╔══██╗██╔══██╗██║░░██║  ██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝████╗░██║╚══██╔══╝██╔════╝
-- ╚█████╗░█████╗░░███████║██████╔╝██║░░╚═╝███████║  ██████╔╝██████╔╝█████╗░░╚█████╗░█████╗░░██╔██╗██║░░░██║░░░╚█████╗░
-- ░╚═══██╗██╔══╝░░██╔══██║██╔══██╗██║░░██╗██╔══██║  ██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗██╔══╝░░██║╚████║░░░██║░░░░╚═══██╗
-- ██████╔╝███████╗██║░░██║██║░░██║╚█████╔╝██║░░██║  ██║░░░░░██║░░██║███████╗██████╔╝███████╗██║░╚███║░░░██║░░░██████╔╝
-- ╚═════╝░╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝░╚════╝░╚═╝░░╚═╝  ╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚══════╝╚═╝░░╚══╝░░░╚═╝░░░╚═════╝░

Config.EnablePresents = true -- Enable or disable presents on the map
Config.AutomaticSpawn = true -- Enable or disable automatic spawn of presents
Config.CommandSpawn = "spawnpresents" -- Command to spawn presents manually (If AutomaticSpawn is disabled)

Config.PresentsLocations = {
    [1] = { coords = vector3(170.93, -984.38, 30.09), model = "m_santa_present" },
    [2] = { coords = vector3(-532.97, 464.34, 103.19), model = "m_santa_present" },
    [3] = { coords = vector3(-595.24, 529.8, 107.76), model = "m_santa_present" },
    [4] = { coords = vector3(-679.02, 511.95, 113.53), model = "m_santa_present" },
    [5] = { coords = vector3(-762.24, 430.86, 100.2), model = "m_santa_present" },
    [6] = { coords = vector3(-873.48, 562.65, 96.62), model = "m_santa_present" },
    [7] = { coords = vector3(-952.16, 600.8, 109.3), model = "m_santa_present" },
    [8] = { coords = vector3(-1095.53, 601.0, 103.06), model = "m_santa_present" },
    [9] = { coords = vector3(-1307.76, 477.36, 97.65), model = "m_santa_present" },
    [10] = { coords = vector3(-1455.21, 534.46, 119.37), model = "m_santa_present" },
    [11] = { coords = vector3(-1500.42, 523.05, 118.27), model = "m_santa_present" },
    [12] = { coords = vector3(308.73, -903.01, 29.29), model = "m_santa_present" },
    [13] = { coords = vector3(455.97, -967.81, 30.71), model = "m_santa_present" },
    [14] = { coords = vector3(452.99, -889.32, 28.22), model = "m_santa_present" },
    [15] = { coords = vector3(428.97, -799.06, 29.85), model = "m_santa_present" },
    [16] = { coords = vector3(383.7, -753.51, 29.29), model = "m_santa_present" },
    [17] = { coords = vector3(437.61, -623.04, 28.71), model = "m_santa_present" },
    [18] = { coords = vector3(142.55, -1044.5, 29.37), model = "m_santa_present" },
    [19] = { coords = vector3(-175.52, -1288.56, 31.3), model = "m_santa_present" },
    [20] = { coords = vector3(-314.19, -1340.8, 31.34), model = "m_santa_present" },
    [21] = { coords = vector3(-302.32, -1461.67, 31.0), model = "m_santa_present" },
    [22] = { coords = vector3(-318.0, -1542.91, 27.69), model = "m_santa_present" },
    [23] = { coords = vector3(1697.98, 3584.13, 35.55), model = "m_santa_present" },
    [24] = { coords = vector3(1613.63, 3570.05, 35.43), model = "m_santa_present" },
    [25] = { coords = vector3(1408.3, 3619.55, 34.89), model = "m_santa_present" },
    [26] = { coords = vector3(1413.1, 3645.07, 34.42), model = "m_santa_present" },
    [27] = { coords = vector3(1279.35, 3624.8, 33.04), model = "m_santa_present" },
    [28] = { coords = vector3(1529.94, 3778.29, 34.51), model = "m_santa_present" },
    [29] = { coords = vector3(1708.6, 3845.01, 34.92), model = "m_santa_present" },
    [30] = { coords = vector3(1809.38, 3907.14, 33.76), model = "m_santa_present" },
    [31] = { coords = vector3(1841.58, 3926.71, 33.02), model = "m_santa_present" },
    [32] = { coords = vector3(1879.82, 3921.76, 33.21), model = "m_santa_present" },
    [33] = { coords = vector3(1987.91, 3791.03, 32.18), model = "m_santa_present" },
    [34] = { coords = vector3(200.71, 6626.63, 31.56), model = "m_santa_present" },
    [35] = { coords = vector3(99.28, 6619.08, 32.48), model = "m_santa_present" },
    [36] = { coords = vector3(31.1, 6608.61, 32.45), model = "m_santa_present" },
    [37] = { coords = vector3(-9.03, 6652.78, 31.11), model = "m_santa_present" },
    [38] = { coords = vector3(-74.79, 6559.56, 31.49), model = "m_santa_present" },
    [39] = { coords = vector3(-102.58, 6532.6, 29.81), model = "m_santa_present" },
    [40] = { coords = vector3(-170.42, 6450.26, 31.5), model = "m_santa_present" },
    [41] = { coords = vector3(-214.71, 6396.09, 33.09), model = "m_santa_present" },
    [42] = { coords = vector3(-267.08, 6354.26, 32.49), model = "m_santa_present" },
    [43] = { coords = vector3(-335.44, 6306.27, 32.48), model = "m_santa_present" },
    [44] = { coords = vector3(-403.06, 6163.31, 31.5), model = "m_santa_present" }
}



-- ████████╗██████╗░░█████╗░██████╗░███████╗  ██████╗░██████╗░███████╗░██████╗███████╗███╗░░██╗████████╗░██████╗
-- ╚══██╔══╝██╔══██╗██╔══██╗██╔══██╗██╔════╝  ██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝████╗░██║╚══██╔══╝██╔════╝
-- ░░░██║░░░██████╔╝███████║██║░░██║█████╗░░  ██████╔╝██████╔╝█████╗░░╚█████╗░█████╗░░██╔██╗██║░░░██║░░░╚█████╗░
-- ░░░██║░░░██╔══██╗██╔══██║██║░░██║██╔══╝░░  ██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗██╔══╝░░██║╚████║░░░██║░░░░╚═══██╗
-- ░░░██║░░░██║░░██║██║░░██║██████╔╝███████╗  ██║░░░░░██║░░██║███████╗██████╔╝███████╗██║░╚███║░░░██║░░░██████╔╝
-- ░░░╚═╝░░░╚═╝░░╚═╝╚═╝░░╚═╝╚═════╝░╚══════╝  ╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚══════╝╚═╝░░╚══╝░░░╚═╝░░░╚═════╝░

Config.EnableTrading = true -- Enable or disable trading
Config.TradeLocation = {
    coords = vector3(-412.74, 1169.96, 325.85), -- Location where the trading tree will be spawned
    prop = "prop_xmas_tree_int", -- Prop of the trading tree
}

Config.TradingOptions = {
    [1] = {
        itemReward = "lockpick", -- Item to be given when trading
        labelItem = "Lockpick", -- Label of the item
        presentsNeed = 1, -- Amount of presents needed to trade
    },
    [2] = {
        itemReward = "bread",
        labelItem = "Bread",
        presentsNeed = 2,
    },
    [3] = {
        itemReward = "water",
        labelItem = "Water",
        presentsNeed = 3,
    },
    [4] = {
        itemReward = "phone",
        labelItem = "Phone",
        presentsNeed = 4,
    },
}
```

{% endtab %}

{% tab title="config\_functions.lua" %}

```lua
local QBCore = exports[Config.Core]:GetCoreObject()

function Notify(msg, type, time)
    if Config.Notify == "standalone" then
        BeginTextCommandThefeedPost("STRING")
        AddTextComponentSubstringPlayerName(msg)
        EndTextCommandThefeedPostTicker(true, true)
    elseif Config.Notify == "qb" then
        QBCore.Functions.Notify(msg, type, time)
    elseif Config.Notify == "okok" then
        exports['okokNotify']:Alert('Notification', msg, time, type, true)
    elseif Config.Notify == "ox" then
        lib.notify({ title = 'Notification', description = msg, type = type })
    end
end

function SendHelpText(text)
    lib.showTextUI(text, {
        position = "right-center",
        icon = 'warehouse',
        style = {
            borderRadius = 5,
            backgroundColor = '#17171a',
            color = 'white'
        }
    })
end

function RemoveHelpText()
    lib.hideTextUI()
end
```

{% endtab %}

{% tab title="config\_language.lua" %}

```lua
Language = {
    targets = {
        tradePresent = "Trade Presents",
        pickupGift = "Pickup Gift",
        destroySnowman = "Destroy Snowman",
    },
    progressbars = {
        pickingupPresent = "Picking up present...",
        pickingupGift = "Picking up gift...",
        collectingSnowball = "Collecting snowball...",
        buildingSnowman = "Building snowman...",
    },
    notifys = {
        pickedUpPresent = "You have picked up a present!",
        pickedUpCanceled = "You have cancelled picking up the present!",
        useSnowboard = "Press [G] to use the Snowboard",
        giftDropped = "A gift has been dropped!",
        sleighDestination = "The Christmas Sleigh has reached its destination!",
        pickedUpGift = "You have picked up a gift!",
        pickedUpGiftCanceled = "You have cancelled picking up the gift!",
        noSnow = "You can only collect snowballs when it's snowing.",
        insideNo = "You must be outside a vehicle to collect snowballs.",
        canceled = "Canceled.",
        youNeedSnowball = "You need 1x snowballs to build a snowman",
        snowmanDestroyed = "Snowman destroyed!",
        claimedToday = "You have already claimed your gift today!",
        adventClaimed = "Prêmio do dia {day} reclamado com sucesso!",
        noPresents = "You don't have enough presents to trade!",
        calendarNotOpenYet = "The Christmas Calendar is not open yet!",
        snowmanBuild = "Snowman built!",
    },
    helpText = {
        skateboard = "Skateboard Speed: {speed} km/h    \n[G] - Exit Skateboard     \n[SPACE] - Jump    \n[E] - Save Skateboard"
    },
    commands = {
        openCalender = "Open the christmas calender",
        startSleigh = "Start the Christmas Sleigh",
        spawnPresents = "Spawn the presents around the map",
    }
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://mscripts.gitbook.io/docs/qbcore/general/qb-christmas/config.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.
