๐Ÿ“ƒConfig

Config = {}

-- Debug Settings
Config.Debug = false -- Enable/disable debug prints (also uses faster timings for testing)

-- Database Settings
Config.AutoDatabase = true -- Automatically create database tables on resource start

-- Locale Settings
Config.Locale = 'en' -- 'pt' (Portuguese), 'en' (English)

-- Framework Settings
Config.Framework = 'standalone' -- 'standalone', 'esx', 'qbcore'

-- Commands Settings
Config.Commands = {
    weather = {
        enabled = true,
        command = "weather",
        help = "Opens the weather control panel",
        restricted = 'group.admin'
    },
    day = {
        enabled = true,
        command = "day",
        help = "Set time to day (12:00)",
        restricted = 'group.admin'
    },
    night = {
        enabled = true,
        command = "night",
        help = "Set time to night (00:00)",
        restricted = 'group.admin'
    },
    time = {
        enabled = true,
        command = "time",
        help = "Set custom time (e.g., /time 14:30)",
        restricted = 'group.admin'
    },
    checktemp = {
        enabled = true,
        command = "checktemp",
        help = "Check current temperature information",
        restricted = false
    },
    voteweather = {
        enabled = true,
        command = "voteweather",
        help = "Open weather voting panel",
        restricted = false
    }
}

-- Weather Sync Settings
Config.SyncWeather = true -- Sync weather to all players
Config.SyncInterval = 5 -- Sync interval in seconds
Config.TransitionTime = 15 -- Weather transition time in seconds
Config.EnableWeatherTransition = false -- Enable smooth weather transition when clicking weather type

-- Blacklisted Weather Types (disable specific weather types)
Config.BlacklistedWeathers = {
    -- "XMAS",      -- Uncomment to disable Christmas weather
    -- "BLIZZARD",  -- Uncomment to disable Blizzard
    -- "SNOWLIGHT", -- Uncomment to disable Snow
    -- "THUNDER",   -- Uncomment to disable Thunder
    -- "SMOG",      -- Uncomment to disable Smog
    -- "FOGGY",     -- Uncomment to disable Fog
}

-- Automatic Weather Cycle
Config.AutoWeatherCycle = {
    enabled = true, -- Enable automatic weather changes
    interval = 30, -- Change weather every 30 minutes
    forecastTime = 15, -- Show forecast 15 minutes before change
    respectFreeze = true, -- Don't change weather if frozen
    useTransition = true, -- Use smooth transitions between weather changes
    
    -- Weather probabilities (must sum to 100)
    probabilities = {
        {weather = "CLEAR", chance = 30},      -- 30% chance
        {weather = "EXTRASUNNY", chance = 15}, -- 15% chance
        {weather = "CLOUDS", chance = 20},     -- 20% chance
        {weather = "OVERCAST", chance = 15},   -- 15% chance
        {weather = "RAIN", chance = 10},       -- 10% chance
        {weather = "CLEARING", chance = 5},    -- 5% chance
        {weather = "FOGGY", chance = 3},       -- 3% chance
        {weather = "THUNDER", chance = 2},     -- 2% chance
        -- Total: 100%
    },
    
    -- Temperature range for each weather type
    temperatureRanges = {
        ["CLEAR"] = {min = 20, max = 30},
        ["EXTRASUNNY"] = {min = 25, max = 35},
        ["CLOUDS"] = {min = 15, max = 25},
        ["OVERCAST"] = {min = 12, max = 20},
        ["RAIN"] = {min = 10, max = 18},
        ["THUNDER"] = {min = 10, max = 16},
        ["CLEARING"] = {min = 15, max = 22},
        ["FOGGY"] = {min = 8, max = 15},
        ["SMOG"] = {min = 15, max = 25},
        ["SNOWLIGHT"] = {min = -5, max = 5},
        ["BLIZZARD"] = {min = -10, max = 0},
        ["XMAS"] = {min = -5, max = 5},
    }
}
-- Weather Voting System
Config.WeatherVoting = {
    enabled = true, -- Enable voting system (works with auto cycle)
    warningTime = 5, -- Voting starts 5 minutes before weather change
    votingDuration = 60, -- Voting lasts 60 seconds (1 minute)
    minPlayers = 2, -- Minimum players online to start voting
    autoOpenUI = true, -- Auto-open voting UI for all players
    notifyStart = true, -- Show notification when voting starts
    showResults = true, -- Show results after voting ends
    
    -- Voting options (players vote on these weather types)
    options = {
        {weather = "CLEAR", label = "Clear Sky", icon = "fa-sun"},
        {weather = "EXTRASUNNY", label = "Extra Sunny", icon = "fa-sun"},
        {weather = "CLOUDS", label = "Cloudy", icon = "fa-cloud"},
        {weather = "OVERCAST", label = "Overcast", icon = "fa-cloud-sun"},
        {weather = "RAIN", label = "Rain", icon = "fa-cloud-rain"},
        {weather = "THUNDER", label = "Thunder", icon = "fa-cloud-bolt"},
        {weather = "FOGGY", label = "Foggy", icon = "fa-smog"},
    },
}

