CONFIG

CONFIG GUIDE FOR THE MORE COMPLICATED CONFIGS

1 - Choosing Framework

  • the framework code is all OPENSOURCE so if you your framework is not here you can still make it work by editing the OPENSOURCE

  • DEFAULT OPTIONS: - ESX - QB

  • The script will choose it automatically

2 - Extra items setup

Config.explosionItems = {
    ["weapon_stickybomb"] = {
        damage = 7500.0, -- damage to the prop
        delay = 5 -- time to explode (seconds)
    },
    ["weapon_grenade"] = {
        damage = 4000.0,
        delay = 5
    },
} -- if you want to use items for raiding 

Config.fuelItem = "petrol" ------- choose here the item you want o use as Fuel

Config.needCodeLockItem = "codelock" ---- here you can choose an item to be the code lock item, if you keep this as false code lock item will not be necessary 

3 - Choosing Target script

  • The script will choose it automatically

4 - Progress Bar

  • the Progress Bar code is all OPENSOURCE so if you your progress bar is not here you can still make it work by editing the OPENSOURCE

  • DEFAULT OPTIONS: - mythic_progbar - progress bar from QB-CORE - ox_lib - esx_progressbar

Config.UseProgressBar = true or false
  • Progress bar configuration: (example) The script comes with a lot of progress bar configs for different situations here is just one example, the progress CONFIG is based on mythic_progbar system for progress MORE INFO HERE: https://github.com/HalCroves/mythic_progbar

Config.ProgressBars = {
    ["prop_upgrade"] = {  ------ the progress bar name (see examples in main_unlocked)
        duration = 5000, ---- duration of the progress bar
        label = "Upgrading..", ----- label of the progress bar
        animation = {
            task  = 'WORLD_HUMAN_HAMMERING' ---- if you want to use  a task
            animDict = nil, -- if you want to use anim 
            anim = nil, -- if you want to use anim 
            flags = nil, ---- if you want to use flags
            prop = nil ---- if you want to use prop on hand
        }
    },
},

5 - Tutorial

  • the tutorial code is all OPENSOURCE

Config.showTutorial = true or false

6 - Blackout and Lights

  • As this script is usually used in Survival servers, usually people that own this servers use to activate blackout mode, making the lights in the game stop working, by setting this option to true you will make the script simulate light via script, so you can still use lights inside your base with Blackout ON

Config.usingBlackout = true

7 - Routing Buckets

  • If you want to use Routing Buckets or "dimensions" in your server activate this

Config.useRoutingBuckets = true
Config.useRoutingBucketsThread = true

8 - Raid Items and Weapons Damage

Config.explosionItems = {
    ["weapon_stickybomb"] = {
        damage = 7500.0, -- damage to the prop
        delay = 5 -- time to explode (seconds)
    },
    ["weapon_grenade"] = {
        damage = 4000.0,
        delay = 5
    },
} -- if you want to use items for raiding 

Config.weaponsDamage = {
    [`weapon_rpg`] = 20000.0
} -- if you want to use weapons for raiding you can use this, to choose the damage they give to props

9 - Disable Building Zones

  • As you probably have zones in your server you don't want people to build in you can setup those zones here:

Config.disableBuildingBlips = {
    label = "No build Zones",
    color = 1,
    alpha = 128,
    scale = 1.0,
    sprite = 364,
    shortRange = true      
} ----------- if you don't want blips just do (Config.disableBuildingBlips = false)

Config.disableBuilding = {
    {coords = vector3(215.578, -1135.859, 29.29675),radius = 400.0},
    {coords = vector3(111.30, -150.859, 31.0),radius = 200.0}
} ----------- zones to disable building

10 - Refresh times

Config.refreshTime = 300000 ------ ms (300000ms = 5min)
Config.refreshTimeLifeRemove = 2.5 ------ life removed every Config.refreshTime ms (FLOAT VALUE)
Config.refreshTimeFuelRemove = 1 ------ fuel removed every Config.refreshTime ms (if ON) (INT VALUE)

11 - Claim Props Type

  • This Props have two functions: - If you repair them you will repair the all base at once - If you put them on the ground you will Claim for you and your crew a radius of Config.claimPropType[type].radious

Config.claimPropType = {
    ["foundations"] = {radious = 9.0},
    ["bigwall"] = {radious = 9.0},
} ----- props that claim an area, if repaired they repair the all base

12 - How Props Work

  • EXAMPLE OF A SIMPLE BASE PROP:

