HomeJavaModsCombatGunSSS
CombatGunSSS
ModsJava

CombatGunSSS

by Duong2012G · on Modrinth

Adds 45 unique guns to Minecraft, each with custom damage, recoil, fire rate, and reload mechanics, enhancing combat with balanced gameplay, multiple…

⬇ Download on Modrinth
CombatGunSSS — screenshot 1CombatGunSSS — screenshot 2CombatGunSSS — screenshot 3

🔫 CombatGunSSS

Version Platform Java

CombatGunSSS is a high-performance, feature-rich Minecraft gun plugin designed for modern servers (1.21+). It brings a tactical, realistic combat experience with 46 uniquely configured weapons (40 firearms + 6 melee), advanced crafting mechanics, optimized hitscan technology, a full custom events API, and a growing ecosystem of plugin integrations.


🌟 Key Features


🎮 Player Controls

Action Control
Shoot Right Click
Reload Swap Hand Key [F]
Melee Attack Left Click
Buy a weapon /gun buy <id>
Crafting Right Click on Mechanical Crafting Table

🔫 Weapon Categories

Ranged Weapons (39)

Melee Weapons (6)


🔫 Technical Weapon Stats

Every weapon in CombatGunSSS features a deep set of configurable properties:


📁 Folder Structure

plugins/CombatGunSSS/
├── config.yml              # Main configuration
├── guns/                   # Ranged weapon configs (40 built-in + custom)
│   ├── ak47.yml
│   ├── m4a1.yml
│   └── ...
├── melees/                 # Melee weapon configs (6 built-in + custom)
│   ├── katana.yml
│   ├── knife.yml
│   └── ...
└── README.md

Custom Weapons: Create your own YAML files in guns/ or melees/ folders and run /gun reload.


⚒️ Crafting Mechanics

1. Components (The Basics)

Craft raw materials like Steel Ingots, Gun Barrels, and Springs at a standard Crafting Table. These recipes are automatically unlocked in your Vanilla Recipe Book.

2. Assembly (The Advanced)

Place your components into the Mechanical Crafting Table.


📊 Action Bar HUD

While holding any ranged weapon, CombatGunSSS displays a persistent HUD on your action bar:

🔫 AK47  ▐████████████░░░░▌  22 / 30  •  90
combatgun:
  hud:
    enabled: true
    update_interval_ticks: 5

🎯 ADS — Aim Down Sights

Enable ADS per gun in its YAML config:

ads:
  enabled: true
  spread_multiplier: 0.35   # 65% tighter accuracy while ADS
  movement_penalty: 0.6     # movement speed while ADS active

Control: Shift+Right-click to toggle ADS on/off. Action bar shows 🎯 ADS [spread ×0.35].

ADS exits automatically when you switch items, teleport, or die. Scopeable sniper rifles use the traditional sneak-to-scope mechanic instead of ADS.


🩸 Bleeding

An optional damage-over-time system. When enabled, bullets hitting players have a configurable chance to cause bleeding.

combatgun:
  bleeding:
    enabled: true
    chance: 0.15
    damage_per_second: 1.0
    duration_seconds: 10
    cure_item: bandage

Hold a bandage (crafting component) and press [F] to cure. Bleeding stops automatically on death.


🎒 Ammo Pouch

A compressed ammo container that stores hundreds of rounds in a single slot.

/gun givepouch ar_ammo 300 PlayerName

Shift+Right-click to unpack all rounds into your inventory. Surplus rounds are left if the inventory is full.


🌐 Multi-Language

Set the active language in config.yml:

combatgun:
  language: vi   # en | vi | (any lang/xx.yml)

Bundled: English (en) and Tiếng Việt (vi). Add a custom translation by placing lang/xx.yml in the plugin data folder and running /gun reload.


🔌 Plugin Integrations

PlaceholderAPI

8 real-time placeholders for use in scoreboards, TAB, AdvancedHud, and similar plugins:

Placeholder Example Description
%combatgun_gun_name% AK47 Display name of held gun
%combatgun_gun_id% ak47 Internal ID of held gun
%combatgun_gun_rarity% epic Rarity of held gun
%combatgun_ammo% 24 Current magazine ammo
%combatgun_ammo_max% 30 Magazine capacity
%combatgun_ammo_reserve% 90 Reserve ammo in inventory
%combatgun_is_reloading% true Whether player is reloading
%combatgun_is_gun% true Whether held item is a gun

