πŸ“ƒConfig

Config = {}

Config.Locale = 'en' -- "en" or "pt"
Config.AutoDatabaseSetup = true -- Automatically create required database tables on server start
Config.Debug = false -- Enable debug prints in console

-- Farm Sale/Transfer System
Config.FarmManagement = {
    -- Maximum farms per player
    maxFarmsPerPlayer = 1, -- Maximum number of farms a player can own
    
    -- Allow selling farms back to the system
    allowSell = true,
    sellBackPercentage = 0.7, -- Receives 70% of the paid value
    
    -- Allow transferring farms to other players
    allowTransfer = true,
    transferCost = 5000, -- Cost to transfer farm
    transferRange = 10.0, -- Maximum distance to transfer (meters)
    
    -- Statistics tracking
    trackStatistics = true,
}

-- Debug/Admin Commands
Config.Commands = {
    farmReset = {
        enabled = true,
        name = 'farmreset',
        help = 'Reset your farm ownership and clear all data',
        restricted = true, -- Only admins can use
    },
    farmClear = {
        enabled = true,
        name = 'farmclear',
        help = 'Clear all plants and animals but keep farm ownership',
        restricted = true, -- Only admins can use
    },
}

-- Multiplayer / Co-op System
Config.Multiplayer = {
    enabled = true,
    maxCoOwners = 3, -- Maximum number of co-owners per farm
}

-- Shop Location
Config.ShopLocation = {
    blip = { enable = true, sprite = 478, color = 2, scale = 0.8, label = "Farm Shop" },
    npc = {
        enabled = true,
        coords = vec4(2030.4, 4980.38, 41.1, 313.93),
        model = 'a_m_m_farmer_01',
        scenario = 'WORLD_HUMAN_CLIPBOARD',
    }
}

-- ===================================
-- FARM SEEDS
-- ===================================
Config.Seeds = {
    {
        id = 'tomato_seed', -- unique identifier
        label = 'Tomato Seeds', -- display name
        price = 50, -- price in in-game currency
        model = 'prop_plant_01a', -- prop model for planted seed
        growTime = 5, -- minutes to fully grow
        harvestItem = 'tomato', -- item received on harvest
        harvestAmount = {min = 3, max = 6}, -- range of items received on harvest
        healthRegenRate = 1.5, -- gains 1.5% health per minute when watered/fertilized
        minHealthForHarvest = 100 -- needs 100% health to harvest
    },
    {
        id = 'corn_seed',
        label = 'Corn Seeds',
        price = 75,
        model = 'prop_plant_01b',
        growTime = 7.5, -- minutes to fully grow
        harvestItem = 'corn',
        harvestAmount = {min = 4, max = 8},
        healthRegenRate = 1.2,
        minHealthForHarvest = 100
    },
    {
        id = 'potato_seed',
        label = 'Potato Seeds',
        price = 40,
        model = 'prop_plant_01a',
        growTime = 4, -- minutes to fully grow
        harvestItem = 'potato',
        harvestAmount = {min = 2, max = 5},
        healthRegenRate = 2.0,
        minHealthForHarvest = 100
    },
    {
        id = 'wheat_seed',
        label = 'Wheat Seeds',
        price = 60,
        model = 'prop_plant_01b',
        growTime = 6, -- minutes to fully grow
        harvestItem = 'wheat',
        harvestAmount = {min = 5, max = 10},
        healthRegenRate = 1.0,
        minHealthForHarvest = 100
    },
    {
        id = 'lettuce_seed',
        label = 'Lettuce Seeds',
        price = 35,
        model = 'prop_plant_01a',
        growTime = 3, -- minutes to fully grow
        harvestItem = 'lettuce',
        harvestAmount = {min = 2, max = 4},
        healthRegenRate = 2.5,
        minHealthForHarvest = 100
    },
    {
        id = 'carrot_seed',
        label = 'Carrot Seeds',
        price = 45,
        model = 'prop_plant_01a',
        growTime = 4.5, -- minutes to fully grow
        harvestItem = 'carrot',
        harvestAmount = {min = 3, max = 5},
        healthRegenRate = 1.8,
        minHealthForHarvest = 100
    },
    {
        id = 'pumpkin_seed',
        label = 'Pumpkin Seeds',
        price = 80,
        model = 'prop_plant_01b',
        growTime = 8, -- minutes to fully grow
        harvestItem = 'pumpkin',
        harvestAmount = {min = 1, max = 3},
        healthRegenRate = 0.8,
        minHealthForHarvest = 100
    },
    {
        id = 'strawberry_seed',
        label = 'Strawberry Seeds',
        price = 65,
        model = 'prop_plant_01a',
        growTime = 5.5, -- minutes to fully grow
        harvestItem = 'strawberry',
        harvestAmount = {min = 4, max = 7},
        healthRegenRate = 1.3,
        minHealthForHarvest = 100
    }
}

