Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
๐ซ CombatGunSSS
CombatGunSSS is a high-performance, feature-rich Minecraft gun plugin designed for modern servers (1.21+). It brings a tactical, realistic combat experience with 45 uniquely configured weapons (39 firearms + 6 melee), advanced crafting mechanics, optimized hitscan technology, a full custom events API, and a growing ecosystem of plugin integrations.
๐ Key Features
- ๐ฏ Tactical Combat: Realistic hitscan mechanics with accurate recoil, bullet spread, and headshot multipliers.
- โ๏ธ Melee System: Left-click melee combat with range check, knockback, and separate cooldown system.
- ๐ก๏ธ Advanced Penetration: Projectiles can pass through "soft" blocks and multiple entities based on individual gun stats.
- ๐ฉธ Progressive Damage: Distance-based Damage Falloff and configurable Knockback intensities.
- ๐ ๏ธ Two-Tier Crafting System:
- Vanilla Workbench: Craft basic components with official Recipe Book support.
- Mechanical Crafting Table: A custom 21-slot industrial GUI for assembling advanced firearms.
- ๐ Interactive Recipe Browser: Built-in visual guide inside the Mechanical Crafting Table โ no commands needed!
- ๐ฆ 45 Built-in Weapons: 39 ranged guns + 6 melee weapons with burst-fire, shotgun pellets, and melee logic.
- ๐ Durability System: Weapons can have limited usage and require repairs (fully configurable).
- ๐ Persistent HUD: Real-time action bar showing gun name (rarity-colored), visual ammo bar, current/max ammo, and reserve count.
- ๐ Auto-Reload: Automatically reloads after firing the last round (toggleable).
- ๐บ๏ธ WorldGuard Integration: Block gun use inside protected regions with a custom
gun-shootingflag. - ๐ฐ Vault Shop: Players purchase weapons via
/gun buy <id>using server economy. - ๐ PlaceholderAPI: 8 real-time placeholders for scoreboards, HUDs, and TAB plugins.
- ๐ฏ ADS (Aim Down Sights): Per-gun aim-down-sights system. Shift+Right-click to toggle โ reduces spread and applies movement penalty.
- ๐ฉธ Bleeding: Optional damage-over-time on bullet hit. Cured by holding a bandage and pressing
[F]. - ๐ Ammo Pouch: Compressed ammo bag. Shift+Right-click to unpack into inventory. Give via
/gun givepouch. - ๐ Multi-Language (i18n): All messages live in
lang/en.ymlorlang/vi.yml. Add your own translation file. - ๐ก๏ธ Anti-Cheat: Automatic exemptions for Vulcan and Matrix to prevent recoil false-positives.
- ๐ Developer API: Full custom events โ
GunShootEvent,GunReloadEvent,GunHitEvent,GunHeadshotEvent. - ๐ค Friendly Fire Control: Toggle friendly fire on/off with scoreboard team or permission-group detection.
- ๐จ Toggleable Effects: Every particle and sound effect can be individually enabled/disabled. Includes a master
sound_volumecontrol. - ๐ Custom Kill Messages: Death messages show killer name, weapon name (colored by rarity), and headshot indicator.
๐ฎ 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)
- Assault Rifles: AK47, M4A1, SCAR, AUG, FAMAS, G36, Groza, AN94, M14, ParaFAL, XM8, Kingfisher
- SMGs: MP5, P90, Vector, Bizon, UMP, Thompson, MAC-10, MP40, VSS, CG15
- Snipers: AWM, M24, Kar98k, M82B, M107, VSK94
- Shotguns: M1014, SPAS-12, MAG-7, M1887, M590, Trogon
- Pistols: Desert Eagle, G18, USP, M1917, M1873, M500
Melee Weapons (6)
- Bat: Common, fast swing
- Knife: Common, highest attack speed
- Pan: Rare, defensive knockback
- Parang: Rare, balanced damage/speed
- Katana: Epic, high damage
- Scythe: Legendary, maximum damage
๐ซ Technical Weapon Stats
Every weapon in CombatGunSSS features a deep set of configurable properties:
- Damage Falloff: Define exactly at what block distance damage begins to drop (
damage_falloff_start) and the minimum damage floor (min_damage_multiplier). - Recoil & Spread: Independent Pitch (vertical) and Yaw (horizontal) kick per shot, plus Movement Spread penalties while moving or jumping.
- Burst Fire: Configure weapons to fire multiple rounds per trigger pull (
burst_count) with custom delays. - Shotgun Logic: Support for multiple projectiles per shot (
projectiles_per_shot) with per-pellet damage calculation. - Durability: Set a maximum usage limit (
max_durability). Weapons will break and become unusable until repaired. - Penetration: Define how many blocks (
block_penetration) or entities (entity_penetration) a single bullet can pass through. - Melee Range: Maximum attack distance for melee weapons (default: 4 blocks).
- Knockback: Push strength for both ranged and melee weapons.
๐ Folder Structure
plugins/CombatGunSSS/
โโโ config.yml # Main configuration
โโโ guns/ # Ranged weapon configs (39 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.
- Non-grid-based: Just throw the ingredients into the 21-slot input area.
- Visual Preview: The output slot shows your gun stats before you build it.
- Recipe Guide: Click the Glowing Book icon in the station to browse all weapon requirements.
๐ Action Bar HUD
While holding any ranged weapon, CombatGunSSS displays a persistent HUD on your action bar:
๐ซ AK47 โโโโโโโโโโโโโโโโโโ 22 / 30 โข 90
- Gun name is colored by rarity: white (common) โ aqua (rare) โ light purple (epic) โ gold (legendary).
- Visual bar transitions green โ gold (โค25%) โ red (โค10%) as ammo depletes.
- Reserve count turns red when you have no backup ammo left.
- The HUD automatically yields to the reload progress bar during active reloads.
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
combatgun.useโ Allows shooting and using guns (default:true)combatgun.use.<gun_id>โ Per-gun permission node (e.g.combatgun.use.awm)
๐ง 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
- Download the
CombatGunSSS-2.0.7.jar. - Drop it into your server's
pluginsfolder. - (Optional) Install any soft-depend plugins you want: PlaceholderAPI, Vault, WorldGuard, Vulcan, Matrix.
- Restart the server to generate default configurations.
- (Optional) Add a Resource Pack to see 3D gun models.
Requirements
- Server: Paper/Spigot 1.21+
- Java: 21 or higher
- Required dependencies: None (standalone plugin)
- Optional dependencies: PlaceholderAPI, Vault + economy plugin, WorldGuard, Vulcan, Matrix
๐ Changelog
See CHANGELOG.md for the full version history.
2.0.7 โ Bug-fix release: 8 bugs fixed
- Fixed
StatsManager.flushBuffer()race condition โ kill data silently lost under concurrent load - Fixed
ThrowableManagertasks not cancelled on plugin disable โIllegalPluginAccessExceptionon every disable - Fixed
clearAds()removing scope slowness incorrectly - Fixed all
ReloadManagermessages bypassing i18n (hardcoded English shown toviservers) - Fixed
BleedingManagerandThrowableManagerusingMath.random()instead ofThreadLocalRandom - Fixed
AttachmentManagerandGunListenerduplicate import statements - Fixed
getRecentDamage()exposing mutable map reference; added safegetDamageRecord()lookup
2.0.6 โ Bug-fix release: 4 bugs fixed
- Fixed friendly-fire scoreboard team detection using player scoreboard instead of main scoreboard โ could allow friendly-fire bypass
- Fixed
recentDamagememory leak: entries now removed on player quit and death events - Fixed shared
static Randomcontention: replaced withThreadLocalRandom.current()(per-thread, no lock, better entropy) - Fixed async SQLite connection safety:
incrementGunKill()andgetGunKills()now synchronized alongsideflushBuffer()
2.0.5 โ Developer API & architecture release: 4 new additions, 1 improvement
- New
AttachmentApplyEventandAttachmentRemoveEvent(cancellable) โ fired on/gun attachand/gun detach - New
DamageCalculatorutility class โ centralises all damage math extracted fromGunListener(headshots, falloff, spread, pellets) - New
kills_by_gun_detailSQLite table (schema v3) โ per-kill log with timestamp, weapon, headshot flag - New commands:
/gun statsreset <player>and/gun seasonreset confirm GunListenerGod Class partially refactored โ 4 methods delegate toDamageCalculator
2.0.4 โ Stability & performance release: 2 bug-fixes, 3 improvements
- Fixed thread-safety data race in
StatsManagerstat buffer (ConcurrentHashMap) - Fixed silent loading of invalid gun configs (YAML validation with clear per-field errors)
StatsManagerleaderboard query optimized with akills DESCindex (schema migration v2)- Shop price reads now cached in memory; invalidated on
/gun reload - Config version detection warns admins when
config.ymlis outdated after an update
2.0.3 โ Bug-fix release: 7 bugs fixed
- Ammo Pouch no longer loses items when the inventory is full
- Reload task CPU usage reduced by 50% (changed from 1 tick to 2 tick interval)
isHeadshot()now works accurately when the player is crouchingcraftFromStation()properly rolls back ingredients if crafting failsBleedingManagernow uses wall-clock time for accurate damage even during server lagapplyRecoil()is now fully null-safe- Fixed race condition in
onItemHeldChange
2.0.2 โ Hotfix: Fixed NPE when shooting caused by GunListener trying to cache HudManager before it was initialized โ resolved using lazy access.
2.0.1 โ Hotfix: plugin crash on startup isolated; StatsManager/HookManager failures degrade gracefully; Material.GRAY_DYE compile fix; null-safety throughout.
2.0.0 โ Weapon attachments (silencer, scope, extended mag, grip); throwable items (frag, smoke, flashbang); kill stats & leaderboard (SQLite); 4 new PlaceholderAPI placeholders.
1.2.0 โ ADS (Aim Down Sights) per-gun toggle; Ammo Pouch compressed item (/gun givepouch); Bleeding DoT on player hit with bandage cure; Multi-language i18n (lang/en.yml, lang/vi.yml).
1.1.0 โ PlaceholderAPI expansion (8 placeholders); Vault shop (/gun buy); WorldGuard gun-shooting custom flag for region protection; Vulcan & Matrix anti-cheat exemptions on recoil; central HookManager; softdepend in plugin.yml.
1.0.3 โ Persistent action bar HUD (rarity-colored name, visual ammo bar, reserve count); auto-reload when empty (toggleable); new GunHitEvent exposing full damage pipeline; GunShootEvent.getBaseDamage() for pre-shot checks.
1.0.2 โ Custom events API; friendly fire toggle; toggleable effects + sound_volume; custom kill messages; AmmoManager memory leak fix; reload cancel on teleport/world change; GunData Builder pattern.
1.0.1 โ Recipe Book registration fix; ammo type disambiguation fix; double-click exploit fix; debug spam removed.
๐ Troubleshooting
Friendly fire still occurring despite being disabled
- Fixed in 2.0.6 โ team detection now uses the main scoreboard instead of each player's personal view
- Ensure teams are set up with
/team add <name>and players added with/team join <name> <player> - Test with
combatgun.team_provider: scoreboardinconfig.yml
Guns not working / can't shoot
- Check
combatgun.usepermission is granted to players - Make sure the world is not blacklisted in
config.yml - If using WorldGuard, check if the region has
gun-shooting deny - Try
/gun give ak47and test in a clean area - Use Paper โ Spigot is not supported
Ammo not found / can't reload
- Make sure you have the correct ammo type in your inventory (e.g. AR ammo for assault rifles)
- Craft ammo at a Vanilla Crafting Table or Mechanical Crafting Table
- Check
ammo_typein the gun's YAML matches a defined ammo type inconfig.yml - Run
/gun reloadafter editing configs
Recipes not showing in crafting table
- Run
/gun reloadto re-register vanilla recipes - Give yourself the Recipe Guide Book:
/gun book - Ensure the ingredient IDs in the gun YAML match those defined in
config.yml
Console warning: "config.yml is OUTDATED"
- This warning appears when your
config.ymlhas a lowerconfig-versionthan the plugin expects. - Back up your current
config.yml, delete it, and restart the server to regenerate a fresh one. - Then manually copy over your custom settings (world lists, shop prices, effects, etc.) from the backup.
- The plugin loads normally even with an outdated config โ default values are used for missing keys.
Gun config not loading / "config validation failed" warning
- Added in 2.0.4 โ guns with invalid configs now log a clear per-field error instead of loading silently.
- Check the listed fields:
damage,fire_rate,magazine_size,reload_timemust all be greater than 0. burst_countmust be at least 1.namecannot be blank.- Fix the values in the gun's YAML and run
/gun reload.
Leaderboard (`/gun leaderboard`) is slow on large servers
- Fixed in 2.0.4 โ a
kills DESCindex is now created automatically on the SQLite database. - The migration runs once on first startup of 2.0.4. If you still experience slowness, ensure the server was fully restarted (not
/reload).
Ammo Pouch destroying items when inventory is full
- Fixed in 2.0.3 โ update the plugin
- Partial unpacks now save remaining ammo back into the pouch instead of destroying it
Reload taking wrong amount of time / inconsistent
- Fixed in 2.0.3 โ reload task now runs every 2 ticks instead of 1 (50% less CPU, same reload duration)
- If still wrong, check
reload_timein the gun's YAML (in seconds)
Headshots not registering correctly
- Fixed in 2.0.3 โ crouching player hitbox now calculated correctly
- Headshot detection uses the top 20% of the entity hitbox, adjusted for crouch state
Bleeding damage lower than configured
- Fixed in 2.0.3 โ
BleedingManagernow uses wall-clock time instead of tick counting - Damage is now accurate even under server lag
Plugin crashes on startup
- Fixed in 2.0.1 โ startup errors are now isolated per manager
- Check console for
[CombatGunSSS]error lines indicating which manager failed - Common cause: corrupted
config.ymlor invalid gun YAML syntax - Fix the config, then restart (do not use
/reload)
NullPointerException when shooting
- Fixed in 2.0.2 โ lazy HudManager access prevents NPE at startup
- If persisting: check that
HookManageris not null in the stack trace and update to latest version
Anti-cheat flagging recoil movement
- Ensure Vulcan or Matrix is listed in
softdepend(already done automatically) - Increase
combatgun.anticheat.exempt_ticksinconfig.yml(default:3) - The plugin auto-detects and registers exemptions via reflection โ no API jar needed
PlaceholderAPI placeholders showing as raw text
- Install PlaceholderAPI and run
/papi reload - Ensure PlaceholderAPI is loaded before CombatGunSSS (restart, not
/reload) - Test with
/papi parse me %combatgun_gun_name%
Vault shop not working
- Make sure an economy plugin (EssentialsX, CMI, etc.) is installed alongside Vault
- Set
combatgun.shop.enabled: trueinconfig.yml - Confirm the gun ID exists in
combatgun.shop.gunsprice list - Use
/gun buy <id> free(admin) to test without balance requirement
/reload breaks the plugin
- Never use
/reloadโ always do a full server restart - Use
/gun reloadto hot-reload gun configs, language files, and settings without restarting
Custom gun YAML not loading
- Place the file inside
plugins/CombatGunSSS/guns/(ranged) ormelees/(melee) - Run
/gun reloadโ check console for warnings about your file - Ensure required fields are present:
name,category,ammo_type,damage,magazine_size - YAML is whitespace-sensitive โ use a validator like yaml.org/start.html
โ 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.


