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

Gamemode Gun Game 1.7.0

Kill to unlock the next weapon in a fast-paced progression battle
Dependencies
Gamemode Core (Required), Gear Core (Required)


Gun Game is a competitive minigame where players advance through a progression of weapons by getting kills. Each kill unlocks the next weapon in the sequence, and the first player to complete all weapons wins the round.

Features

  • Weapon progression system: Players unlock weapons sequentially by getting kills
  • Customizable weapon stages: Define exactly which gear sets players use at each stage
  • Flexible kill requirements: Set how many kills are needed to advance each weapon
  • Warmup phase: Optional warmup period before rounds start with configurable gear
  • Automatic respawning: Players respawn immediately after death
  • Kill feed: Optional kill notifications showing weapon and distance
  • Health restoration: Optional full health restoration on each kill
  • Ammo restocking: Optional ammo refill on each kill
  • Reset on death option: Choose whether players restart from weapon 1 when they die
  • Scoreboards: Real-time tracking of each player's weapon progression

Dependencies

Required:
  • Gamemode Core -- The core gamemode framework that provides lobby, zone, and player management
  • Gear Core -- Manages weapon loadouts and gear sets for each weapon stage

Permissions

  • gamemodecore.admin -- Required to create and configure Gun Game arenas

Commands

Arena Management

  • gm.gg create <title> <position> <radius> [maxPlayerCapacity]-- Creates a new Gun Game arena
    • title - Display name for the arena
    • position - Arena center position (x,y,z coordinates) or here for current position
    • radius - Arena boundary radius in meters
    • maxPlayerCapacity - Optional maximum players allowed (-1 for unlimited, default: 10)
  • gm.gg edit <arenaId> -- Selects an arena for editing. All subsequent commands apply to this arena
  • gm.gg remove -- Deletes the currently edited arena. This action cannot be undone

Teleporter Management

  • gm.gg teleporter create <position> <radius> [visibilityRange] [visibleZone]-- Creates a teleporter zone in the lobby
    • position - Teleporter position (x,y,z) or here
    • radius - Teleporter activation radius
    • visibilityRange - Optional range where arena info is displayed (default: 10)
    • visibleZone - Optional whether sphere is visible (true/false)
  • gm.gg teleporter position <position|here> -- Updates teleporter position
  • gm.gg teleporter radius <radius> -- Updates teleporter activation radius
  • gm.gg teleporter visibility <range> -- Updates information text visibility range
  • gm.gg teleporter visiblezone <true|false> -- Sets whether teleporter sphere is visible
  • gm.gg teleporter remove -- Deletes the teleporter

Spawn Point Management

  • gm.gg spawn add <position> <radius>-- Adds a spawn point to the arena
    • position - Spawn location (x,y,z) or here
    • radius - Random spawn radius (0 for exact position, 1-5 recommended for variation)
  • gm.gg spawn remove [spawnPointId] -- Removes a spawn point. If no ID provided, removes nearest spawn point

Weapon Progression

  • gm.gg weapon add <gearSet> [killsNeeded]-- Adds a weapon stage to the progression
    • gearSet - Name of the Gear Core gear set to equip
    • killsNeeded - Optional kills required to unlock next weapon (default: 1)
  • gm.gg weapon edit <stage> <newGearSet> [newKillsNeeded]-- Modifies an existing weapon stage
    • stage - Stage number to edit
    • newGearSet - New Gear Core gear set name
    • newKillsNeeded - Optional new kills required
  • gm.gg weapon remove <stage> -- Removes a weapon from progression. Subsequent weapons are automatically reindexed

Rules System

  • gm.gg rule add <rule1> [rule2] [rule3] ... -- Adds gameplay rules to the arena. See Zone Rules for available rules and their effects
  • gm.gg rule remove <rule1> [rule2] [rule3] ... -- Removes gameplay rules from the arena

Arena Properties

  • gm.gg set <property> <value>-- Configure arena settings
    • title - Arena display name
    • enabled - Enable/disable arena (true/false)
    • maxplayers - Maximum player capacity (number or -1 for unlimited)
    • roundduration - Round length in seconds (number or -1 for unlimited)
    • warmupduration - Warmup phase length (number, minimum: 10)
    • warmupgearset - Gear set used during warmup (Gear Core set name or none)
    • killfeed - Enable kill notifications (true/false)
    • healonkill - Restore health on kill (true/false)
    • ammoonkill - Restock ammo on kill (true/false)
    • radius - Arena boundary radius (number)
    • position - Arena center position ((x,y,z) or here)
    • infotemplate - Teleporter info display template string. See Information Placeholders for available placeholders

