Recoil Training Ground

(*)(*)(*)(*)(*) (5)

🔔 Stay informed when a new update is released https://discord.gg/v8HwnRHtCn

Includes

  • Recoil Training Ground
  • Recoil Pattern Generator

Depends On

Requires


1. Recoil Training Ground

Practice and improve your aim on stationary and moving targets provided with a recoil pattern display of your spray.


1.1 Console Commands

  • rtg.help - Prints a list of available commands.
  • rtg.create <Training Ground Name> <Zone ID> [<Entrance Trigger Radius>] - Creates a training ground.
  • rtg.edit <Training Ground ID> - Starts editing the training ground.
  • rtg.done - Stops editing the training ground and disables any further changes to it.
  • rtg.delete <Training Ground ID> - Deletes the training ground.
  • rtg.set player.sp <Position> - Creates player spawn point.
  • rtg.bot.add <Bot Name> <Bots Count> - Creates bot profile.
  • rtg.bot.remove <Bot Name> - Removes bot profile.
  • rtg.set.spawn <Position> [<Bot Name>] [<Spawn Radius>] [<Spawn Chance>] - Creates bot spawn point.
  • rtg.delete.spawn <Spawn Point Name> - Deletes bot spawn point
  • rtg.set <Key> <Value> [<Key> <Value>] - Sets values for the edited training ground.
  • rtg.set.help - Prints a list of available keys for editing the training ground.
  • rtg.allow <add/remove> <Training Ground ID> <Steam ID> - Adds or removes a player from the whitelist.
  • rtg.ban <add/remove> <Training Ground ID> <Steam ID> - Adds or removes a player from the blacklist.

1.2 Training Ground Creation

Before starting and considering that you already have the core plugin, create a lobby as explained in the Game Mode Manager setup guide.

  • Now that you've created the lobby, make a zone using Zone Manager on the island where you want the training ground.
  • Begin editing the lobby to which you will connect the training ground using lobby.edit <Lobby ID>
    • Use lobby.show to view the lobby ID.

💡Note

By default, the first created lobby will always come with the ID 1001, and each match or training ground connected to it will inherit its ID.

  • Next, stand inside the lobby and precisely where you want the entrance trigger since the plugin will consider your position the entry point to the training ground.

  • Create the training ground using rtg.create <Training Ground Name> <Zone ID> [<Entrance Trigger Radius>]

    The [<Entrance Trigger Radius>] stands for the radius that teleports the player to the training ground when stepping into it.

  • Upon creating the training ground, the plugin will automatically teleport you to it.


1.3 Players Spawn Point

Each training ground has only one spawn point for players.

  • Begin editing the lobby to which the training ground is connected using the command lobby.edit <Lobby ID> and then use rtg.edit <Training Ground ID> to edit the training ground.

💡Note

You can always skip the step above if you're already in edit mode.

  • Stand in the location where you want to create the spawn point inside the training ground and use the command rtg.set player.sp <Position>
    • You can replace the <Position> either with a coordinate X, Y, Z, or here, which passes your current location automatically.
    • To get your current coordinate, use the command server.printpos in the console.
"Player Spawn Location": {
        "x": -1567.846,
        "y": 5.005183,
        "z": -1569.577
      },


1.4 Players Loadout

To create a kit that players obtain when joining the training ground, we will use the Inventory Loadout plugin.

  • Equip your inventory with the items you want the loadout to have, and then use the command /loadout.save <Loadout Name>
  • Head to the RecoilTrainingGround.json data file and add the created loadout name.
"Player Loadout": "Training Ground"

💡 Tip

  • If you want to view the loadout you created, use the command /loadout.take <Loadout Name> which allows you to obtain it manually.
  • To edit an existing loadout, use the command /loadout.save <Loadout Name> and save it with the same name.
  • List all created loadouts using the command /loadout.list

1.5 Training Ground Bots

You can have as many bot profiles as you want for each training ground with different spawn points, loadouts, health, movement speed, and other settings for each bot separately.

