Gridbase
Paid releasesDime Skills

Configuration

Comprehensive configuration guide for Dime Skills

Configuration

📝 Configuration file: shared/config.lua - Not escrowed, fully customizable

This guide covers all configuration options available in Dime Skills v1.9.0. The main configuration file is located at shared/config.lua.

v1.9.0 Changes: New GlobalMultipliers section added, disableSafetyCheck option removed

Framework Settings

Framework

Specifies which framework your server uses.

Framework = 'QBOX'

Type: string

Options:

  • 'QBOX' - Qbox-project framework
  • 'ESX' - ESX Legacy or Extended
  • 'OX' - Overextended framework
  • 'QBCORE' - QB-Core framework
  • 'Custom' - Custom framework (requires bridge modification)

Must match your server's framework exactly (case-sensitive).

Notification Settings

skillNotify

Controls how skill gain/loss notifications are displayed.

skillNotify = 'UI'

Type: string

Options:

  • 'UI' - Uses built-in UI notifications (recommended)
  • 'ox_lib' - Uses ox_lib notify system

UI Mode: Shows elegant popup notifications in the corner with skill progress ox_lib Mode: Uses standard ox_lib notifications with icon support

toggleNotifyCommand

Command to toggle notifications on/off for players.

toggleNotifyCommand = 'togglenotifyskills'

Type: string

Usage: /togglenotifyskills - Players can enable/disable their skill notifications

Player preferences are saved using resource KVP (persists across restarts).

UI Controls

keybind

Keybind to open the skills menu.

keybind = 'U'

Type: string | false

Options:

  • Any valid FiveM key (e.g., 'U', 'F7', 'K')
  • false - Disables keybind (command only)

command

Chat command to open the skills menu.

command = 'skills'

Type: string

Usage: /skills - Opens the skills UI

Debug & Safety

Debug

Enables debug logging for troubleshooting.

Debug = false

Type: boolean

When enabled:

  • Logs skill operations to console
  • Shows detailed error messages
  • Displays XP calculations
  • Useful for development and troubleshooting

Disable in production for better performance.

GlobalMultipliers (v1.9.0)

Configure the global XP multiplier system for server-wide events.

GlobalMultipliers = {
    enabled = true,
}

Type: table

Options:

  • enabled (boolean) - Enable/disable global multiplier feature

Features:

  • Run double XP weekends
  • Temporary XP boosts for events
  • Server-wide promotions
  • Holiday bonuses

Usage:

-- Set via export
exports.dime_skills:setGlobalMultiplier(2.0, 7200) -- 2x for 2 hours

-- Set via command
/setglobalxp 2.0 7200

Multipliers stack with individual skill bonus multipliers. See Global Multipliers Guide for examples.

deductOnline

Controls when XP degradation occurs.

deductOnline = true

Type: boolean

Options:

  • true - Only deduct XP when player is online
  • false - Deduct XP even when player is offline

Built-in Skill Systems

Strength System

Controls strength skill effects on melee combat.

Strength = {
    enabled = true,
    baseModifier = -0.35,
    levelMultiplier = 1.00,
    minModifier = 0.05,
    maxModifier = 2.0,
}

Properties:

  • enabled (boolean): Enable/disable strength effects
  • baseModifier (number): Base damage modifier
  • levelMultiplier (number): Multiplier applied based on strength level
  • minModifier (number): Minimum possible modifier
  • maxModifier (number): Maximum possible modifier

Example: With default settings at level 0, approximately 8 melee hits are needed to kill.

Driving System

Controls driving skill effects and XP gain.

Driving = {
    enabled = true,
    SpeedUnit = 'MPH',
    SpeedThreshold = 100,
    validVehicleClasses = {
        [0] = true,   -- Compacts
        [1] = true,   -- Sedans
        [2] = true,   -- SUVs
        -- ... etc
    }
}

Properties:

  • enabled (boolean): Enable/disable driving skill effects
  • SpeedUnit ('MPH' | 'KMH'): Speed measurement unit
  • SpeedThreshold (number): Speed required to gain XP
  • validVehicleClasses (table<number, boolean>): Which vehicle classes grant XP

