Create Call Of Duty style firing range time trials that players can compete in to see who can finish it the fastest so they can flex on their clan mates
** This video demo is using a monument I made in RustEdit for the purpose of this plugin. You can download the monument here ( https://chaoscode.io/oxide/RustEdit-Warehouse.zip ) if you want to use it in your own map, however it is entirely on you to insert it in to your map **
** Firing range created at the junk yard **
Features
- Players start in a staging area where they can select a primary and secondary weapon from a table of weapons before starting. When they leave the staging area and walk through the trigger zone the targets pop up and the timer is started
- Players and all firing range components (targets, weapon tables, etc) are hidden from others so their presence is completely unknown to regular players (without using expensive hooks)
- Multiple players can use the same range at the same time without ever seeing or interacting with each other
- Create as many firing ranges as you like
- Small UI menu to enter a range or view range info and leader board
- Range scores are calculated based on time taken and accuracy
- Ranges are always open, players can run courses as many times as they want
- Easy to set up new firing ranges, a customized deployer tool is at your disposal for quick and easy spawning of range components without Rusts deployment restrictions
- Assign ranges to monuments so they continue to work through map wipes/changes
Permissions
firingrange.use - Required to enter a firing range
Commands
/fr - Opens the Firing Range menu
/fr exit - Exit a firing range before the round has finished
Range Creation
There are 2 deployable's that need to be placed down; targets to shoot, and weapon tables.
The weapon tables are where weapons will spawn. Players can select a primary and secondary weapon to use in the firing range (which you can set in the config)
You can deploy these objects using the inbuilt deployer tool (see commands below)
All range elements are hidden from regular players, they will never know that they are there. When you save a range all these elements are instantly removed from sight.
Assigning Ranges To Monuments
You can assign a range to a monument. By doing this, when the map is wiped the range will be created at the first instance of the assigned monument found on the map.
To assign a range to a monument, while editing use the command '/frc closestmonument'. This will find the closest monument to your position and assign it to the range.
** Note ** If you assign a range to a monument it will become un-editable. This is because once a range has been assigned to a monument the positions of all the components stored in the data file are converted to local space of that monument, so they no longer hold a world space value.
If you want to edit a range after it has been assigned to monument you will have to delete the range and recreate it
Commands
/frc target - Use this tool to spawn and position targets in the firing range. There are no restrictions to where or how many targets you can place
/frc remove - Removes the target you are looking at
/frc table <primary/secondary> - Use this tool to spawn and position the weapon selection tables. You will need both a primary and secondary weapon table
/frc trigger <x> <y> <z> - Set the starting trigger zone to your position and rotation with the specified size. When the player enters this zone the range will become active
/frc spawn - Sets the spawn point to your position and rotation. This is the position players will spawn at when entering the range
/frc timelimit <seconds> - Sets the time limit to complete the course
/frc wanderdistance <distance> - Sets a range specific override for max wander distance
/frc view - Debug draw all the range elements
/frc closestmonument - Setup the range as part of the closest monument
/frc edit <name> - Edit a existing firing range
/frc save <name> <opt: overwrite> - Saves the firing range. Use the "overwrite" argument to overwrite a existing firing range
/frc cancel - Cancels range creation
/frc list - List all stored ranges
/frc delete <name> - Deletes the range with the specified name
/frc wipe confirm - Wipes all range data
Changing the available weapons
You can select which weapons to make available to the players in the config. Each table can hold a maximum of 6 weapons. To change weapons simply add the weapons shortname to the corrosponding table in the config.
The weapons supported by this plugin are
Config
Features
- Players start in a staging area where they can select a primary and secondary weapon from a table of weapons before starting. When they leave the staging area and walk through the trigger zone the targets pop up and the timer is started
- Players and all firing range components (targets, weapon tables, etc) are hidden from others so their presence is completely unknown to regular players (without using expensive hooks)
- Multiple players can use the same range at the same time without ever seeing or interacting with each other
- Create as many firing ranges as you like
- Small UI menu to enter a range or view range info and leader board
- Range scores are calculated based on time taken and accuracy
- Ranges are always open, players can run courses as many times as they want
- Easy to set up new firing ranges, a customized deployer tool is at your disposal for quick and easy spawning of range components without Rusts deployment restrictions
- Assign ranges to monuments so they continue to work through map wipes/changes
Permissions
FiringRange uses Oxides permission system
To assign a user permission use oxide.grant user "username|steam id" "permission" in console.
To assign a group permission use oxide.grant group "groupname" "permission" in console.
You can read more about how to use the permission system here : uMod - Permissions
To assign a user permission use oxide.grant user "username|steam id" "permission" in console.
To assign a group permission use oxide.grant group "groupname" "permission" in console.
You can read more about how to use the permission system here : uMod - Permissions
Commands
/fr - Opens the Firing Range menu
/fr exit - Exit a firing range before the round has finished
Range Creation
There are 2 deployable's that need to be placed down; targets to shoot, and weapon tables.
The weapon tables are where weapons will spawn. Players can select a primary and secondary weapon to use in the firing range (which you can set in the config)
You can deploy these objects using the inbuilt deployer tool (see commands below)
All range elements are hidden from regular players, they will never know that they are there. When you save a range all these elements are instantly removed from sight.
Assigning Ranges To Monuments
You can assign a range to a monument. By doing this, when the map is wiped the range will be created at the first instance of the assigned monument found on the map.
To assign a range to a monument, while editing use the command '/frc closestmonument'. This will find the closest monument to your position and assign it to the range.
** Note ** If you assign a range to a monument it will become un-editable. This is because once a range has been assigned to a monument the positions of all the components stored in the data file are converted to local space of that monument, so they no longer hold a world space value.
If you want to edit a range after it has been assigned to monument you will have to delete the range and recreate it
Commands
/frc target - Use this tool to spawn and position targets in the firing range. There are no restrictions to where or how many targets you can place
/frc remove - Removes the target you are looking at
/frc table <primary/secondary> - Use this tool to spawn and position the weapon selection tables. You will need both a primary and secondary weapon table
/frc trigger <x> <y> <z> - Set the starting trigger zone to your position and rotation with the specified size. When the player enters this zone the range will become active
/frc spawn - Sets the spawn point to your position and rotation. This is the position players will spawn at when entering the range
/frc timelimit <seconds> - Sets the time limit to complete the course
/frc wanderdistance <distance> - Sets a range specific override for max wander distance
/frc view - Debug draw all the range elements
/frc closestmonument - Setup the range as part of the closest monument
/frc edit <name> - Edit a existing firing range
/frc save <name> <opt: overwrite> - Saves the firing range. Use the "overwrite" argument to overwrite a existing firing range
/frc cancel - Cancels range creation
/frc list - List all stored ranges
/frc delete <name> - Deletes the range with the specified name
/frc wipe confirm - Wipes all range data
Changing the available weapons
You can select which weapons to make available to the players in the config. Each table can hold a maximum of 6 weapons. To change weapons simply add the weapons shortname to the corrosponding table in the config.
The weapons supported by this plugin are
Code:
rifle.ak
rifle.bolt
bow.hunting
bow.compound
crossbow
shotgun.double
pistol.eoka
multiplegrenadelauncher
rifle.l96
rifle.lr300
lmg.m249
rifle.m39
pistol.m92
smg.mp5
pistol.nailgun
shotgun.waterpipe
pistol.python
pistol.revolver
shotgun.pump
pistol.semiauto
rifle.semiauto
smg.2
shotgun.spas12
smg.thompson
Config
The configuration file can be found in your server directory at .../oxide/config/FiringRange.json
The use of an editor and validator is recommended to avoid formatting issues
The use of an editor and validator is recommended to avoid formatting issues
Code:
{
"Maximum wander distance before disqualification (can be overridden per range config)": 250.0,
"Skins": {
"Target Skin ID": 2275789274,
"Table Skin ID": 877940832
},
"Weapons": {
"Primary Weapons (max: 6)": [
"rifle.ak",
"rifle.lr300",
"rifle.semiauto",
"rifle.m39",
"rifle.bolt",
"rifle.l96"
],
"Secondary Weapons (max: 6)": [
"pistol.semiauto",
"pistol.m92",
"pistol.revolver",
"pistol.python",
"smg.mp5",
"shotgun.spas12"
]
},
"UI Colors": {
"Background": {
"Hex": "000000",
"Alpha": 0.6
},
"Button1": {
"Hex": "6a8b38",
"Alpha": 1.0
},
"Button2": {
"Hex": "387097",
"Alpha": 1.0
},
"QuitButton": {
"Hex": "d85540",
"Alpha": 1.0
},
"Panel": {
"Hex": "000000",
"Alpha": 0.7
},
"ScoreBackground": {
"Hex": "6a8b38",
"Alpha": 0.6
},
"TimerBackground": {
"Hex": "387097",
"Alpha": 0.6
}
},
"Version": {
"Major": 0,
"Minor": 1,
"Patch": 0
}
}