-- ===================================
-- FARM ANIMALS
-- ===================================
Config.Animals = {
    {
        id = 'cow',
        label = 'Cow',
        price = 5000,
        model = 'a_c_cow',
        
        -- Production system
        productionTime = 60, -- 60 minutes (1 hour) to produce milk
        productItem = 'milk',
        productAmount = {min = 2, max = 5},
        maxDurability = 20, -- 20 collections before animal dies
        
        -- Needs decay (per minute)
        hungerDecay = 1.5,  -- loses 1.5% hunger per minute
        thirstDecay = 2.0,  -- loses 2% thirst per minute
        healthDecay = 0.5,  -- loses 0.5% health per minute if neglected
        healthRegenRate = 2.0, -- gains 2% health per minute when well fed/hydrated
        
        -- Care values
        feedValue = 30,     -- feeding increases hunger by 30%
        waterValue = 35,    -- watering increases thirst by 35%
        minHealthForCollection = 100, -- needs 100% health to collect product
    },
    {
        id = 'pig',
        label = 'Pig',
        price = 3000,
        model = 'a_c_pig',
        
        -- Production system
        productionTime = 20, -- 20 minutes to produce
        productItem = 'raw_meat',
        productAmount = {min = 1, max = 3},
        maxDurability = 15, -- 15 collections before animal dies
        
        -- Needs decay (per minute)
        hungerDecay = 2.0,
        thirstDecay = 2.5,
        healthDecay = 0.8,
        healthRegenRate = 1.5, -- gains 1.5% health per minute when well fed/hydrated
        
        -- Care values
        feedValue = 35,
        waterValue = 40,
        minHealthForCollection = 100, -- needs 100% health to collect product
    },
    {
        id = 'chicken',
        label = 'Chicken',
        price = 1500,
        model = 'a_c_hen',
        
        -- Production system
        productionTime = 10, -- 10 minutes to produce eggs
        productItem = 'egg',
        productAmount = {min = 1, max = 3},
        maxDurability = 30, -- 30 collections before chicken dies
        
        -- Needs decay (per minute)
        hungerDecay = 2.5,
        thirstDecay = 3.0,
        healthDecay = 1.0,
        healthRegenRate = 2.5, -- gains 2.5% health per minute when well fed/hydrated
        
        -- Care values
        feedValue = 40,
        waterValue = 45,
        minHealthForCollection = 100, -- needs 100% health to collect product
    },
    {
        id = 'boar',
        label = 'Boar',
        price = 4000,
        model = 'a_c_boar',
        
        -- Production system
        productionTime = 25, -- 25 minutes to produce
        productItem = 'wild_meat',
        productAmount = {min = 2, max = 4},
        maxDurability = 12, -- 12 collections before boar dies
        
        -- Needs decay (per minute)
        hungerDecay = 2.2,
        thirstDecay = 2.8,
        healthDecay = 1.0,
        healthRegenRate = 1.3, -- gains 1.3% health per minute when well fed/hydrated
        
        -- Care values
        feedValue = 32,
        waterValue = 38,
        minHealthForCollection = 100, -- needs 100% health to collect product
    },
    {
        id = 'deer',
        label = 'Deer',
        price = 6000,
        model = 'a_c_deer',
        
        -- Production system
        productionTime = 35, -- 35 minutes to produce
        productItem = 'venison',
        productAmount = {min = 2, max = 5},
        maxDurability = 18, -- 18 collections before deer dies
        
        -- Needs decay (per minute)
        hungerDecay = 1.8,
        thirstDecay = 2.2,
        healthDecay = 0.6,
        healthRegenRate = 1.8, -- gains 1.8% health per minute when well fed/hydrated
        
        -- Care values
        feedValue = 28,
        waterValue = 33,
        minHealthForCollection = 100, -- needs 100% health to collect product
    },
    {
        id = 'rabbit',
        label = 'Rabbit',
        price = 1200,
        model = 'a_c_rabbit_01',
        
        -- Production system
        productionTime = 10, -- 10 minutes to produce
        productItem = 'rabbit_pelt',
        productAmount = {min = 1, max = 2},
        maxDurability = 35, -- 35 collections before rabbit dies
        
        -- Needs decay (per minute)
        hungerDecay = 3.0,
        thirstDecay = 3.5,
        healthDecay = 1.2,
        healthRegenRate = 2.8, -- gains 2.8% health per minute when well fed/hydrated
        
        -- Care values
        feedValue = 42,
        waterValue = 48,
        minHealthForCollection = 100, -- needs 100% health to collect product
    },
}