-- Freeze Settings
Config.AllowFreeze = true -- Allow weather freeze
Config.FreezeByDefault = false -- Start with freeze enabled

-- Time Control Settings
Config.TimeControl = {
    enabled = true, -- Enable time control features
    allowFreeze = true, -- Allow freezing time
    syncToAll = true -- Sync time changes to all players
}

-- Scheduler Settings
Config.EnableScheduler = true -- Enable automatic scheduler
Config.CheckInterval = 30 -- Check schedules every X seconds

-- Real-Time Weather Settings
Config.RealTimeWeather = {
    enabled = false, -- Enable real-time weather sync
    apiKey = "", -- Your API key
    location = "Lisbon,PT", -- City,CountryCode (e.g., "Los Angeles,US", "London,GB", "Tokyo,JP")
    updateInterval = 10, -- Update every X minutes
    syncTemperature = true, -- Sync real temperature
    syncWeather = true, -- Sync weather conditions
    provider = "weatherapi" -- API provider: "openweathermap" or "weatherapi"
    -- OpenWeatherMap: Get key at openweathermap.org/api
    -- WeatherAPI: Get FREE key at weatherapi.com 
}

-- Logging Settings
Config.Logs = { -- Weather logs inside the panel
    enabled = true,
    maxEntries = 100,
    autoScroll = true
}

-- Notifications Settings
Config.Notifications = { -- ( this only works for standalone mode with our script notifications)
    enabled = true, -- Enable/disable notifications
    duration = 3, -- Duration in seconds
    position = "center-right", -- "top-right", "top-left", "bottom-right", "bottom-left", "center-right", "center-left"
}

-- Weather Types Settings
Config.WeatherTypes = {
    {id = "CLEAR", name = "Clear", description = "Clear sky", icon = "fa-sun", color = "#fbbf24", enabled = true},
    {id = "EXTRASUNNY", name = "Extra Sunny", description = "Very sunny", icon = "fa-sun", color = "#ff9500", enabled = true},
    {id = "CLOUDS", name = "Clouds", description = "Cloudy", icon = "fa-cloud", color = "#94a3b8", enabled = true},
    {id = "OVERCAST", name = "Overcast", description = "Overcast", icon = "fa-cloud", color = "#64748b", enabled = true},
    {id = "RAIN", name = "Rain", description = "Rain", icon = "fa-cloud-rain", color = "#3b82f6", enabled = true},
    {id = "THUNDER", name = "Thunder", description = "Storm", icon = "fa-bolt", color = "#8b5cf6", enabled = true},
    {id = "CLEARING", name = "Clearing", description = "Clearing up", icon = "fa-cloud-sun", color = "#60a5fa", enabled = true},
    {id = "SMOG", name = "Smog", description = "Pollution", icon = "fa-smog", color = "#71717a", enabled = true},
    {id = "FOGGY", name = "Foggy", description = "Fog", icon = "fa-cloud-meatball", color = "#a1a1aa", enabled = true},
    {id = "XMAS", name = "Christmas", description = "Christmas snow", icon = "fa-tree", color = "#10b981", enabled = true},
    {id = "SNOWLIGHT", name = "Snow", description = "Light snow", icon = "fa-snowflake", color = "#e0f2fe", enabled = true},
    {id = "BLIZZARD", name = "Blizzard", description = "Snow storm", icon = "fa-snowflake", color = "#06b6d4", enabled = true}
}

