Join the Game4Freak Discord Get exclusive plugin sneak peeks, talk directly with VisEntities, never miss important updates, and unlock special discount codes!
Gamemode Aim Train

Gamemode Aim Train 1.7.1

Train your aim and master weapon recoil patterns with fully customizable AI training bots that move, crouch, and adapt to your practice needs
Dependencies
Gamemode Core (Required), Gear Core (Required), Recoil Tracker (Optional)
Works With
image.png



Gamemode Aim Train creates dedicated practice arenas with customizable AI training bots. You can configure bots to stand completely still for precision practice or move around at various speeds for tracking practice. Each bot configuration lets you control health, movement speed, crouch behavior, and damage immunity.

The plugin tracks your shooting statistics in real-time: shots fired, hits, headshots, accuracy percentage, and shot distances. All stats are tracked per weapon, so switching from AK to LR-300 gives you separate statistics for each gun. When you use the optional Recoil Tracker plugin, you can see the ideal spray pattern for your weapon overlaid with markers showing where your actual shots landed.

Each player gets their own isolated set of training bots. Other players in the same arena won't see your bots and you won't see theirs, so everyone can practice independently without interference.

Features

  • Customizable Training Bots - Configure health, speed, crouch percentage, and immunity for each bot type
  • Multiple Bot Configurations - Create different bot profiles in a single arena (stationary, moving, crouching)
  • Movement Patterns - Bots can patrol within spawn radius or stand still facing specific directions
  • Real-Time Statistics - Track shots fired, hits, headshots, accuracy, and shot distances
  • Recoil Pattern Visualization - Shows ideal spray pattern and your actual shots (requires Recoil Tracker)
  • Infinite Ammo Mode - Toggle infinite ammunition to focus on aim, not inventory management
  • Player Isolation - Players can't see or hear each other's bots, gunfire, or impacts during practice
  • Custom Gear Sets - Equip specific loadouts automatically when entering the arena
  • Spawn Point System - Configure multiple spawn locations for players and bots
  • Bot Immunity Toggle - Make bots invincible for spray pattern practice
  • Automatic Bot Respawn - Bots respawn instantly after being killed

Dependencies

Required Plugins

  • Gamemode Core -- The base framework that handles arena creation, player spawns, teleporters, and arena boundaries for this plugin. Without it, the Aim Train plugin won't load.

Optional Plugins

  • Recoil Tracker -- Adds the recoil pattern visualization feature. Shows the ideal spray pattern for your weapon and marks where your shots land (green for pattern matches, red for misses).
  • Armory -- Provides weapon selection menu for changing loadouts in-arena
  • Gear Core -- Needed if you want to give players and bots custom loadouts (kits). Without this plugin, players and bots spawn with empty inventories.

Permissions

  • gamemodecore.admin -- Required to create and configure aim train arenas

Commands

Arena Management

  • gm.at create <title> <position> <radius> [maxPlayerCapacity] -- Creates a new aim train arena at the specified position. <title> is the display name, <position> is world coordinates or "here", <radius> is arena boundary in meters, [maxPlayerCapacity] is optional (-1 for unlimited, default 10).
  • gm.at edit <arenaId> -- Enters edit mode for an existing arena, allowing you to modify spawn points, bots, and settings.
  • gm.at remove -- Deletes the currently edited arena. You must be in edit mode first.

Arena Configuration

  • gm.at set <property> <value>-- Sets arena properties. Available properties:
    • title -- Arena display name
    • enabled -- Enable/disable arena (true/false)
    • maxplayers -- Maximum player capacity
    • respawngear -- Gear set name to equip on respawn
    • radius -- Arena boundary size
    • position -- Arena center position or "here"
    • infotemplate -- Custom information text template

Player Spawn Points

  • gm.at spawn add <position> <radius> -- Creates a player spawn location. <position> is world coordinates or "here". Radius of 0 spawns at exact position, radius > 0 spawns randomly within that area.
  • gm.at spawn remove [spawnPointId] -- Removes a spawn point. If no ID provided, removes the nearest spawn point.

