Skip to content

Config Example

return {
    Debug = false,

    -- 'ox_lib' or 'lation_ui'
    ProgressBar = 'ox_lib',

    -- 'ox_lib' or 'lation_ui' for smelting menu
    Menu = 'ox_lib',

    -- Spawned rock locations. Rocks disappear when mined and respawn after respawnTime.
    -- coords: vec3, vec4, or { x, y, z } / { x, y, z, heading }
    -- oreAmount: optional; ore given per mine (larger rocks can yield more). Defaults to Mining.defaultOreAmount.
    RockSpawns = {
        { model = 'prop_rock_1_a', coords = vec3(2934.07, 2809.49, 41.68), oreAmount = 2 },
        { model = 'prop_rock_1_b', coords = vec3(2928.97, 2794.9, 39.73), oreAmount = 3 },
        { model = 'prop_rock_1_c', coords = vec3(2929.9, 2783.72, 38.72), oreAmount = 2 },
        { model = 'prop_rock_1_d', coords = vec3(2941.34, 2772.82, 38.26) },
        { model = 'prop_rock_1_e', coords = vec3(2952.83, 2777.7, 38.66) },
        { model = 'prop_rock_1_f', coords = vec3(2957.3, 2784.95, 39.95) },
        { model = 'prop_rock_1_g', coords = vec3(2941.21, 2812.35, 30.43) },
        { model = 'prop_rock_1_h', coords = vec3(2951.48, 2796.73, 39.89) },
        { model = 'prop_rock_1_a', coords = vec3(2954.48, 2801.92, 39.67), oreAmount = 2 },
        { model = 'prop_rock_1_b', coords = vec3(2963.7, 2788.36, 38.94), oreAmount = 3 },
        { model = 'prop_rock_1_c', coords = vec3(2964.91, 2801.31, 40.32), oreAmount = 2 },
        { model = 'prop_rock_1_d', coords = vec3(2943.91, 2815.69, 40.55) },
        { model = 'prop_rock_1_e', coords = vec3(2933.51, 2811.8, 41.29) },
        { model = 'prop_rock_1_f', coords = vec3(2940.39, 2805.57, 39.53) },
        { model = 'prop_rock_1_g', coords = vec3(2952.12, 2812.03, 39.85) },
        { model = 'prop_rock_1_h', coords = vec3(2961.05, 2791.52, 39.46) },
        { model = 'prop_rock_1_a', coords = vec3(2927.66, 2806.57, 39.58), oreAmount = 2 },
        { model = 'prop_rock_1_b', coords = vec3(2949.13, 2769.87, 37.98), oreAmount = 3 },
        { model = 'prop_rock_1_c', coords = vec3(2975.72, 2777.92, 37.4), oreAmount = 2 },
        { model = 'prop_rock_1_d', coords = vec3(2936.16, 2798.6, 36.96) },
    },
    rockRespawnTime = 60000, -- ms until rock respawns (60000 = 1 min)

    -- Chance weights for ore when mining (higher = more likely). Weights are relative. Gems are rarer.
    OreChances = {
        iron_ore = 25,
        aluminium_ore = 25,
        coal_ore = 20,
        lead_ore = 20,
        copper_ore = 15,
        silver_ore = 10,
        gold_ore = 8,
        emerald_ore = 4,
        ruby_ore = 3,
        sapphire_ore = 2,
        diamond_ore = 1,
    },

    -- ore item -> smelted output item
    Ores = {
        iron_ore = { output = 'iron', label = 'Iron Ore' },
        aluminium_ore = { output = 'aluminium', label = 'Aluminium Ore' },
        coal_ore = { output = 'coal', label = 'Coal Ore' },
        lead_ore = { output = 'lead', label = 'Lead Ore' },
        copper_ore = { output = 'copper', label = 'Copper Ore' },
        silver_ore = { output = 'silver', label = 'Silver Ore' },
        gold_ore = { output = 'gold', label = 'Gold Ore' },
        emerald_ore = { output = 'emerald', label = 'Emerald Ore' },
        ruby_ore = { output = 'ruby', label = 'Ruby Ore' },
        sapphire_ore = { output = 'sapphire', label = 'Sapphire Ore' },
        diamond_ore = { output = 'diamond', label = 'Diamond Ore' },
    },

    Smelting = {
        -- Output amount scales with cw-rep Mining level: 1 for levels 1-5, 2 for 6-10, 3 for 11-15, etc.
        scaleOutputByLevel = true,
        locations = {
            { coords = vec3(1087.81, -2001.84, 30.88), radius = 2.0 },
        },
        durationPerOre = 5000,
        progressIcon = 'fas fa-fire',         -- lation_ui progress bar icon (Font Awesome)
        progressDescription = 'Please wait...', -- lation_ui optional description
        -- Blip shown on map. Set to nil/false to disable.
        blip = {
            coords = vec3(1087.81, -2001.84, 30.88),
            sprite = 648,
            colour = 47,
            scale = 0.8,
            label = 'Smelting',
        },
    },

    -- Mining blip. Set to nil/false to disable. Coords can be custom or match a rock spawn.
    MiningBlip = {
        coords = vec3(2934.07, 2809.49, 41.68), -- Default: first rock spawn
        sprite = 652,
        colour = 47,
        scale = 0.8,
        label = 'Mining',
    },

    Mining = {
        skillName = 'mining',
        baseDuration = 12000,  -- ms (12 sec) at level 0
        minDuration = 5000,    -- ms (5 sec) minimum at high levels
        xpPerMine = 2,
        -- duration = baseDuration * (1 - level * speedFactorPerLevel), floored at minDuration. Uses cw-rep level.
        speedFactorPerLevel = 0.015,  -- ~1.5% faster per level (level 33 = 50% faster)
        mineDistance = 2.0,    -- ox_target distance in meters (must be close to rock to mine)
        progressIcon = 'fas fa-hammer',       -- lation_ui progress bar icon (Font Awesome)
        progressDescription = 'Mining rock...', -- lation_ui optional description
        defaultOreAmount = 1,  -- ore given per rock when RockSpawns entry has no oreAmount (e.g. larger rocks use oreAmount = 2 or 3)
    },

    Anim = {
        dict = 'melee@large_wpn@streamed_core',
        clip = 'ground_attack_on_spot',
        flag = 49,
    },

    -- Prop shown while mining. Set to nil/false to disable.
    Prop = {
        model = 'prop_tool_pickaxe',
        bone = 57005,
        pos = { x = 0.08, y = 0.04, z = -0.02 },
        rot = { x = -80.0, y = 0.0, z = 0.0 },
    },
}