# Configuration

```lua
CFG = {}
CFG.FRAMEWORK = 'qb' -- 'qb', 'qbx', 'esx' or false
CFG.NOTIFY = 'ox' -- 'qb', 'esx', 'ox', 'default'

CFG.SETTINGS = {

    -- only enabled when cfg.framework is false, it's possible to change it at server_editable.lua
    command = 'yoga',

    stress = {
        enable = true, -- true/false

        -- add your own event for relieving stress
        events = {
            remove = {
                type = 'server', -- 'client' or 'server'
                name = 'hud:server:RelieveStress'
            },
            add = {
                type = 'server', -- 'client' or 'server'
                name = 'hud:server:GainStress'
            },
        },

        -- if performs successfully
        onSuccess = { from = 1, to = 5 }, -- how much stress will be relieved

        -- if fails to perform
        onFail = { from = 1, to = 5 }, -- how much stress will be added
    
        -- meditation interval, for stress relieve
        med_int = 3, -- every x seconds
    },

    --[[
        -- FOR DEVELOPERS --

        if custom_functions are enabled, 
        it doesn't work with settings from above, only med_int parameter
    ]]
    custom_functions = {
        enable = false, -- true / false
        onSuccess = function(amount)
            -- your code
        end,

        onFail = function(amount)
            -- your code
        end
    },

    difficulties = {
        -- available presets: 'easy', 'medium', 'hard'

        -- you don't have to use those presets, 
        -- read through this link to make your own https://overextended.dev/ox_lib/Modules/Interface/Client/skillcheck

        -- phase 1 --
        { 'easy' }, -- 1
        { 'easy' }, -- 2
        { 'easy', 'easy', 'easy', 'medium' }, -- 3
        { 'easy', 'easy', 'easy', 'medium', 'easy', 'easy', 'easy', 'medium' }, -- 4
        { 'easy' }, -- 5

        -- phase 2 -- 
        { 'easy' }, -- 6
        { 'easy' }, -- 7
        { 'easy', 'easy', 'easy', 'easy' }, -- 8
        { 'easy' }, -- 9
        { 'easy' }, -- 10
        { 'easy', 'medium' }, -- 11
        { 'easy', 'easy', 'easy' }, -- 12
        { 'easy', 'easy' }, -- 13
        { { areaSize = 50, speedMultiplier = 1 } }, -- 14
    },

    -- mat types, you can add more if you need to
    yoga_mat_types = {
        { -- 1
            item = 'yoga_mat_1', -- only for QB / QBX / ESX users

            offsets = {
                mid = vec3(0.9, 0.0, 0.5),
                side = vec3(0.0, 0.0, 0.0),
                side2 = vec3(1.7, 0.0, 0.0)
            },
            unrolled = `p_yoga_mat_03_s`,
            rolled = `prop_rolled_yoga_mat`,
            hand_attach = { pos = vec3(0.082, 0.012, -0.080), rot = vec3(117.316, 55.688, 22.36) },
            roll_attach = { pos = vec3(-0.105, 0.844, 0.052), rot = vec3(-75.263, -29.136, 102.103) }
        },
        { -- 2
            item = 'yoga_mat_2', -- only for QB / QBX / ESX users

            offsets = {
                mid = vec3(0.0, 0.0, 0.5),
                side = vec3(-0.9, 0.0, 0.0),
                side2 = vec3(0.9, 0.0, 0.0)
            },
            unrolled = `prop_yoga_mat_01`,
            rolled = `v_res_fa_yogamat1`,
            hand_attach = { pos = vec3(0.104, 0.0, -0.031), rot = vec3(44.554, 3.059, -18.237) },
            roll_attach = { pos = vec3(-0.163, 0.720, -0.027), rot = vec3(-129.246, -57.500, 106.984) }
        }
    }
}

CFG.LANG = {
    not_close = 'You are not close to any side of yoga mat.',
    failed = 'You failed to perform it.',
    
    meditate_hint = 'Press ~INPUT_FRONTEND_PAUSE_ALTERNATE~ to ~r~stop~w~ meditate.\nPress ~INPUT_DETONATE~ to ~b~on/off~w~ camera.',
    yoga_hint = 'Press ~INPUT_PICKUP~ to ~g~perform~w~ yoga.\nPress ~INPUT_FRONTEND_PAUSE_ALTERNATE~ to ~r~stop~w~ yoga.\nPress ~INPUT_DETONATE~ to ~b~on/off~w~ camera.',
    
    place_mat = 'Press ~INPUT_PICKUP~ to place yoga mat.',
    roll_mat = 'Press ~INPUT_PICKUP~ to ~b~roll~w~ yoga mat.',
    mat_hint = 'Press ~INPUT_PICKUP~ to ~g~start~w~ yoga.\nPress ~INPUT_DETONATE~ to ~g~start~w~ meditate.'
}
```


---

# 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://andrew-grenade.gitbook.io/sheen-scripts/paid-resources/sh-yoga/configuration.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.