-- ===================================
-- FARM SUPPLIES
-- ===================================
Config.Supplies = {
    {
        id = 'water',
        label = 'Water Bucket',
        price = 10, -- Price on shop per unit
        value = 25 -- Value when watering plant (increases water by 25%)
    },
    {
        id = 'fertilizer',
        label = 'Fertilizer Bag',
        price = 25, -- Price on shop per unit
        value = 50 -- Value when applying fertilizer to plant (increases fertilizer by 50%)
    },
    {
        id = 'animal_feed',
        label = 'Animal Feed',
        price = 15, -- Price on shop per unit
        value = 50 -- Value when feeding animal (reduces hunger by 50%)
    }
}

-- ===================================
-- FARM UPGRADES
-- ===================================
Config.Upgrades = {
    {
        id = 'extra_plants',
        label = 'Extra Plant Slots',
        description = 'Add 4 additional plant slots to your farm',
        icon = 'seedling',
        price = 25000,
        bonus = { type = 'plants', value = 4 }
    },
    {
        id = 'extra_animals',
        label = 'Extra Animal Slots',
        description = 'Add 2 additional animal slots to your farm',
        icon = 'paw',
        price = 30000,
        bonus = { type = 'animals', value = 2 }
    },
    {
        id = 'extra_storage',
        label = 'Storage Expansion',
        description = 'Increase storage capacity by 50 units',
        icon = 'box',
        price = 20000,
        bonus = { type = 'storage', value = 50 }
    },
    {
        id = 'water_system',
        label = 'Automated Water System',
        description = 'Plants water automatically, reducing maintenance',
        icon = 'water',
        price = 40000,
        bonus = { type = 'auto_water', value = true }
        -- Auto-watering happens during decay checks (every 60 seconds)
        -- Automatically adds water when plant water level is below 50%
        -- Adds 25% water per check
    },
    {
        id = 'feed_system',
        label = 'Automated Feed System',
        description = 'Animals feed automatically, reducing maintenance',
        icon = 'utensils',
        price = 45000,
        bonus = { type = 'auto_feed', value = true }
        -- Auto-feeding happens during decay checks (every 60 seconds)
        -- Automatically feeds animals when hunger is above 50%
        -- Reduces hunger by 30%
        -- Automatically gives water when thirst is above 50%
        -- Reduces thirst by 35%
    },
    {
        id = 'greenhouse',
        label = 'Greenhouse',
        description = 'Plants grow 25% faster',
        icon = 'home',
        price = 50000,
        bonus = { type = 'growth_speed', value = 1.25 }
    }
}

