βš™οΈConfiguration

This guide covers all configurable options in the DevHub Racing script, organized by category and file location.

Shared Configuration (configs/sh.config.lua)

Debug and Development

Config.Debug = true
Config.DevMode = false
  • Debug: Enables debug mode for troubleshooting and logging additional information.

  • DevMode: Displays developer-related information for testing purposes.

Skill Tree Integration

Config.SkillTreeEnabled = false
  • SkillTreeEnabled: Enables skill tree integration (requires devhub_skillTree to be ensured first).

  • Must be set to true and the skill tree resource must be started before this script.

Checkpoint System

Config.EnableCheckpointMarkers = true
  • EnableCheckpointMarkers: Enables/disables the 3D checkpoint marker system with UI and props.

  • Disabling this will reduce resource monitor usage but remove visual markers.

Race Blips Configuration

  • enabled: Show/hide race start blips on the map.

  • showDistance: Distance in meters to display race blips (default: 2000m / 2km).

  • groupingDistance: Distance in meters to group nearby races into single blip (default: 50m).

  • blipSprite: Blip icon sprite ID (315 = racing flag).

  • blipColor: Blip color ID (46 = default race color).

  • blipScale: Size of the blip icon.

  • blipName: Display name for race start blips.

Checkpoint Blips Configuration

  • enabled: Show/hide checkpoint blips during active races.

  • blipScale: Default size for all checkpoint blips.

  • startSprite/Color/Name: Settings for the start line checkpoint blip.

  • finishSprite/Color/Name: Settings for the finish line checkpoint blip.

  • nextCheckpointSprite/Color/Name: Settings for the next active checkpoint blip.

  • checkpointSprite/Color/Name: Settings for regular checkpoint blips.

MMR (Match Making Rating) System

  • DefaultMmr: Starting MMR points for new players (default: 1000).

  • AllowMrrOnAllRaces: If true, players can earn MMR on all races (not just official ones).

  • LeaderboardCacheTimeout: Cache refresh interval in milliseconds (default: 15 minutes).

  • MaxMmrHistory: Maximum number of MMR history entries to store per player.

  • MaxRaceHistory: Maximum number of race history entries to display in profile.

  • MmrForWin: MMR points awarded for top 3 positions.

  • MmrForLost: MMR points lost per position below 3rd (multiplied by place number).

Race Synchronization

  • SyncPlayerPositionInterval: How often to sync player positions with other racers in milliseconds (default: 1000ms / 1 second).

Routing Bucket System

  • DefaultRaceBucket: Default routing bucket ID for races (adds server ID of first player for uniqueness).

  • CreatorBucket : Default routing bucket for race creator mode, to make it unique for each creator session we are adding server id of the player (adds server ID).

  • Set to false to disable routing bucket system.

  • Routing buckets isolate players in different dimensions for collision-free racing.

Official Race Generator

  • start: Race start time in 24-hour format (hour and minute).

  • mapId: Specific map ID (number) or "random" for verified maps pool.

  • winnerReward: Cash reward for 1st place (number or false for no reward).

  • vehicleClass: Allowed vehicle class ("ALL", "S", "A", "B", "C", "D").

  • collisions: Enable/disable player vehicle collisions (props are always collision-free).

  • fpv: Force first-person view during the race.

  • laps: Number of laps for loop-type race maps.

Vehicle and Traffic Settings

  • DisableLocalVehicleDuringRace: Disables all local vehicles and traffic while racing.

Payment Configuration

  • EntryFeePaidVia: Payment method for entry fees ('cash' or 'bank').

  • MoneyRewardPaidVia: Payment method for rewards ('cash' or 'bank').

  • EntryFeeRewardMultiplier: Multiplier for entry fee pool rewards (1.0 = exact amount paid by all players).

Admin Permissions

  • verifyMap: Requires admin to verify maps for official race pool.

  • createMap: Requires admin to create new maps.

  • createRace: Requires admin to create new races.

  • editMap: Requires admin to edit own maps (false = anyone can edit their maps).

  • editAnyMap: Requires admin to edit any user's maps.

Race Music System

  • enabled: Enable/disable background music during races.

  • volume: Music volume level (0.0 to 1.0).

  • fadeInDuration: Fade in time in milliseconds when music starts.

  • fadeOutDuration: Fade out time in milliseconds when music stops.

  • tracks: Array of YouTube video URLs to play during races (auto-skips restricted videos).

Teleport Settings

  • OnRaceEndTeleportToStart: Teleports players back to start position when race ends.

Laptop App Integration

  • label: App name displayed in laptop.

  • img: Icon URL for the app.

  • path: NUI path to the racing interface.

  • category: App category in laptop store.

  • rating/description/reviews: Metadata for laptop app display.

Checkpoint Waypoints and Highlights


Language Configuration (configs/sh.lang.lua)

  • All user-facing messages: Every notification, UI label, and system message is customizable.

  • Format placeholders: Use %{value} syntax for dynamic values (e.g., %{vehicleClass}, %{seconds}).

  • Navigation labels: Menu items like "HOME", "RACES", "MAPS", "MAP CREATOR", "PROFILE", "LEADERBOARD".

  • Race information: Checkpoint names, race types, vehicle classes, MMR labels.

  • UI elements: Buttons, forms, placeholders, tooltips, keyboard hints.

  • Discord webhook: Translations for Discord announcements of official races.

  • Day names: Monday through Sunday for official race scheduling.


