Milestones

The milestones configuration defines progressive rewards and bonuses that players unlock as they level up in the house robbery skill system.

Overview

The milestones system provides incremental bonuses and unlocks that reward player progression. As players level up, they unlock various benefits including increased item chances, better contract rewards, enhanced XP gains, and reduced noise generation.

Milestone Structure

Each milestone is defined at a specific level and contains one or more unlocks:

[25] = {
    { value = 8, type = 'contract_rewards' },
},
[level]requirednumber
The player level at which this milestone becomes available.
valuerequirednumber
The bonus percentage or amount granted by this milestone.
typerequiredstring
The type of bonus granted. Available types: 'item_chance', 'contract_rewards', 'xp_gain', 'noise_reduction'.

Bonus Types

Item Chance Bonus

Increases the chance of finding bonus items during house robberies:

[5] = {
    { value = 2, type = 'item_chance' },
},
item_chancerequiredbonus
Increases item drop chances by the specified percentage. Affects furniture searches and bonus item rewards.

Contract Rewards Bonus

Enhances the coins and rewards gained from completing contracts:

[15] = {
    { value = 5, type = 'contract_rewards' },
},
contract_rewardsrequiredbonus
Increases contract completion rewards by the specified percentage. Applies to coins and other completion bonuses.

XP Gain Bonus

Multiplies experience points earned from all house robbery activities:

[20] = {
    { value = 3, type = 'xp_gain' },
},
xp_gainrequiredbonus
Increases XP gains by the specified percentage. Calculated as: baseXP × (1 + bonus / 100).

Noise Reduction Bonus

Reduces the noise generated during robbery activities:

[50] = {
    { value = 10, type = 'noise_reduction' },
},
noise_reductionrequiredbonus
Reduces noise generation by the specified percentage. Helps avoid triggering alarms and attracting attention.

Complete Configuration Example

return {
    milestones = {
        [5] = {
            { value = 2, type = 'item_chance' },
        },

        [10] = {
            { value = 3, type = 'item_chance' },
        },

        [15] = {
            { value = 5, type = 'contract_rewards' },
        },

        [20] = {
            { value = 3, type = 'xp_gain' },
        },

        [25] = {
            { value = 8, type = 'contract_rewards' },
        },

        [30] = {
            { value = 8, type = 'xp_gain' },
        },

        [35] = {
            { value = 4, type = 'item_chance' },
        },

        [40] = {
            { value = 10, type = 'contract_rewards' },
        },

        [45] = {
            { value = 8, type = 'xp_gain' },
        },

        [50] = {
            { value = 10, type = 'noise_reduction' },
        },

        [55] = {
            { value = 5, type = 'xp_gain' },
        },

        [60] = {
            { value = 15, type = 'contract_rewards' },
        },

        [70] = {
            { value = 12, type = 'xp_gain' },
        },

        [75] = {
            { value = 8, type = 'item_chance' },
        },

        [80] = {
            { value = 15, type = 'xp_gain' },
        },

        [85] = {
            { value = 12, type = 'item_chance' },
        },

        [90] = {
            { value = 20, type = 'contract_rewards' },
        },

        [95] = {
            { value = 20, type = 'noise_reduction' },
        },

        [100] = {
            { value = 10, type = 'xp_gain' },
        },
    }
}