-- ===================================
-- FARM LOCATIONS
-- ===================================
Config.FarmLocations = {
    {
        id = 1,
        label = "Grapeseed Farm",
        buy_zone = vector3(2221.0, 4931.05, 40.84),
        management_coords = vec4(2222.05, 4932.12, 39.85, 311.69),
        zone = { 
            vector3(2218.6, 4934.97, 40.88),
            vector3(2225.25, 4941.89, 41.02),
            vector3(2231.66, 4935.53, 40.92),
            vector3(2224.73, 4928.56, 40.8)
        },
        renderDistance = 100.0,
        blip = { enable = true, sprite = 685, color = 25, scale = 0.8},
        npc = {
            enabled = true,
            coords = vec4(2221.0, 4931.05, 40.84, 180.0),
            model = 'a_m_m_farmer_01',
            scenario = 'WORLD_HUMAN_CLIPBOARD'
        },
        price = 100000,
        allowAnimals = 6,
        allowPlants = 8,
        benefits = {
            "Grow various types of crops",
            "Raise animals and produce resources",
            "Upgrade and expand your farm",
            "Sell products at the market"
        }
    },
    {
        id = 2,
        label = "Grapeseed Farm",
        buy_zone = vector3(2230.88, 4921.39, 39.77),
        management_coords = vec4(2229.89, 4923.64, 39.78, 316.94),
        zone = { 
            vector3(2226.36, 4926.78, 39.79),
            vector3(2233.21, 4933.43, 39.86),
            vector3(2240.45, 4925.88, 39.86),
            vector3(2233.82, 4919.37, 39.77)
        },
        renderDistance = 100.0,
        blip = { enable = true, sprite = 685, color = 25, scale = 0.8},
        npc = {
            enabled = true,
            coords = vec4(2230.88, 4921.39, 40.77, 90.0),
            model = 'a_m_m_farmer_01',
            scenario = 'WORLD_HUMAN_CLIPBOARD'
        },
        price = 100000,
        allowAnimals = 6,
        allowPlants = 8,
        benefits = {
            "Grow various types of crops",
            "Raise animals and produce resources",
            "Upgrade and expand your farm",
            "Sell products at the market"
        }
    }
}

-- ===================================
-- NOTIFICATIONS SYSTEM
-- ===================================
Config.Notifications = {
    enabled = true,
    checkInterval = 300000, -- Check every 5 minutes (in milliseconds)
    
    -- Notification thresholds
    plantWaterLow = 30,      -- Notify when water is below 30%
    plantHealthLow = 40,     -- Notify when health is below 40%
    animalHungerHigh = 70,   -- Notify when hunger is above 70%
    animalThirstHigh = 70,   -- Notify when thirst is above 70%
    animalHealthLow = 30,    -- Notify when health is below 30%
}

-- ===================================
-- WEATHER SYSTEM
-- ===================================
Config.Weather = { -- This is available only for qb-weathersync or Renewed-Weathersync or custom
    enabled = true,
    
    -- Weather effects on plant growth
    effects = {
        CLEAR = { growthMultiplier = 1.0, autoWater = false },
        EXTRASUNNY = { growthMultiplier = 1.1, autoWater = false },
        CLOUDS = { growthMultiplier = 0.95, autoWater = false },
        OVERCAST = { growthMultiplier = 0.9, autoWater = false },
        RAIN = { growthMultiplier = 0.85, autoWater = true },  -- Rain waters plants automatically
        THUNDER = { growthMultiplier = 0.8, autoWater = true },
        CLEARING = { growthMultiplier = 0.95, autoWater = false },
        NEUTRAL = { growthMultiplier = 1.0, autoWater = false },
        SMOG = { growthMultiplier = 0.7, autoWater = false },
        FOGGY = { growthMultiplier = 0.75, autoWater = false },
        XMAS = { growthMultiplier = 0.9, autoWater = false },
        SNOWLIGHT = { growthMultiplier = 0.6, autoWater = false },
        BLIZZARD = { growthMultiplier = 0.5, autoWater = false },
    },
    
    -- Seasonal multipliers (bonus on top of weather)
    seasons = {
        spring = { months = {3, 4, 5}, multiplier = 1.2, label = "Spring" },     -- March to May - Best for growing
        summer = { months = {6, 7, 8}, multiplier = 1.1, label = "Summer" },     -- June to August - Good for growing
        autumn = { months = {9, 10, 11}, multiplier = 0.9, label = "Autumn" },   -- September to November - Slower growth
        winter = { months = {12, 1, 2}, multiplier = 0.7, label = "Winter" },    -- December to February - Slowest growth
    }
}

