> For the complete documentation index, see [llms.txt](https://darksouls-script-stash.gitbook.io/darksouls-script-stash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://darksouls-script-stash.gitbook.io/darksouls-script-stash/reference/texas-holdem/configuration-file.md).

# Configuration File

The config file lets you define different aspects of the script.

This is the default configuration with example values and one poker table in Valentine.

{% code fullWidth="true" %}

```lua
UsedLang = "en" -- make sure your language is added in the ./language folder
-- DO NOT CHANGE THESE
Language = {}
Config = {}
Config.Decks = 1
Config.Cards = {2,3,4,5,6,7,8,9,10,11,12,13,14}--"J","Q","K","A"
Config.Suits = {"♦","♤","♥","♧"}
Config.Ace = "<img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_a.png' style='height: 48px'/>"
Config.RoyalFlush = "<img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_a.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_k.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_q.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_j.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_10.png' style='height: 48px'/>"
Config.StraightFlush = "<img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_5.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_6.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_7.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_8.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_9.png' style='height: 48px'/>"
Config.FourKind = "<img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_10.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/spades_10.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_10.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/clubs_10.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_j.png' style='height: 48px'/>"
Config.FullHouse = "<img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_6.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/spades_6.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_6.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/clubs_3.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_3.png' style='height: 48px'/>"
Config.Flush = "<img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_9.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_2.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_6.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_5.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_q.png' style='height: 48px'/>"
Config.Street = "<img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_9.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/clubs_10.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_j.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/spades_q.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_k.png' style='height: 48px'/>"
Config.ThreeKind = "<img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_2.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/spades_2.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_2.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/spades_4.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_7.png' style='height: 48px'/>"
Config.TwoPairs = "<img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_4.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/spades_4.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/spades_8.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_8.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_a.png' style='height: 48px'/>"
Config.OnePair = "<img src='nui://d_texasholdem/html/img/cards/playing_cards_01/spades_7.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_7.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/diamonds_a.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/spades_10.png' style='height: 48px'/><img src='nui://d_texasholdem/html/img/cards/playing_cards_01/hearts_3.png' style='height: 48px'/>"
-- END DO NOT CHANGE THESE
Config.Framework = "vorp2" --decide which framework u use (vorp/vorp2/redemrp/redemrp2/gum/rsg/qbc/custom)
Config.WebhookUrl = "" -- provide discord channel webhook url
Config.WebhookAvatarUrl = "" -- custom avatar url for webhook if desired
Config.WebhookLogs = { -- decide which actions should be logged
    TableStarted            = true,
    TableEnded              = true,
    TableWinLooseHandling   = true,
    PlayerJoined            = true,
    PlayerLeaved            = true,
    PlayerRebuy             = true,
    PlayerPlacedBet         = true,
}
Config.Commands = { -- define name for script commands
    main_cmd = "th", -- main command for debug info
    template_cmd = "pokerTemplate" -- activate debug mode for new poker tables
}
Config.ConsoleMSG = false --turn on prints
Config.HoldToSeeCards = false --decide if you want a "hold to see" or "click to see" cards function
Config.UsePlayerName = true --decide if the player name or the server id with a prefix should be displayed / Prefix setup in language file "NoPlayerNamePrefix"
Config.UsePlayerFullName = false --use only firstname or first and last name | only if Config.UsePlayerName is true
Config.StartKey = 0xEB2AC491 --R
Config.InfoKey = 0x1ECA87D4 --Q
Config.FoldKey = 0xD596CFB0 -- F
Config.SurrenderKey = 0x156F7119 --Backspace
Config.BetLKey = 0x6319DB71 -- ARROW UP | old BetUKey
Config.BetRKey = 0x05CA7C52 -- ARROW DOWN | old BetDKey
Config.PlaceBetKey = 0xC7B5340A -- ENTER
Config.RdyToPlayKey = 0xC7B5340A -- ENTER
Config.RebuyKey = 0xEB2AC491 --R
Config.ShowCardsLKey = 0x07B8BEAF -- Left Click | old CardsKey
Config.ShowCardsRKey = 0xC13A6564 -- Right Click | old ComCardsKey
Config.TipTime = 3500 --timer for notification events
Config.ActionTimer = 120 --timer for player input | kicks players if player wont react on his/her turn until ActionTimer * 2
Config.PlayAnimation = {
    AllIn = true, -- play animation when player goes all in
    Bet = true, -- play animation when player places a bet
    Check = true, -- play animation when player checks
    Fold = true, -- play animation when player folds
    Win = true, -- play animation when one or more player wins a round
    WinningWholePot = true, -- play animation when one player wins the whole pot
    DealerShuffleDeck = true, -- play animation when dealer shuffles the deck
    DealerDealCards = true, -- play animation when dealer deals the cards
    DealerFlop = true, -- play animation when dealer reveals the flop cards
    DealerTurn = true, -- play animation when dealer reveals the turn card
    DealerRiver = true -- play animation when dealer reveals the river card
}
-- Table Config Entries
Config.Locations = {
    ["Valentine"] = {
        -- blip settings (0 = disable blip, -1 = always show blip, 1+ = show blip at distance in meters)
        showBlip = 75, 
        blipSprite = 1243830185,
        blipLocation = {x = -304.53515625, y = 801.1351928710938, z = 117.97854614257812, h = 0.0},
        -- general table and prompt settings
        tblLod = 15,
        tblCoords = {x = -304.53515625, y = 801.1351928710938, z = 117.97854614257812, h = 45.0},
        Name = "Texas Hold'em",
        promptRadius = 2.1,
        -- table specific settings
        buyIn = 2.5,
        smallBlind = 0.02,
        deckStyle = 1,
        -- prop settings / optional
        props = {
            ["deck"] = {model= "p_cardssplit01x_val", x= -304.4264221191406, y= 800.7904052734375, z= 118.78, h = 28.7154598236084}
        },
        -- delete objects / optional
        delete = {}
    }
}

-- Wrapper event names. Only used when TexasHoldemConfig.Framework is set to "custom"
Wrapper = {}
Wrapper.objectiveEvent = "myFrameWork:Objective"
Wrapper.TipEvent       = "myFrameWork:Tip"
Wrapper.HudOverride    = "myFrameWork:OverrideHUD"
Wrapper.getCharFromId  = "d_texasholdem:custom:getCharacterFromId" -- calls wrapper function from compatibility.lua
```

{% endcode %}

## <mark style="color:red;">Needed Table Config Entries</mark>

These table entries are required for every poker table location.

<table data-full-width="true"><thead><tr><th width="155">key</th><th width="190.33333333333331">value</th><th>description</th></tr></thead><tbody><tr><td>tblCoords</td><td>table (x,y,z,h)</td><td>World coordinates and heading (h) of the poker table. Serves as the central reference point for seat positions, card placement, and player interaction.</td></tr><tr><td>buyIn</td><td>float (0.01,...)</td><td>The amount of money deducted from the player when joining the table. Each player starts with this amount as their chip stack.</td></tr><tr><td>smallBlind</td><td>float (0.01,...)</td><td>The initial value of the small blind. The big blind is automatically set to double this value.</td></tr></tbody></table>

## <mark style="color:red;">Optional Table Config Entries</mark>

These table entries are optional and do not necessarily have to be added to the config. However, with these entries, you can customize each table individually and set various options.

<table data-full-width="true"><thead><tr><th width="275">key</th><th width="190.33333333333331">value</th><th>description</th></tr></thead><tbody><tr><td>promptRadius</td><td>float</td><td>Radius in meters within which players can see and interact with the table prompts.</td></tr><tr><td>showBlip</td><td>integer (0 / -1 / 1+)</td><td>Controls the map blip visibility: 0 = disabled, -1 = always visible, any positive integer = visible within that distance in meters.</td></tr><tr><td>blipSprite</td><td>integer</td><td>The sprite/icon ID used for the map blip. Only relevant when showBlip is not 0.</td></tr><tr><td>blipLocation</td><td>table (x,y,z,h)</td><td>World coordinates where the map blip is placed. Can differ from tblCoords to offset the blip from the actual table.</td></tr><tr><td>tblLod</td><td>integer (default: 15)</td><td>Level of detail (LOD) distance in meters for rendering table props. Objects are loaded when the player is within this distance.</td></tr><tr><td>deckStyle</td><td>integer (1-9)</td><td>Visual style of the card deck. Determines which card texture set is used (see html/img/cards/ )</td></tr><tr><td>changeBlindsPerRound</td><td>integer (1,...)</td><td>The first player at the table can choose the small blind value every <strong>X</strong> rounds.</td></tr><tr><td>blindsStepSize</td><td>float (0.01,...)</td><td><strong>Needed for changeBlindsPerRound!</strong> Determine the step size value for choosing the small blind</td></tr><tr><td>limitHoldem</td><td>float (1.0,...)</td><td>Limits the maximum amount a player can bet per round. Cannot exceed the buyIn value.</td></tr><tr><td>speechVoice</td><td>integer (1-2)</td><td>choose between voice 1 and 2 (only male voices)</td></tr><tr><td>buyInItem</td><td>string</td><td>db item name</td></tr><tr><td>props</td><td>table</td><td>Additional prop objects to spawn at the table location (e.g. a decorative card deck). Each entry requires: model (string), x, y, z (float), h (float heading).</td></tr><tr><td>delete</td><td>table</td><td>List of world objects near the table to delete on load (e.g. to remove conflicting environment props). Each entry requires: model (string), x, y, z (float).</td></tr></tbody></table>