Training Bot Management

  • gm.at bot add <numberToSpawn> -- Creates a new bot configuration profile with the specified number of bots to spawn.
  • gm.at bot edit <botId> -- Selects a bot configuration for editing.
  • gm.at bot remove -- Deletes the currently selected bot configuration.
  • gm.at bot set <property> <value>-- Configures bot properties. Available properties:
    • health -- Bot health points
    • immune -- Invincibility (true/false)
    • number -- Number of bots to spawn
    • minrunspeed -- Minimum movement speed when running
    • maxrunspeed -- Maximum movement speed when running
    • crouchperc -- Percentage of bots that spawn crouched (0-100)
    • mincrouchspeed -- Minimum movement speed when crouched
    • maxcrouchspeed -- Maximum movement speed when crouched
    • randomname -- Generate random names (true/false)
  • gm.at bot spawn add <position> <radius> -- Adds a spawn point for the currently edited bot configuration. <position> is world coordinates or "here". <radius> determines patrol area (0 = stationary).
  • gm.at bot spawn remove <spawnPointId> -- Removes a bot spawn point.
  • gm.at bot facehere -- Updates all spawn points for the currently edited bot to face your current position. Also reorients any already-spawned bots from those spawn points. Quick way to fix facing direction without manually editing each spawn point.

Arena Rules

  • gm.at rule add <rule1> [rule2] [rule3]...-- Adds gameplay rules to the arena. For a complete list of available rules and their effects, see the Gamemode Core Zone Rules documentation.
  • gm.at rule remove <rule1> [rule2] [rule3]... -- Removes gameplay rules from the arena.

Command Blocking

  • gm.at blockcmd add <command> -- Blocks a command from being used inside the arena.
  • gm.at blockcmd remove <command> -- Removes a command from the blocked list.
  • gm.at blockcmd list -- Shows all blocked commands for the arena.

Teleporter Setup

  • gm.at teleporter create <position> <radius> [visibilityRange] [visibleZone] -- Creates a teleporter to the arena. <position> is world coordinates or "here", <radius> is trigger zone size, [visibilityRange] is distance at which info text appears, [visibleZone] shows/hides the dome (true/false).
  • gm.at teleporter position <position|here> -- Changes teleporter position.
  • gm.at teleporter radius <radius> -- Changes teleporter trigger zone size.
  • gm.at teleporter visibility <range> -- Changes info text visibility range.
  • gm.at teleporter visiblezone <true|false> -- Shows or hides the teleporter dome.
  • gm.at teleporter remove -- Deletes the teleporter.

Visualization

  • gm.at draw -- Visualizes the arena boundaries, spawn points, and bot locations for 20 seconds.

Configuration

JSON:
{
  "Version": "1.7.0",
  "Locked Inventory Containers": [
    "wear"
  ],
  "Scoreboard Backdrop Opacity": 60.0,
  "Recoil Panel Backdrop Opacity": 60.0,
  "Recoil": {
    "Recoil Matching Tolerance": 5.0,
    "Pattern Dot Symbol": "●",
    "Pattern Dot Color": "CACF52",
    "Pattern Dot Size": 15,
    "Hit Symbol": "✖",
    "Hit Color": "75A838",
    "Hit Size": 18,
    "Miss Symbol": "✖",
    "Miss Color": "B1231E",
    "Miss Size": 18
  }
}

General Settings

  • Locked Inventory Containers -- Controls which inventory slots are locked in the arena. Options: "main", "belt", "wear", "all". Default: ["wear"] locks only the clothing slot.
  • Scoreboard Backdrop Opacity -- Controls transparency of the statistics panel background. (0 = fully transparent, 100 = fully opaque). Higher values make the scoreboard easier to read in bright areas.
  • Recoil Panel Backdrop Opacity -- Controls transparency of the recoil pattern visualization panel.

Recoil Visualization Settings

These settings only apply when Recoil Tracker is installed.
  • Recoil Matching Tolerance -- Distance from ideal pattern to count as a "hit". Lower values require more precise spray control.
  • Pattern Dot Symbol -- Character used to display the ideal spray pattern. Default: "●". Can use any Unicode character (e.g., "•", "○", "◉").
  • Pattern Dot Color -- Hex color code for pattern visualization. Format: 6-character hex without # prefix.
  • Pattern Dot Size -- Font size for pattern dots. Range: 10-30.
  • Hit Symbol -- Character shown for shots that matched the pattern.
  • Hit Color -- Hex color for successful pattern matches.
  • Hit Size -- Font size for hit markers.
  • Miss Symbol -- Character shown for shots outside the pattern.
  • Miss Color -- Hex color for pattern misses.
  • Miss Size -- Font size for miss markers.