-- ===================================
-- MARKET SYSTEM (NPC Buyer)
-- ===================================
Config.Market = {
    enabled = true,
    
    -- NPC Location
    blip = { enable = true, sprite = 479, color = 2, scale = 0.8, label = "Farm Market" },
    npc = {
        coords = vec4(2310.5, 4884.98, 40.81, 45.58),
        model = 'a_m_m_farmer_01',
        scenario = 'WORLD_HUMAN_CLIPBOARD',
    },
    
    -- Product prices (base price, can fluctuate)
    prices = {
        -- Crops
        tomato = { base = 15, min = 10, max = 25 },
        corn = { base = 20, min = 15, max = 30 },
        potato = { base = 12, min = 8, max = 20 },
        wheat = { base = 18, min = 12, max = 28 },
        lettuce = { base = 10, min = 6, max = 18 },
        carrot = { base = 14, min = 9, max = 22 },
        pumpkin = { base = 35, min = 25, max = 50 },
        strawberry = { base = 22, min = 16, max = 32 },
        
        -- Animal Products
        milk = { base = 30, min = 20, max = 45 },
        raw_meat = { base = 40, min = 30, max = 55 },
        egg = { base = 8, min = 5, max = 15 },
        wild_meat = { base = 50, min = 35, max = 70 },
        venison = { base = 60, min = 45, max = 85 },
        rabbit_pelt = { base = 20, min = 15, max = 30 },
    },
    
    -- Price fluctuation
    priceFluctuation = {
        enabled = true,
        updateInterval = 3600000, -- Update prices every hour (in milliseconds)
        maxChange = 0.15,         -- Max 15% change per update
    },
    
    -- Bulk sale bonus
    bulkBonus = {
        enabled = true,
        thresholds = {
            { amount = 10, bonus = 1.05 },  -- 5% bonus for 10+ items
            { amount = 25, bonus = 1.10 },  -- 10% bonus for 25+ items
            { amount = 50, bonus = 1.15 },  -- 15% bonus for 50+ items
            { amount = 100, bonus = 1.20 }, -- 20% bonus for 100+ items
        }
    }
}

-- ===================================
-- DECAY SYSTEM
-- ===================================
Config.Decay = {
    enabled = true,
    
    -- Plant decay settings
    plants = {
        -- Water decay (decreases over time)
        waterDecayRate = 2.0,          -- % per minute when not watered
        healthDecayRate = 1.0,         -- % per minute when water is 0
        deathThreshold = 0,            -- Plant dies at 0% health
        
        -- Death consequences
        onDeath = {
            removeFromWorld = true,    -- Remove entity from world
            deleteFromDatabase = true, -- Delete from database
            notifyPlayer = true,       -- Send notification
        }
    },
    
    -- Animal decay settings
    animals = {
        -- Needs decay rates (defined per animal in Config.Animals)
        hungerDecayRate = 1.5,         -- Default % per minute when not fed
        thirstDecayRate = 2.0,         -- Default % per minute when not given water
        
        -- Death
        deathThreshold = 0,            -- Animal dies at 0 health
        
        -- Death consequences
        onDeath = {
            removeFromWorld = true, -- Remove entity from world
            deleteFromDatabase = true, -- Delete from database
            notifyPlayer = true, -- Notify player on death
            dropLoot = true, -- Drop some items on death
            lootTable = {
                { item = 'raw_meat', chance = 0.8, amount = {min = 1, max = 3} },
            }
        }
    },
    
    -- Check interval
    checkInterval = 60000, -- Check every minute (milliseconds)
}

