toolsConfig Validator

Config Validator

Validate QBCore configuration files for errors, optimization opportunities, and best practices compliance.

Overview

The Config Validator analyzes your QBCore configuration files to identify syntax errors, logical inconsistencies, performance issues, and deviations from best practices. Ensure your server runs smoothly with properly validated configurations.

Configuration Validator

Validate your QBCore configuration files for syntax errors, performance issues, and best practices compliance.

Upload File

Drag and drop your config file here or click to browse

Supported files: .lua, .js, .json, .cfg

Paste Content

0 characters

What We Check

Syntax Errors

Missing commas, brackets, quotes

Variable References

Undefined or misnamed variables

Data Types

Incorrect value types and formats

Performance

Inefficient configurations

Security

Hardcoded credentials and secrets

Best Practices

QBCore conventions and standards

Validation Features

Syntax Validation

  • Lua Syntax Check: Validates proper Lua syntax and structure
  • JSON Validation: Ensures valid JSON format for configuration files
  • Bracket Matching: Detects missing or mismatched brackets and parentheses
  • Quote Validation: Checks for properly closed strings and quotes

Logical Validation

  • Variable References: Ensures all referenced variables are defined
  • Data Type Checking: Validates correct data types for configuration values
  • Range Validation: Checks if numeric values are within acceptable ranges
  • Dependency Checking: Verifies required dependencies and configurations

Performance Analysis

  • Memory Usage: Identifies configurations that may cause memory issues
  • Optimization Opportunities: Suggests ways to improve configuration performance
  • Redundancy Detection: Finds duplicate or unnecessary configuration entries
  • Load Time Analysis: Estimates configuration loading impact

Security Scanning

  • Credential Detection: Finds hardcoded passwords and sensitive information
  • Permission Validation: Checks for proper permission configurations
  • Access Control: Validates security-related settings
  • Vulnerability Assessment: Identifies potential security risks

Common Configuration Issues

Syntax Errors

-- ❌ Missing comma
Config.Jobs = {
    ['police'] = { label = 'Police' grade = 0 }
    ['ambulance'] = { label = 'EMS', grade = 0 }
}
 
-- ✅ Correct syntax
Config.Jobs = {
    ['police'] = { label = 'Police', grade = 0 },
    ['ambulance'] = { label = 'EMS', grade = 0 }
}

Variable Issues

-- ❌ Undefined variable
if players > Config.MaxPlayer then -- 'MaxPlayer' should be 'MaxPlayers'
    return false
end
 
-- ✅ Correct variable name
if players > Config.MaxPlayers then
    return false
end

Data Type Problems

-- ❌ Wrong data type
Config.EnableFeature = "true" -- Should be boolean, not string
 
-- ✅ Correct data type
Config.EnableFeature = true

Performance Issues

-- ❌ Inefficient nested loops in config
Config.Items = {}
for i = 1, 1000 do
    for j = 1, 100 do
        -- Heavy computation in config
    end
end
 
-- ✅ Pre-computed or optimized
Config.Items = PrecomputedItemList

Best Practices

Configuration Structure

-- Recommended config structure
Config = {}
 
-- Debug and development settings
Config.Debug = false
Config.Locale = 'en'
 
-- Core settings grouped logically
Config.Server = {
    Name = "My QBCore Server",
    MaxPlayers = 64,
    RestartTime = { 6, 18 } -- 6 AM and 6 PM
}
 
Config.Economy = {
    StartingMoney = { cash = 500, bank = 5000 },
    PaycheckInterval = 30, -- minutes
    TaxRate = 0.15
}
 
-- Feature flags for easy toggling
Config.Features = {
    Banking = true,
    Housing = true,
    Vehicles = true,
    Jobs = true
}

Environment Variables

-- ❌ Hardcoded sensitive data
Config.Database = {
    Host = "localhost",
    Username = "root",
    Password = "mypassword123"
}
 
-- ✅ Use environment variables
Config.Database = {
    Host = GetConvar('mysql_host', 'localhost'),
    Username = GetConvar('mysql_user', 'qbcore'),
    Password = GetConvar('mysql_password', '')
}

Localization Support

-- Proper localization structure
Config.Locale = GetConvar('qb_locale', 'en')
 
Config.Locales = {
    ['en'] = {
        ['welcome'] = 'Welcome to the server!',
        ['goodbye'] = 'Thanks for playing!'
    },
    ['es'] = {
        ['welcome'] = '¡Bienvenido al servidor!',
        ['goodbye'] = '¡Gracias por jugar!'
    }
}

Validation Rules

Critical Rules (Errors)

  • Syntax Errors: Invalid Lua syntax that prevents loading
  • Undefined Variables: References to non-existent configuration values
  • Type Mismatches: Wrong data types that cause runtime errors
  • Missing Dependencies: Required configurations not present

Warning Rules

  • Performance Issues: Configurations that may impact server performance
  • Security Concerns: Potential security vulnerabilities
  • Deprecated Settings: Outdated configuration options
  • Inconsistent Naming: Non-standard naming conventions

Information Rules

  • Optimization Suggestions: Ways to improve configuration efficiency
  • Best Practice Recommendations: QBCore community standards
  • Documentation Notes: Missing or incomplete documentation
  • Update Notices: Available configuration improvements

Integration

Automated Validation

# Add to your deployment script
qb-config-validator --input configs/ --output report.json --format json
 
# CI/CD integration
- name: Validate Configurations
  run: |
    npm install -g qb-config-validator
    qb-config-validator --input . --fail-on-error

Pre-commit Hooks

{
  "scripts": {
    "pre-commit": "qb-config-validator --staged-only"
  }
}

Pro Tip: Run configuration validation before every server restart to catch issues early. Set up automated validation in your development workflow to maintain code quality.

Need help fixing configuration issues? Check our configuration guide or visit our support community.