Arena Setup Guide

Create the Arena

Code:
gm.at create "AK Training" here 50 10
gm.at edit 001
This creates an arena with 50m radius at your current position, max 10 players.

Add Player Spawn Points

Code:
gm.at spawn add here 3
Add multiple spawn points in different locations for variety. The radius of 3 means players spawn randomly within 3m of that point.

Configure Arena Settings

Code:
gm.at set respawngear "training_ak"
gm.at rule add NoWounding NoCorpseSpawn NoItemContainerSpawn
Set the gear set players spawn with and add rules to prevent corpses/loot containers.

Add Training Bots

You have two main options: stationary bots or moving bots.

Stationary Bots (Standing Still)

Best for precision practice, headshot training, and spray control.
Code:
gm.at bot add 10
gm.at bot set health 100
gm.at bot set minrunspeed 0
gm.at bot set maxrunspeed 0
gm.at bot spawn add here 0
What this does:
  • Speed 0 = bots don't move
  • Spawn radius 0 = exact position
  • facehere makes them face your current position
Add multiple spawn points for bots at different distances from player spawn.
For spray pattern practice (invincible bots):
Code:
gm.at bot set immune true

Moving Bots (Patrol/Strafe)

Best for tracking practice and realistic combat.
Code:
gm.at bot add 8
gm.at bot set health 150
gm.at bot set minrunspeed 3
gm.at bot set maxrunspeed 5
gm.at bot spawn add here 15
What this does:
  • Speed 3-5 = bots move at variable speeds
  • Spawn radius 15 = bots patrol within 15m area
  • Random speeds make them unpredictable
To add crouching behavior:
Code:
gm.at bot set crouchperc 50
gm.at bot set mincrouchspeed 1
gm.at bot set maxcrouchspeed 2
This makes 50% of bots spawn crouched and move slower.

Add Teleporter

Code:
gm.at teleporter create here 3 10 true
Creates a teleporter that players use to enter the arena. The teleporter has a 3m trigger radius, shows info text at 10m distance, and has a visible dome.

Visualize Your Setup

Code:
gm.at draw
Shows arena boundaries, spawn points, and bot locations for 20 seconds.

Understanding Bot Behavior

Bots with speed 0 stand completely still at their spawn point. Bots with speed > 0 patrol randomly within their spawn radius, avoiding obstacles and the player.

Speed guide: 0 = stationary, 1-2 = slow walk, 3-4 = normal movement, 5+ = fast strafe.

Crouch Percentage

crouchperc controls what percentage spawn crouched. Example: number = 10 and crouchperc = 30 means 3 crouched, 7 standing. Crouched bots use crouch speeds, standing bots use run speeds.

Bot Respawn Behavior

When killed, bots respawn instantly at their spawn point with all original settings intact: health, movement speed, crouch/standing state, and facing direction.

Bot Visibility

Training bots are only visible to the player who spawned them. Other players in the arena won't see your bots, and you won't see theirs.


Statistics Tracking

The scoreboard tracks shots fired, shots hit, headshots, accuracy percentage, and shot distances for your current weapon. Stats reset when you switch weapons, click "Reset Stats", or leave the arena. Only hits on training bots count - shooting walls or air doesn't affect your stats.


Recoil Pattern Visualization

When you have the Recoil Tracker plugin installed, a "Recoil Pattern" button appears on your scoreboard. Click it to open a panel showing your weapon's spray pattern as yellow dots. Each dot represents where a shot should land in the ideal pattern.

As you fire, markers appear showing your actual shots: green X for shots that matched the pattern closely enough, red X for shots that deviated too far. The tolerance setting (default 5 pixels) determines how close is "close enough" - adjust it in the config to make matching easier or harder.