Command Blocking

  • gm.gg blockcmd add <command> -- Blocks a command from being used within the arena. Command names should be lowercase without slash prefix
  • gm.gg blockcmd remove <command> -- Unblocks a command
  • gm.gg blockcmd list -- Lists all blocked commands for the arena

Arena Visualization

  • gm.gg draw -- Displays debug spheres and labels for arena, teleporter, and spawn points for 20 seconds

Creating Your First Arena

Create the arena
Start by creating the arena zone where matches will take place:
Code:
gm.gg create "Training Gun Game" here 50 12
gm.gg edit 001

Add spawn points
Place at least 4 spawn points around the arena for player respawns:
Code:
gm.gg spawn add here 2
gm.gg spawn add here 2
gm.gg spawn add here 2
gm.gg spawn add here 2

Create teleporter in lobby
Go to your lobby and create a teleporter zone where players join the arena:
Code:
gm.gg teleporter create here 3 15 true

Configure weapon progression
Set up the weapon stages players will progress through. Each stage uses a Gear Core gear set name (not individual weapon shortnames). See Gear Core documentation for creating gear sets:
Code:
gm.gg weapon add "Eoka Pistol" 1
gm.gg weapon add "Waterpipe Shotgun" 1
gm.gg weapon add "Double Barrel" 1
gm.gg weapon add "Revolver" 2
gm.gg weapon add "SAP" 2
gm.gg weapon add "Thompson" 2
gm.gg weapon add "Custom SMG" 2
gm.gg weapon add "SAR" 3
gm.gg weapon add "AK47" 3
gm.gg weapon add "Bolt Rifle" 1

Apply rules and settings
Configure gameplay rules and match settings:
Code:
gm.gg rule add NoBuilding NoCrafting NoItemDropping NoCorpseSpawn
gm.gg set killfeed true
gm.gg set healonkill true
gm.gg set ammoonkill true
gm.gg set roundduration 600
gm.gg set warmupduration 30

Visualize and test
Verify your setup by visualizing the arena boundaries:
Code:
gm.gg draw

Configuration

JSON:
{
  "Version": "1.7.0",
  "Locked Inventory Containers": [
    "wear"
  ],
  "Show Weapon Unlock Toast": true,
  "Weapon Upgrade Effect (leave empty to disable)": "assets/prefabs/misc/easter/painted eggs/effects/gold_open.prefab"
}
  • Locked Inventory Containers -- Controls which inventory containers are locked during matches. Valid values: "main" (main inventory), "belt" (hotbar), "wear" (clothing slots), "all" (everything). Prevents players from modifying their loadout beyond what the current weapon stage provides.
  • Show Weapon Unlock Toast -- Displays a toast notification when players unlock a new weapon. Set to false to only show chat messages.
  • Weapon Upgrade Effect -- Effect played when unlocking a new weapon. Set to empty string "" to disable. Common effects include "assets/prefabs/missions/effects/mission_victory.prefab" or "assets/prefabs/deployable/research table/effects/research-success.prefab". See Rust Effects List for more effect prefab paths.

Stored Data