Vault Shop

Enable the shop in config.yml, set prices per gun, then players can buy weapons in-game:

combatgun:
  shop:
    enabled: true
    currency_symbol: "$"
    guns:
      ak47:  700.0
      awm:  2500.0
      knife: 100.0
/gun buy ak47          # purchase for configured price
/gun buy ak47 free     # admin free-give (requires combatgun.admin)

WorldGuard

The custom flag gun-shooting is automatically registered when WorldGuard is present:

/rg flag <region> gun-shooting deny    # block all guns in region
/rg flag <region> gun-shooting allow   # explicitly allow
/rg flag <region> gun-shooting -g      # remove flag (inherit parent)

Falls back to WorldGuard's built-in PVP flag if gun-shooting is not set on a region.

Anti-Cheat (Vulcan / Matrix)

Auto-detected. When present, players are exempted from motion checks for anticheat.exempt_ticks ticks after each shot to prevent recoil from triggering false positives.

combatgun:
  anticheat:
    exempt_ticks: 3

📜 Commands & Permissions

Command Description Permission
/gun statsreset <player> Reset a specific player's stats combatgun.admin
/gun seasonreset confirm Wipe ALL player stats (season reset) combatgun.admin
/gun give <id> [player] Give a specific weapon combatgun.admin
/gun giveammo <id> [amt] [player] Give custom ammunition combatgun.admin
/gun givepart <id> [amt] [player] Give crafting components combatgun.admin
/gun station [player] Give the Mechanical Crafting Table combatgun.admin
/gun book [player] Give the Recipe Guide Book combatgun.admin
/gun recipe <id> Show the full crafting chain in chat combatgun.admin
/gun list [category] View all loaded weapons combatgun.admin
/gun inspect [player] View deep stats of the held weapon combatgun.admin
/gun reload Reload all configurations combatgun.admin
/gun buy <id> Purchase a weapon (requires Vault) combatgun.use
/gun givepouch <ammo_id> <amount> [player] Give an ammo pouch combatgun.admin

Player Permissions


🔧 Configuration Examples

Ranged Weapon (AK47)

name: AK47
category: assault_rifles
ammo_type: ar_ammo
damage: 12
fire_rate: 10.0
magazine_size: 30
reload_time: 2.6
headshot_multiplier: 1.8
damage_falloff_start: 35.0
min_damage_multiplier: 0.5
range: 72.0
block_penetration: 0.8
entity_penetration: 0
recoil:
  pitch: 1.45
  yaw: 0.42
  spread: 0.24
  recovery: 0.80
rarity: rare
custom_model_data: 1001
sound: ENTITY_FIREWORK_ROCKET_BLAST
recipe:
  station: mechanical_crafting_table
  ingredients:
    steel_ingot: 6
    gun_barrel: 1
    spring: 2
    hardwood: 3

Melee Weapon (Katana)

name: Katana
category: melee
ammo_type: none
rarity: epic
damage: 10
fire_rate: 1.35
range: 4.0
knockback: 0.3
sound: ENTITY_PLAYER_ATTACK_CRIT
custom_model_data: 26002
recipe:
  station: mechanical_crafting_table
  ingredients:
    steel_ingot: 10
    carbon_fiber: 2
    leather_strip: 3
    blade_core: 1

🔌 Developer API

Custom Events

Event Cancellable When it fires
GunShootEvent Before each shot — cancel or set damage multiplier
GunReloadEvent When a player starts reloading
GunHitEvent After damage is applied — full damage pipeline
GunHeadshotEvent When a shot lands in the head zone
AttachmentApplyEvent Before an attachment is fitted to a gun
AttachmentRemoveEvent Before an attachment is removed from a gun
@EventHandler
public void onShoot(GunShootEvent event) {
    if (isInsideArena(event.getShooter()))
        event.setDamageMultiplier(2.0);
}

@EventHandler
public void onReload(GunReloadEvent event) {
    if (isCapturingObjective(event.getPlayer()))
        event.setCancelled(true);
}

@EventHandler
public void onHit(GunHitEvent event) {
    // base damage, final damage, headshot flag, distance
    plugin.getStats().record(
        event.getShooter(), event.getGun().getId(),
        event.getFinalDamage(), event.isHeadshot(), event.getDistance());
}

@EventHandler
public void onHeadshot(GunHeadshotEvent event) {
    event.getShooter().giveExp(5);
}