The panel clears when you finish the full magazine or pause shooting. Switch weapons and the pattern updates automatically for the new gun.

You need Recoil Tracker installed for this feature to work. To record patterns for your weapons, check the Recoil Tracker documentation.
your actual shots. Pattern resets after completing the full spray or pausing between shots.

Stored Data

JSON:
{
  "Arenas": [
    {
      "Enabled": true,
      "Id": "001",
      "Title": "AK Training Arena",
      "Gamemode": "AimTrain",
      "Radius": 50.0,
      "Position": {
        "x": 100.0,
        "y": 10.0,
        "z": 200.0
      },
      "Rules": [
        "NoCorpseSpawn",
        "NoWounding",
        "NoKillSelf",
        "NoItemContainerSpawn"
      ],
      "Respawn Gear Set": "training_loadout",
      "Maximum Player Capacity": 10,
      "Information Template": "{Title}\nGamemode: {Gamemode}\nStatus: {Status}\nPlayers: {PlayerCount} / {PlayerCapacity}",
      "Spawn Points": [
        {
          "Id": "001",
          "Position": {"x": 95.0, "y": 10.0, "z": 195.0},
          "Rotation": {"x": 0.0, "y": 0.0, "z": 0.0},
          "Radius": 3.0,
          "Leash Radius": 0.0
        }
      ],
      "Teleporter": {
        "Radius": 3.0,
        "Position": {"x": 50.0, "y": 10.0, "z": 150.0},
        "Information Text Visibility Range": 10.0,
        "Visible Zone": true
      },
      "Training Bots": [
        {
          "Id": "001",
          "Health": 100.0,
          "Immune To Damage": false,
          "Minimum Running Speed": 0.0,
          "Maximum Running Speed": 0.0,
          "Crouched Percentage": 0,
          "Minimum Crouch Speed": 0.0,
          "Maximum Crouch Speed": 0.0,
          "Gear Sets": [],
          "Generate Random Name From Pool": true,
          "Custom Names": [],
          "Number To Spawn": 5,
          "Spawn Points": [
            {
              "Id": "001",
              "Position": {"x": 100.0, "y": 10.0, "z": 220.0},
              "Rotation": {"x": 0.0, "y": 180.0, "z": 0.0},
              "Radius": 0.0,
              "Leash Radius": 0.0
            }
          ]
        }
      ],
      "Blocked Commands": []
    }
  ]
}

Arena Settings

  • Enabled -- Whether the arena is active and joinable.
  • Id -- Unique identifier for the arena (automatically assigned).
  • Title -- Display name shown to players.
  • Gamemode -- Always "AimTrain" for this plugin.
  • Radius -- Arena boundary size in meters.
  • Position -- Center point of the arena (x, y, z coordinates).
  • Rules -- List of gameplay rules.
  • Respawn Gear Set -- Name of the Gear Core set to equip players on spawn.
  • Maximum Player Capacity -- Maximum concurrent players (-1 = unlimited).
  • Information Template -- Custom text shown at teleporter with placeholders.
  • Blocked Commands -- List of commands disabled while in the arena.

Spawn Points

  • Id -- Unique identifier for this spawn point.
  • Position -- World coordinates where players spawn.
  • Rotation -- Facing direction in Euler angles (x, y, z).
  • Radius -- Random spawn radius (0 = exact position, >0 = random within radius).
  • Leash Radius -- Maximum distance players can move from spawn (0 = unlimited).

Teleporter

  • Radius -- Size of the teleporter trigger zone.
  • Position -- World coordinates of the teleporter.
  • Information Text Visibility Range -- Distance at which arena info text appears.
  • Visible Zone -- Whether the teleporter dome is visible (true/false).

Training Bots

  • Id -- Unique identifier for this bot configuration.
  • Health -- Bot health points (they die when reaching 0).
  • Immune To Damage -- Whether bots take damage (true = invincible).
  • Minimum Running Speed -- Slowest movement speed when standing.
  • Maximum Running Speed -- Fastest movement speed when standing.
  • Crouched Percentage -- Percentage of bots that spawn crouched (0-100).
  • Minimum Crouch Speed -- Slowest movement speed when crouched.
  • Maximum Crouch Speed -- Fastest movement speed when crouched.
  • Gear Sets -- List of Gear Core set names (random selection per bot).
  • Generate Random Name From Pool -- Automatically assigns random player names to bots from the game's built-in name pool (true/false).
  • Custom Names -- List of custom names (used if random names disabled).
  • Number To Spawn -- How many bots to spawn for this configuration.

