> For the complete documentation index, see [llms.txt](https://nayzeee-dev.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://nayzeee-dev.gitbook.io/docs/nayzeee-scripts/nayzeee-wig-snatch/configuration.md).

# Configuration

## Configuration

<details>

<summary>View Full Config</summary>

```lua
--[[
    ███╗   ██╗ █████╗ ██╗   ██╗███████╗███████╗███████╗███████╗
    ████╗  ██║██╔══██╗╚██╗ ██╔╝╚══███╔╝██╔════╝██╔════╝██╔════╝
    ██╔██╗ ██║███████║ ╚████╔╝   ███╔╝ █████╗  █████╗  █████╗  
    ██║╚██╗██║██╔══██║  ╚██╔╝   ███╔╝  ██╔══╝  ██╔══╝  ██╔══╝  
    ██║ ╚████║██║  ██║   ██║   ███████╗███████╗███████╗███████╗
    ╚═╝  ╚═══╝╚═╝  ╚═╝   ╚═╝   ╚══════╝╚══════╝╚══════╝╚══════╝
                                                                
    ██████╗ ███████╗██╗   ██╗███████╗██╗      ██████╗ ██████╗ ███╗   ███╗███████╗███╗   ██╗████████╗
    ██╔══██╗██╔════╝██║   ██║██╔════╝██║     ██╔═══██╗██╔══██╗████╗ ████║██╔════╝████╗  ██║╚══██╔══╝
    ██║  ██║█████╗  ██║   ██║█████╗  ██║     ██║   ██║██████╔╝██╔████╔██║█████╗  ██╔██╗ ██║   ██║   
    ██║  ██║██╔══╝  ╚██╗ ██╔╝██╔══╝  ██║     ██║   ██║██╔═══╝ ██║╚██╔╝██║██╔══╝  ██║╚██╗██║   ██║   
    ██████╔╝███████╗ ╚████╔╝ ███████╗███████╗╚██████╔╝██║     ██║ ╚═╝ ██║███████╗██║ ╚████║   ██║   
    ╚═════╝ ╚══════╝  ╚═══╝  ╚══════╝╚══════╝ ╚═════╝ ╚═╝     ╚═╝     ╚═╝╚══════╝╚═╝  ╚═══╝   ╚═╝   
                                                                                                      
    WIG SNATCH SCRIPT - 1.3.3
    Discord: discord.gg/nayzeeedev
    
]]

Config = {}

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

Config.Debug = false -- Enable debug prints in console
Config.SnatchDistance = 2.0 -- Distance in meters to snatch a wig
Config.SnatchTime = 900 -- Time in ms to complete the snatching animation (Changing This Is Not Recommended)

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

-- Which genders can have their wigs snatched
Config.AllowedGenders = {
    Female = true,  -- Allow snatching wigs from female characters
    Male = true,   -- Allow snatching wigs from male characters (set to true to enable)
}

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

Config.Cooldown = {
    Enabled = true, -- Enable/disable cooldown between snatches
    Duration = 60, -- Cooldown duration in seconds (60 = 1 minute)
}

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

-- Snatcher Minigame (person attempting to snatch must pass this)
Config.SnatcherMinigame = {
    Enabled = false, -- Enable/disable minigame for the snatcher
    Difficulty = {'easy', 'easy', 'medium'}, -- Skillcheck difficulty sequence (options: 'easy', 'medium', 'hard')
    Keys = {'w', 'a', 's', 'd'}, -- Keys to use for the skillcheck
}

-- Victim Defend Minigame (person getting snatched can defend)
Config.VictimMinigame = {
    Enabled = true, -- Enable/disable defend minigame for the victim
    Difficulty = {'easy', 'medium'}, -- Skillcheck difficulty sequence (options: 'easy', 'medium', 'hard')
    Keys = {'w', 'a', 's', 'd'}, -- Keys to use for the skillcheck
    TimeToRespond = 5000, -- Time in ms the victim has to start the minigame (5 seconds)
}

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

Config.UseTarget = true -- Enable ox_target third eye functionality
Config.TargetIcon = 'fa-solid fa-hand' -- Icon for target option
Config.TargetDistance = 2.5 -- Distance for ox_target interaction

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

Config.Animation = {
    Dict = "melee@unarmed@streamed_variations",
    Name = "plyr_takedown_front_slap",
    Flag = 0
}

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

Config.WigItem = "wig" -- Name of the wig item in your database

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

-- Hair styles to use when a wig is snatched
-- This prevents issues with clothing packs that players may not have
-- Set to specific drawable IDs that exist in the BASE GAME (no clothing packs needed)
-- Random selection from the list if multiple are provided

Config.HairAfterSnatch = {
    -- Female (mp_f_freemode_01) hair variations to use after wig snatch
    -- These are BASE GAME hair IDs that every player will have
    -- Set to { 0 } for completely bald, or pick specific styles
    Female = {
        Drawables = { 0 },  -- 0 = bald, or add more like { 0, 3, 14, 76 }
        Textures = { 0 },   -- Texture variations (usually 0 is fine)
    },
    
    -- Male (mp_m_freemode_01) hair variations (if you extend to males)
    Male = {
        Drawables = { 0 },
        Textures = { 0 },
    },
}

--[[   
    You can add multiple IDs and the script will randomly pick one.
    Example: Drawables = { 0, 3, 14 } -- Randomly picks bald, bob, or short wavy
    
    To find more hair IDs, use a ped customization menu in-game.
    Only use IDs from the BASE GAME to avoid the "wrong hair" issue!
]]

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

Config.EnableSellFeature = true -- Enable the wig selling feature
Config.SellCommand = 'sellwigs' -- Command to spawn the seller NPC
Config.UseInteractionKey = false -- Allow pressing E to interact with seller NPC
Config.InteractionKey = 38 -- E key (38 = E)
Config.InteractionDistance = 2.0 -- Distance to interact with NPC

-- Phone Animation Settings
Config.UsePhoneAnimation = true -- Enable phone animation before NPC arrives
Config.PhoneAnimDict = "cellphone@" 
Config.PhoneAnimName = "cellphone_text_read_base" 
Config.PhoneAnimDuration = 5000 -- How long to play phone animation
Config.PhoneProp = "prop_npc_phone_02"

-- NPC Settings
Config.NPCSpawnDistance = 15.0 -- Distance from player where NPC spawns
Config.NPCRunToPlayer = true -- If true, NPC will run to player after spawning
Config.NPCRunSpeed = 2.0 -- Speed multiplier for NPC running (1.0 = walk, 2.0 = run, 3.0 = sprint)
Config.NPCStopDistance = 0.5 -- Distance at which NPC stops near player
Config.NPCDespawnTime = 7000 -- Time in ms before NPC despawns
Config.NPCModel = 'a_m_m_business_01' 
Config.NPCGreeting = "Yo, I heard you got some wigs for sale?" -- What NPC says when arriving (set to false to disable)

-- Sell Prices
Config.SellPrice = {
    Min = 50,
    Max = 150 
}

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

-- Options: 'default', 'ox_lib'
-- 'default' will use the framework's default notification
-- 'ox_lib' will use ox_lib notifications
Config.NotifySystem = 'ox_lib'

-- ox_lib notification settings 
Config.OxLibNotify = {
    position = 'top-right',
    duration = 3000
}

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

-- Options: 'default', 'ox_lib'
-- 'default' will use the framework's default progress bar
-- 'ox_lib' will use ox_lib progress
Config.ProgressSystem = 'ox_lib'

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

-- Hair Clippers & Scissors - Walk up to a player and cut their hair!
-- Requires items to be added to your inventory system (ox_inventory, qb-inventory, etc.)
-- Images are in INSTALL_/IMAGE/ folder

Config.HairTools = {
    -- Hair Clippers (Buzzer/Razor)
    Clippers = {
        Enabled = true,
        Item = 'hair_clippers',              -- Item name in your inventory
        Distance = 2.0,                       -- Distance to use on another player
        Duration = 3000,                      -- How long the cutting animation lasts (ms)
        TargetLabel = 'Buzz Hair',            -- ox_target label
        TargetIcon = 'fa-solid fa-scissors',  -- ox_target icon
        
        -- Animation
        Animation = {
            Dict = 'anim@heists@prison_heiststation@cop_reactions',
            Name = 'cop_b_idle',
            Flag = 49,
        },
        
        -- Prop (attached to hand during animation)
        Prop = {
            Model = 'prop_cs_scissors',       -- GTA V prop model (closest to clippers)
            Bone = 57005,                     -- SKEL_R_Hand
            Offset = {x = 0.12, y = 0.04, z = 0.01},
            Rot = {x = -80.0, y = 0.0, z = 0.0},
        },
        
        -- XSound Settings
        Sound = {
            enabled = true,
            sound = 'clippers',               -- Sound name identifier
            url = 'https://cfx-nui-xsound/html/sounds/clippers.ogg', -- Path to sound file
            volume = 0.7,
            range = 10.0,                     -- How far other players can hear (meters)
        },
        
        -- Minigame (optional)
        Minigame = {
            Enabled = false,                  -- Set to true to require skillcheck
            Difficulty = {'easy', 'easy'},
            Keys = {'w', 'a', 's', 'd'},
        },
    },
    
    -- Scissors
    Scissors = {
        Enabled = true,
        Item = 'scissors',                    -- Item name in your inventory
        Distance = 2.0,                       -- Distance to use on another player
        Duration = 3500,                      -- How long the cutting animation lasts (ms)
        TargetLabel = 'Cut Hair',             -- ox_target label
        TargetIcon = 'fa-solid fa-scissors',  -- ox_target icon
        
        -- Animation
        Animation = {
            Dict = 'anim@heists@prison_heiststation@cop_reactions',
            Name = 'cop_b_idle',
            Flag = 49,
        },
        
        -- Prop (attached to hand during animation)
        Prop = {
            Model = 'prop_cs_scissors',       -- GTA V scissors prop
            Bone = 57005,                     -- SKEL_R_Hand
            Offset = {x = 0.12, y = 0.04, z = 0.01},
            Rot = {x = -80.0, y = 0.0, z = 0.0},
        },
        
        -- XSound Settings
        Sound = {
            enabled = true,
            sound = 'scissors',               -- Sound name identifier
            url = 'https://cfx-nui-xsound/html/sounds/scissors.ogg', -- Path to sound file
            volume = 0.6,
            range = 8.0,                      -- How far other players can hear (meters)
        },
        
        -- Minigame (optional)
        Minigame = {
            Enabled = false,                  -- Set to true to require skillcheck
            Difficulty = {'easy', 'medium'},
            Keys = {'w', 'a', 's', 'd'},
        },
    },
}
```

</details>