API Instance

CombatGunAPI api = CombatGunAPI.getInstance();

// Query guns
GunData gun              = api.getGun("ak47");
Collection<GunData> all  = api.getAllGuns();

// Create items
ItemStack gunItem         = api.createGunItem("ak47");
ItemStack ammo            = api.createAmmoItem("ar_ammo", 30);

// Check items
boolean isGun             = api.isGun(item);
String  gunId             = api.getGunId(item);

// Player state
boolean isReloading       = api.isReloading(player.getUniqueId());

// Hook state
boolean shopEnabled       = plugin.getHookManager().getVaultHook().isEnabled();
boolean wgActive          = plugin.getHookManager().getWorldGuardHook().isAvailable();

🚀 Installation

  1. Download the CombatGunSSS-2.3.0.jar.
  2. Drop it into your server's plugins folder.
  3. (Optional) Install any soft-depend plugins you want: PlaceholderAPI, Vault, WorldGuard, Vulcan, Matrix.
  4. Restart the server to generate default configurations.
  5. (Optional) Add a Resource Pack to see 3D gun models.

Requirements


📋 Changelog

See CHANGELOG.md for the full version history.

2.3.0 — Critical exploit + melee combat fix

2.2.0 — Permission-gate fix release + Recipe Browser categories

2.1.0 — Bug-fix release: 8 bugs fixed

2.0.6 — Bug-fix release: 4 bugs fixed

2.0.5 — Developer API & architecture release: 4 new additions, 1 improvement

2.0.4 — Stability & performance release: 2 bug-fixes, 3 improvements

2.0.3 — Bug-fix release: 7 bugs fixed


🔍 Troubleshooting

Friendly fire still occurring despite being disabled Guns not working / can't shoot Ammo not found / can't reload Recipes not showing in crafting table Console warning: "config.yml is OUTDATED" Gun config not loading / "config validation failed" warning Leaderboard (`/gun leaderboard`) is slow on large servers Ammo Pouch destroying items when inventory is full Reload taking wrong amount of time / inconsistent Headshots not registering correctly Bleeding damage lower than configured Plugin crashes on startup NullPointerException when shooting Anti-cheat flagging recoil movement PlaceholderAPI placeholders showing as raw text Vault shop not working /reload breaks the plugin Custom gun YAML not loading

❓ FAQ

Does this work on Spigot?

No — CombatGunSSS requires Paper 1.21+. Spigot lacks several API features used internally.

Can I add my own guns?

Yes. Create a new .yml file in plugins/CombatGunSSS/guns/ following the same format as the built-in weapon files, then run /gun reload.

Can I disable specific guns?

Simply delete or remove the gun's YAML file from the guns/ folder and run /gun reload. Players holding that gun will keep the item but it won't function.

Does it support multiple worlds?

Yes. Configure a world whitelist or blacklist under combatgun.worlds in config.yml.

Is it laggy on large servers?

CombatGunSSS uses hitscan (ray-trace, not projectile entities), so it is significantly lighter than projectile-based gun plugins. Heavy effects like bullet trails can be toggled off in config.yml under combatgun.effects.

Can I disable the crafting system?

Yes — simply don't give players the Mechanical Crafting Table or Recipe Book. Use /gun give for admin distribution. Vanilla workbench recipes can also be disabled per-item.

Do I need a Resource Pack?

No. The plugin works without a resource pack. However, each gun has a custom_model_data value pre-configured for you to link 3D models if you have a pack.

Can I disable bleeding or the Ammo Pouch?

Yes. Set combatgun.bleeding.enabled: false or combatgun.ammo_pouch.enabled: false in config.yml.

Does it support ZombieApocalypseSSS?

Yes — CombatGunSSS is the recommended gun companion for ZombieApocalypseSSS. Guns deal full damage to all zombie types and trigger the noise / aggro system automatically.

Can other plugins listen to gun events?

Yes. Four custom events are exposed via the API: GunShootEvent (cancellable), GunReloadEvent (cancellable), GunHitEvent, and GunHeadshotEvent. See the Developer API section.

How do I give guns without the shop?

Use /gun give <id> [player] (requires combatgun.admin). Example: /gun give awm Steve.


Developed with ❤️ by Duong2012G.


[!NOTE] This plugin is built on the Paper/Spigot 1.21 API and requires Java 21 or higher.

[!TIP] For support and updates, check the repository or contact the developer.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more