RaceTrack

RaceTrack 0.3.3

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

cars.png

c0fbf296c63c630217897cdfd321a073.png

7963105a621d7f8d2feba576c5b2367f.jpg



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
79eec486bc07c61c65666d9ddc30a3f9.png


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
252490_screenshots_20171003093526_1.jpg


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
252490_screenshots_20171003094905_1.jpg

A checkpoint once spawned in:
252490_screenshots_20171003100047_1.jpg


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
}
  • 252490_screenshots_20171003101401_1.jpg
    252490_screenshots_20171003101401_1.jpg
    23.3 KB · Views: 15,849
  • 252490_screenshots_20171003100520_1.jpg
    252490_screenshots_20171003100520_1.jpg
    151.5 KB · Views: 1,126

Information

Author
k1lly0u
First release
Last update
Rating
5.00 star(s) 11 ratings

Latest Release v0.3.3

Released
Jan 6, 2024 at 10:37 PM
Rating
0.00 star(s) 0 ratings


More resources from k1lly0u

  • TeleportGUI
    TeleportGUI
    Teleport, home and warp with a easy to use UI
  • UberTool - Admin's new Friend
    UberTool - Admin's new Friend
    The ultimative build'n'place solution without any borders or other known limits
  • TrainHeist
    TrainHeist
    A event where a train with scientists drives around the above or below rail ring
  • StacksExtended
    StacksExtended
    Advanded stacking system with modular permission based container sizing
  • Loadouts
    Loadouts
    Allow players to create custom loadouts which they can later claim

RaceTrack by k1lly0u
© chaoscode.io Oct 3, 2017

Latest reviews

Without a doubt, this Racing plugin is the best choice for any Rust server looking for a premium racing experience. We have been using it on our high-population Minicopter Training server and have been highly impressed with its capabilities. We even modified parts of the code to better optimize the checkpoints for our server's needs, posted our results and the developer quickly released an update incorporating his own solution to this, as well as many other quality-of-life alterations. We couldn't be more pleased with the results - 10/10!
Works good and is a lot of fun. I had a little problem with heli physics but the dev fixed it after my report. Good work man!
Brilliant plugin! Easy to set up and great fun to play.
Very impressed with it so far and look forward to more features in the future.
Love this mod. Got a question. can you change rewards to say an AK or LR?
This is one of my all-time favourite plugins.

The races are easy to set up, and with a bit of thought put into your track design they are great fun to play.

Very popular with my users.

k1lly0u - as Fred said below, it would be *awesome* if you built a GUI for this one to match the Arena plugin (or merged their GUI's together) :)
awesome stuff :D
AWESOME thank you .adds fun for sure .cant wait to make my custom map with this inc
just wish we had custom car colours /numbers etc
excellent top thanks
Would be great if there could be a config option to allow integration with Arena plugin
It's great fun and goes along very well with the Arena plugin. That's why I suggest that you implement the same type of UI for this, or create an optional dependency to have Race Track as one of the Arena events.