FiringRange

FiringRange 0.1.19

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 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
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
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
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
  }
}

Information

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

Latest Release v0.1.19

Released
Dec 5, 2024 at 9:14 AM
Rating
0.00 star(s) 0 ratings


More resources from k1lly0u

  • PilotEject
    PilotEject
    A mini event where a helicopter malfunctions and the pilot has to eject
  • HeliRefuel
    HeliRefuel
    A mini-event where a helicopter populated with NPCs needs to land to refuel
  • ZombieHorde
    ZombieHorde
    Create hordes of zombies that roam around your server looking for brains
  • Admin Menu
    Admin Menu
    Manage groups, permissions, commands and convars from a GUI menu
  • TeleportGUI
    TeleportGUI
    Teleport, home and warp with a easy to use UI

FiringRange by k1lly0u
© chaoscode.io Nov 7, 2020

Latest reviews

This plugin is quite good and with the recent update it's worthy of more stars. So much fun and highly addictive...now that I understand how this works I almost have as much fun making ranges as I do running through them. Thanks k1lly0u for yet another amazing plugin!
best plugin for shooting range nice one k1lly0u and thank you for the help A+++
super plugin! good job! 5 stars
Stable. Works as advertised. Regular updates. 5STARS
K1lly0u is amazing and always comes up with the best plugins. Keep up the great work!
Good plugin that works on every server... You can have x2 like me and install it so players can do something other if bored or do not have anything to do... Simple and easy to setup, do not breaks other's gameplay and adds little competition between players in the server. Hope in future there are moving player bots or lower/rise targets.
11/10 : )