config.lua

Information regarding boii_base server configuration options.

Code

-- new user settings
server_config.new_users = {
    unique_id = {prefix = 'boii_', digits = math.random(111111, 999999)} -- player unique id default: boii_123456
}

-- routing bucket settings
server_config.routing_buckets = {
    locked_buckets = 2, -- amount of locked buckets to remain reserved; 0 is default bucket
    buckets = {
        --[[
            NOTES:

            mode; 
                'strict' -- no entities can be created by clients at all
                'relaxed' -- only script-owned entities created by clients are blocked
                'inactive' -- clients can create any entity they want          
            population;
                false -- population disabled
                true -- population enabled
            staff_only; 
                false -- all users can enter bucket
                true -- only staff can enter bucket
            staff_ranks;
                {'admin', 'developer'} -- staff ranks that can enter bucket  
            event;
                false -- all users can enter bucket
                true -- only users with event_access marked in database can enter bucket
            vip;
                false -- all users can enter bucket
                true -- only vip users with the required vip_level can enter bucket
            capacity;
                value -- amount of players allowed to enter bucket    
        ]]

        [0] = {name = 'Main World', mode = 'relaxed', population = true, default_spawn = vec4(-268.47, -956.98, 31.22, 208.54), default_respawn = vec4(341.28, -1396.83, 32.51, 48.78), staff_only = false, staff_ranks = {}, event = false, vip = false, vip_level = 0, capacity = 64},
        [1] = {name = 'Staff World', mode = 'relaxed', population = false, default_spawn = vec4(-268.47, -956.98, 31.22, 208.54), staff_only = true, staff_ranks = {'admin', 'developer'}, event = false, vip = true, vip_level = 1, capacity = 64},

    }
}

-- sync settings
server_config.sync = {
    weather_interval = 10, -- time in mins to change weather type for all clients
}