Vehicle Classes:

[0] = Compacts
[1] = Sedans
[2] = SUVs
[3] = Coupes
[4] = Muscle
[5] = Sports Classics
[6] = Sports
[7] = Super
[8] = Motorcycles
[9] = Off-road
[10] = Industrial
[11] = Utility
[12] = Vans
[13] = Cycles (Bicycles)
[14] = Boats
[15] = Helicopters
[16] = Planes
[17] = Service
[18] = Emergency
[19] = Military
[20] = Commercial
[21] = Trains

Set class to false to prevent XP gain for that vehicle type.

Stamina System

Controls stamina skill effects and XP gain methods.

Stamina = {
    enabled = true,
    xpGainMethod = "cooldown",
    action = {
        builtIn = true,
        cooldown = 30,
        xp = 10
    }
}

Properties:

  • enabled (boolean): Enable/disable stamina effects
  • xpGainMethod ('cooldown' | 'continuous'): How XP is gained
  • action.builtIn (boolean): Use built-in stamina tracking (don't modify)
  • action.cooldown (number): Seconds between XP gains
  • action.xp (number): XP amount per cooldown period

XP Gain Methods:

  • "cooldown" - Gain XP every X seconds while running/swimming
  • "continuous" - Gain XP continuously based on stamina usage

Diving System

Controls diving skill and oxygen mechanics.

Diving = true

Type: boolean

Enables diving skill which increases underwater breathing time.

DivingToStamina = {
    enabled = true,
    stepsToSkip = 2
}

Properties:

  • enabled (boolean): Also grant stamina XP while diving
  • stepsToSkip (number): How many diving XP gains before granting stamina

Crafting Skills

Enable skill requirements in ox_inventory crafting.

craftingSkills = true

Type: boolean

When enabled:

  • Crafting recipes can require skill levels
  • Successful crafts can reward skill XP
  • Automatic integration with ox_inventory

See Crafting Integration Guide for setup details.

Skill Tree DLC Integration

Configure integration with the optional Dime Skill Tree DLC add-on.

SkillTree = {
    enabled = true,
    pointsPerLevel = 1,
    excludedSkills = {},
}

Properties:

  • enabled (boolean): Enable/disable skill tree DLC integration
  • pointsPerLevel (number): Skill tree points granted per skill level
  • excludedSkills (table): Array of skill names that don't grant tree points

Example Configurations:

-- Standard: 1 point per level from all skills
SkillTree = {
    enabled = true,
    pointsPerLevel = 1,
    excludedSkills = {},
}

-- Exclude passive skills from granting points
SkillTree = {
    enabled = true,
    pointsPerLevel = 1,
    excludedSkills = {'stamina', 'diving'},
}

-- Double points for faster tree progression
SkillTree = {
    enabled = true,
    pointsPerLevel = 2,
    excludedSkills = {},
}

The Skill Tree DLC is a separate paid add-on. See Dime Skill Tree for details.

Skill Configuration

Each skill follows the same configuration structure. Here's a detailed breakdown:

Skill Structure

skills = {
    ['skill_name'] = {
        visuals = { ... },
        levels = { ... },
        rewardMax = number,
        reduceMax = number,
        job = 'string' -- optional
    }
}

Visual Properties

Controls how the skill appears in the UI.

visuals = {
    category = 'Crafting',
    label = 'Engineering',
    description = 'Create complex mechanisms and structures...',
    icon = 'tools'
}

Properties:

  • category (string): Skill category (groups skills in UI)
    • Examples: 'Character', 'Crafting', 'Illegal', 'Jobs'
  • label (string): Display name shown in UI
  • description (string): Detailed description shown when viewing skill
  • icon (string): FontAwesome icon name (without 'fa-' prefix)

Finding Icons: Visit fontawesome.com/icons for available icons.

Level Configuration

Controls leveling mechanics and XP requirements.

levels = {
    lvlMulti = { 
        default = 3, 
        [1] = 1.55, 
        [2] = 2.25, 
        [3] = 3 
    },
    lvlMax = 30,
    degrade = {
        enabled = true,
        time = 12,
        amount = 250
    }
}

Properties:

  • lvlMulti (table): XP multipliers per level
    • default (number): Default multiplier for unlisted levels
    • [level] (number): Specific multiplier for a level
  • lvlMax (number): Maximum achievable level
  • degrade (table, optional): XP degradation settings
    • enabled (boolean): Enable degradation for this skill
    • time (number): Hours between degradation
    • amount (number): XP amount to remove

XP Calculation:

required_xp = level * 100 * multiplier

Example:

  • Level 1 → 2: 1 * 100 * 1.55 = 155 XP
  • Level 5 → 6: 5 * 100 * 3 = 1500 XP
  • Level 10 → 11: 10 * 100 * 3 (default) = 3000 XP

Reward & Loss Limits

Safety limits for XP changes.

rewardMax = 20  -- Maximum XP gain per operation
reduceMax = 20  -- Maximum XP loss per operation

Type: number

Purpose:

  • Prevents exploits (giving too much XP)
  • Maintains game balance
  • Detects potential cheating attempts

Operations exceeding these limits will be logged (if Debug enabled) and may be blocked.

Job Restrictions

Lock skills to specific jobs (optional).

job = 'mechanic'

Type: string | nil

When set:

  • Only players with specified job can see/use the skill
  • XP gains are blocked for players without the job
  • Skill hidden from UI for unauthorized players

Examples:

job = 'mechanic'  -- Only mechanics
job = 'ambulance' -- Only EMS
-- job = nil      -- Available to all (don't include key)

Action Configuration

For built-in skills with automatic progression.

action = {
    builtIn = true,
    cooldown = 30,
    xp = 10,
    event = 'resource:eventName' -- optional
}

Properties:

  • builtIn (boolean): Uses internal progression system
  • cooldown (number): Seconds between automatic XP gains
  • xp (number): XP amount per progression
  • event (string, optional): Event triggered on level up

Only modify cooldown and xp values. Don't change builtIn for default skills.

Example Skill Configurations

Character Skill

['strength'] = {
    visuals = {
        category = 'Character',
        label = 'Bodybuilding',
        description = 'Build your muscular strength to enhance physical power.',
        icon = 'dumbbell'
    },
    levels = {
        lvlMulti = { default = 2.0 },
        lvlMax = 20
    },
    rewardMax = 450,
    reduceMax = 20,
    action = {
        builtIn = true,
        cooldown = 15,
        xp = 10
    }
}

Job-Locked Skill

['crafting'] = {
    visuals = {
        category = 'Crafting',
        label = 'Engineering',
        description = 'Create complex mechanisms and structures.',
        icon = 'tools'
    },
    levels = {
        lvlMulti = { 
            default = 3, 
            [1] = 1.55, 
            [2] = 2.25 
        },
        lvlMax = 30
    },
    rewardMax = 20,
    reduceMax = 20,
    job = 'mechanic'
}

Skill with Degradation

['stamina'] = {
    visuals = {
        category = 'Character',
        label = 'Endurance',
        description = 'Increase your physical stamina.',
        icon = 'running'
    },
    levels = {
        lvlMulti = { default = 2.0 },
        lvlMax = 1000,
        degrade = {
            enabled = true,
            time = 12,      -- Every 12 hours
            amount = 250    -- Lose 250 XP
        }
    },
    rewardMax = 500,
    reduceMax = 250,
    action = {
        builtIn = true,
        cooldown = 30,
        xp = 10
    }
}

Configuration Tips

Starting Out

  1. Use Defaults: Start with default configurations
  2. Test Thoroughly: Test XP gains and losses in-game
  3. Adjust Gradually: Make small changes and test
  4. Enable Debug: Use debug mode to see XP calculations

Balancing

  1. Consider Playtime: Balance XP rates with expected playtime
  2. Level Curve: Use multipliers to create a progression curve
  3. Max Level: Set realistic maximum levels
  4. Degradation: Use sparingly to avoid frustrating players

Performance

  1. Disable Unused Skills: Remove skills you don't need
  2. Reasonable Cooldowns: Don't set cooldowns too low
  3. Limit Degradation: Too much degradation increases database load
  4. Debug in Production: Always disable debug in production

Next Steps