- Required Dependencies
- https://chaoscode.io/resources/chaos.321/
- Optional Dependencies
- https://www.chaoscode.io/resources/carcommander.71/
This plugin requires the Chaos extension which can be found here -> https://chaoscode.io/resources/chaos.321/
Create race tracks and race other players in sprint or lap races using sedans, modular cars, row boats, RHIBs, minicopters, horses, kayaks, boogie boards, inner tubes, submarines, snowmobiles or on foot
Features:
Sedan, modular car, boat, rhib, helicopter, horse, kayak boogie board, inner tube, submarine, snowmobile and foot races
Design different modular cars for different races
Sprint or Lap type races
Create as many tracks as you like
Checkpoints to prevent players cheating
Optional CarCommander support
Optional BoatCommander support
Optional HeliCommander support
GUI Lap/Checkpoint counter
GUI Lap times
GUI Scoreboard depicting finish position, distance driven and time taken
Finished racers spectate other drivers until the end of the race
Complete event automation
Checkpoints spawn when the event opens, and are removed when its over
Reward options for pole positions
Optional entrance fees
Track leader boards keep track of best track and lap times
Simple track creation and solo race demonstration
Track creation for boat racing
Permissions
racetrack.admin - Required to create racetracks and manually manage event
racetrack.play- Required to enter in race events
Chat Commands
/reset - Used by players who become stuck to reset their car/boat back to the last checkpoint
/race - Display race menu help
/race join - Join a race event
/race leave - Leave a race event
/race open - Open a new race event
/race start - Start a race event
/race stop - Stop a race event
/race select <trackname> - Select a race event
/race scores - Used by anyone who want to view the score board for the last race
/race leaders - Used by anyone who want to view the track leader boards
Track Creation/Editing/Saving
/track new - Begin track creation
/track cancel - Cancel track creation
/track save <name> - Save the track creation (The name is what is displayed at the start of a race)
/track edit <name> - Edit the track with the specified name
/track list - List all tracks
Checkpoints
/track cp add <radius> - Add a checkpoint with the radius specified
/track cp remove <number> - Remove the check point with the specified number
/track cp move <number> - Relocate the chosen check point to your current position
/track cp size <number> <newradius> - Change the size of the chosen check point
/track cp show - Show all checkpoint and their number
Gridpoints
/track gp add - Add a gridpoint with the radius specified
/track gp remove <number> - Remove the gridpoint with the specified number
/track gp move <number> - Relocate the chosen grid point to your current position
/track gp show - Show all gridpoint and their number
Track Options
/track type <car/boat/rhib/minicopter/horse/kayak/boogieboard/innertube/submarine/snowmobile/foot> - Set the required vehicle for this track
/track mode <laps/sprint> - Set the race type for this track
/track laps <number> - Set the amount of laps in this race (if applicable)
/track players <number> - Set the minimum amount of players in this race
/track kit <kitname> - Set a kit given to drivers for this race
Modular Cars
/track modularcar add <profile name> - Adds the specified modular car profile to use for this track
/track modularcar remove <profile name> - Removes the specified modular car profile from this track
/track modularcar list - Lists all vehicle profiles assigned to this track
Modular Car Damage
/track allowdamage <true/false> - Toggles whether collision damage will be applied to the vehicles. When enabled the racer will fail the race if either the vehicles health drops to 0, or the vehicles engine module receives enough damage to stop working
/track damagemultipler <number> - Scales collision damage by this number
ex. "/track damagemultipler 1.5" will scale collision damage by 1.5x
Creating Modular Car profiles
/racevehicle - Display help menu for creating a modular car for a race
/racevehicle list - List all saved custom race vehicles
/racevehicle remove "profile name" - Removes the custom vehicle with the specified profile name
/racevehicle save "profile name" <tier> - Saves the modular car you are currently looking at, the tier specifies which quality components will go in to the motor
Horses
/track breed <0-9> - Set the breed of the horse used for this race (ID numbers from 0 to 9). See below for horse breed ID's
Horse Breeds, Stats, and ID numbers
Console Commands
race - Display race menu help
race open - Open a new race event
race start - Start a race event
race stop - Stop a race event
race select <trackname> - Select a race event
The event:
- When an event has been opened players can join. When minimum players has been reached the event will launch automatically in X amount of seconds (set in the config).
- Upon starting the race the players will be moved to their cars/boats and a countdown to race will begin. This screen will also display information about the race (Track name, type, distance)
- Players will then need to navigate through all the check points and make it to the end.
- Once the first player has crossed the finish line the remaining racers will have X amount of seconds to finish the race (set in config).
- Finished players are put into spectate mode where they can spectate the remaining players.
- Once either all players have finished the race - or - the countdown to finish has expired players will be shown a scoreboard which contains their finished position, the time it took them to finish and the distance they travelled.
- Players can either leave that scoreboard, or it will automatically close after 30 seconds
Track Creation:
Track creation is quite simple. A track comprises of 2 core elements; Grid points and Check points.
To begin creating a new track type /track new
The first step after starting a new track is to determine whether this will be a sprint race, or a lap race.
- A sprint race is a point-to-point race
- A lap race means the player must complete the course X amount of times
To set the race type use the command /track mode <laps/sprint>
If you set the race type to laps then you can now enter the number of laps players must complete by typing /track laps <number> - replacing <number> with the amount of laps
Next you will need to place your grid points
- A grid point is where the players start, and where the car will spawn. The position and rotation of the car is determined by the direction you are looking when you place the grid point. The more grid points you have the more players can enter your event
To place a grid point move to the position you want it to be and face the direction you want it to face then type /track gp add
Place as many grid points as you want racers in the event. You can view your placed grid points by typing /track gp show. This will display a box on the position of your grid point, the grid point number, and a arrow showing the direction of the grid point
Next you will need to place your check points
- Check points are positions around your track that the player must drive through in order to complete the course. They are used to ensure the racers are actually completing the course and not just taking short cuts to get to the finish line.
- Check points are an invisible collider with a visual representation of pillars that spawn in when a race opens.
- You can set as many - or as little - amount of check points as you feel you need.
- When creating a check point it takes your position and direction into account, with a additional variable of radius.
- The direction of a check point should be roughly facing the position of the next check point you intend to create, this will help players follow the right path and not veer off track.
- The radius of a check point determines the size of the check point when it spawns in.
To create a check point go to the position of the check point, face roughly in the direction of the next checkpoint you intend to create and type /track cp add <radius> - replacing <radius> with the size of your check point (6-10 is a pretty decent size)
This will display a sphere showing the outline of the checkpoint, a arrow showing the direction, and the checkpoint number. If you wish to look back at previous check points you have created you can type /track cp show
** If you are creating a lap race then it is good practice to place the last check point just infront of the grid points. This means 1 lap will be completed once players get back to the grid
A checkpoint once spawned in:
Once you have placed all your grid points and check points you can set the minimum players required for the race to start. You can do this by typing /track players <number> - replacing <number> with the number of players
Your track creation is now complete. You can save your track by typing /track save <name> - replacing <name> with the name of your track. This name is displayed to players when the event starts and in the scoreboard so make it nice
The creation process for car and boat races are the same. When placing checkpoints in a boat race move to a position just above the waters surface
Track Editing:
You can edit existing tracks by typing /track edit <name> - replacing <name> with the name of your track.
When editing grid points and check points you must consider this;
If you have 10 check points and you remove check point 5 then the following check points will become 1 number lower. You can not add a check point in between other check points!
Config Options:
Checkpoint marker block grade - Set the grade of the pillars around the check points
Spawn lights around checkpoint markers - Spawns flashing lanterns around the check points
UI Options:
In the UI options you can adjust the position and size of the various UI status bars (Laps/Checkpoints completed, Lap times)
By default they mimic the UI from CarCommander and fit nicely above the health status bar.
You can also disable these status bars in the config if you so choose
Config:
Create race tracks and race other players in sprint or lap races using sedans, modular cars, row boats, RHIBs, minicopters, horses, kayaks, boogie boards, inner tubes, submarines, snowmobiles or on foot
Features:
Sedan, modular car, boat, rhib, helicopter, horse, kayak boogie board, inner tube, submarine, snowmobile and foot races
Design different modular cars for different races
Sprint or Lap type races
Create as many tracks as you like
Checkpoints to prevent players cheating
Optional CarCommander support
Optional BoatCommander support
Optional HeliCommander support
GUI Lap/Checkpoint counter
GUI Lap times
GUI Scoreboard depicting finish position, distance driven and time taken
Finished racers spectate other drivers until the end of the race
Complete event automation
Checkpoints spawn when the event opens, and are removed when its over
Reward options for pole positions
Optional entrance fees
Track leader boards keep track of best track and lap times
Simple track creation and solo race demonstration
Track creation for boat racing
Permissions
racetrack.admin - Required to create racetracks and manually manage event
racetrack.play- Required to enter in race events
Chat Commands
/reset - Used by players who become stuck to reset their car/boat back to the last checkpoint
/race - Display race menu help
/race join - Join a race event
/race leave - Leave a race event
/race open - Open a new race event
/race start - Start a race event
/race stop - Stop a race event
/race select <trackname> - Select a race event
/race scores - Used by anyone who want to view the score board for the last race
/race leaders - Used by anyone who want to view the track leader boards
Track Creation/Editing/Saving
/track new - Begin track creation
/track cancel - Cancel track creation
/track save <name> - Save the track creation (The name is what is displayed at the start of a race)
/track edit <name> - Edit the track with the specified name
/track list - List all tracks
Checkpoints
/track cp add <radius> - Add a checkpoint with the radius specified
/track cp remove <number> - Remove the check point with the specified number
/track cp move <number> - Relocate the chosen check point to your current position
/track cp size <number> <newradius> - Change the size of the chosen check point
/track cp show - Show all checkpoint and their number
Gridpoints
/track gp add - Add a gridpoint with the radius specified
/track gp remove <number> - Remove the gridpoint with the specified number
/track gp move <number> - Relocate the chosen grid point to your current position
/track gp show - Show all gridpoint and their number
Track Options
/track type <car/boat/rhib/minicopter/horse/kayak/boogieboard/innertube/submarine/snowmobile/foot> - Set the required vehicle for this track
/track mode <laps/sprint> - Set the race type for this track
/track laps <number> - Set the amount of laps in this race (if applicable)
/track players <number> - Set the minimum amount of players in this race
/track kit <kitname> - Set a kit given to drivers for this race
Modular Cars
/track modularcar add <profile name> - Adds the specified modular car profile to use for this track
/track modularcar remove <profile name> - Removes the specified modular car profile from this track
/track modularcar list - Lists all vehicle profiles assigned to this track
Modular Car Damage
/track allowdamage <true/false> - Toggles whether collision damage will be applied to the vehicles. When enabled the racer will fail the race if either the vehicles health drops to 0, or the vehicles engine module receives enough damage to stop working
/track damagemultipler <number> - Scales collision damage by this number
ex. "/track damagemultipler 1.5" will scale collision damage by 1.5x
Creating Modular Car profiles
/racevehicle - Display help menu for creating a modular car for a race
/racevehicle list - List all saved custom race vehicles
/racevehicle remove "profile name" - Removes the custom vehicle with the specified profile name
/racevehicle save "profile name" <tier> - Saves the modular car you are currently looking at, the tier specifies which quality components will go in to the motor
Horses
/track breed <0-9> - Set the breed of the horse used for this race (ID numbers from 0 to 9). See below for horse breed ID's
Horse Breeds, Stats, and ID numbers
Code:
0 - Name: Appalosa - Max Health: 1 - Max Speed: 1
1 - Name: Bay - Max Health: 1.1 - Max Speed: 1
2 - Name: Bucksin - Max Health: 1 - Max Speed: 1
3 - Name: Chestnut - Max Health: 1 - Max Speed: 1.1
4 - Name: Dapple Grey - Max Health: 1 - Max Speed: 0.9
5 - Name: Piebald - Max Health: 1 - Max Speed: 1.1
6 - Name: Pinto - Max Health: 1 - Max Speed: 1
7 - Name: Red Roan - Max Health: 1 - Max Speed: 0.9
8 - Name: White Thoroughbred - Max Health: 1 - Max Speed: 1.25
9 - Name: Black Thoroughbred - Max Health: 1 - Max Speed: 1.25
Console Commands
race - Display race menu help
race open - Open a new race event
race start - Start a race event
race stop - Stop a race event
race select <trackname> - Select a race event
The event:
- When an event has been opened players can join. When minimum players has been reached the event will launch automatically in X amount of seconds (set in the config).
- Upon starting the race the players will be moved to their cars/boats and a countdown to race will begin. This screen will also display information about the race (Track name, type, distance)
- Players will then need to navigate through all the check points and make it to the end.
- Once the first player has crossed the finish line the remaining racers will have X amount of seconds to finish the race (set in config).
- Finished players are put into spectate mode where they can spectate the remaining players.
- Once either all players have finished the race - or - the countdown to finish has expired players will be shown a scoreboard which contains their finished position, the time it took them to finish and the distance they travelled.
- Players can either leave that scoreboard, or it will automatically close after 30 seconds
Track Creation:
Track creation is quite simple. A track comprises of 2 core elements; Grid points and Check points.
To begin creating a new track type /track new
The first step after starting a new track is to determine whether this will be a sprint race, or a lap race.
- A sprint race is a point-to-point race
- A lap race means the player must complete the course X amount of times
To set the race type use the command /track mode <laps/sprint>
If you set the race type to laps then you can now enter the number of laps players must complete by typing /track laps <number> - replacing <number> with the amount of laps
Next you will need to place your grid points
- A grid point is where the players start, and where the car will spawn. The position and rotation of the car is determined by the direction you are looking when you place the grid point. The more grid points you have the more players can enter your event
To place a grid point move to the position you want it to be and face the direction you want it to face then type /track gp add
Place as many grid points as you want racers in the event. You can view your placed grid points by typing /track gp show. This will display a box on the position of your grid point, the grid point number, and a arrow showing the direction of the grid point
Next you will need to place your check points
- Check points are positions around your track that the player must drive through in order to complete the course. They are used to ensure the racers are actually completing the course and not just taking short cuts to get to the finish line.
- Check points are an invisible collider with a visual representation of pillars that spawn in when a race opens.
- You can set as many - or as little - amount of check points as you feel you need.
- When creating a check point it takes your position and direction into account, with a additional variable of radius.
- The direction of a check point should be roughly facing the position of the next check point you intend to create, this will help players follow the right path and not veer off track.
- The radius of a check point determines the size of the check point when it spawns in.
To create a check point go to the position of the check point, face roughly in the direction of the next checkpoint you intend to create and type /track cp add <radius> - replacing <radius> with the size of your check point (6-10 is a pretty decent size)
This will display a sphere showing the outline of the checkpoint, a arrow showing the direction, and the checkpoint number. If you wish to look back at previous check points you have created you can type /track cp show
** If you are creating a lap race then it is good practice to place the last check point just infront of the grid points. This means 1 lap will be completed once players get back to the grid
A checkpoint once spawned in:
Once you have placed all your grid points and check points you can set the minimum players required for the race to start. You can do this by typing /track players <number> - replacing <number> with the number of players
Your track creation is now complete. You can save your track by typing /track save <name> - replacing <name> with the name of your track. This name is displayed to players when the event starts and in the scoreboard so make it nice
The creation process for car and boat races are the same. When placing checkpoints in a boat race move to a position just above the waters surface
Track Editing:
You can edit existing tracks by typing /track edit <name> - replacing <name> with the name of your track.
When editing grid points and check points you must consider this;
If you have 10 check points and you remove check point 5 then the following check points will become 1 number lower. You can not add a check point in between other check points!
Config Options:
Checkpoint marker block grade - Set the grade of the pillars around the check points
Spawn lights around checkpoint markers - Spawns flashing lanterns around the check points
UI Options:
In the UI options you can adjust the position and size of the various UI status bars (Laps/Checkpoints completed, Lap times)
By default they mimic the UI from CarCommander and fit nicely above the health status bar.
You can also disable these status bars in the config if you so choose
Config:
C#:
{
"Version": {
"Major": 0,
"Minor": 2,
"Patch": 2
},
"Event Automation": {
"Enable automated events": true,
"Randomise automated events": true,
"Event order for non-randomised events": []
},
"Event Timers": {
"Time to close the event if minimum players has not been reached (seconds)": 240,
"Time to start the event when minimum players reached (seconds)": 45,
"Time to finish racing after the first player has won (seconds)": 60,
"Interval between automated events (seconds)": 1800,
"Time from when racers are teleported to their race car until the race starts (seconds)": 10
},
"Checkpoint Options": {
"Spawn lights around checkpoint markers": true,
"Light type (Lantern, Flasher, Siren)": "Siren",
"Checkpoint marker block grade (Twigs, Wood, Stone, Metal, TopTier)": "Metal",
"Launch a firework when player crosses the finish line": false,
"Firework prefab path": "assets/prefabs/deployable/fireworks/mortarchampagne.prefab"
},
"Reward Options": {
"Enable reward system": true,
"Give prizes to all podium winners": true,
"Use ServerRewards as prize money": true,
"Use Economics as prize money": false,
"Use Scrap as prize money": false,
"Prize money for first place": 250,
"Prize money for second place": 125,
"Prize money for third place": 50
},
"Event Entry Options": {
"Enable entrance fee": false,
"Collect entrance fee from ServerRewards money": true,
"Collect entrance fee from Economics money": false,
"Collect entrance fee using Scrap": false,
"Fee amount": 100
},
"Racer Options": {
"Disable metabolism while racing": false,
"Racers clothing (chosen at random)": [
[
"hazmatsuit"
],
[
"shoes.boots",
"tshirt",
"pants",
"deer.skull.mask"
]
],
"Prevent racers from straying too far away from the target checkpoint": true
},
"UI Options": {
"Lap/Checkpoint counter": {
"Display to player": true,
"Position - X minimum": 0.69,
"Position - X maximum": 0.83,
"Position - Y minimum": 0.14,
"Position - Y maximum": 0.175,
"Background color (hex)": "#F2F2F2",
"Background alpha": 0.05,
"Status color (hex)": "#ce422b"
},
"Lap/Checkpoint times": {
"Display to player": true,
"Position - X minimum": 0.69,
"Position - X maximum": 0.83,
"Position - Y minimum": 0.22,
"Position - Y maximum": 0.255,
"Background color (hex)": "#F2F2F2",
"Background alpha": 0.05,
"Status color (hex)": "#ce422b"
},
"Driver position": {
"Display to player": true,
"Position - X minimum": 0.69,
"Position - X maximum": 0.83,
"Position - Y minimum": 0.18,
"Position - Y maximum": 0.215,
"Background color (hex)": "#F2F2F2",
"Background alpha": 0.05,
"Status color (hex)": "#ce422b"
}
},
"Blacklisted commands for event players": [
"s",
"tp",
"tpr",
"tpa",
"home"
],
"Disable spectate mode for finished racers": false
}