Envi Scripts Documentation
  • 👋Introduction
  • 🌉Envi-Bridge
  • ⚙️Compatibility
  • 🖨️Licensing
  • 📒Premium Scripts
    • ❔FAQ / COMMON ISSUES
    • ‼️FIRST STEPS (READ FIRST)
    • ⭐Useful Resources
    • 👀Envi FiveM Showcase Server
    • 💊Envi-Addictions
      • ❗First Time Setup
      • Inventory Setup
      • Exports and Commands
      • Config File
    • 📸Envi-Camera
      • ❗First Steps
      • Inventory Setup
      • Editable Functionality
      • Complete Lens Kit
      • Printing Photos
      • Ped Reactions
      • Exports
      • Config File
    • 🪚Envi-ChopShop
      • Inventory Setup
      • How to Chop
      • Props for AntiCheats
      • Editable Functionality
      • Config File
    • 🪣Envi-Dumpsters
      • Common Issues
      • Inventory Setup
      • Editable Functionality
      • Exports
      • Exclusive Zones
      • Survival Items
      • Shopping Carts
      • Hobo Bowling
      • Hobo Taxi
      • Rats and Racoons
      • Config File
      • V2 Config
    • 💺Envi-Ejector-Seats
      • Inventory Setup
      • How to Eject
      • Editable Functionality
      • Config File
    • 🔥Envi-Flamethrower (Standalone)
      • Common Issues
      • Inventory Setup
      • Refueling
      • Editable Functionality
      • Config File
    • 🪽Envi-Flight-Suits
      • Inventory Setup
      • Flight Suits
      • Config File
    • 🍜Envi-Food-Truck
      • ❗VooDoo Required
      • Common Issues
      • Inventory Setup
      • Adding Additional Grill Items
      • Unique Shops with Liveries
      • Spawning the Trucks
      • Using the Trucks
      • Exports
      • Config File
    • 💍Envi-Forever-Rings
      • Inventory Setup
      • Editable Functionality
      • Ring Shop MLO
      • Config File
    • 💻Envi-Hack-Minigames (Standalone)
      • The Worm
      • Password
      • Firewall
      • Node Runner
      • Config File
    • 🎞️Envi-HUD
      • ❗First Time Setup
      • Common Issues
      • Inventory Setup
      • Adding Custom Weapons
      • Change Logo
      • Custom Fonts
      • Converting Notifications
      • Converting Progress Bars
      • Editable Functionality
      • Settings Save Location
      • Exports and Events
      • Commands
      • Vehicle Control
      • Anti Muscle Spasm
      • Ragdoll
      • Config File
    • 🎇Envi-Items
      • Inventory Setup
      • Config File
    • 🚑Envi-Medic
      • Common Issues
      • Fully Disable Transport to Hospital
      • Failsafe
      • Ambulance Scripts
      • Vehicle Fuel
      • Vehicle Keys
      • Exports
      • Config File
    • ☄️Envi-MethVan
      • Common Issues
      • Inventory Setup
      • Cooking Process
      • Editable Functionality
      • Adding a Vehicle
      • Config File
    • 🍃Envi-Megablower9000 (Standalone)
      • Inventory Setup
      • Config File
    • 👯Envi-Population (Standalone)
      • ❗Initial Setup
      • Common Issues
      • Config File
    • 🗒️Envi-Prescriptions
      • Common Issues
      • Inventory Setup
      • Editable Functionality
      • Config File
    • 🔧Envi-Sabotage
      • ❗First Time Setup
      • Common Issues
      • Inventory Setup
      • Exports
    • 🛒Envi-Shops
      • Common Issues
      • Inventory Setup
      • Exports
      • Editable Functionality
      • Config File
    • 📱Envi-Trap-Phone
      • Common Issues
      • Inventory Setup
      • Commands
      • Exports
      • Adding Custom Drugs
      • Using the Phone
      • Disabling Extra Services
      • Config Files
        • config.lua
        • dialogueSettings.lua
        • extraServices.lua
        • gangZoneSettings.lua
        • personalitySettings.lua
        • specialContactSettings.lua
    • 👰Envi-Weddings
      • Inventory Setup
      • Starting Info
      • Manually Removing Data
      • Commands
      • Config File
    • 🎅Envi Xmas-Weapons (Standalone)
      • Inventory Setup
      • Config File
    • 🗡️Envi-Zombie-Weapons (Standalone)
      • Inventory Setup
    • 🧟‍♂️Envi-Zombies
Powered by GitBook
On this page
  1. Premium Scripts
  2. Envi-Addictions

Config File

Config = {}
Config.Target = false  -- if false, we will use Press E Point Interactions

Config.TestCommands = true -- if true, this will enable various debug commands - DO NOT LEAVE THIS ON IN YOUR LIVE SERVER!

Config.SelfTestMode = true

Config.DebugPrints = true -- if true, it will print debug messages F8 and Server Console

Config.AddictionsUICommand = 'addictions' -- the command to open the players personal addiction monitor