-- Weather Presets Settings
Config.Presets = {
    {id = 1, name = "Perfect Summer", icon = "fa-sun", description = "Clear sunny day", weather = "EXTRASUNNY", temperature = 32, rain = 0, fog = 0, wind = 15, enabled = true},
    {id = 2, name = "Heavy Storm", icon = "fa-bolt", description = "Intense thunderstorm", weather = "THUNDER", temperature = 18, rain = 90, fog = 30, wind = 70, enabled = true},
    {id = 3, name = "Dense Fog", icon = "fa-cloud-meatball", description = "Heavy fog", weather = "FOGGY", temperature = 12, rain = 0, fog = 95, wind = 5, enabled = true},
    {id = 4, name = "Cloudy Day", icon = "fa-cloud", description = "Overcast sky", weather = "OVERCAST", temperature = 20, rain = 20, fog = 10, wind = 25, enabled = true},
    {id = 5, name = "Freezing Winter", icon = "fa-snowflake", description = "Cold with snow", weather = "XMAS", temperature = -5, rain = 0, fog = 30, wind = 40, enabled = true},
}

-- Weather Control Sliders Settings
Config.Controls = {
    temperature = {min = -20, max = 50, default = 20, step = 1, unit = "ยฐC"},
    rain = {min = 0, max = 100, default = 0, step = 5, unit = "%"},
    fog = {min = 0, max = 100, default = 0, step = 5, unit = "%"},
    wind = {min = 0, max = 100, default = 0, step = 5, unit = "%"}
}


-- Default Weather Settings
Config.DefaultWeather = "CLEAR"
Config.DefaultTemp = 20
Config.DefaultWind = 0.0
Config.DefaultRain = 0.0
Config.DefaultFog = 0.0

-- Temperature System
Config.TemperatureSystem = {
    enabled = true, -- Enable/disable temperature effects
    checkInterval = 5, -- Check temperature every X seconds
    
    -- Temperature thresholds
    freezing = -5, -- Below this = freezing effects
    cold = 5, -- Below this = cold effects  
    hot = 35, -- Above this = hot effects
    burning = 45, -- Above this = burning effects
    
    -- Effects
    enableHealthLoss = true, -- Lose health in extreme temperatures
    enableVisualEffects = true, -- Screen shake, blur, etc
    enableNotifications = true, -- Temperature warnings
    
    -- Notification intervals (seconds)
    freezingNotifyInterval = 30, -- Notify every X seconds when freezing
    coldNotifyInterval = 60, -- Notify every X seconds when cold
    hotNotifyInterval = 60, -- Notify every X seconds when hot
    burningNotifyInterval = 30, -- Notify every X seconds when burning
    
    -- Health Loss (damage per tick)
    healthLossFreezingAmount = 1, -- Health lost when freezing
    healthLossColdAmount = 1, -- Health lost when cold (without clothes)
    healthLossHotAmount = 1, -- Health lost when hot (with clothes)
    healthLossBurningAmount = 1, -- Health lost when burning (with clothes)
    
    -- Modifiers
    clothingMultiplier = 0.3, -- How much clothing affects temperature
    vehicleProtection = 10, -- Temperature bonus inside vehicle
    waterPenalty = 15, -- Temperature penalty in water
    runningBonus = 2, -- Temperature bonus when running
    
    -- Enhanced Swimming Penalty
    enhancedSwimmingPenalty = true, -- Double penalty when swimming in cold water (<15ยฐC)
    
    -- Fire Proximity System
    fireProximityEnabled = true, -- Enable warming up near fires
    fireProximityBonus = 20, -- Max temperature bonus near fire (decreases with distance)
    
    -- Altitude System
    altitudeEnabled = true, -- Enable altitude-based temperature changes
    
    -- Warmup System (running to get warm)
    warmupEnabled = true, -- Enable warmup by running/sprinting
    warmupRunTime = 10, -- Time running to activate warmup (seconds)
    warmupDuration = 60, -- How long warmup lasts (seconds)
    warmupTempBonus = 15, -- Temperature bonus during warmup period

    -- Vehicle System (inside vehicle affects temperature)
    vehicleSystemEnabled = true, -- Enable vehicle temperature effects
    
    -- Clothing Detection System
    ignoreClothingIDs = { -- Torso drawable IDs to IGNORE (won't count as warm clothing)
        0,
        -- Add IDs here that shouldn't count as warm clothing
        -- Example: 1, 2, 15
    }
}

Last updated