Setting up controls

1

Go to config.lua

You can easily configure or add a new control to our script by accessing the following directory: brnx-iceorinksystem/modules/shared/config.lua. This file provides all the necessary options for customization, ensuring a seamless integration tailored to your needs.

2

Create control

New actions by adding more entries to this list. Here's what each field means:

  • firstControl: The main key that triggers the action. You can find control codes here: FiveM Control Index.

  • secondControl (optional): If set, the action only triggers when both firstControl and secondControl are pressed together.

  • action: The ID of the action to execute (e.g., turning, accelerating, etc). Reference: FiveM Native Actions.

  • maxSpeed (optional): Sets the maximum speed (in km/h) that the player can reach when this control is active.

  • callback (optional): A function that executes custom logic when the control is triggered (e.g., animations, boosts, etc).

You can mix and match control keys, actions, speed limits, and custom behavior to create a unique skating experience.

brnx-iceorinksystem/modules/config/config.lua
-- Here is an example of a new control

--[[ W + CTRL FUNCTION (Speed Boost) ]]--
{
    firstControl = 71,  -- W
    secondControl = 36, -- CTRL
    action = 9,         -- Optional: assign any predefined action ID
    maxSpeed = 45,      -- Maximum speed in km/h during this boost
    callback = function()
        local ply <const> = PlayerPedId()

        if not holdingBoost then
            holdingBoost = true

            Citizen.CreateThread(function()
                ClearPedTasks(ply)

                -- Optional animation for the boost (can be changed)
                TaskPlayAnim(ply, "move_m@brave", "run", 5.0, 8.0, 1500, 0, 0, false, false, false)

                -- Apply a velocity boost to the skates entity
                local velocity = GetEntityVelocity(Skates.Entity)
                SetEntityVelocity(Skates.Entity, velocity.x * 1.4, velocity.y * 1.4, velocity.z)

                -- Prevent spam by adding a short cooldown
                Citizen.Wait(1000)
                holdingBoost = false
            end)
        end
    end
},

Last updated