Bot Spawn Points

  • Id -- Unique identifier for this bot spawn location.
  • Position -- World coordinates where bot spawns.
  • Rotation -- Direction the bot faces (important for stationary bots).
  • Radius -- Patrol area radius (0 = stationary, >0 = bot moves within area).
  • Leash Radius -- Currently unused for bots.

Localization

JSON:
{
  "Ui.Recoil.Title": "Recoil",
  "Score.Title": "Statistics",
  "Score.Weapon": "Weapon",
  "Score.ShotsFired": "Shots Fired",
  "Score.ShotsHit": "Shots Hit",
  "Score.Headshots": "Headshots",
  "Score.Accuracy": "Accuracy",
  "Score.LastShotDistance": "Last Shot Distance",
  "Score.LongestShotDistance": "Longest Shot Distance",
  "Button.ResetStats": "Reset Stats",
  "Button.InfiniteAmmo": "Infinite Ammo",
  "Button.ImmuneBots": "Immune Bots",
  "Button.RespawnBots": "Respawn Bots",
  "Button.RecoilPattern": "Recoil Pattern",
  "Button.Armory": "Armory",
  "InfiniteAmmo.Enabled": "Infinite ammunition is now enabled.",
  "InfiniteAmmo.Disabled": "Infinite ammunition is now disabled.",
  "BotsImmune.Enabled": "Your bots are now immune to damage.",
  "BotsImmune.Disabled": "Your bots are now vulnerable to damage.",
  "RespawnBots.NotInArena": "You must be in the Aim Train arena to use this command.",
  "RespawnBots.Success": "Your training bots have been respawned.",
  "RespawnBots.Failed": "Failed to respawn bots. Could not find your Aim Train data.",
  "RecoilPattern.Enabled": "Recoil pattern ui enabled.",
  "RecoilPattern.Disabled": "Recoil pattern ui disabled."
}
Author
VisEntities
License duration
Unlimited
Price
19.99 USD
First release
Last update

Ratings

0.00 star(s) 0 reviews

Parent plugin

  • Gamemode Core
    Gamemode Core
    The central hub that powers all your competitive content. One lobby connecting to every arena through a unified system

Also by VisEntities

Latest updates

  1. 1.7.1

    Scoreboard now refreshes immediately when theplayer fires or lands a shot, updating stats like...
  2. 1.7.0

    Added radius and position properties to the set command for adjusting arena zone size and...
  3. 1.6.0

    Added config options to adjust scoreboard and recoil panel background transparency...
Back
Top
Chat commands start with a /, while console commands can be entered directly in the F1 console or server console. Use find <keyword> in console to search for available commands related to the plugin. Parameters in < > are required, while [ ] are optional.
This plugin uses Oxide's permission system. Grant or revoke permissions using oxide.grant and oxide.revoke. You can assign them to individual players or groups using their Steam id or group name.
Settings are stored in the config file found under the config/ directory. You can edit this file manually, then reload the plugin to apply your changes.
Persistent data is saved in the data/ directory. This includes things like saved settings, usage stats, or player progress depending on the plugin. Deleting a data file will reset stored progress or customizations.
Language files are located in the lang/ folder. To translate messages, copy the en.json file into your target language folder (e.g. fr, de) and edit the values. Reload the plugin after changes to apply new messages.
This section lists public methods exposed by the plugin for use in other plugins. You can call these via the CallHook method. Ensure the plugin is loaded before calling its API to avoid null reference errors.
These are custom hooks that other plugins can listen for. Simply define a method with the same name and expected parameters in your plugin to handle the event. Hooks are triggered at key moments and are useful for extending or reacting to plugin behavior.
These hooks are injected into the game's code using Harmony. They let the plugin run code at key points in the game's internal logic. You can return values to block or modify behavior. Use with caution — these are powerful and can affect core mechanics.
Cart