Skill Tree Configuration (configs/sh.skills.lua)

XP Rewards

  • XpForFinishingRace: XP points awarded based on race position.

  • Only top 5 positions receive XP.

Skill Tree Category

  • skill: Internal identifier for the skill tree category.

  • title: Display name for the skill tree tab.

Skills List

  • uid: Unique identifier for the skill (referenced in code).

  • index: Grid position in the skill tree UI.

  • title: Display name of the skill.

  • icon: Font Awesome icon class.

  • img: Image URL for skill icon.

  • description: HTML-formatted skill description.

  • points: Skill points required to unlock.

  • effect: Numeric value for percentage-based skills (e.g., +10% MMR).

  • lines: Connection lines to other skills in the tree (directional: top, bottom, left, right, etc.).

Skill Categories

  • Vehicle Class Unlocks: class_s, class_a, class_b, class_c - Unlock participation in higher vehicle classes.

  • MMR Boosts: more_mmr_1, more_mmr_2 - Increase MMR gains by 10% per level (stacks).

  • Cash Boosts: more_cash_1, more_cash_2 - Increase cash rewards by 10% per level (stacks).


Achievements Configuration (configs/sh.achivements.lua)

  • text: Achievement description displayed to players.

  • img: Image filename for achievement icon (located in public/images/medals/).

  • index: Display order in achievements list.

Achievement Types

  • Win Milestones: win_1, win_10, win_25, win_50, win_100, win_200 - Win X races in 1st place.

  • Podium Finishes: reach_podium_10, reach_podium_50, reach_podium_100, reach_podium_200 - Finish top 3.

  • Race Completion: complete_50_races, complete_100_races, complete_250_races, complete_500_races - Complete X races.

  • Class-Specific Wins: win_50_S_race, win_50_A_race, win_50_B_race, win_50_C_race, win_50_D_race, win_50_ALL_race - Win 50 races in specific vehicle classes.


Client Configuration (configs/c.functions.lua)

Open client-side functions for custom integration:

  • CanJoinRace: Custom validation before joining a race (return true/false).

  • JoinRace: Triggered when player joins a race.

  • RaceLeave: Triggered when player leaves or is removed from race.

  • CheckpointPassed: Triggered each time a checkpoint is passed.

  • LapComplete: Triggered after completing a lap (loop races only).

  • RaceFinish: Triggered when player finishes the race.


Server Configuration (configs/s.functions.lua)

Open server-side functions for custom integration:

  • CanAddUserToRace: Server-side validation before adding player to race.

  • AddUserToRace: Triggered when player successfully joins a race.

  • RaceFinishByUser: Triggered when individual player finishes.

  • RaceFinish: Triggered when entire race concludes (all players finished/DNF).

  • RaceLeave: Triggered when player leaves race.

  • StartRace: Triggered when race countdown starts.

  • RaceDelete: Triggered when race is deleted/cancelled.

  • CreateMap: Triggered when new map is created.


Discord Webhook Configuration (configs/s.logs.lua)

  • LogsWebhook: Discord webhook URL for general race logs (map creation, race results, etc.).

  • OfficialRacesAnnouncementsWebhook: Discord webhook URL for official race announcements (auto-scheduled races).


Vehicle Classes Configuration (configs/c.vehicleClasses.lua)

  • S Class: Super cars (fastest, most prestigious).

  • A Class: High-end sports cars.

  • B Class: Mid-range sports cars and muscle cars.

  • C Class: Regular cars and lower-end sports.

  • D Class: Low-end vehicles, trucks, vans, utility vehicles.

Helper Functions

  • GetVehicleClassByHash: Returns vehicle class (S/A/B/C/D) based on model hash.

  • IsVehicleAllowedInRace: Checks if vehicle is allowed in a specific race class.


Map Creator Props Configuration (configs/c.creatorProps.lua)

Prop Categories

  • start: Props available for start line (flags, gantries, signs).

  • finish: Props available for finish line (flags, gantries).

  • checkpoint: Props available for checkpoints (flags, poles, gantries).

  • decoration: Props for track decoration (barrels, barriers, lights, hay bales).

Prop Properties

  • image: URL to prop preview image.

  • prop: In-game prop model name.

  • solo: If true, only one of this prop can be placed per checkpoint (used for large gantries).


Configuration Best Practices

  1. Backup before changes: Always backup configuration files before making modifications.

  2. Test incremental changes: Change one setting at a time and test thoroughly.

  3. Vehicle class balance: Ensure vehicle classes are fairly distributed for competitive racing.

  4. Official race timing: Schedule official races during peak server hours for maximum participation.

  5. MMR tuning: Adjust MMR gains/losses based on your server's competition level.

  6. Entry fees: Set entry fees appropriate to your server's economy.

  7. Webhook testing: Test Discord webhooks with a test channel before using production channels.

  8. Skill tree integration: Only enable if you have the DevHub Skill Tree resource installed.

  9. Translation completeness: Ensure all language strings are translated for consistent user experience.

Last updated