["model_doorway_wood"] = { ---- item name
    item = "model_doorway_wood", --- item name
    life = 10000.0, --- how much health this prop has
    type = "walls", --- what Type it has
    subtype = "doorway", --- what subtype it has 
    upgrade = GetHashKey("model_doorway_metal"), ---- what prop you can upgrade this props to
    crafting = {
        {name = "wood",count = 20},
        {name = "nail",count = 5}, 
        -- this items will be the items that you will get multiplied by health percentage when removing the prop from the map 
        -- Will be the items that the scipt will ask you if you want to upgrade another prop to this one
        -- will be the items you will need to have to be able to fix the props multiplied by (100% - health percentage)
    }   
}, 


["model_doorway_metal"] = {
    item = "model_doorway_metal",
    life = 20000.0,
    type = "walls",
    subtype = "doorway",
    crafting = {
        {name = "metalscrap",count = 20}
    }
},
  • EXAMPLE OF GENERAL PROP WITH FUNCTIONS:

--------- CONFIG PART ---------------------------------------

["bkr_prop_biker_campbed_01"] = {
    item = "bkr_prop_biker_campbed_01",
    life = 10000.0,
    type = "beds",
    noFoundationNeed = true, --- if the prop can be put on the map without foundation
    subtype = "findGroud", ---- this subtype will make the prop stick to the ground position
    TriggerEvent = {
        type = "client",  --- the event type this prop will call if interact
        event = "hrs_base_building:Regen", ---- the event this prop wil call if you interact
        args = {"hrs_base_entity","bed",'health_regen_bed',90}, --- the arguments that will be sent
        entityAsArg = "hrs_base_entity" --- in the arguments, this word will be replaced by the Entity
    },
    crafting = {
        {name = "wood",count = 20}
    },
    workAsPillar = false, -- if true the prop will be considered as a pillar, usually used for walls 
    needsEletricity = false, -- if you want this prop to need or not eletricty to work
    disableIteract = false, -- if you want this prop to be interacteable or not
    noPermission = false, ------ if true, you will be able to interact with this prop even if you are not its owner or part of the owner crew
    mapProp = false, ---- if true you can interact with all props with this model that are around the map (like Ymap props)
},

------- EVENT EXAMPLE ---------------------

AddEventHandler('hrs_base_building:Regen', function(testEnt,type,anim,headingchange)
    local testEntcoords = GetEntityCoords(testEnt)
    local heading = GetEntityHeading(testEnt)
    local pedCoords = GetEntityCoords(PlayerPedId())
    local myPed = PlayerPedId()

    local isEmpty = true

    for k,v in ipairs(GetActivePlayers()) do
        if myPed ~= GetPlayerPed(v) then
            if #(testEntcoords - GetEntityCoords(GetPlayerPed(v))) < 1.2 then
                isEmpty = false
                break
            end
        end
    end

    if isEmpty then
        FreezeEntityPosition(myPed,true)
        SetEntityCoords(myPed,testEntcoords.x,testEntcoords.y,testEntcoords.z)

        SetEntityHeading(myPed,heading + headingchange)

        if progressBar(anim) then
            SetEntityHealth(myPed,GetEntityMaxHealth(myPed))
            ShowNotification("Life Regenerated") 
        end

        SetEntityCoords(myPed,pedCoords.x,pedCoords.y,pedCoords.z)
        FreezeEntityPosition(myPed,false)
    else
        ShowNotification("There is someone else sleeping")
    end
end)
  • EXAMPLE OF GENERATOR PROP:

['prop_generator_01a'] = {
    item = "prop_generator_01a",
    life = 20000.0,
    fuelTank = 10.0, ------- how much fuel you can put inside off the generator
    type = "generator",
    subtype = "findGroud",
    crafting = {
        {name = "metalscrap",count = 20}
    }
},
  • EXAMPLE STORAGES

["prop_box_wood01a"] = {
    weight = 50000, ---- how much weight the storage has
    item = "prop_box_wood01a",
    life = 10000.0,
    type = "storages",
    subtype = "findGroud",
    slots = 50, --- how much slots it has
    crafting = {
        {name = "wood",count = 20}
    }
},
  • EXAMPLE LAMPS

['prop_worklight_01a'] = {
    item = "prop_worklight_01a",
    life = 20000.0,
    type = "light",
    subtype = "findGroud",
    noFoundationNeed = true,
    zChange = 1.80, -------- height of the light position
    fChange = 0.10, -------- front vector change
    crafting = {
        {name = "metalscrap",count = 5}
    }
},

Last updated