1.5.1 Bots Creation

  • Start by creating profiles for the bots using the command rtg.bot.add <Bot Name> <Bots Count>
  • You can also manually duplicate the bots' profiles from the RecoilTrainingGround.json data file but make sure to give each profile a unique name.
"Bots": [
        {
          "Bot Name": "garry",
          "Bot Count": 10
        },
        {
          "Bot Name": "helk",
          "Bot Count": 10
        }
      ],
  • Head to the config and add the bot you created under the "Bots List". This is where you can adjust their movement speed, health, loadout, and other settings.
"Bots List": [
    {
      "Name": "Garry",
      "Loadout": "Garry",
      "Minimum Movement Speed": 3.0,
      "Maximum Movement Speed": 7.0,
      "Restrict To Named Spawn Point": false,
      "Infinitive Health": false
    },

1.5.2 Bots Spawn Points

Bots won't appear in the training ground before creating spawn points for them.

  • Decide where you want the bot spawn point to be in the training ground, and then use the command rtg.set.spawn <Position> [<Bot Name>] [<Spawn Radius>] [<Spawn Chance>]
    • You can replace the <Position> either with a coordinate X, Y, Z, or here, which passes your current location automatically.

    • To get your current coordinate, use the command server.printpos <Steam ID> in the console.

    • If you don't specify the bot name in the command, all bots will share this spawn point. However, the "Restrict To Named Spawn Point" must be disabled for this to work.

    • If you want to restrict the spawn point to a specific bot, enable "Restrict To Named Spawn Point" and specify the bot name in the command.

      "Restrict To Named Spawn Point": true,
      
    • The [<Spawn Chance>] determines the probability of the bot spawning at the spawn point after it gets killed.

    • The [<Spawn Radius>] determines two things, the scope in which the bots can randomly spawn and their movement range.

"Spawn Points": [
        {
          "Spawn - Bot Name": "garry",
          "Spawn - Enabled": true,
          "Spawn - Name": "SP_001",
          "Spawn - Location": {
            "x": -1595.184,
            "y": 5.00518656,
            "z": -1589.92676
          },
          "Spawn - Radius": 100.0,
          "Spawn - Chance": 100
        }
      ],

Now, if you join the training ground, you'll notice that the bots have begun to spawn and move.

💡 Note

Never edit the spawn point names. They're named and given specific IDs automatically by Game Mode Manager


1.5.3 Bots Loadouts

Like the last time, create loadouts for the bots as you did for players.

  • Assign the loadout to the bot in the RecoilTrainingGround.json config file.
"Bots List": [
    {
      "Name": "Garry",
      "Loadout": "Garry",
    },


1.5.4 Bots Movement

You can adjust the bots' movement speed from the RecoilTrainingGround.json config file.

  • To get your bots to standing still and without movement, set the speed values to zero.
			"Minimum Movement Speed": 3.0,
      "Maximum Movement Speed": 7.0,

💡Tip

Setting different values for "Minimum Movement Speed" and "Maximum Movement Speed" gives natural and randomized movement for your bots.


1.5.5 Bots Health

Make your bots immune by enabling "Infinitive Health". Useful for recoil practicing on the bots that don't move.

"Infinitive Health": true


1.6 Training Ground Performance Mode

By default, bots spawn when the player joins the training ground, and they get networked only to that player. But when this option is enabled, all players inside the training ground will share the same bots, which means the plugin won't spawn bots for each player separately.

This mode can be enabled for each training ground separately.

"Performance Mode - Enabled": true,

2. Recoil Pattern Generator

Helps to capture and generate recoil and anti-recoil patterns of any weapon with any attachments accurately.

2.1 Recoil Pattern Creation

Before you begin, the patterns are affected by any attachments attached to the weapon. Therefore the generated pattern for a gun with an attachment is different from a gun without one. So you may have to create different patterns for the same weapon but with various attachments to get all viable, accurate patterns.

  • Prepare the weapon for which you want to create the recoil pattern.
  • After you equip the weapon with its desired attachments, use the command recoil.ready and start firing without any gun control five times in a row at least.
  • Upon using the command, you'll notice the plugin has locked your belt inventory to prevent moving or dropping the weapon.

💡 Note

Only one admin can generate patterns at the same time.

  • When you finish, generate the pattern by using the command recoil.generate

  • The plugin will print on the console detailed data of the pattern before generating and saving it.

[Recoil Pattern Generator] Max shots: 30
[Recoil Pattern Generator] 0: 0,14,13,32,50,51,44,37,17,0,-16,-31,-44,-51,-51,-45,-34,-19,-2,6,30,52,66,75,80,75,61,42,26,7
[Recoil Pattern Generator] 1: 0,14,12,24,41,51,44,33,17,0,-14,-30,-40,-48,-51,-45,-36,-27,-7,10,30,52,66,75,80,76,65,49,29,10
[Recoil Pattern Generator] 2: 0,11,12,19,43,51,44,35,19,3,-14,-32,-44,-51,-51,-45,-34,-21,-7,15,29,51,65,75,80,75,61,41,26,6
[Recoil Pattern Generator] AVG: 0,13,12,25,45,51,44,35,18,1,-15,-31,-43,-50,-51,-45,-35,-22,-5,10,30,52,66,75,80,75,62,44,27,8
  • The plugin now will automatically use the average or median of shots to reach the best result of the pattern.

  • You can find the patterns you generated in the RecoilPatternGenerator.json data file, and to use them in the training ground, copy them to RecoilTrainingGround.json under the "Recoils" list.

    {
      "Recoils": [
        {
          "Weapon Short Name": "ak47u.entity",
          "Attachments": [],
          "Recoil Points": [
            0,
            14,
            12,
            27,
            46,
            51,
            44,
            33,
            17,
            0,
            -16,
            -32,
            -44,
            -51,
            -51,
            -45,
            -34,
            -19,
            -3,
            14,
            33,
            52,
            66
          ]
        }
      ]
    }
    
  • Your spray pattern will remain displayed on the recoil board as long as you're firing with the gun, but as soon as you stop, your recoil points will reset.

💡Note

The recoil board and statistics will only work if there are patterns added to the "Recoils" list.


2.2 Pattern Customization

You can modify the symbol, color, and size of the pattern from the RecoilTrainingGround.json config file. That includes separate settings for both successful and missed shots, giving you more freedom in customizing the look of your pattern board.

  "Symbol - Original Weapon Pattern": "⦿",
  "Symbol - Hit": "⦿",
  "Symbol - Miss": "⦿",
  "Color - Original Weapon Pattern": "#ffffff",
  "Color - Hit": "#00ff00",
  "Color - Miss": "#ff0000",
  "Font - Original Weapon Pattern": 10,
  "Font - Hit": 10,
  "Font - Miss": 10,

2.3 Shot Tolerance

  "Hit - Max Tolerance": 10,

The "Max Tolerance" stands for the ignorable amount of the missed hit.

Let's say the position of the recoil point X is 5, and your shot X landed at 9. In that case, the plugin will ignore the difference "Tolerance" and accept your shot as a successful hit.


2.3 Future Plans


User Reviews

Best Plugin(*)(*)(*)(*)(*) - Jun 18, 2021

Would 100% recommend this to others.


xfrankzappa
3 out of 4 people found this helpful
Amazing(*)(*)(*)(*)(*) - Jun 6, 2021

Easy to setup and great support for a very good price. Would 100% recommend this to others.


liamprestoe
3 out of 4 people found this helpful
Best Script(*)(*)(*)(*)(*) - Jun 2, 2021

Love this +rep to dana


ellerose2329
3 out of 4 people found this helpful

Store: Dana

Price: $20



Supported payment methods
PayPal, Skrill, WebMoney

Supported Platforms
Standalone

All future updates (bug fixes, new features, etc.) are included in the price.