-- ===================================
-- DELIVERY/CONTRACTS SYSTEM
-- ===================================
Config.Contracts = {
    enabled = true,
    
    -- Contract NPC
    blip = { enable = true, sprite = 480, color = 5, scale = 0.8, label = "Farm Contracts" },
    npc = {
        coords = vec4(2416.57, 4993.9, 45.22, 136.95),
        model = 's_m_m_postal_01',
        scenario = 'WORLD_HUMAN_CLIPBOARD',
    },
    
    -- Contract settings
    maxActiveContracts = 3,        -- Max contracts player can have at once
    contractExpireTime = 86400000, -- Contracts expire after 24 hours (ms)
    
    -- Reputation system
    reputation = {
        enabled = true,
        ranks = {
            { name = "Novice Farmer", min = 0, max = 100, bonusReward = 1.0 },
            { name = "Skilled Farmer", min = 100, max = 300, bonusReward = 1.1 },
            { name = "Expert Farmer", min = 300, max = 600, bonusReward = 1.2 },
            { name = "Master Farmer", min = 600, max = 1000, bonusReward = 1.3 },
            { name = "Legendary Farmer", min = 1000, max = 999999, bonusReward = 1.5 },
        },
        reputationGainOnComplete = 10,    -- Rep gained per contract
        reputationLossOnFail = 5,         -- Rep lost if contract expires
        reputationLossOnCancel = 3,       -- Rep lost if player cancels
    },
    
    -- Available contract types
    contractTypes = {
        {
            id = 'deliver_vegetables',
            label = 'Fresh Vegetables Delivery',
            description = 'The local restaurant needs fresh vegetables',
            type = 'delivery',
            items = {
                { name = 'tomato', amount = {min = 10, max = 20} },
                { name = 'lettuce', amount = {min = 15, max = 25} },
                { name = 'carrot', amount = {min = 12, max = 18} },
            },
            reward = {
                money = {min = 500, max = 800},
                reputation = 10,
                items = {
                    { name = 'fertilizer', amount = {min = 5, max = 10}, chance = 0.5 },
                }
            },
            deliveryLocation = vec4(151.76, -1478.19, 28.36, 231.49),
            difficulty = 'easy',
            minReputation = 0, -- No reputation required
            weight = 1.0, -- Spawn weight (higher = more common)
        },
        {
            id = 'deliver_grains',
            label = 'Grain Delivery',
            description = 'The mill needs fresh grain for production',
            type = 'delivery',
            items = {
                { name = 'wheat', amount = {min = 20, max = 35} },
                { name = 'corn', amount = {min = 15, max = 25} },
            },
            reward = {
                money = {min = 700, max = 1200},
                reputation = 15,
                items = {
                    { name = 'water', amount = {min = 2, max = 5}, chance = 0.3 },
                }
            },
            deliveryLocation = vec4(-1283.67, -1131.04, 5.79, 142.16),
            difficulty = 'medium',
            minReputation = 50, -- Requires Apprentice rank
            weight = 0.8,
        },
        {
            id = 'deliver_meat',
            label = 'Fresh Meat Delivery',
            description = 'The butcher needs quality meat',
            type = 'delivery',
            items = {
                { name = 'raw_meat', amount = {min = 10, max = 20} },
                { name = 'wild_meat', amount = {min = 5, max = 10} },
            },
            reward = {
                money = {min = 900, max = 1500},
                reputation = 20,
                items = {
                    { name = 'animal_feed', amount = {min = 10, max = 20}, chance = 0.4 },
                }
            },
            deliveryLocation = vec4(-428.69, 294.2, 82.23, 263.02),
            difficulty = 'medium',
            minReputation = 50, -- Requires Apprentice rank
            weight = 0.7,
        },
        {
            id = 'deliver_dairy',
            label = 'Dairy Products Delivery',
            description = 'The market needs dairy products',
            type = 'delivery',
            items = {
                { name = 'milk', amount = {min = 15, max = 30} },
                { name = 'egg', amount = {min = 30, max = 50} },
            },
            reward = {
                money = {min = 800, max = 1400},
                reputation = 12,
                items = {
                    { name = 'water', amount = {min = 3, max = 6}, chance = 0.3 },
                }
            },
            deliveryLocation = vec4(94.95, -1810.02, 26.08, 228.85),
            difficulty = 'easy',
            minReputation = 0, -- No reputation required
            weight = 0.9,
        },
        {
            id = 'deliver_premium',
            label = 'Premium Farm Package',
            description = 'A wealthy client wants premium farm products',
            type = 'delivery',
            items = {
                { name = 'strawberry', amount = {min = 20, max = 30} },
                { name = 'venison', amount = {min = 8, max = 15} },
                { name = 'pumpkin', amount = {min = 5, max = 10} },
            },
            reward = {
                money = {min = 2000, max = 3500},
                reputation = 35,
                items = {
                    { name = 'fertilizer', amount = {min = 5, max = 10}, chance = 0.5 },
                }
            },
            deliveryLocation = vec4(501.38, -1966.39, 23.99, 120.71),
            difficulty = 'hard',
            minReputation = 300, -- Requires Skilled Farmer rank
            weight = 0.3,
        },
        {
            id = 'deliver_luxury',
            label = 'Luxury Restaurant Order',
            description = 'A 5-star restaurant needs premium ingredients',
            type = 'delivery',
            items = {
                { name = 'venison', amount = {min = 15, max = 25} },
                { name = 'strawberry', amount = {min = 25, max = 40} },
                { name = 'milk', amount = {min = 20, max = 35} },
                { name = 'egg', amount = {min = 40, max = 60} },
            },
            reward = {
                money = {min = 3000, max = 4500},
                reputation = 50,
                items = {
                    { name = 'fertilizer', amount = {min = 10, max = 15}, chance = 0.6 },
                }
            },
            deliveryLocation = vec4(90.66, 297.89, 109.21, 341.81),
            difficulty = 'expert',
            minReputation = 600, -- Requires Expert Farmer rank
            weight = 0.2,
        },
        {
            id = 'deliver_festival',
            label = 'Harvest Festival Supply',
            description = 'The annual harvest festival needs massive supplies',
            type = 'delivery',
            items = {
                { name = 'wheat', amount = {min = 50, max = 80} },
                { name = 'corn', amount = {min = 40, max = 70} },
                { name = 'pumpkin', amount = {min = 15, max = 30} },
                { name = 'raw_meat', amount = {min = 30, max = 50} },
                { name = 'milk', amount = {min = 40, max = 60} },
            },
            reward = {
                money = {min = 5000, max = 7500},
                reputation = 75,
                items = {
                    { name = 'fertilizer', amount = {min = 15, max = 25}, chance = 0.8 },
                    { name = 'animal_feed', amount = {min = 10, max = 20}, chance = 0.6 },
                }
            },
            deliveryLocation = vec4(975.06, 7.14, 80.04, 145.0),
            difficulty = 'master',
            minReputation = 1000, -- Requires Master/Legendary Farmer rank
            weight = 0.1,
        },
    }
}