-- new character settings
server_config.new_characters = {
    balances = {
        --[[
            NOTES:
            additional starting balances can be added here if required
            negative_allowed; false -- balance cannot go into negative values | true -- balance can go into negative values
        ]]

        ['bank'] = { ['label'] = 'Bank', ['amount'] = 5000, ['negative_allowed'] = true},
        ['savings'] = { ['label'] = 'Savings', ['amount'] = 0, ['negative_allowed'] = false}
    },    
    jobs = {
        --[[
            NOTES: 
            additional job slots can be added here if required
            example;
            
            ['real_estate'] = {type = 'primary', label = 'Dynasty 8', grade = 0, grade_label = 'Estate Agent', salary = 200, on_duty = true, duty_pay_only = false}, -- default job all players start with
            ['taxi'] = {type = 'secondary', label = 'Downtown Cab Co', grade = 0, grade_label = 'Taxi Driver', salary = 100, on_duty = false, duty_pay_only = true} -- secondary job slot 

            type;  'primary' -- default starting job for new characters | 'secondary' -- players can have multiple secondary jobs
            on_duty; false -- player will not be on duty after joining | true -- player will be on duty after joining
            duty_pay_only;  false -- player does not have to be "on duty" to receive incremental payments | true -- player has to be "on duty" to receive incremental payments    
        ]]

        ['unemployed'] = { ['id'] = 'unemployed', ['type'] = 'primary', ['category'] = 'civilian', ['label'] = 'Unemployed', ['grade'] = 0, ['grade_label'] = 'Freelance', ['salary'] = 10, ['on_duty'] = false},
        ['empty'] = { ['id'] = 'empty', ['type'] = 'secondary', ['category'] = 'civilian', ['label'] = 'Empty', ['grade'] = 0, ['grade_label'] = 'Empty', ['salary'] = 0, ['on_duty'] = false},

    },
    skills = {
        --[[
            NOTES:

            additional default skills can be added here if required

            type; category type for skills can add as many types as required
            first_level_xp; amount of xp required for level 1 - 2
            growth_factor; growth factor to increase required amount of xp needed for the next level                   
            max_level; max level players can reach    
        ]]

        ['driving'] = { ['id'] = 'driving', ['type'] = 'base', ['label'] = 'Driving', ['level'] = 1, ['xp'] = 0, ['first_level_xp'] = 1000, ['growth_factor'] = 1.5, ['max_level'] = 10},
        ['flying'] = { ['id'] = 'flying', ['type'] = 'base', ['label'] = 'Flying', ['level'] = 1, ['xp'] = 0, ['first_level_xp'] = 500, ['growth_factor'] = 1.6, ['max_level'] = 10},
        ['wheelie'] = { ['id'] = 'wheelie', ['type'] = 'base', ['label'] = 'Wheelie', ['level'] = 1, ['xp'] = 0, ['first_level_xp'] = 800, ['growth_factor'] = 1.5, ['max_level'] = 10},
        ['lung_capacity'] = { ['id'] = 'lung_capacity', ['type'] = 'base', ['label'] = 'Lung Capacity', ['level'] = 1, ['xp'] = 0, ['first_level_xp'] = 700, ['growth_factor'] = 1.3, ['max_level'] = 10},
        ['stamina'] = { ['id'] = 'stamina', ['type'] = 'base', ['label'] = 'Stamina', ['level'] = 1, ['xp'] = 0, ['first_level_xp'] = 900, ['growth_factor'] = 1.7, ['max_level'] = 10},
        ['strength'] = { ['id'] = 'strength', ['type'] = 'base', ['label'] = 'Strength', ['level'] = 1, ['xp'] = 0, ['first_level_xp'] = 600, ['growth_factor'] = 1.6, ['max_level'] = 10},
        ['swimming'] = { ['id'] = 'swimming', ['type'] = 'base', ['label'] = 'Swimming', ['level'] = 1, ['xp'] = 0, ['first_level_xp'] = 800, ['growth_factor'] = 1.4, ['max_level'] = 10},
        ['shooting'] = { ['id'] = 'shooting', ['type'] = 'base', ['label'] = 'Shooting', ['level'] = 1, ['xp'] = 0, ['first_level_xp'] = 1000, ['growth_factor'] = 1.2, ['max_level'] = 10},
        ['stealth'] = { ['id'] = 'stealth', ['type'] = 'base', ['label'] = 'Stealth', ['level'] = 1, ['xp'] = 0, ['first_level_xp'] = 700, ['growth_factor'] = 1.6, ['max_level'] = 10}

    },
    statuses = {
        --[[
            NOTES:
            additional statuses could be added here however code editing would be be required for both html and status modifiers
        ]]
        ['health'] = 200,
        ['armour'] = 0,
        ['hunger'] = 100,
        ['thirst'] = 100,
        ['stress'] = 0,
        ['oxygen'] = 100,
        ['hygiene'] = 100
    },
    booleans = {
        --[[
            NOTES:
            additional boolean values can be added here
            currently no functionality implemented
        ]]
        ['dead'] = false, 
        ['handcuffed'] = false,
        ['ziptied'] = false,
        ['wanted'] = false,
        ['jail'] = false,
        ['safezone'] = false,
        ['inside'] = false,
        ['grouped'] = false
    },
    licences = {
        --[[
            NOTES:
            additional license types can be added here
            currently no functionality implemented
        ]]
        ['driver'] = {['class_a'] = false, ['class_b'] = false, ['class_c'] = false, ['class_m1'] = false, ['class_m2'] = false},
        ['flying'] = {['student'] = false, ['recreational'] = false, ['sport'] = false, ['private'] = false, ['commercial'] = false},
        ['sailing'] = {['boaters'] = false}
    },
    inventory = {
        slots = 36, -- starting amount of slots for new players
        weight = 800000, -- starting carry weight in grams this is increased by strength skill level
        starter_items = {
            --[[ 
                NOTES: 
                adjust starter items new characters will receive here

                slot; the slot number to place the item in                    
                id; the id name of the item                
                type; assigned type for item 
                label;  label of item
                image; image path, images stored in html/assets/images/inventory       
                quantity; item amount                    
                max_stack; maximum amount of items allowed per stack
                weight; item weight in grams
                quality; item starting quality to degrade if can_degrade = true       
                description; item description
                hotbar; false - item placed in inventory | true - item placed in hotbar
                can_degrade; false - item cannot degrade | true - item can degrade, ensure quality rating is set                    
                unique; false - more than 1 item can be carried | true - only 1 of the item can be carried    
            ]]
            ['passport'] = { ['slot'] = 1, ['id'] = 'passport', ['type'] = 'identity', ['label'] = 'Passport',  ['image'] = 'passport.png', ['quantity'] = 1, ['max_stack'] = 10, ['weight'] = 5, ['quality'] = '', ['description'] = 'This is your passport.',  ['hotbar'] = true, ['can_degrade'] = false, ['unique'] = true },    
        }
    }
}

-- discord settings
server_config.discord = {
    bot_data = {  -- discord bot data
        name = '-🛡️- BOII | Roleplay Framework -🛡️-',
        logo = 'https://imgur.com/lXDXHdZ',
        footer = {
            ['text'] = '© - BOII | Development ',
            ['icon'] = 'https://imgur.com/lXDXHdZ'
        },
    } ,
    webhooks = { -- discord webhooks refer to; https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks
        ['testing'] = '',
    },
    colours = { -- webhook colours can find more here; -- https://www.spycolor.com/
        ['default'] = 5098434,
        ['red'] = 13323606,
        ['green'] = 65280,
        ['white'] = 16777215,
        ['black'] = 0,
        ['blue'] = 205,
        ['orange'] = 16744192,
        ['yellow'] = 16776960,
        ['pink'] = 16761035,
    }
}

New Users

...

Routing Buckets

The framework is using routing buckets to place players in character select/creation into their own bucket. The plan is to also integrate additional buckets for other things e.g. event worlds.

Sync

...

New Characters

...

Discord

Discord settings used by webhooks, the webhooks section will have additional hooks added as the framework logging improves

Last updated