๐Ÿช›Installation & Configuration

1

Add the resource

Drag the dynyx_rc folder into your resources directory.

Make sure to rename the script from dynyx_rc-main to dynyx_prison or it will not work. Then make sure its in the correct location so the server can access it. Once done, add ensure dynyx_rc to your server.cfg to activate the script.

2

Install Dependencies

Ensure all required dependencies for the script are installed and up to date.

Dependencies usually include core resources like the frameworks (QBCore, QBox or ESX), target systems (ox_target or qb-target) and an inventory system like (ox_inventory, qb-inventory, or ps-inventory). Missing dependencies may prevent the script from working property.

3

Configure Inventory Integration

Navigate to your inventory folder.

Choose the correct guide for your inventory system. Each guide has specific instructions and images for setting up item images and ensuring full compatibility with your chosen inventory.

Configuration:

Config = {}

-- Sets the language/locale used for all UI text and notifications.
-- Available options: 'en' (English), 'es' (Spanish), 'fr' (French), 'de' (German)
Config.Lan = 'en'

--========================================================
-- Framework integrations (set to the resource you use)
--========================================================
Config.Notifications = "ox_lib"      -- Notification system to use ("ox_lib", "qb-core")
Config.Inventory     = "ox_inventory" -- Inventory system to use ("ox_inventory", "qb-inventory", "ps-inventory")
Config.Target        = "ox_target"    -- Target system to use ("ox_target", "qb-target")
Config.ProgressBar   = "ox_lib"       -- Progress bar System to use ("ox_lib", "qb-core")

-- Hide your HUD while inside RC Customs/Flying Drone/Driving RC - You must set you hud at the bottom of the config
Config.HideHud = false

--========================================================
-- RC Customs locations & access
--========================================================


Config.rcCustomsCoords = vector4(-146.3614, -596.6284, 166.0000, 270.2807) -- This is where the player will be teleported when customizing their RC car.

Config.RCCustomizationZones = {
    {
        -- ๐Ÿ›  Example Customization Zone #1 (City)
        center = vec3(735.0612, -1065.3237, 22.1684), -- Center of the zone (coords where players stand)
        radius = 6.0,                                 -- Size of the interaction area (larger = more forgiving)
    },
    {
        -- ๐Ÿ›  Example Customization Zone #2 (Sandy Shores)
        center = vec3(1991.3525, 3793.5391, 32.1808),
        radius = 6.0,
    },
}

Config.RCTargetCustomizationZones = {
    {
        -- ๐Ÿ›  Example Zone #1 โ€” Job & Citizen Restricted
        center        = vec3(-323.6004, -129.4949, 39.0100), -- Center of the interaction zone
        radius        = 1.0,                                 -- How far from the center players can interact
        debug         = false,                               -- Enable to visualize the zone in-game (dev use only)
        
        -- Restrict access by job or specific CitizenIDs
        groups        = { 'mechanic', 'bennys' },            -- Only players with these jobs can use this zone
        citizenID     = { 'ABC12345', 'XYZ67890' },          -- Only these CitizenIDs can use (leave empty for none)

        -- Enable repairs at this location
        CanRepairDrone= true,                                -- Allow repairing drones here
        CanRepairRcCar= true,                                -- Allow repairing RC cars here

        -- Optional prop to spawn a physical bench at this zone
        Prop = {
            enabled    = false,                              -- true = spawn a bench/prop
            model      = `gr_prop_gr_bench_04a`,             -- Prop model to spawn
            heading    = 0.0,                                -- Rotation of the prop
            offset     = vec3(0.0, 0.0, 0.0),                -- Offset from the center if you want to adjust placement
            frozen     = true,                               -- Prevent the prop from being moved
            invincible = true,                               -- Make the prop indestructible
            distance   = 2.0,                                -- How close players must be to interact
        },
    },
    {
        -- ๐Ÿ›  Example Zone #2 โ€” Public Access
        center        = vec3(-199.8964, -1321.0529, 31.0894),
        radius        = 1.0,
        debug         = true,                                -- Debug ON to visualize this zone (useful for setup)
        
        -- No group/citizen restrictions: anyone can access this
        groups        = {},                                  -- Leave empty for public
        citizenID     = {},                                  -- Leave empty for public

        CanRepairDrone= true,
        CanRepairRcCar= true,

        Prop = {
            enabled    = true,                               -- This zone spawns a visible bench
            model      = `gr_prop_gr_bench_04a`,
            heading    = 180.0,
            offset     = vec3(0.0, 0.0, 0.0),
            frozen     = true,
            invincible = true,
            distance   = 2.0,
        },
    },
}