Config.Addictions = {
        -- Envi-Prescriptions V3 Items --
    ['lean'] = {   -- Need A Lean Script + Many More Prescription Items?   Check Out Envi-Prescriptions V3 - https://envi-scripts.tebex.io/package/5604452
        name = 'Lean',
        icon = 'fas fa-prescription-bottle',
        displayName = 'Codeine',
        treatmentCost = 8500,
        treatmentDuration = 16, -- minutes
        colors = {
            icon = {from = '#9b59b6', to = '#6c5ce7'},
            progress = {from = '#9b59b6', to = '#6c5ce7'}
        },
        items = {
            ['lean'] = 1, -- item / amount added to addiction
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 1.3,
                physiologicalEffects = {'Drowsiness', 'Euphoria', 'Slowed reflexes'},
                cravings = {
                    every = 35, -- minutes
                    notify = {
                        message = 'You feel like sipping some lean',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 75, -- if 75% or over on the craving meter, you are considered "not satisfied"
                        message = 'You could really use some lean right now!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 10, -- minutes
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Casual Sipper'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.6, -- Higher progression due to codeine
                physiologicalEffects = {'Constipation', 'Mood swings', 'Sleep issues'},
                cravings = {
                    every = 14, -- minutes
                    notify = {
                        message = 'You fancy some lean?',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = "amb@world_human_stand_impatient@male@no_sign@base",
                        anim = "base",
                        flags = 48,
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 70, -- if 70% or over on the craving meter, you are considered "not satisfied"
                        message = 'You need some lean!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 5, -- minutes
                        damage = 3, -- health damage
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Regular Abuser'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 2.2, -- Higher multiplier = faster craving increase
                physiologicalEffects = {'Respiratory depression', 'Addiction symptoms', 'Tolerance building'},
                cravings = {
                    every = 11, -- minutes
                    notify = {
                        message = 'You need some lean!',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                        anim = 'idle_a',
                        flags = 48,
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 65, -- if 65% or over on the craving meter, you are considered "not satisfied"
                        every = 4, -- minutes
                        message = 'You need lean right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_a',
                            flags = 48,
                        },   -- animation plus notification
                        damage = 4, -- health damage
                        stress = 6, -- added stress
                    }
                }
            },
            ['Lean Addict'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 3.0, -- Much higher multiplier for severe addiction
                physiologicalEffects = {'Severe respiratory issues', 'Codeine dependency', 'Organ damage'},
                cravings = {
                    every = 9, -- minutes
                    notify = {
                        message = 'You need lean to function!',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 5,   -- Pallor/sickly appearance
                            severity = 0.6,
                        },
                        aging = {
                            type = 4,   -- Sunken eyes
                            severity = 0.5,
                        },
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 50, -- if 50% or over on the craving meter, you are considered "not satisfied"
                        message = 'You need lean right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 3, -- minutes
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_a',
                            flags = 48,
                        },   -- animation plus notification
                        damage = 5, -- health damage
                        stress = 8, -- added stress
                    }
                }
            },
            ['Drank Fiend'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 4.2, -- Very high multiplier for most severe addiction
                physiologicalEffects = {'Respiratory failure risk', 'Severe codeine withdrawal', 'Life-threatening complications'},
                cravings = {
                    every = 6, -- minutes
                    notify = {
                        message = 'You need lean to survive!',
                        title = 'Desperate Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 5,   -- Severe pallor/sickly appearance
                            severity = 0.9,
                        },
                        aging = {
                            type = 4,   -- Severe sunken eyes
                            severity = 0.8,
                        },
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 35, -- if 35% or over on the craving meter, you are considered "not satisfied"
                        message = 'You could DIE without lean right now!!',
                        title = 'Life-Threatening Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 2, -- minutes
                        damage = 7, -- health damage
                        stress = 12, -- added stress
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_a',
                            flags = 48,
                        },   -- animation plus notification
                        code = function()
                            -- Execute custom client code here
                            print('You could DIE without lean right now!!')
                        end  -- also custom client code
                    }
                }
            },
        }
    },

    ['adrenaline'] = {
        -- Need A Adrenaline Script + Many More Prescription Items?   Check Out Envi-Prescriptions V3 - https://envi-scripts.tebex.io/package/5604452
        name = 'Adrenaline',
        icon = 'fas fa-heartbeat',
        displayName = 'Adrenaline Rush',
        treatmentCost = 6000,
        treatmentDuration = 14, -- minutes
        colors = {
            icon = {from = '#ff0000', to = '#ff6b6b'},
            progress = {from = '#ff0000', to = '#ff6b6b'}
        },
        items = {
            ['adrenaline'] = 1,
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 0.8,
                physiologicalEffects = {'Mild excitement', 'Occasional rush seeking'},
                cravings = {
                    every = 30,
                    notify = {
                        message = 'You feel like seeking some excitement',
                        title = 'Mild Craving',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 80,
                        message = 'You feel a bit restless',
                        title = 'Craving',
                        duration = 15000,
                        type = 'info',
                        every = 10,
                        stress = 2,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Thrill Seeker'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.0,
                physiologicalEffects = {'Increased heart rate', 'Heightened alertness', 'Energy boost'},
                cravings = {
                    every = 25,
                    notify = {
                        message = 'You crave excitement and thrills',
                        title = 'Adrenaline Craving',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {
                        dict = "amb@world_human_stand_impatient@male@no_sign@base",
                        anim = "base",
                        flags = 48,
                        every = 45,
                    },
                    whenNotSatisfied = {
                        threshold = 75,
                        message = 'You feel sluggish without adrenaline',
                        title = 'Craving',
                        duration = 15000,
                        type = 'warning',
                        every = 8,
                        stress = 3,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Adrenaline Junkie'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 1.5,
                physiologicalEffects = {'Anxiety when calm', 'Risk-taking behavior', 'Sleep issues'},
                cravings = {
                    every = 18,
                    notify = {
                        message = 'You need an adrenaline rush',
                        title = 'Adrenaline Craving',
                        duration = 10000,
                        type = 'warning',
                    },
                    anim = {
                        dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                        anim = 'idle_a',
                        flags = 48,
                        every = 30,
                    },
                    whenNotSatisfied = {
                        threshold = 65,
                        message = 'Your body craves dangerous excitement',
                        title = 'Strong Craving',
                        duration = 15000,
                        type = 'error',
                        every = 6,
                        stress = 5,
                        damage = 1,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Extreme Addict'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 2.2,
                physiologicalEffects = {'Reckless behavior', 'Paranoia', 'Heart palpitations'},
                cravings = {
                    every = 12,
                    notify = {
                        message = 'You desperately need danger and excitement',
                        title = 'Intense Craving',
                        duration = 12000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                        anim = 'idle_c',
                        flags = 48,
                        every = 20,
                    },
                    whenNotSatisfied = {
                        threshold = 50,
                        message = 'You might do something stupid for a rush',
                        title = 'Dangerous Craving',
                        duration = 15000,
                        type = 'error',
                        every = 4,
                        stress = 8,
                        damage = 3,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Rush Fiend'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 3.0,
                physiologicalEffects = {'Heart problems', 'Suicidal behavior', 'Complete recklessness'},
                cravings = {
                    every = 8,
                    notify = {
                        message = 'You need to risk your life for a rush',
                        title = 'Life-Threatening Craving',
                        duration = 15000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'anim@mp_yacht@shower@male@',
                        anim = 'male_shower_idle_c',
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 40,
                        message = 'You would rather die than live without thrills',
                        title = 'Suicidal Craving',
                        duration = 20000,
                        type = 'error',
                        every = 2,
                        stress = 12,
                        damage = 6,
                        anim = {
                            dict = 'anim@mp_yacht@shower@male@',
                            anim = 'male_shower_idle_c',
                            flags = 48,
                        },
                        code = function()
                            print('Adrenaline addiction is making you suicidal!')
                        end
                    }
                }
            },
        }
    },

    ['steroids'] = {
        -- Need A Steroids Script + Many More Prescription Items?   Check Out Envi-Prescriptions V3 - https://envi-scripts.tebex.io/package/5604452
        name = 'Steroids',
        icon = 'fas fa-dumbbell',
        displayName = 'Anabolic Steroids',
        treatmentCost = 9000,
        treatmentDuration = 18, -- minutes
        colors = {
            icon = {from = '#ff4757', to = '#ff3838'},
            progress = {from = '#ff4757', to = '#ff3838'}
        },
        items = {
            ['steroids'] = 3,
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 0.7,
                physiologicalEffects = {'Slight muscle gain', 'Confidence boost'},
                cravings = {
                    every = 30,
                    notify = {
                        message = 'You wonder about using steroids again',
                        title = 'Mild Interest',
                        duration = 10000,
                        type = 'info',
                    },
                    whenNotSatisfied = {
                        threshold = 85,
                        message = 'You think about getting stronger',
                        title = 'Craving',
                        duration = 15000,
                        type = 'info',
                        every = 12,
                        stress = 1
                    }
                }
            },
            ['Gym Enthusiast'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 0.9,
                physiologicalEffects = {'Increased muscle mass', 'Mild aggression', 'Acne'},

                cravings = {
                    every = 22,
                    notify = {
                        message = 'You want to get swole with steroids',
                        title = 'Performance Craving',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 80,
                        message = 'You feel weak without steroids',
                        title = 'Craving',
                        duration = 15000,
                        type = 'warning',
                        every = 7,
                        stress = 2,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Steroid User'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 1.4,
                physiologicalEffects = {'Roid rage', 'Liver stress', 'Hormonal imbalance'},
                cravings = {
                    every = 16,
                    notify = {
                        message = 'You need steroids to maintain your gains',
                        title = 'Steroid Craving',
                        duration = 10000,
                        type = 'warning',
                    },
                    anim = {}, -- no animation triggered, just notification
                    visualEffects = {
                        blemishes = {
                            type = 9,   -- Acne/skin issues
                            severity = 0.4,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 70,
                        message = 'Your muscles are shrinking without steroids',
                        title = 'Strong Craving',
                        duration = 15000,
                        type = 'error',
                        every = 5,
                        stress = 4,
                        damage = 2,
                        anim = {
                            dict = 'amb@world_human_muscle_flex@arms_at_side@idle_a',
                            anim = 'idle_a',
                            flags = 48,
                        },
                    }
                }
            },
            ['Roid Rager'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 2.0,
                physiologicalEffects = {'Extreme aggression', 'Heart problems', 'Severe acne'},
                cravings = {
                    every = 12,
                    notify = {
                        message = 'You need steroids to feel powerful',
                        title = 'Intense Craving',
                        duration = 12000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'amb@world_human_muscle_flex@arms_at_side@idle_a',
                        anim = 'idle_b',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 9,   -- Severe acne
                            severity = 0.7,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 55,
                        message = 'You feel rage building without steroids',
                        title = 'Roid Rage',
                        duration = 15000,
                        type = 'error',
                        every = 3,
                        stress = 7,
                        damage = 4,
                        anim = {
                            dict = 'amb@world_human_muscle_flex@arms_at_side@idle_a',
                            anim = 'idle_a',
                            flags = 48,
                        },
                    }
                }
            },
            ['Steroid Freak'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 3.2,
                physiologicalEffects = {'Organ damage', 'Psychosis', 'Violent tendencies'},
                cravings = {
                    every = 8,
                    notify = {
                        message = 'You need steroids to avoid violent rage',
                        title = 'Critical Craving',
                        duration = 15000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'amb@world_human_muscle_flex@arms_at_side@idle_a',
                        anim = 'idle_b',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 9,   -- Extreme acne/skin damage
                            severity = 1.0,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 35,
                        message = 'You want to hurt people without steroids',
                        title = 'Violent Rage',
                        duration = 20000,
                        type = 'error',
                        every = 2,
                        stress = 15,
                        damage = 8,
                        anim = {
                            dict = 'amb@world_human_muscle_flex@arms_at_side@idle_a',
                            anim = 'idle_c',
                            flags = 48,
                        },
                        code = function()
                            print('Steroid rage is making you dangerous!')
                        end
                    }
                }
            },
        }
    },

    ['oxy'] = {
        -- Need A OxyContin Script + Many More Prescription Items?   Check Out Envi-Prescriptions V3 - https://envi-scripts.tebex.io/package/5604452
        name = 'OxyContin',
        icon = 'fas fa-pills',
        displayName = 'OxyContin (Oxycodone)',
        treatmentCost = 12000,
        treatmentDuration = 22, -- minutes
        colors = {
            icon = {from = '#00a8ff', to = '#0078d4'},
            progress = {from = '#00a8ff', to = '#0078d4'}
        },
        items = {
            ['oxy'] = 1,
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 1.2,
                physiologicalEffects = {'Pain relief', 'Mild euphoria', 'Light drowsiness'},
                cravings = {
                    every = 25,
                    notify = {
                        message = 'You remember how good oxy felt',
                        title = 'Mild Craving',
                        duration = 10000,
                        type = 'info',
                    },
                    whenNotSatisfied = {
                        threshold = 80,
                        message = 'You feel slight discomfort',
                        title = 'Craving',
                        duration = 15000,
                        type = 'info',
                        every = 8,
                        damage = 1
                    }
                }
            },
            ['First Prescription'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.5,
                physiologicalEffects = {'Pain relief', 'Drowsiness', 'Constipation'},
                cravings = {
                    every = 16,
                    notify = {
                        message = 'You need your pain medication',
                        title = 'Medication Craving',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {
                        dict = "amb@world_human_stand_impatient@male@no_sign@base",
                        anim = "base",
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 70,
                        message = 'The pain is coming back without oxy',
                        title = 'Withdrawal Pain',
                        duration = 15000,
                        type = 'warning',
                        every = 6,
                        damage = 2,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Dependent Patient'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 2.2,
                physiologicalEffects = {'Physical dependence', 'Tolerance building', 'Mood swings'},
                cravings = {
                    every = 12,
                    notify = {
                        message = 'You desperately need more oxy',
                        title = 'Opioid Craving',
                        duration = 10000,
                        type = 'warning',
                    },
                    anim = {
                        dict = 'mp_player_inteat@pnq',
                        anim = 'loop',
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 65,
                        message = 'Withdrawal symptoms are starting',
                        title = 'Opioid Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 4,
                        damage = 4,
                        stress = 6,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Pill Popper'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 3.5,
                physiologicalEffects = {'Severe addiction', 'Respiratory depression', 'Overdose risk'},
                cravings = {
                    every = 8,
                    notify = {
                        message = 'You need oxy to function normally',
                        title = 'Severe Craving',
                        duration = 12000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 5,   -- Pallor/sickly appearance
                            severity = 0.5,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 50,
                        message = 'Severe withdrawal is setting in',
                        title = 'Severe Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 2,
                        damage = 6,
                        stress = 9,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Oxy Addict'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 5.0,
                physiologicalEffects = {'Life-threatening addiction', 'Organ failure risk', 'Mental deterioration'},
                cravings = {
                    every = 5,
                    notify = {
                        message = 'You will die without oxy',
                        title = 'Life-Threatening Withdrawal',
                        duration = 15000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 5,   -- Severe sickly appearance
                            severity = 0.9,
                        },
                        aging = {
                            type = 4,   -- Sunken features
                            severity = 0.7,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 30,
                        message = 'You could die from oxy withdrawal',
                        title = 'Fatal Withdrawal',
                        duration = 20000,
                        type = 'error',
                        every = 1,
                        damage = 10,
                        stress = 15,
                        anim = {}, -- no animation triggered, just notification
                        code = function()
                            print('OxyContin withdrawal could be fatal!')
                        end
                    }
                }
            },
        }
    },

    ['valium'] = {
        -- Need A Valium Script + Many More Prescription Items?   Check Out Envi-Prescriptions V3 - https://envi-scripts.tebex.io/package/5604452
        name = 'Valium',
        icon = 'fas fa-capsules',
        displayName = 'Valium (Diazepam)',
        treatmentCost = 7500,
        treatmentDuration = 16, -- minutes
        colors = {
            icon = {from = '#00d2d3', to = '#54a0ff'},
            progress = {from = '#00d2d3', to = '#54a0ff'}
        },
        items = {
            ['valium'] = 1,
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 0.9,
                physiologicalEffects = {'Mild relaxation', 'Slight drowsiness'},
                cravings = {
                    every = 35,
                    notify = {
                        message = 'You remember feeling calm with valium',
                        title = 'Mild Craving',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 85,
                        message = 'You feel slightly on edge',
                        title = 'Craving',
                        duration = 15000,
                        type = 'info',
                        every = 10,
                        stress = 2,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Anxiety Relief'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.1,
                physiologicalEffects = {'Reduced anxiety', 'Drowsiness', 'Muscle relaxation'},
                cravings = {
                    every = 20,
                    notify = {
                        message = 'You feel anxious without valium',
                        title = 'Anxiety Return',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {
                        dict = "amb@world_human_stand_impatient@male@no_sign@base",
                        anim = "base",
                        flags = 48,
                        every = 50,
                    },
                    whenNotSatisfied = {
                        threshold = 75,
                        message = 'Panic is setting in without valium',
                        title = 'Anxiety Craving',
                        duration = 15000,
                        type = 'warning',
                        every = 8,
                        stress = 4,
                        damage = 1,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Dependent User'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 1.8,
                physiologicalEffects = {'Memory problems', 'Confusion', 'Tolerance'},
                cravings = {
                    every = 14,
                    notify = {
                        message = 'You need valium to stay calm',
                        title = 'Benzo Craving',
                        duration = 10000,
                        type = 'warning',
                    },
                    anim = {
                        dict = "amb@world_human_stand_impatient@male@no_sign@base",
                        anim = "base",
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 65,
                        message = 'Severe anxiety without valium',
                        title = 'Panic Attack',
                        duration = 15000,
                        type = 'error',
                        every = 5,
                        stress = 7,
                        damage = 2,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Benzo Dependent'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 2.5,
                physiologicalEffects = {'Severe dependence', 'Cognitive impairment', 'Seizure risk'},
                cravings = {
                    every = 10,
                    notify = {
                        message = 'You desperately need valium to avoid seizures',
                        title = 'Dangerous Withdrawal',
                        duration = 12000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 50,
                        message = 'You might have a seizure without valium',
                        title = 'Dangerous Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 3,
                        stress = 10,
                        damage = 5,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Valium Addict'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 4.0,
                physiologicalEffects = {'Life-threatening withdrawal', 'Memory loss', 'Seizure disorder'},
                cravings = {
                    every = 6,
                    notify = {
                        message = 'Valium withdrawal could kill you',
                        title = 'Life-Threatening Craving',
                        duration = 15000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 35,
                        message = 'Grand mal seizure risk without valium',
                        title = 'Seizure Risk',
                        duration = 20000,
                        type = 'error',
                        every = 2,
                        stress = 15,
                        damage = 8,
                        anim = {}, -- no animation triggered, just notification
                        code = function()
                            print('Valium withdrawal seizure risk!')
                        end
                    }
                }
            },
        }
    },

    ['xanax'] = {
        -- Need A Xanax Script + Many More Prescription Items?   Check Out Envi-Prescriptions V3 - https://envi-scripts.tebex.io/package/5604452
        name = 'Xanax',
        icon = 'fas fa-pills',
        displayName = 'Xanax (Alprazolam)',
        treatmentCost = 8500,
        treatmentDuration = 18, -- minutes
        colors = {
            icon = {from = '#5f27cd', to = '#a55eea'},
            progress = {from = '#5f27cd', to = '#a55eea'}
        },
        items = {
            ['xanax'] = 1,
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 1.0,
                physiologicalEffects = {'Mild relaxation', 'Reduced panic'},
                cravings = {
                    every = 30,
                    notify = {
                        message = 'You remember the calm feeling from xanax',
                        title = 'Mild Craving',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 80,
                        message = 'You feel slightly anxious',
                        title = 'Craving',
                        duration = 15000,
                        type = 'info',
                        every = 10,
                        stress = 3,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Panic Relief'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.3,
                physiologicalEffects = {'Panic relief', 'Sedation', 'Memory gaps'},
                cravings = {
                    every = 18,
                    notify = {
                        message = 'You feel panicked without xanax',
                        title = 'Panic Return',
                        duration = 10000,
                        type = 'warning',
                    },
                    anim = {
                        dict = "amb@world_human_stand_impatient@male@no_sign@base",
                        anim = "base",
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 70,
                        message = 'Extreme panic without xanax',
                        title = 'Panic Attack',
                        duration = 15000,
                        type = 'error',
                        every = 6,
                        stress = 5,
                        damage = 2,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Xanax Dependent'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 2.0,
                physiologicalEffects = {'Blackouts', 'Emotional numbness', 'Coordination loss'},
                cravings = {
                    every = 12,
                    notify = {
                        message = 'You need xanax to function',
                        title = 'Benzo Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = "amb@world_human_stand_impatient@male@no_sign@base",
                        anim = "base",
                        flags = 48,
                        every = 28,
                    },
                    whenNotSatisfied = {
                        threshold = 60,
                        message = 'Crippling anxiety without xanax',
                        title = 'Severe Anxiety',
                        duration = 15000,
                        type = 'error',
                        every = 4,
                        stress = 8,
                        damage = 3,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Bar Addict'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 3.2,
                physiologicalEffects = {'Memory loss', 'Dangerous behavior', 'Seizure risk'},
                cravings = {
                    every = 8,
                    notify = {
                        message = 'You desperately need xanax bars',
                        title = 'Desperate Craving',
                        duration = 12000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                        anim = 'idle_a',
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 45,
                        message = 'You might seize without xanax',
                        title = 'Seizure Warning',
                        duration = 15000,
                        type = 'error',
                        every = 2,
                        stress = 12,
                        damage = 6,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Xanax Zombie'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 4.5,
                physiologicalEffects = {'Complete memory loss', 'Personality change', 'Life-threatening withdrawal'},
                cravings = {
                    every = 5,
                    notify = {
                        message = 'Xanax withdrawal could be fatal',
                        title = 'Fatal Withdrawal Risk',
                        duration = 15000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                        anim = 'idle_c',
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 30,
                        message = 'Life-threatening seizures without xanax',
                        title = 'Fatal Seizure Risk',
                        duration = 20000,
                        type = 'error',
                        every = 1,
                        stress = 20,
                        damage = 10,
                        anim = {}, -- no animation triggered, just notification
                        code = function()
                            print('Xanax withdrawal could cause fatal seizures!')
                        end
                    }
                }
            },
        }
    },
    -- End of Envi-Prescriptions V3 Items

    ['cigarettes'] = {
        name = 'Cigarettes',
        icon = 'fas fa-smoking',
        displayName = 'Cigarettes',
        treatmentCost = 2500,
        treatmentDuration = 8, -- minutes
        colors = {
            icon = {from = '#ff9a56', to = '#ff6b35'},
            progress = {from = '#ff9a56', to = '#ff6b35'}
        },
        items = {
            ['cigarette'] = 1,
            ['redwoods'] = 1,
            ['cigar'] = 1,
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 0.8, -- Lower multiplier = slower craving increase
                physiologicalEffects = {'Mild throat irritation', 'Occasional coughing'},
                cravings = {
                    every = 20, -- minutes
                    notify = {
                        message = 'You feel like you need a cigarette',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 80, -- if 80% or over on the craving meter, you are considered "not satisfied"
                        message = 'You could really use a cigarette!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 5, -- minutes
                        damage = 1, -- health damage
                    }
                }
            },
            ['Casual Smoker'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.0, -- Base multiplier
                physiologicalEffects = {'Regular coughing', 'Reduced lung capacity'},
                cravings = {
                    every = 13, -- minutes
                    notify = {
                        message = 'You fancy a cigarette?',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 80, -- if 80% or over on the craving meter, you are considered "not satisfied"
                        message = 'You need a cigarette!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 4, -- minutes
                        damage = 2, -- health damage
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Smoker'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 1.5, -- Higher multiplier = faster craving increase
                physiologicalEffects = {'Persistent cough', 'Shortness of breath', 'Stained teeth'},
                cravings = {
                    every = 10, -- minutes
                    notify = {
                        message = 'You need a cigarette!',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 60, -- if 60% or over on the craving meter, you are considered "not satisfied"
                        message = 'You need a cigarette right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 3, -- minutes
                        damage = 3, -- health damage
                        stress = 5, -- added stress
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Avid Smoker'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 2.0, -- Much higher multiplier for severe addiction
                physiologicalEffects = {'Chronic bronchitis risk', 'Severe breathing issues'},
                cravings = {
                    every = 8, -- minutes
                    notify = {
                        message = 'You need a cigarette!',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 1,   -- Yellowing/staining
                            severity = 0.7,
                        },
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 40, -- if 40% or over on the craving meter, you are considered "not satisfied"
                        message = 'You need a cigarette right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 2, -- minutes
                        damage = 4, -- health damage
                        stress = 7, -- added stress
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Addicted'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 3.0, -- Highest multiplier for most severe addiction
                physiologicalEffects = {'High cancer risk', 'Cardiovascular damage', 'Severe withdrawal symptoms'},

                cravings = {
                    every = 15, -- minutes
                    notify = {
                        message = 'You need a cigarette to feed your addiction!',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 3,   -- Heavy yellowing/staining
                            severity = 0.8,
                        },
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 30, -- if 40% or over on the craving meter, you are considered "not satisfied"
                        message = 'You could KILL for a cigarette right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 1, -- minutes
                        damage = 5, -- health damage
                        stress = 10, -- added stress
                        anim = {}, -- no animation triggered, just notification
                        code = function()
                            -- Execute custom client code here
                            print('You could KILL for a cigarette right now!!')
                        end
                    }
                }
            },
        }
    },

    ['alcohol'] = {
        name = 'Alcohol',
        icon = 'fas fa-wine-bottle',
        displayName = 'Alcohol',
        treatmentCost = 4000,
        treatmentDuration = 12, -- minutes
        colors = {
            icon = {from = '#f093fb', to = '#f5576c'},
            progress = {from = '#f093fb', to = '#f5576c'}
        },
        items = {
            ['beer'] = 1,
            ['vodka'] = 10,
            ['whiskey'] = 2,
            ['tequila'] = 2,
            ['rum'] = 2,
            ['wine'] = 1,
            ['champagne'] = 1
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 0.8, -- Lower multiplier = slower craving increase
                physiologicalEffects = {'Mild dehydration', 'Occasional dizziness'},
                cravings = {
                    every = 20, -- minutes
                    notify = {
                        message = 'You feel like you need a drink of alcohol',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 80, -- if 80% or over on the craving meter, you are considered "not satisfied"
                        message = 'You could really use a drink of alcohol!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 5, -- minutes
                        damage = 1, -- health damage
                    }
                }
            },
            ['Casual Drinker'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.0, -- Base multiplier
                physiologicalEffects = {'Tolerance building', 'Sleep disruption'},

                cravings = {
                    every = 13, -- minutes
                    notify = {
                        message = 'You fancy a drink of alcohol?',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 80, -- if 80% or over on the craving meter, you are considered "not satisfied"
                        message = 'You need a drink of alcohol!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 4, -- minutes
                        damage = 2, -- health damage
                    }
                }
            },
            ['Drinker'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 1.5, -- Higher multiplier = faster craving increase
                physiologicalEffects = {'Liver stress', 'Memory issues', 'Mood swings'},

                cravings = {
                    every = 10, -- minutes
                    notify = {
                        message = 'You need a drink of alcohol!',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 75, -- if 75% or over on the craving meter, you are considered "not satisfied"
                        message = 'You need a drink of alcohol right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 3, -- minutes
                        damage = 3, -- health damage
                        stress = 5, -- added stress
                    }
                }
            },
            ['Alcoholic'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 2.5, -- Much higher multiplier for severe addiction
                physiologicalEffects = {'Liver damage risk', 'Cognitive impairment'},

                cravings = {
                    every = 8, -- minutes
                    notify = {
                        message = 'You need a drink of alcohol!',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    visualEffects = {
                        blemishes = {
                            type = 7,   -- Redness/rosacea
                            severity = 0.4,
                        },
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 50, -- if 50% or over on the craving meter, you are considered "not satisfied" 
                        message = 'You need a drink of alcohol right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 2, -- minutes
                        damage = 4, -- health damage
                        stress = 7, -- added stress
                    }
                }
            },
            ['Chronic Alcoholic'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 3.5, -- Highest multiplier for most severe addiction (alcohol is very addictive)
                physiologicalEffects = {'Severe organ damage', 'Dangerous withdrawal', 'Life-threatening complications'},

                cravings = {
                    every = 15, -- minutes
                    notify = {
                        message = 'You need a drink of alcohol to feed your addiction!',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'timetable@gardener@smoking_joint',
                        anim = 'idle_cough',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 7,   -- Severe facial redness
                            severity = 1.0,
                        },
                        aging = {
                            type = 11,   -- Severe bloating/liver damage appearance
                            severity = 0.5,
                        },
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 40, -- if 40% or over on the craving meter, you are considered "not satisfied"
                        message = 'You could KILL for a drink of alcohol right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 5, -- minutes
                        damage = 5, -- health damage
                        stress = 10, -- added stress
                        anim = {}, -- no animation triggered, just notification
                        code = function()
                            -- Execute custom client code here
                            print('You could KILL for a drink of alcohol right now!!')
                        end
                    }
                }
            },
        }
    },

    ['meth'] = {
        name = 'Methamphetamine',
        icon = 'fas fa-flask',
        displayName = 'Methamphetamine',
        treatmentCost = 15000,
        treatmentDuration = 25, -- minutes
        colors = {
            icon = {from = '#4facfe', to = '#00f2fe'},
            progress = {from = '#4facfe', to = '#00f2fe'}
        },
        items = {
            ['meth'] = 2, -- item / amount added to addiction
            ['meth_baggy'] = 1,
            ['meth_bag'] = 1,
            ['meth_pooch'] = 1,
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 1.0, -- Base multiplier (meth is immediately more addictive)
                physiologicalEffects = {'Increased alertness', 'Appetite suppression'},
                cravings = {
                    every = 30, -- minutes
                    notify = {
                        message = 'You feel like you need some meth',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 80, -- if 80% or over on the craving meter, you are considered "not satisfied"
                        message = 'You could really use some meth!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 5, -- minutes
                        damage = 1, -- health damage
                    }
                }
            },
            ['Casual Junkie'] = {
                threshold = 15,
                riskLevel = 'medium',
                cravingMultiplier = 1.8, -- Higher than normal due to meth's addictive nature
                physiologicalEffects = {'Sleep disruption', 'Anxiety spikes'},
                cravings = {
                    every = 13, -- minutes
                    notify = {
                        message = 'You fancy some meth?',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 75, -- if 75% or over on the craving meter, you are considered "not satisfied"
                        message = 'You need some meth!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 4, -- minutes
                        damage = 2, -- health damage
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Junkie'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 2.5, -- Much higher multiplier
                physiologicalEffects = {'Paranoia', 'Dental problems', 'Weight loss'},
                cravings = {
                    every = 10, -- minutes
                    notify = {
                        message = 'You need some meth!',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'switch@trevor@trev_smoking_meth',
                        anim = 'trev_smoking_meth_loop',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 15,  -- index of the blemish type
                            severity = 0.3, -- between 0.1 and 1.0 (opacity)
                        },
                        aging = {
                            type = 13,   -- Addict Face
                            severity = 0.6,
                        },
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 60, -- if 60% or over on the craving meter, you are considered "not satisfied"
                        message = 'You need some meth right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 3, -- minutes
                        damage = 3, -- health damage
                        stress = 5, -- added stress
                        anim = {
                            dict = "amb@world_human_bum_standing@twitchy@idle_a",
                            anim = "idle_a",
                            flags = 48,
                        },
                    }
                }
            },
            ['Meth Addict'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 4.0, -- Very high multiplier for severe meth addiction
                physiologicalEffects = {'Severe psychological issues', 'Physical deterioration'},
                cravings = {
                    every = 8, -- minutes
                    notify = {
                        message = 'You need meth!',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                        anim = {}, -- no animation triggered, just notification
                    },
                    visualEffects = {
                        blemishes = {
                            type = 15,  -- Severe acne/sores
                            severity = 0.6,
                        },
                        aging = {
                            type = 13,   -- Addict Face
                            severity = 0.8,
                        },
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 50, -- if 50% or over on the craving meter, you are considered "not satisfied"
                        message = 'You need meth right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 2, -- minutes
                        damage = 4, -- health damage
                        stress = 7, -- added stress
                        anim = {
                            dict = "amb@world_human_bum_standing@twitchy@idle_a",
                            anim = "idle_a",
                            flags = 48,
                        },
                    }
                }
            },
            ['Tweaker'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 6.0, -- Extreme multiplier for tweaker level addiction
                physiologicalEffects = {'Psychosis risk', 'Extreme paranoia', 'Life-threatening behavior'},
                cravings = {
                    every = 1, -- minutes
                    notify = {
                        message = 'You are thinking about meth...',
                        title = 'Intrusive Thoughts',
                        duration = 10000,
                        type = 'error',
                        anim = {
                            dict = "amb@world_human_bum_standing@twitchy@idle_a",
                            anim = "idle_a",
                            flags = 48,
                        },
                    },
                    visualEffects = {
                        blemishes = {
                            type = 15,  -- Severe acne/sores
                            severity = 1.0, -- Maximum severity
                        },
                        aging = {
                            type = 13,   -- Addict Face
                            severity = 1.0,
                        },
                    },
                    whenNotSatisfied = { -- after ignoring the first craving notification
                        threshold = 40, -- if 50% or over on the craving meter, you are considered "not satisfied"
                        message = 'You could KILL for meth right now!!',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 1, -- minutes
                        damage = 50, -- health damage
                        stress = 10, -- added stress
                        code = function()
                            -- Execute custom client code here
                            print('You could KILL for meth right now!!')
                        end,
                        anim = {
                            dict = "anim@mp_yacht@shower@male@",
                            anim = "male_shower_idle_c",
                            flags = 48,
                        },
                    }
                }
            },
        }
    },

    ['cocaine'] = {
        name = 'Cocaine',
        icon = 'fas fa-wind',
        displayName = 'Cocaine',
        treatmentCost = 12000,
        treatmentDuration = 20, -- minutes
        colors = {
            icon = {from = '#ff3366', to = '#ff6b9d'},
            progress = {from = '#ff3366', to = '#ff6b9d'}
        },
        items = {
            ['cocaine'] = 1,
            ['cocaine_baggy'] = 1,
            ['cocaine_bag'] = 1,
            ['cocaine_pooch'] = 1,
            ['coke'] = 1,
            ['coke_baggy'] = 1,
            ['coke_bag'] = 1,
            ['coke_pooch'] = 1,
            ['crack'] = 3,
            ['crack_baggy'] = 3,
            ['crack_bag'] = 3,
            ['crack_pooch'] = 3,

        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 1.2, -- Higher than normal starting multiplier (cocaine is very addictive)
                physiologicalEffects = {'Euphoria', 'Increased energy'},
                cravings = {
                    every = 15,
                    notify = {
                        message = 'You could use a hit...',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    whenNotSatisfied = {
                        threshold = 70,
                        message = 'The craving is getting stronger',
                        title = 'Craving',
                        duration = 15000,
                        type = 'error',
                        every = 5,
                        damage = 2,
                        stress = 3
                    }
                }
            },
            ['Regular User'] = {
                threshold = 15,
                riskLevel = 'medium',
                cravingMultiplier = 2.0, -- Higher multiplier = faster craving increase
                physiologicalEffects = {'Anxiety', 'Sleep problems'},
                cravings = {
                    every = 10,
                    notify = {
                        message = 'You need a fix soon...',
                        title = 'Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'switch@trevor@trev_smoking_meth',
                        anim = 'trev_smoking_meth_loop',
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 60,
                        message = 'Your body is craving cocaine',
                        title = 'Intense Craving',
                        duration = 15000,
                        type = 'error',
                        every = 4,
                        damage = 3,
                        stress = 5,
                        anim = {
                            dict = "amb@world_human_bum_standing@twitchy@idle_a",
                            anim = "idle_a",
                            flags = 48,
                        },
                    }
                }
            },
            ['Heavy User'] = {
                threshold = 25,
                riskLevel = 'high',
                cravingMultiplier = 3.0, -- Much higher multiplier for heavy use
                physiologicalEffects = {'Heart issues', 'Paranoia'},
                cravings = {
                    every = 8,
                    notify = {
                        message = 'You desperately need cocaine',
                        title = 'Strong Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = 'switch@trevor@trev_smoking_meth',
                        anim = 'trev_smoking_meth_loop',
                        flags = 48,
                    },
                    visualEffects = {
                        blemishes = {
                            type = 8,   -- Nose damage/irritation
                            severity = 0.4,
                        },
                        aging = {
                            type = 2,   -- Stress lines
                            severity = 0.3,
                        }
                    },
                    whenNotSatisfied = {
                        threshold = 50,
                        message = 'Your entire body is screaming for cocaine',
                        title = 'Severe Craving',
                        duration = 15000,
                        type = 'error',
                        every = 3,
                        damage = 4,
                        stress = 7,
                        anim = {
                            dict = "amb@world_human_bum_standing@twitchy@idle_a",
                            anim = "idle_a",
                            flags = 48,
                        },
                    }
                }
            },
            ['Cocaine Addict'] = {
                threshold = 35,
                riskLevel = 'critical',
                cravingMultiplier = 4.5, -- Very high multiplier for severe addiction
                physiologicalEffects = {'Severe cardiovascular problems', 'Mental instability'},
                
                cravings = {
                    every = 5,
                    notify = {
                        message = 'You need cocaine NOW',
                        title = 'Critical Craving',
                        duration = 10000,
                        type = 'error',
                        anim = {
                            dict = 'switch@trevor@trev_smoking_meth',
                            anim = 'trev_smoking_meth_loop',
                            flags = 48,
                        },
                    },
                    visualEffects = {
                        blemishes = {
                            type = 8,   -- Severe nose damage
                            severity = 0.7,
                        },
                        aging = {
                            type = 2,   -- Heavy stress lines
                            severity = 0.6,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 40,
                        message = 'Withdrawal is setting in hard',
                        title = 'Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 2,
                        damage = 5,
                        stress = 8,
                        anim = {
                            dict = "amb@world_human_bum_standing@twitchy@idle_a",
                            anim = "idle_a",
                            flags = 48, 
                        },
                    }
                }
            },
            ['Crack Fiend'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 6.5, -- Extreme multiplier for crack addiction (highest)
                physiologicalEffects = {'Heart attack risk', 'Psychosis', 'Organ failure'},
                cravings = {
                    every = 15,
                    notify = {
                        message = 'Your life depends on cocaine',
                        title = 'Severe Withdrawal',
                        duration = 10000,
                        type = 'error',
                        anim = {
                            dict = 'switch@trevor@trev_smoking_meth',
                            anim = 'trev_smoking_meth_loop',
                            flags = 48, 
                        },
                    },
                    visualEffects = {
                        blemishes = {
                            type = 8,   -- Destroyed nasal area
                            severity = 1.0,
                        },
                        aging = {
                            type = 2,   -- Extreme premature aging
                            severity = 0.9,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 30,
                        message = 'You feel like you might die without cocaine',
                        title = 'Life-Threatening Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 1,
                        damage = 6,
                        stress = 10,
                        code = function()
                            print('Cocaine withdrawal is killing you!')
                        end,
                        anim = {
                            dict = "amb@world_human_bum_standing@twitchy@idle_a",
                            anim = "idle_a",
                            flags = 48,
                        },
                    }
                }
            }
        }
    },

    ['weed'] = {
        name = 'Cannabis',
        icon = 'fas fa-cannabis',
        displayName = 'Marijuana',
        treatmentCost = 1500,
        treatmentDuration = 6, -- minutes
        colors = {
            icon = {from = '#32dd32', to = '#00b894'},
            progress = {from = '#32dd32', to = '#00b894'}
        },
        items = {
            ['joint'] = 1,
            ['weed_joint'] = 1,
            ['weed'] = 1,
            ['weed_baggy'] = 1,
            ['weed_bag'] = 1,
            ['weed_pooch'] = 1,
            ['hash'] = 1,
            ['hash_baggy'] = 1,
            ['hash_bag'] = 1,
            ['hash_pooch'] = 1,
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 0.5, -- Lower multiplier (weed is less physically addictive)
                physiologicalEffects = {'Mild euphoria', 'Increased appetite', 'Clumsiness'},
                cravings = {
                    every = 30,
                    notify = {
                        message = 'You could go for a smoke',
                        title = 'Mild Craving',
                        duration = 10000,
                        type = 'info',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 90,
                        message = 'A joint would be nice right now',
                        title = 'Craving',
                        duration = 15000,
                        type = 'info',
                        every = 10,
                        stress = 2,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Regular User'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 0.8, -- Still relatively low
                physiologicalEffects = {'Memory issues', 'Reduced motivation'},
                
                cravings = {
                    every = 25,
                    notify = {
                        message = 'Time for a 420 smoke break?',
                        title = 'Craving',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 80,
                        message = 'You really want to smoke a joint right now',
                        title = 'Strong Craving',
                        duration = 15000,
                        type = 'info',
                        every = 8,
                        stress = 3,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Heavy User'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 1.2, -- Moderate multiplier
                physiologicalEffects = {'Dependency', 'Cognitive issues'},
                
                cravings = {
                    every = 20,
                    notify = {
                        message = 'You need to smoke a joint soon',
                        title = 'Strong Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 70,
                        message = 'Your mind keeps drifting to smoking',
                        title = 'Intense Craving',
                        duration = 15000,
                        type = 'error',
                        every = 6,
                        stress = 4,
                        anim = {
                            dict = "timetable@gardener@smoking_joint",
                            anim = "idle_cough",
                            flags = 48, 
                        }
                    }
                }
            },
            ['Pothead'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 1.8, -- Higher but still reasonable for weed
                physiologicalEffects = {'Psychological addiction', 'Severe lethargy'},
                
                cravings = {
                    every = 15,
                    notify = {
                        message = 'You really need to smoke a joint right now',
                        title = 'Severe Craving',
                        duration = 10000,
                        type = 'error',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 60,
                        message = 'Your anxiety is rising without weed',
                        title = 'Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 4,
                        stress = 6,
                        anim = {
                            dict = "timetable@gardener@smoking_joint",
                            anim = "idle_cough",
                            flags = 48,
                        }
                    }
                }
            },
            ['Chronic Stoner'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 2.5, -- Highest for weed but still lower than hard drugs
                physiologicalEffects = {'Memory loss', 'Anxiety when sober', 'Depression'},
                
                cravings = {
                    every = 15,
                    notify = {
                        message = 'You need to smoke a joint right now',
                        title = 'Severe Craving',
                        duration = 10000,
                        type = 'error',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 40,
                        message = 'You feel like you might die without weed',
                        title = 'Life-Threatening Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 1,
                        damage = 50,
                        stress = 10,
                        code = function()
                            print('You feel like you might die without weed')
                        end,
                        anim = {
                            dict = "timetable@gardener@smoking_joint",
                            anim = "idle_cough",
                            flags = 48,
                        }
                    }
                }
            }
        }
    },

    ['gambling'] = {
        name = 'Gambling',
        icon = 'fas fa-dice',
        displayName = 'Gambling Addiction',
        treatmentCost = 8000,
        treatmentDuration = 18, -- minutes
        colors = {
            icon = {from = '#ffd700', to = '#ff8c00'},
            progress = {from = '#ffd700', to = '#ff8c00'}
        },
        -- No items array - this addiction is triggered only via exports
        levels = {
            ['Occasional Gambler'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 0.9, -- Slightly higher than normal starting point
                physiologicalEffects = {'Mild excitement when gambling', 'Occasional thoughts about winning'},
                cravings = {
                    every = 25, -- minutes
                    notify = {
                        message = 'You feel like placing a small bet',
                        title = 'Gambling Urge',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 85,
                        message = 'Maybe just one quick game...',
                        title = 'Gambling Craving',
                        duration = 12000,
                        type = 'info',
                        every = 8,
                        stress = 2,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Regular Gambler'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.3, -- Higher than most substances at this level
                physiologicalEffects = {'Increased anxiety', 'Difficulty concentrating on other activities'},
                cravings = {
                    every = 18,
                    notify = {
                        message = 'You want to place a bet',
                        title = 'Gambling Urge',
                        duration = 10000,
                        type = 'warning',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 75,
                        message = 'Your hands are getting restless without gambling',
                        title = 'Strong Urge',
                        duration = 12000,
                        type = 'warning',
                        every = 6,
                        stress = 4,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Problem Gambler'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 2.0, -- High multiplier for behavioral addiction
                physiologicalEffects = {'Financial stress', 'Mood swings', 'Lying about gambling'},
                cravings = {
                    every = 12,
                    notify = {
                        message = 'You need to gamble to feel normal',
                        title = 'Gambling Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 65,
                        message = 'Your mind is racing with gambling thoughts',
                        title = 'Intense Craving',
                        duration = 15000,
                        type = 'error',
                        every = 4,
                        stress = 6,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Compulsive Gambler'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 3.2, -- Very high for severe addiction
                physiologicalEffects = {'Severe financial problems', 'Relationship damage', 'Depression'},
                cravings = {
                    every = 8,
                    notify = {
                        message = 'You NEED to gamble right now',
                        title = 'Gambling Desperation',
                        duration = 12000,
                        type = 'error',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 50,
                        message = 'You would do anything to get money to gamble',
                        title = 'Desperate Craving',
                        duration = 15000,
                        type = 'error',
                        every = 3,
                        stress = 8,
                        damage = 2, -- Stress-related health issues?
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_c',
                            flags = 48,
                        },
                    }
                }
            },
            ['Pathological Gambler'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 4.5, -- Extreme multiplier for pathological gambling
                physiologicalEffects = {'Complete financial ruin', 'Suicidal thoughts', 'Complete life destruction'},
                cravings = {
                    every = 5,
                    notify = {
                        message = 'Gambling is the only thing that matters',
                        title = 'Pathological Craving',
                        duration = 15000,
                        type = 'error',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 35,
                        message = 'You would steal, lie, or hurt people to get gambling money',
                        title = 'Dangerous Desperation',
                        duration = 20000,
                        type = 'error',
                        every = 2,
                        stress = 12,
                        damage = 5, -- Severe stress-related health damage
                        code = function()
                            -- Execute custom client code here
                            print('Pathological gambling is destroying your life!')
                        end,
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_c',
                            flags = 48, 
                        },
                    }
                }
            },
        }
    },

    ['crime'] = {
        name = 'Crime',
        icon = 'fas fa-mask',
        displayName = 'Criminal Behavior',
        treatmentCost = 10000,
        treatmentDuration = 22, -- minutes
        colors = {
            icon = {from = '#8b0000', to = '#ff4500'},
            progress = {from = '#8b0000', to = '#ff4500'}
        },
        -- No items array - this addiction is triggered only via exports from crime scripts
        levels = {
            ['First Timer'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 1.1, -- Slightly higher than normal (crime can be immediately addictive)
                physiologicalEffects = {'Adrenaline rush', 'Heightened awareness', 'Mild paranoia'},
                cravings = {
                    every = 30, -- minutes
                    notify = {
                        message = 'You feel like pulling off something small',
                        title = 'Criminal Urge',
                        duration = 10000,
                        type = 'warning',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 80,
                        message = 'Maybe just one quick job...',
                        title = 'Criminal Craving',
                        duration = 12000,
                        type = 'warning',
                        every = 10,
                        stress = 3,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Repeat Offender'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.6, -- Higher progression due to psychological nature
                physiologicalEffects = {'Increased risk tolerance', 'Social disconnection', 'Authority defiance'},
                cravings = {
                    every = 20,
                    notify = {
                        message = 'You want to commit a crime',
                        title = 'Criminal Urge',
                        duration = 10000,
                        type = 'error',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 70,
                        message = 'Your hands are itching for some action',
                        title = 'Strong Urge',
                        duration = 12000,
                        type = 'error',
                        every = 7,
                        stress = 5,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Habitual Criminal'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 2.2, -- High multiplier for behavioral addiction
                physiologicalEffects = {'Chronic paranoia', 'Sleep disturbances', 'Relationship breakdown'},
                cravings = {
                    every = 15,
                    notify = {
                        message = 'You need to commit a crime to feel alive',
                        title = 'Criminal Craving',
                        duration = 10000,
                        type = 'error',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 60,
                        message = 'Crime is the only thing that makes sense anymore',
                        title = 'Intense Craving',
                        duration = 15000,
                        type = 'error',
                        every = 5,
                        stress = 7,
                        damage = 1, -- Stress-related health issues
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Career Criminal'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 3.5, -- Very high for severe criminal addiction
                physiologicalEffects = {'Antisocial personality traits', 'Extreme paranoia', 'Violence tendency'},
                cravings = {
                    every = 10,
                    notify = {
                        message = 'You NEED to commit a crime right now',
                        title = 'Criminal Desperation',
                        duration = 12000,
                        type = 'error',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 45,
                        message = 'Violence is becoming the only solution to everything',
                        title = 'Dangerous Craving',
                        duration = 15000,
                        type = 'error',
                        every = 3,
                        stress = 10,
                        damage = 3, -- Significant stress damage
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_c',
                            flags = 48,
                        },
                    }
                }
            },
            ['Psychopathic Criminal'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 5.0, -- Extreme multiplier for psychopathic criminal behavior
                physiologicalEffects = {'Complete lack of empathy', 'Extreme violence', 'Society destruction'},
                cravings = {
                    every = 8,
                    notify = {
                        message = 'Crime is your only reason for existing',
                        title = 'Psychopathic Craving',
                        duration = 15000,
                        type = 'error',
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_a',
                            flags = 48,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 30,
                        message = 'You would kill anyone who gets in your way',
                        title = 'Homicidal Rage',
                        duration = 20000,
                        type = 'error',
                        every = 2,
                        stress = 15,
                        damage = 8, -- Severe stress and health damage
                        code = function()
                            -- Execute custom client code here
                            print('Psychopathic criminal behavior is destroying everything!')
                        end,
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_c',
                            flags = 48,
                        },
                    }
                }
            },
        }
    },

    -- Wasabi Ambulance Items  -    Download it here: https://wasabiscripts.com/package/5306547
    ['percocet'] = {
        name = 'Percocet',
        icon = 'fas fa-pills',
        displayName = 'Percocet (Acetaminophen)',
        treatmentCost = 11000,
        treatmentDuration = 20, -- minutes
        colors = {
            icon = {from = '#ff6b35', to = '#f7931e'},
            progress = {from = '#ff6b35', to = '#f7931e'}
        },
        items = {   -- wasabi ambulance items
            ['perc30'] = 3,
            ['perc10'] = 2,
            ['perc5'] = 1
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 1.1,
                physiologicalEffects = {'Mild pain relief', 'Light drowsiness', 'Nausea'},
                cravings = {
                    every = 22,
                    notify = {
                        message = 'You remember the relief percocet provided',
                        title = 'Mild Craving',
                        duration = 10000,
                        type = 'info',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 85,
                        message = 'You feel slight discomfort returning',
                        title = 'Craving',
                        duration = 15000,
                        type = 'info',
                        every = 9,
                        damage = 1,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Pain Management'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.4,
                physiologicalEffects = {'Tolerance building', 'Constipation', 'Mood changes'},
                cravings = {
                    every = 14,
                    notify = {
                        message = 'You need your pain medication',
                        title = 'Medication Craving',
                        duration = 10000,
                        type = 'warning',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 75,
                        message = 'Pain is returning without percocet',
                        title = 'Withdrawal Pain',
                        duration = 15000,
                        type = 'warning',
                        every = 6,
                        damage = 2,
                        stress = 3,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Dependent User'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 2.1,
                physiologicalEffects = {'Physical dependence', 'Respiratory depression', 'Liver stress'},
                
                cravings = {
                    every = 10,
                    notify = {
                        message = 'You desperately need percocet',
                        title = 'Opioid Craving',
                        duration = 10000,
                        type = 'error',
                        anim = {}, -- no animation triggered, just notification
                    },
                    whenNotSatisfied = {
                        threshold = 65,
                        message = 'Withdrawal symptoms are starting',
                        title = 'Opioid Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 4,
                        damage = 4,
                        stress = 6,
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_c',
                            flags = 48,
                        },
                    }
                }
            },
            ['Pill Addict'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 3.2,
                physiologicalEffects = {'Severe addiction', 'Overdose risk', 'Organ damage'},
                
                cravings = {
                    every = 7,
                    notify = {
                        message = 'You need percocet to function',
                        title = 'Severe Craving',
                        duration = 12000,
                        type = 'error',
                    },
                    anim = {}, -- no animation triggered, just notification
                    visualEffects = {
                        blemishes = {
                            type = 5,   -- Pallor/sickly appearance
                            severity = 0.4,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 50,
                        message = 'Severe withdrawal is setting in',
                        title = 'Severe Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 2,
                        damage = 6,
                        stress = 8,
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_a',
                            flags = 48, 
                        },
                    }
                }
            },
            ['Percocet Addict'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 4.5,
                physiologicalEffects = {'Life-threatening addiction', 'Respiratory failure risk', 'Complete dependency'},
                cravings = {
                    every = 4,
                    notify = {
                        message = 'You will die without percocet',
                        title = 'Life-Threatening Withdrawal',
                        duration = 15000,
                        type = 'error',
                    },
                    anim = {}, -- no animation triggered, just notification
                    visualEffects = {
                        blemishes = {
                            type = 5,   -- Severe sickly appearance
                            severity = 0.8,
                        },
                        aging = {
                            type = 4,   -- Sunken features
                            severity = 0.6,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 35,
                        message = 'Percocet withdrawal could be fatal',
                        title = 'Fatal Withdrawal',
                        duration = 20000,
                        type = 'error',
                        every = 1,
                        damage = 9,
                        stress = 12,
                        code = function()
                            print('Percocet withdrawal could be fatal!')
                        end,
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_c',
                            flags = 48,
                        },
                    }
                }
            },
        }
    },

    ['morphine'] = {
        name = 'Morphine',
        icon = 'fas fa-syringe',
        displayName = 'Morphine',
        treatmentCost = 14000,
        treatmentDuration = 25, -- minutes
        colors = {
            icon = {from = '#8b5cf6', to = '#6366f1'},
            progress = {from = '#8b5cf6', to = '#6366f1'}
        },
        items = {   -- wasabi ambulance items
            ['morphine30'] = 2,
            ['morphine15'] = 1
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 1.3,
                physiologicalEffects = {'Euphoria', 'Pain relief', 'Drowsiness'},
                cravings = {
                    every = 20,
                    notify = {
                        message = 'You remember the peace morphine brought',
                        title = 'Mild Craving',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 80,
                        message = 'You feel restless without morphine',
                        title = 'Craving',
                        duration = 15000,
                        type = 'info',
                        every = 8,
                        damage = 2
                    }
                }
            },
            ['Medical User'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.6,
                physiologicalEffects = {'Physical dependence', 'Tolerance', 'Respiratory depression'},
                cravings = {
                    every = 12,
                    notify = {
                        message = 'You need your morphine dose',
                        title = 'Medical Craving',
                        duration = 10000,
                        type = 'warning',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 70,
                        message = 'Severe pain returning without morphine',
                        title = 'Withdrawal Pain',
                        duration = 15000,
                        type = 'warning',
                        every = 5,
                        damage = 3,
                        stress = 4,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Morphine Dependent'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 2.4,
                physiologicalEffects = {'Severe dependence', 'Injection site problems', 'Immune suppression'},
                cravings = {
                    every = 8,
                    notify = {
                        message = 'You desperately need morphine',
                        title = 'Opioid Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 60,
                        message = 'Morphine withdrawal is setting in',
                        title = 'Opioid Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 3,
                        damage = 5,
                        stress = 7,
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_a',
                            flags = 48, 
                        },
                    }
                }
            },
            ['Morphine Addict'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 3.8,
                physiologicalEffects = {'Severe addiction', 'Collapsed veins', 'Organ failure risk'},
                cravings = {
                    every = 6,
                    notify = {
                        message = 'You need morphine to survive',
                        title = 'Desperate Craving',
                        duration = 12000,
                        type = 'error',
                    },
                    anim = {}, -- no animation triggered, just notification
                    visualEffects = {
                        blemishes = {
                            type = 5,   -- Severe pallor
                            severity = 0.6,
                        },
                        aging = {
                            type = 4,   -- Sunken appearance
                            severity = 0.4,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 45,
                        message = 'Severe morphine withdrawal',
                        title = 'Severe Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 2,
                        damage = 7,
                        stress = 9,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Morphine Fiend'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 5.2,
                physiologicalEffects = {'Life-threatening addiction', 'Multiple organ failure', 'Respiratory arrest risk'},
                cravings = {
                    every = 3,
                    notify = {
                        message = 'Morphine is your only reason to live',
                        title = 'Fatal Withdrawal Risk',
                        duration = 15000,
                        type = 'error',
                    },
                    anim = {}, -- no animation triggered, just notification
                    visualEffects = {
                        blemishes = {
                            type = 5,   -- Extreme sickly appearance
                            severity = 1.0,
                        },
                        aging = {
                            type = 4,   -- Severe deterioration
                            severity = 0.9,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 25,
                        message = 'Morphine withdrawal could kill you',
                        title = 'Fatal Withdrawal',
                        duration = 20000,
                        type = 'error',
                        every = 1,
                        damage = 12,
                        stress = 15,
                        code = function()
                            print('Morphine withdrawal could be fatal!')
                        end,
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_c',
                            flags = 48,
                        },
                    }
                }
            },
        }
    },

    ['vicodin'] = {
        name = 'Vicodin',
        icon = 'fas fa-pills',
        displayName = 'Vicodin (Hydrocodone/Acetaminophen)',
        treatmentCost = 9500,
        treatmentDuration = 18, -- minutes
        colors = {
            icon = {from = '#10ac84', to = '#1dd1a1'},
            progress = {from = '#10ac84', to = '#1dd1a1'}
        },
        items = {   -- wasabi ambulance items
            ['vic10'] = 2,
            ['vic5'] = 1
        },
        levels = {
            ['Just Started'] = {
                threshold = 5,
                riskLevel = 'low',
                cravingMultiplier = 1.0,
                physiologicalEffects = {'Pain relief', 'Mild euphoria', 'Drowsiness'},
                cravings = {
                    every = 28,
                    notify = {
                        message = 'You think about taking vicodin again',
                        title = 'Mild Craving',
                        duration = 10000,
                        type = 'info',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 85,
                        message = 'You feel some discomfort',
                        title = 'Craving',
                        duration = 15000,
                        type = 'info',
                        every = 10,
                        damage = 1,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Regular User'] = {
                threshold = 15,
                riskLevel = 'low',
                cravingMultiplier = 1.3,
                physiologicalEffects = {'Tolerance building', 'Constipation', 'Nausea'},
                cravings = {
                    every = 18,
                    notify = {
                        message = 'You need your vicodin prescription',
                        title = 'Medication Craving',
                        duration = 10000,
                        type = 'warning',
                    },
                    anim = {}, -- no animation triggered, just notification
                    whenNotSatisfied = {
                        threshold = 75,
                        message = 'Pain is coming back without vicodin',
                        title = 'Withdrawal Pain',
                        duration = 15000,
                        type = 'warning',
                        every = 7,
                        damage = 2,
                        stress = 3,
                        anim = {}, -- no animation triggered, just notification
                    }
                }
            },
            ['Vicodin Dependent'] = {
                threshold = 25,
                riskLevel = 'medium',
                cravingMultiplier = 1.9,
                physiologicalEffects = {'Physical dependence', 'Liver damage risk', 'Mood swings'},
                cravings = {
                    every = 11,
                    notify = {
                        message = 'You desperately need vicodin',
                        title = 'Opioid Craving',
                        duration = 10000,
                        type = 'error',
                    },
                    anim = {
                        dict = "amb@world_human_stand_impatient@male@no_sign@base",
                        anim = "base",
                        flags = 48,
                    },
                    whenNotSatisfied = {
                        threshold = 65,
                        message = 'Withdrawal symptoms are starting',
                        title = 'Opioid Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 4,
                        damage = 4,
                        stress = 5,
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_c',
                            flags = 48,
                        }
                    }
                }
            },
            ['Pill Popper'] = {
                threshold = 35,
                riskLevel = 'high',
                cravingMultiplier = 2.8,
                physiologicalEffects = {'Severe addiction', 'Respiratory depression', 'Overdose risk'},
                cravings = {
                    every = 8,
                    notify = {
                        message = 'You need vicodin to function normally',
                        title = 'Severe Craving',
                        duration = 12000,
                        type = 'error',
                    },
                    anim = {
                        dict = "amb@world_human_stand_impatient@male@no_sign@base",
                        anim = "base",
                        flags = 48, 
                    },
                    visualEffects = {
                        blemishes = {
                            type = 5,   -- Pallor/sickly appearance
                            severity = 0.5,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 50,
                        message = 'Severe withdrawal is setting in',
                        title = 'Severe Withdrawal',
                        duration = 15000,
                        type = 'error',
                        every = 3,
                        damage = 5,
                        stress = 7,
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_c',
                            flags = 48,
                        }
                    }
                }
            },
            ['Vicodin Addict'] = {
                threshold = 50,
                riskLevel = 'critical',
                cravingMultiplier = 4.0,
                physiologicalEffects = {'Life-threatening addiction', 'Liver failure risk', 'Complete dependency'},
                cravings = {
                    every = 5,
                    notify = {
                        message = 'You will die without vicodin',
                        title = 'Life-Threatening Withdrawal',
                        duration = 15000,
                        type = 'error',
                    },
                    anim = {}, -- no animation triggered, just notification
                    visualEffects = {
                        blemishes = {
                            type = 5,   -- Severe sickly appearance
                            severity = 0.8,
                        },
                        aging = {
                            type = 4,   -- Sunken features
                            severity = 0.5,
                        },
                    },
                    whenNotSatisfied = {
                        threshold = 35,
                        message = 'Vicodin withdrawal could be fatal',
                        title = 'Fatal Withdrawal',
                        duration = 20000,
                        type = 'error',
                        every = 1,
                        damage = 8,
                        stress = 11,
                        code = function()
                            print('Vicodin withdrawal could be fatal!')
                        end,
                        anim = {
                            dict = 'amb@world_human_bum_standing@twitchy@idle_a',
                            anim = 'idle_c',
                            flags = 48,
                        }
                    }
                }
            },
        }
    },
}

Config.RehabZones = {
    [1]= {
        name = 'Parsons Rehabilitation Center', -- Native GTA Rehab Center, Move it elsewhere if you have a giant mansion here lol
        enterance = vector4(-1501.3473, 856.9818, 181.5947, 174.1103),
        height = 50.0,
        debug = false,
        points = {
            vector3(-1623.7449, 726.4937, 170.0), -- if changing, make sure all the Z coords match (170.0 in this case)
            vector3(-1621.5912, 854.8314, 170.0), -- if changing, make sure all the Z coords match (170.0 in this case)
            vector3(-1504.1873, 925.9734, 170.0), -- if changing, make sure all the Z coords match (170.0 in this case)
            vector3(-1471.7681, 890.0535, 170.0), -- if changing, make sure all the Z coords match (170.0 in this case)
            vector3(-1452.3112, 812.7595, 170.0), -- if changing, make sure all the Z coords match (170.0 in this case)
        },
        blip = {
            sprite = 398,
            color = 2,
            scale = 0.8,
            label = 'Parsons Rehabilitation Center',
            display = 2,
        }
    },
}

Config.RehabSettings = {
   detoxCost = 30000,
   timeForDetox = 30, -- minutes   -- time players must stay in Rehab Zone to receive a complete detox treatment
   -- Individual substance treatment costs and durations are now configured per-substance in Config.Addictions
}

Config.BloodTestPoints = {
    [1] = {
        coords = vector3(461.3392, -991.3412, 24.9154),    -- Inside the Police Station
        radius = 2.0,
        label = 'Blood Testing Laboratory',
        icon = 'fas fa-vial',
        debug = false,            -- This will enable / disable DEBUG ZONE (Red Circles)
    },
    [2] = {
        coords = vector3(3536.8450, 3662.5977, 28.1219),   -- Humane Labs
        radius = 2.0,
        label = 'Blood Testing Laboratory',
        icon = 'fas fa-vial',
        debug = false,            -- This will enable / disable DEBUG ZONE (Red Circles)
    },
}

-- Job Configuration for Addiction Checks and Forceable Rehab
Config.AuthorizedJobs = {
    ['police'] = true,
    ['ems'] = true,
    ['doctor'] = true,
    ['sheriff'] = true,
    ['deputy'] = true,
    ['paramedic'] = true,
    ['ambulance'] = true,
    -- Add more jobs as needed
}

--------------------
-- REHAB SETTINGS --
--------------------
Config.InvoluntaryRehab = {
    severeAddictionThreshold = 'high',  -- Minimum risk level required for involuntary commitment ('high' or 'critical')
    checkDistance = 5.0,  -- Distance in meters to check for nearby players
    onPlayerLeaveRehab = 'teleport',  -- 'dispatch' or 'teleport'  -- if set to 'dispatch' then edit the client_open/ server_open accordingly
    teleportLocation = vector4(-1501.3473, 856.9818, 181.5947, 174.1103),  -- Where to teleport back (rehab entrance)
    duration = 2, -- minutes
    timeReduction = {
        Yoga = {
            enabled = true,
            command = 'yoga',
            stopCommand = 'stopYoga',
        },
        Swimming = {
            enabled = true,
        },
    }
}

---------------------------------------
-- OVERDOSES & STOMACH PUMP SETTINGS --
---------------------------------------

Config.OverDoses = {
    ['codeine'] = {
        minTakenToTrigger = 5,
        chance = 10,
        maxTakenToTrigger = 10,
        drugCooldown = 5,
        goodMeds = 'cleanair',
        badMeds = 'focuspatch',
    },
    ['adrenaline'] = {
        minTakenToTrigger = 5,
        chance = 10,
        maxTakenToTrigger = 10,
        drugCooldown = 5,
        goodMeds = 'cardioclamp',
        badMeds = 'zendose',
    },
    ['meth'] = {
        minTakenToTrigger = 5,
        chance = 10,
        maxTakenToTrigger = 10,
        drugCooldown = 5,
        goodMeds = 'antipsychotix',
        badMeds = 'opionix',
    },
    ['xanax'] = {
        minTakenToTrigger = 5,
        chance = 10,
        maxTakenToTrigger = 10,
        drugCooldown = 5,
        goodMeds = 'neurolift',
        badMeds = 'pulsedown',
    },
    ['alcohol'] = {
        minTakenToTrigger = 5,
        chance = 10,
        maxTakenToTrigger = 10,
        drugCooldown = 5,
        goodMeds = 'gutflush',
        badMeds = 'antipsychotix',
    },
    ['steroids'] = {
        minTakenToTrigger = 5,
        chance = 10,
        maxTakenToTrigger = 10,
        drugCooldown = 5,
        goodMeds = 'zendose',
        badMeds = 'gutflush',
    },
    ['valium'] = {
        minTakenToTrigger = 5,
        chance = 10,
        maxTakenToTrigger = 10,
        drugCooldown = 5,
        goodMeds = 'focuspatch',
        badMeds = 'cleanair',
    },
    ['oxy'] = {
        minTakenToTrigger = 5,
        chance = 10,
        maxTakenToTrigger = 10,
        drugCooldown = 5,
        goodMeds = 'opionix',
        badMeds = 'neurolift',
    },
    ['cocaine'] = {
        minTakenToTrigger = 5,
        chance = 10,
        maxTakenToTrigger = 10,
        drugCooldown = 5,
        goodMeds = 'pulsedown',
        badMeds = 'cardioclamp',
    },
    -- Wasabi Ambulance Items
    ['percocet'] = {
        minTakenToTrigger = 4,
        chance = 12,
        maxTakenToTrigger = 8,
        drugCooldown = 5,
        goodMeds = 'opionix',
        badMeds = 'neurolift',
    },
    ['morphine'] = {
        minTakenToTrigger = 3,
        chance = 15,
        maxTakenToTrigger = 6,
        drugCooldown = 5,
        goodMeds = 'cleanair',
        badMeds = 'pulsedown',
    },
    ['vicodin'] = {
        minTakenToTrigger = 4,
        chance = 11,
        maxTakenToTrigger = 9,
        drugCooldown = 5,
        goodMeds = 'gutflush',
        badMeds = 'antipsychotix',
    },
}


Config.OverdoseStomachPumpLocations = {    -- other than giving individual items, autorised jobs can also hook up an overdosing player to a stomach pump and stop all overdoses
   [1] = {
        stationCoords = vector3(-255.19, 6314.83, 32.42),
        patientLayDownCoords = vector3(-256.01, 6315.60, 33.34),
        patientLayDownHeading = 226.96,
   }
}

Config.OverdoseMaxCameraShake = 6.0 -- max camera shake amount when overdosing (gets more intense over time)

-----------------------------
-- CRAVING SYSTEM SETTINGS --
-----------------------------

Config.CravingSystem = {
    uiUpdateInterval = 30000, -- How often to update UI in ms (30 seconds)
    maxCravingPoints = 100, -- Maximum craving points (100%)
    cravingPoints = {
        onAddictionEffect = 2, -- Points added when PlayAddictionEffect is triggered
        onCravingNotification = 8, -- Points added when HandleCraving (normal) is triggered
        onCravingPenalty = 15, -- Points added when HandleCraving (escalated/penalty) is triggered
    }
}

-----------------------
-- DATABASE SETTINGS --
-----------------------

Config.DatabaseRecords = {
    bloodTests = {
        maxHistory = 50,
    }
}


-------------------------
--- LANGUAGE SETTINGS ---
-------------------------

Config.Lang = {
    -- Overdose
    overdose = 'Overdose',
    overdoseMessage = 'You dont feel too good!',
    overdoseMessage2 = 'You have severly overdosing.. Seek medical attention immediately!',
    medicationTitle = 'Medication',
    medicationTooFarAway = 'Patient is too far away',
    medicationPatientImproving = 'The patient looks to be improving',
    medicationIncorrectMedication = 'You administed the incorrect medication, the patient seems to be getting worse',
    medicationBeingAdministered = 'You are being administered overdose medication',
    medicationConditionImproving = 'You can feel your condition improving',
    medicationGettingWorse = 'Whatever they gave you is making you feel worse!',
    -- Detox and Treatments
    detoxRequest = 'Detox Request',
    detoxRehabCenterRequired = 'Please head to your nearest Rehab Center to request a detox treatment',
    detoxAlreadyInRehab = 'You are already in rehab. Please wait for your current treatment to end',
    detoxRequestSubmitted = 'Detox request has been submitted to medical staff',
    treatmentRequest = 'Treatment Request',
    treatmentRehabCenterRequired = 'Please head to your nearest Rehab Center to request a treatment',
    treatmentAlreadyInRehab = 'You are already in rehab. Please wait for your current treatment to end',
    treatmentRequestSubmitted = 'Treatment request for %s submitted',
    -- History
    historyTitle = 'History',
    historyComingSoon = 'Usage history for %s feature coming soon',
    -- Stomach Pump
    stomachPumpTitle = 'Stomach Pump',
    stomachPumpNotAuthorized = 'You are not authorized to access the stomach pump station',
    stomachPumpProcedureInitiated = 'Emergency stomach pump procedure initiated for %s',
    stomachPumpNotNearStation = 'You must be near a stomach pump station to perform this procedure',
    stomachPumpPatientNotFound = 'Patient not found or not in range',
    stomachPumpTooFarAway = 'You are too far away from the stomach pump',
    stomachPumpComplete = 'You have completed the stomach pump procedure',
    stomachPumpPatientNotOverdosing = 'Patient is not currently overdosing',
    stomachPumpProcedureCompleted = 'Emergency procedure completed successfully',
    -- Blood Testing
    bloodTestingTitle = 'Blood Testing',
    bloodTestingNotAuthorized = 'You are not authorized to access the blood testing laboratory',
    bloodDrawTitle = 'Blood Draw',
    bloodDrawNobodyNearby = 'Nobody nearby to draw blood from',
    bloodDrawInProgress = 'Drawing blood sample...',
    bloodDrawComplete = 'Blood sample collected successfully',
    bloodDrawnFrom = 'Your blood was drawn by %s for medical testing',
    bloodSampleTitle = 'Blood Sample',
    bloodSampleCollected = 'Blood vial for %s has been collected',
    -- Involuntary Commitment and Rehab
    involuntaryCommitmentTitle = 'Involuntary Commitment',
    involuntaryCommitmentSuccess = 'Patient has been committed to involuntary rehab',
    involuntaryCommitmentTeleport = 'You have been brought to the rehabilitation facility',
    involuntaryRehabTitle = 'Involuntary Rehab',
    involuntaryRehabStarted = 'You are now in involuntary rehabilitation. Do not leave the facility.',
    involuntaryRehabRemaining = 'You are still in involuntary rehabilitation. Time remaining: %d minutes',
    involuntaryRehabCommitted = 'You have been committed to involuntary rehabilitation by Dr. %s',
    -- Treatment and Commitment Process
    commitmentProcessTitle = 'Commitment Process',
    commitmentProcessSearching = 'Searching for patient nearby...',
    commitmentProcessCommitting = 'Committing %s to involuntary rehabilitation...',
    commitmentCancelled = 'Patient has been removed from the commitment list',
    commitmentSuccessful = 'Successfully committed %s to involuntary rehabilitation',
    commitmentDenied = 'Patient %s does not meet the criteria for involuntary commitment',
    treatmentEndedTitle = 'Treatment Ended',
    treatmentEndedMessage = 'Involuntary rehab treatment has been ended',
    treatmentCompleteTitle = 'Treatment Complete',
    treatmentCompleteMessage = 'Your involuntary rehabilitation is complete. You are free to leave.',
    treatmentCompleteMessageServer = 'Your involuntary rehabilitation period is complete. You are free to leave.',
    treatmentAuthorizationTitle = 'Treatment Authorization',
    treatmentAuthorizationSuccess = 'Treatment has been authorized for the patient',
    -- Rehab General
    rehabStartedTitle = 'Rehab Started',
    rehabStartedMessage = 'You are now in rehab',
    rehabEndedTitle = 'Rehab Ended',
    rehabEndedMessage = 'Treatment ended! You are no longer in rehab',
    -- Patient and Medical
    patientNotFoundTitle = 'Patient Not Found',
    patientNotFoundMessage = 'Patient "%s" not found within 5 units of your location',
    patientNotFoundOnline = 'Patient %s is not online or not found',
    patientNotFoundTarget = 'Target player not found or not online',
    patientReleasedTitle = 'Patient Released',
    patientReleasedMessage = 'Released %s %s from involuntary rehabilitation',
    healthImpactTitle = 'Health Impact',
    healthImpactMessage = 'Your addiction is effecting your health',
    emergencyTreatmentTitle = 'Emergency Treatment',
    emergencyTreatmentMessage = 'You are receiving emergency stomach pump treatment',
    -- Interactions
    emergencyStomachPumpPrompt = '[E] - Emergency Stomach Pump',
    checkBloodSamplesPrompt = '[E] - Check Blood Samples',
    emergencyStomachPumpLabel = 'Emergency Stomach Pump',
    openAddictionMonitorKeyMapping = 'Open Addiction Monitor',
    toggleNuiFocusKeyMapping = 'Toggle NUI Focus',
    stopYogaKeyMapping = 'Stop Yoga',
    -- Addiction System
    addictionEffectTitle = 'Addiction Effect',
    cravingTitle = 'Craving',
    addictionLevelChangeTitle = 'Addiction Level Change',
    addictionLevelChangeMessage = 'Your %s addiction level is now: %s',
    addictionRemovedTitle = 'Addiction Removed',
    addictionRemovedMessage = 'Your %s addiction has been completely removed',
    addictionSetTitle = 'Addiction Set',
    addictionSetMessage = 'Set %s addiction to %d points',
    maximumAddictionTitle = 'Maximum Addiction',
    maximumAddictionMessage = 'Your %s addiction has been set to maximum level: %s',
    -- Detox
    detoxErrorTitle = 'Detox Error',
    detoxActiveSession = 'You already have an active detox session',
    detoxStartedTitle = 'Detox Started',
    detoxStartedMessage = 'Detox treatment started. Stay in the rehab area for %d minutes.',
    detoxCompleteTitle = 'Detox Complete',
    detoxCompleteMessage = 'Detox treatment completed successfully',
    detoxCancelledTitle = 'Treatment Cancelled',
    detoxCancelledMessage = 'You left the Rehab Center. Detox treatment has been cancelled',
    -- Treatment
    invalidTreatmentTitle = 'Invalid Treatment',
    invalidTreatmentMessage = 'Invalid treatment type requested',
    treatmentActiveTitle = 'Treatment Active',
    treatmentActiveMessage = 'You already have an active treatment for %s',
    noAddictionTitle = 'No Addiction',
    noAddictionMessage = 'You do not have an active %s addiction to treat',
    noAddictionFoundTitle = 'No Addiction Found',
    noAddictionFoundMessage = 'No active %s addiction found to treat',
    freetreatmentTitle = 'Free Treatment',
    freetreatmentMessage = 'Free %s treatment authorized by Dr. %s - Treatment starting now',
    treatmentStartedTitle = 'Treatment Started',
    treatmentStartedMessage = 'Paid $%d for %s treatment - Treatment starting now',
    treatmentProgressTitle = 'Treatment Progress',
    treatmentProgressMessage = 'Treatment for %s addiction started. Stay in the rehab area for %d minutes.',
    treatmentsCancelledTitle = 'Treatments Cancelled',
    treatmentsCancelledMessage = 'You left the Rehab Center. All treatments have been cancelled',
    treatmentCompleteAuth = 'Treatment for %s addiction completed successfully (Authorized by Dr. %s)',
    treatmentCompleteRegular = 'Treatment for %s addiction completed successfully',
    -- Money
    insufficientFundsTitle = 'Insufficient Funds',
    insufficientFundsDetox = 'Detox treatment costs $%d. Insufficient funds.',
    insufficientFundsTreatment = 'Treatment costs $%d. Insufficient funds.',
    -- Authorization
    authorizationErrorTitle = 'Authorization Error',
    authorizationErrorTreatment = 'You are not authorized to authorize treatments',
    authorizationErrorCommitment = 'You are not authorized to commit patients to involuntary rehab',
    invalidSubstanceTitle = 'Invalid Substance',
    invalidSubstanceMessage = 'Invalid substance type specified',
    authorizationDeniedTitle = 'Authorization Denied',
    authorizationDeniedMessage = 'Patient %s does not meet the criteria for treatment authorization. Only high/critical risk addictions qualify for free treatment.',
    alreadyAuthorizedTitle = 'Already Authorized',
    alreadyAuthorizedMessage = 'Patient %s already has an active authorization for %s treatment',
    authorizationSuccessfulTitle = 'Authorization Successful',
    authorizationSuccessfulMessage = 'Treatment authorized for %s - Patient can receive free %s treatment at any rehab facility within 24 hours',
    freetreatmentAuthorizedTitle = 'Free Treatment Authorized',
    freetreatmentAuthorizedMessage = 'Dr. %s has authorized free %s treatment for you. Visit any rehab facility within 24 hours to claim this treatment.',
    -- Distance and Location
    distanceErrorTitle = 'Distance Error',
    distanceErrorTooFar = 'Patient %s is too far away (%.1fm). Must be within 3m',
    distanceErrorTreatment = 'Patient is too far away (%.1fm). Must be within 3m to authorize treatment',
    distanceErrorCommitment = 'Patient is too far away (%.1fm). Must be within 3m to commit to involuntary rehab',
    -- Rehab Security and Control
    returnToRehabTitle = 'Return to Rehab',
    returnToRehabMessage = 'You cannot leave the rehabilitation facility. You have been returned.',
    securityAlertTitle = 'Security Alert',
    securityAlertMessage = 'Security has been alerted of your escape attempt',
    earlyReleaseTitle = 'Early Release',
    earlyReleaseMessage = 'You have been released from involuntary rehabilitation',
    -- Time Reduction
    timeReductionTitle = 'Time Reduction',
    timeReductionGoodBehavior = 'Good behavior! Time reduced by %d minute(s). Remaining: %d minutes',
    timeReductionCannotReduce = 'Cannot reduce time further - treatment almost complete',
    timeReductionDetox = 'Good behavior! Detox time reduced by %d minute(s). Remaining: %d minutes',
    timeReductionDetoxAlmostComplete = 'Cannot reduce time further - detox almost complete',
    timeReductionMultipleTreatments = 'Good behavior! Treatment time reduced by %d minute(s) for %d substance(s)',
    timeReductionTreatmentsAlmostComplete = 'Cannot reduce time further - treatments almost complete',
    timeReductionNoActiveRehab = 'No active rehabilitation to reduce time for',
    -- Blood Testing
    noBloodVialsTitle = 'No Blood Vials',
    noBloodVialsMessage = 'No blood vials found',
    analysisCompleteTitle = 'Analysis Complete',
    analysisCompleteMessage = 'Blood analysis for %s completed and stored in database',
    disposalFailedTitle = 'Disposal Failed',
    disposalFailedMessage = 'Failed to dispose of blood vial',
    vialNotFoundTitle = 'Vial Not Found',
    vialNotFoundMessage = 'Could not find the specified blood vial',
    -- Test Commands
    addictionsAddedTitle = 'Addictions Added',
    addictionsAddedMessage = 'All addictions given with random levels',
    -- Database
    databaseErrorTitle = 'Database Error',
    databaseErrorTreatment = 'Failed to authorize treatment - database error',
    databaseErrorRehab = 'Failed to access patient rehab records',
    databaseErrorCommitment = 'Failed to commit patient - database error',

    -- Blood Testing Metadata
    patientName = 'Patient Name',
    patientId = 'Patient ID',
    collectedBy = 'Collected By',
    collectionTime = 'Collected At',
}
PreviousExports and CommandsNextEnvi-Camera

Last updated 1 day ago

📒
💊