JSON:
{
  "Arenas": [
    {
      "Enabled": true,
      "Id": "001",
      "Title": "Dome Gun Game",
      "Gamemode": "GunGame",
      "Radius": 50.0,
      "Position": {
        "x": 100.0,
        "y": 50.0,
        "z": 200.0
      },
      "Rules": [
        "NoBuilding",
        "NoCrafting",
        "NoItemDropping",
        "NoCorpseSpawn"
      ],
      "Teleporter": {
        "Radius": 3.0,
        "Position": {
          "x": 0.0,
          "y": 0.0,
          "z": 0.0
        },
        "Information Text Visibility Range": 15.0,
        "Visible Zone": true
      },
      "Information Template": "{Title}\nGamemode: {Gamemode}\nStatus: {Status}\nTime Left: {TimeLeft}\nPlayers: {PlayerCount} / {PlayerCapacity}\n\nParticipants:\n{PlayerList}",
      "Maximum Player Capacity": 16,
      "Spawn Points": [
        {
          "Id": "001",
          "Position": {
            "x": 95.0,
            "y": 50.5,
            "z": 195.0
          },
          "Rotation": {
            "x": 0.0,
            "y": 0.0,
            "z": 0.0
          },
          "Radius": 2.0,
          "Leash Radius": 0.0
        }
      ],
      "Blocked Commands": [
        "teleport",
        "home"
      ],
      "Warmup Duration Seconds": 30.0,
      "Round Duration Seconds": 600.0,
      "Has Kill Feed": true,
      "Warmup Gear Set (optional, leave empty to not give gear in warmup)": "AK Practice",
      "Weapon Progression Path": {
        "1": {
          "Gear Set": "Eoka Pistol",
          "Kill Needed To Unlock": 1
        },
        "2": {
          "Gear Set": "Waterpipe Shotgun",
          "Kill Needed To Unlock": 1
        },
        "3": {
          "Gear Set": "Double Barrel Shotgun",
          "Kill Needed To Unlock": 1
        },
        "4": {
          "Gear Set": "Revolver",
          "Kill Needed To Unlock": 2
        },
        "5": {
          "Gear Set": "Semi-Auto Pistol",
          "Kill Needed To Unlock": 2
        },
        "6": {
          "Gear Set": "Thompson",
          "Kill Needed To Unlock": 2
        },
        "7": {
          "Gear Set": "Custom SMG",
          "Kill Needed To Unlock": 2
        },
        "8": {
          "Gear Set": "Semi-Auto Rifle",
          "Kill Needed To Unlock": 3
        },
        "9": {
          "Gear Set": "AK47",
          "Kill Needed To Unlock": 3
        },
        "10": {
          "Gear Set": "Bolt Action Rifle",
          "Kill Needed To Unlock": 1
        }
      },
      "Reset To First Weapon On Death": false,
      "Restore Full Health On Kill": true,
      "Restock Gun Ammo On Kill": true
    }
  ]
}
  • Enabled -- Whether the arena accepts new players. Set to false to disable the arena.
  • Id -- Unique arena identifier, auto-assigned in format "001", "002", etc.
  • Title -- Display name shown to players in teleporter info and scoreboards.
  • Radius -- Arena boundary radius in meters from center position.
  • Position -- Arena center coordinates (x, y, z). All spawn points should be within the radius.
  • Rules -- List of gameplay restrictions like "NoBuilding", "NoCrafting", "NoItemDropping". See section 5.5 for available rules.
  • Maximum Player Capacity -- Maximum players allowed. Set to -1 for unlimited.
  • Blocked Commands -- Commands that cannot be used in the arena (lowercase, without slash).
  • Warmup Duration Seconds -- Length of warmup phase before rounds start. Minimum 10 seconds.
  • Round Duration Seconds -- Maximum round length in seconds. Set to -1 for unlimited.
  • Has Kill Feed -- Shows kill notifications in chat with weapon and distance information.
  • Warmup Gear Set -- Gear Core gear set name equipped during warmup. Empty string "" to disable.
  • Weapon Progression Path -- Dictionary mapping stage numbers ("1", "2", "3") to weapon configs. Each stage has a Gear Set name and Kill Needed To Unlock count.
  • Reset To First Weapon On Death -- When true, players restart from weapon 1 on death (hardcore mode). When false, players keep current weapon.
  • Restore Full Health On Kill -- When true, players are fully healed after each kill.
  • Restock Gun Ammo On Kill -- When true, refills current weapon's magazine after each kill.

Localization

JSON:
{
  "Weapon.Unlocked": "You unlocked <color=#CACF52>{0}</color>!",
  "Score.Title": "Unlock <size=21><color=#CACF52>{0}</color></size> weapons"
}
  • Like
Reactions: matiashallway
Author
VisEntities
License duration
Unlimited
Price
12.99 USD
First release
Last update

Ratings

5.00 star(s) 1 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.0

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

    Added localization support for player-facing messages.
  3. 1.5.0

    Added support for giving players a separate gear set during warmup instead of progression gear...

Latest reviews

awesome mode.. we have been looking for an arena mode that you can use your own prefab as in the past we have used game modes that spawn there own high in the sky..
This wipe we wanted to integrate the dust 2 map from counterstrike but couldn't do it due to limitations in available mods out there... enter visentities! ("hold my beer")

I had issues with this mode and the gamecore plugin due to not fully understanding the "rules" integration but as always vis has explained everything and within 5 minutes of implementing the rule set we now have a fully functioning awesome pvp arena based on dust 2 from counterstrike and were absolutely buzzing with it. vis you've done it again and added a huge layer of enjoyment to our server, the players are going to love the nostalgic trip down memory lane! i got this on sale along with gamecore but the price doesn't represent the value of this plugin, it will be worth every penny!
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