Brunx
  • Home
  • Cinema System
    • Installation
    • Configuration
      • Language
      • Setting up cinema
      • Setting up store
      • Keybinds and commands
    • Frameworks
      • Client guide
      • Server guide
    • Exports and events
      • Client events
      • Server events
      • State bags
  • Ice-O-Rink System
    • Installation
    • Configuration
      • Ice Skates
      • Language
      • Setting up controls
      • Setting up wardrobe
      • Setting up peds
      • Setting up store
      • Keybinds and commands
    • Frameworks
      • Server guide
    • Inventorys
      • Server guide
      • Items
    • Exports and events
      • Server exports
      • Server events
      • State bags
Powered by GitBook
On this page
  1. Ice-O-Rink System
  2. Configuration

Setting up controls

PreviousLanguageNextSetting up wardrobe

Last updated 20 days ago

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: .

  • 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: .

  • 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
},

After creating your custom control inside config.controls, you also need to add an in-game description so players know how to use it.

To do this, navigate to: brnx-iceorinksystem/modules/client/custom/functions/helpText.lua

Inside this file, there is a function responsible for displaying help messages on the screen (e.g., "Press W to move forward").

🔧 You must add your new control here, with a short instruction label, so it properly appears in the game for the player.

This makes your control not only functional, but also easy to understand and user-friendly.

FiveM Control Index
FiveM Native Actions