--========================================================
-- RC Car Definitions
--========================================================
Config.RcCars = {
    ['rc_car'] = {
        Label        = "RC Car",
        maxRange     = 300,               -- control range (meters)
        batteryItem  = 'rccar_battery',  -- item used to recharge/swap battery
        batteryregen = 100,              -- amount restored on recharge/swap

        BaseBattery  = 90.0,             -- starting battery (%)
        BaseHealth   = 95.0,             -- starting health (%)

        Abilities = {
            canToggleCamera = true,      -- enable in-vehicle camera switching
            nightVision     = true,
            thermalVision   = true,
        },

        -- Damage from physical collisions
        Collision = {
            Enabled         = true,
            SpeedThreshold  = 0.15,      -- minimum m/s to count as a hit
            CooldownMs      = 3000,      -- min delay between hits
            Min             = 10,        -- min damage per hit
            Max             = 25,        -- max damage per hit
            ScaleBySpeed    = false,     -- scale damage by speed if true
            ScaleMultiplier = 0.15,      -- extra dmg per m/s (if ScaleBySpeed)
        },

        -- Repair cost settings at customs/benches
        Repair = {
            enabled       = true,
            costPerPercent= 10,          -- cost per 1% health restored
            minimumCost   = 5000,        -- floor price
            maximumCost   = 10000,       -- cap price
        },
        Speed = {
            Enabled         = true, -- true = override stock handling at runtime; false = use the model's default handling

            MaxSpeed        = 45.0, -- fInitialDriveMaxFlatVel (meters/second). Higher = higher top speed. (also set SetVehicleMaxSpeed(veh, MaxSpeed) to remove residual caps.)            
            Acceleration    = 0.22, -- fInitialDriveForce (~0.18 is around stock rcbandito). Higher = faster acceleration.
            BrakeForce      = 0.30  -- fBrakeForce Higher = stronger brakes / shorter stopping distance.
        }
    }
}