-- ===================================
-- FARM DECORATIONS
-- ===================================
Config.Decorations = {
    enabled = true,
    maxDecorationsPerFarm = 50, -- Maximum decorations per farm
    
    categories = {
        {
            id = 'fences',
            label = 'Fences & Barriers',
            icon = 'fas fa-border-all',
            items = {
                {
                    id = 'wooden_fence',
                    label = 'Wooden Fence',
                    price = 50,
                    model = 'prop_fncwood_16c',
                    image = 'https://gtahash.ru/files/fences_2/prop_fncwood_16c.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'wooden_fence_2',
                    label = 'Wooden Fence 2',
                    price = 100,
                    model = 'prop_fncconstruc_ld',
                    image = 'https://gtahash.ru/files/fences_2/prop_fncconstruc_ld.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'farm_gate',
                    label = 'Farm Gate',
                    price = 150,
                    model = 'prop_facgate_03_r',
                    image = 'https://gtahash.ru/files/fences_2/prop_facgate_03_r.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
            }
        },
        {
            id = 'structures',
            label = 'Structures',
            icon = 'fas fa-warehouse',
            items = {
                {
                    id = 'hay_bale',
                    label = 'Hay Bale',
                    price = 75,
                    model = 'prop_haybale_01',
                    image = 'https://gtahash.ru/files/farm/prop_haybale_01.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'feed_trough',
                    label = 'Feed Trough',
                    price = 150,
                    model = 'prop_feed_sack_01',
                    image = 'https://gtahash.ru/files/other/prop_feed_sack_01.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'storage_shed',
                    label = 'Storage Shed',
                    price = 500,
                    model = 'prop_container_01a',
                    image = 'https://gtahash.ru/files/storage/prop_container_01a.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
            }
        },
        {
            id = 'tools',
            label = 'Farm Tools',
            icon = 'fas fa-tools',
            items = {
                {
                    id = 'wheelbarrow',
                    label = 'Wheelbarrow',
                    price = 100,
                    model = 'prop_wheelbarrow02',
                    image = 'https://gtahash.ru/files/construction/prop_wheelbarrow02a.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'shovel',
                    label = 'Shovel',
                    price = 50,
                    model = 'prop_tool_shovel006',
                    image = 'https://gtahash.ru/files/construction/prop_tool_shovel006.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'rake',
                    label = 'Rake',
                    price = 40,
                    model = 'prop_tool_rake',
                    image = 'https://gtahash.ru/files/construction/prop_tool_rake.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'bucket',
                    label = 'Bucket',
                    price = 30,
                    model = 'prop_bucket_01a',
                    image = 'https://gtahash.ru/files/storage/prop_bucket_01a.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
            }
        },
        {
            id = 'plants',
            label = 'Decorative Plants',
            icon = 'fas fa-leaf',
            items = {
                {
                    id = 'potted_plant',
                    label = 'Potted Plant',
                    price = 80,
                    model = 'prop_plant_01a',
                    image = 'https://gtahash.ru/files/ext_veg/prop_plant_01a.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'small_tree',
                    label = 'Small Tree',
                    price = 200,
                    model = 'prop_bush_lrg_04b',
                    image = 'https://gtahash.ru/files/bush/prop_bush_lrg_04b.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'flower_pot',
                    label = 'Flower Pot',
                    price = 60,
                    model = 'prop_plant_base_01',
                    image = 'https://gtahash.ru/files/ext_veg/prop_plant_base_01.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
            }
        },
        {
            id = 'furniture',
            label = 'Outdoor Furniture',
            icon = 'fas fa-chair',
            items = {
                {
                    id = 'wooden_bench',
                    label = 'Wooden Bench',
                    price = 120,
                    model = 'prop_bench_01a',
                    image = 'https://gtahash.ru/files/seating_tables/prop_bench_01a.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'picnic_table',
                    label = 'Picnic Table',
                    price = 250,
                    model = 'prop_picnictable_02',
                    image = 'https://gtahash.ru/files/seating_tables/prop_picnictable_02.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'market_stall',
                    label = 'Market Stall',
                    price = 300,
                    model = 'prop_gazebo_02',
                    image = 'https://gtahash.ru/files/garden/prop_gazebo_02.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
            }
        },
        {
            id = 'lighting',
            label = 'Lighting',
            icon = 'fas fa-lightbulb',
            items = {
                {
                    id = 'street_lamp',
                    label = 'Street Lamp',
                    price = 150,
                    model = 'prop_streetlight_05',
                    image = 'https://gtahash.ru/files/traffic_lights/prop_streetlight_05.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'garden_light',
                    label = 'Garden Light',
                    price = 100,
                    model = 'prop_spot_01',
                    image = 'https://gtahash.ru/files/other/prop_spot_01.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
            }
        },
        {
            id = 'signs',
            label = 'Signs & Banners',
            icon = 'fas fa-sign',
            items = {
                {
                    id = 'farm_sign',
                    label = 'Farm Sign',
                    price = 200,
                    model = 'prop_sign_road_03m',
                    image = 'https://gtahash.ru/files/signs/prop_sign_road_03m.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
                {
                    id = 'welcome_banner',
                    label = 'Welcome Banner',
                    price = 150,
                    model = 'prop_flag_us',
                    image = 'https://gtahash.ru/files/rooftop/prop_flag_us.jpg',
                    offset = vector3(0, 0, 0),
                    rotation = vector3(0, 0, 0),
                },
            }
        },
    }
}

-- ===================================
-- OFFLINE FARM SHOP SYSTEM
-- ===================================
Config.OfflineShop = {
    enabled = true,
    
    -- Shop NPC settings
    npc = {
        models = { -- Available NPC models to choose from
            'a_m_m_farmer_01',
            'a_f_m_farmer_01',
            's_m_m_gardener_01',
            'a_m_o_salton_01',
            'a_f_o_salton_01',
        },
        defaultModel = 'a_m_m_farmer_01',
        scenario = 'WORLD_HUMAN_STAND_MOBILE', -- NPC animation
    },
    
    -- Shop settings
    maxItemsForSale = 20, -- Maximum items a farm can have for sale
    taxPercentage = 0.05, -- 5% tax on each sale (goes to server)
    
    -- Transaction limits
    minPrice = 1, -- Minimum price per item
    maxPrice = 10000, -- Maximum price per item
    maxQuantityPerListing = 999, -- Max quantity per product listing
    
    -- Notification settings
    notifyOwnerOnSale = true, -- Notify owner when someone buys
    notifyBuyerOnPurchase = true, -- Notify buyer on successful purchase
    
    -- Visual settings
    showBlipToAll = true, -- Show shop blip on map for everyone
    blipSettings = {
        sprite = 52, -- Shop icon
        color = 2, -- Green
        scale = 0.7,
        shortRange = true, -- Only show when nearby
    },
    
    -- Distance settings
    interactionDistance = 3.0, -- Distance to interact with shop
    
    -- Shop webhooks
    webhookOnSale = true, -- Send webhook when sale happens
}

Last updated