--========================================================
-- Drone Definitions
--========================================================
Config.Drones = {
    ['drone'] = {
        Label        = "Dynyx Aero",
        DroneProp    = `reh_prop_reh_drone_02a`, -- spawned world prop
        DroneSound   = true,                     -- enable looped prop sound
        maxRange     = 300,                      -- control range (meters)
        batteryItem  = 'drone_battery',          -- item used to recharge/swap
        batteryregen = 100,                      -- amount restored on recharge/swap

        BaseBattery  = 100.0,                    -- starting battery (%)
        BaseHealth   = 100.0,                    -- starting health (%)

        Abilities = {
            canTogglePOV  = true,               -- Allow switching between 1st person and 3rd person camera views
            nightVision   = false,              -- Enable/disable night vision mode for this drone/RC car
            thermalVision = false,              -- Enable/disable thermal vision mode (heat signatures)
            spotlight     = false,              -- Enable/disable a controllable spotlight feature
        },


        -- Damage from players shooting the drone
        PlayerShotImpact = {
            Enabled      = true,                 -- enable bullet damage
            hitDamageMin = 2,                    -- min damage per bullet
            hitDamageMax = 5,                    -- max damage per bullet
        },

        -- Damage from physical collisions
        Collision = {
            Enabled         = true,
            SpeedThreshold  = 0.15,              -- minimum m/s to count as a hit
            CooldownMs      = 3000,              -- min delay between hits
            Min             = 10,                -- min damage per hit
            Max             = 25,                -- max damage per hit
            ScaleBySpeed    = false,
            ScaleMultiplier = 0.15,
            Effect          = true,              -- enable/disable the effect (true = on, false = off)
            EffectScale     = 0.5                -- effect intensity multiplier; 1.0 = default, <1.0 softer, >1.0 stronger
        },

        -- Damage while touching water
        Water = {
            Enabled          = true,             -- disable to make waterproof
            DamagePerSecond  = 25,               -- DPS while in water
            TickMs           = 1000,             -- damage interval
            FirstTickInstant = true,             -- apply damage immediately on first contact
            Effect           = true,             -- enable/disable the effect (true = on, false = off)
            EffectScale      = 1.0               -- effect intensity multiplier; 1.0 = default, <1.0 softer, >1.0 stronger
        },

        -- โœˆ๏ธ Flight tuning (feel/response)
        FlightTuning = {
            maxSpeed         = 0.25,             -- forward/back m/s
            strafeSpeed      = 0.05,             -- left/right m/s
            verticalSpeed    = 0.08,             -- up/down (Q/E) m/s
            accel            = 0.012,            -- W/S acceleration
            decel            = 0.012,            -- W/S deceleration
            strafeAccel      = 0.010,
            verticalAccel    = 0.008,
            mouseSensitivity = 1.0,              -- camera turn rate
        },

        -- Placement preview outline
        PlacementSystem = {
            DrawOutline      = true,
            DrawOutlineColor = { r = 255, g = 215, b = 0, a = 255 },
        },
    },

    ['drone_mini'] = {
        Label        = "Dynyx V1-Lite",
        DroneProp    = `xs_prop_arena_drone_02`,
        DroneSound   = true,
        maxRange     = 150,
        batteryItem  = 'drone_battery',
        batteryregen = 100,

        BaseBattery  = 50.0,
        BaseHealth   = 65.0,

        Abilities = {
            canTogglePOV = false,
            nightVision  = false,
            thermalVision = false,
            spotlight    = false,
        },

        PlayerShotImpact = {
            Enabled      = true,
            hitDamageMin = 2,
            hitDamageMax = 5,
        },

        Collision = {
            Enabled         = true,
            SpeedThreshold  = 0.15,
            CooldownMs      = 3000,
            Min             = 10,
            Max             = 25,
            ScaleBySpeed    = false,
            ScaleMultiplier = 0.15,
            Effect          = true,
            EffectScale     = 0.5
        },

        Water = {
            Enabled          = true,
            DamagePerSecond  = 25,
            TickMs           = 1000,
            FirstTickInstant = true,
            Effect           = true,
            EffectScale      = 1.0
        },

        FlightTuning = {
            maxSpeed         = 0.20,
            strafeSpeed      = 0.05,
            verticalSpeed    = 0.08,
            accel            = 0.008,
            decel            = 0.008,
            strafeAccel      = 0.005,
            verticalAccel    = 0.004,
            mouseSensitivity = 1.5,
        },

        PlacementSystem = {
            DrawOutline      = true,
            DrawOutlineColor = { r = 255, g = 215, b = 0, a = 255 },
        },
    },

    ['police_drone'] = {
        Label        = "Dynyx PD-01",
        DroneProp    = `ch_prop_casino_drone_02a`,
        DroneSound   = true,
        maxRange     = 450,
        batteryItem  = 'drone_battery',
        batteryregen = 100,

        BaseBattery  = 100.0,
        BaseHealth   = 100.0,

        Abilities = {
            canTogglePOV  = true,
            nightVision   = true,
            thermalVision = true,
            spotlight     = true,
        },

        PlayerShotImpact = {
            Enabled      = true,
            hitDamageMin = 1,
            hitDamageMax = 3,
        },

        Collision = {
            Enabled         = true,
            SpeedThreshold  = 0.15,
            CooldownMs      = 3000,
            Min             = 10,
            Max             = 25,
            ScaleBySpeed    = false,
            ScaleMultiplier = 0.15,
            Effect          = true,
            EffectScale     = 0.5
        },

        Water = {
            Enabled          = true,
            DamagePerSecond  = 25,
            TickMs           = 1000,
            FirstTickInstant = true,
            Effect           = true,
            EffectScale      = 1.0
        },

        FlightTuning = {
            maxSpeed         = 0.50,
            strafeSpeed      = 0.05,
            verticalSpeed    = 0.08,
            accel            = 0.008,
            decel            = 0.015,
            strafeAccel      = 0.005,
            verticalAccel    = 0.004,
            mouseSensitivity = 1.0,
        },

        PlacementSystem = {
            DrawOutline      = true,
            DrawOutlineColor = { r = 255, g = 215, b = 0, a = 255 },
        },
    },
}

--========================================================
-- Spotlight (police drone / spotlight ability)
--========================================================
Config.SpotlightSettings = {
    Color      = { r = 255, g = 255, b = 200 }, -- warm white
    Distance   = 35.0,   -- beam length (meters); 25โ€“50 recommended
    Brightness = 12.0,   -- intensity; increase for daytime visibility
    Hardness   = 1.0,    -- edge hardness (0.0โ€“1.0)
    Radius     = 20.0,   -- spot radius; lower for tighter beam (4โ€“10 feels realistic)
    Falloff    = 5.0,    -- brightness falloff from center (3โ€“10)
    Shadow     = 1,      -- set 0 if your build shows more consistent results without shadows
}

-- Toggle your external HUD when entering/exiting RC Customs
function ToggleHud(state)
    if Config.HideHud then
        exports['hud']:ToggleVisible(state)
    end
end

Last updated