
Pewpew
A Simple Minecraft Gun Plugin.
- Загрузки
- 407
- Подписчики
- 2
- Обновлён
- 19 августа 2026 г.
- Лицензия
- PolyForm-Noncommercial-1.0.0
Опубликован 14 июня 2026 г.

A fully data driven gun plugin for Paper. Build guns, shotguns, snipers, SMGs, throwables, and attachments entirely in YAML, with no code and no resource pack required. Every weapon is a normal item identified by persistent data, so guns drop, trade, and stack like anything else.
Pewpew brings CrackShot-style depth to the modern Paper API: real ballistics, recoil, attachments, ammo, and per weapon sounds and effects, all configurable.
Features
Shooting
- Hitscan and projectile firing modes
- Semi-auto and full-auto (hold to fire at the weapon's true fire rate)
- Burst fire, spread cones, and camera recoil that climbs as you shoot
- Bullet drop (ballistic arc for hitscan, gravity for projectiles)
- Multi-pellet buckshot, each pellet independently spread
Ammo & Reloading
- Inventory-fed ammo by type, or free-reloading magazines
- Magazine and shell-by-shell reload styles
- Bolt/pump firearm action with cycle sounds
- Live ammo count shown as the item's durability bar
Combat Depth
- Headshot multipliers with a hitmarker ping
- Critical hits (chance plus multiplier, stacks with headshots)
- Damage falloff over distance
- Shield disable, applying the axe effect to blocking players
- On-hit potion effects for victim and shooter
- Custom per-weapon death messages
- Real projectile damage, so Projectile Protection, knockback, and kill credit all work
Attachments
- Scopes with aim-down-sights zoom that steadies the weapon
- Barrels with damage and range modifiers
- Grips with recoil reduction
- Magazines with capacity and reload-speed modifiers
- Fitted in a clean shift-click bench GUI, with stats rendered automatically on the item
Presentation
- Per-weapon trail and impact particles
- Configurable fire and hit sounds with volume and pitch, including custom resource-pack sounds
- Throwables: explosion, smoke, flash, poison, incendiary
Tooling
- /dummy damage-test target showing per-hit and total damage. Shift-right-click it to fit armor and shields.
Configuration
Items live in plugins/Pewpew/items/ (guns.yml, ammo.yml, attachments.yml, throwables.yml). Defaults are generated on first run. Edit, then run /pewpew reload.
ak47:
type: GUN
name: "<gray>AK-47"
itemModel: "minecraft:iron_horse_armor"
baseDamage: 8.5
fireRate: 4
maxAmmo: 30
ammoType: rifle_round
consumesAmmo: true
automatic: true
firingMode: PROJECTILE
projectileSpeed: 3.5
range: 64.0
spread: 2.0
recoil: 1.2
headshotMultiplier: 1.5
allowedAttachmentSlots: [ SCOPE, BARREL, GRIP, MAGAZINE ]
A full field reference is included in the docs on GitHub.
Ченджлог
26.1.1Релиз26.1.1, 26.1.2, 26.2 · 19 августа 2026 г.
Nothing in this release changes how your existing guns behave. Every new option defaults to what Pewpew did before, and the one behaviour that had to change is switched back on automatically for servers upgrading.
Config safety
- Config migrations.
config.ymlnow carries aconfig-version. Pewpew migrates it on startup, keeps a.bakof the previous version next to it, and logs exactly what it changed. - Typos are reported. Unknown fields in an item file used to be ignored in
silence.
spred: 2.0orbulletcount: 8now logs a warning naming the item, the file and the field. The item still loads.
Item files
New advanced: section in config.yml, all options off by default:
extends: <id>copies another item's fields, then applies its own on top. The parent can live in any file initems/, so your own files can build on the bundled weapons, and chains work.abstract: truemakes an entry a template only: never registered, never given, and it needs nonameoritemModel.ammo-statsturns on the ammo stats below.
Shooting
- Spray patterns. Give a gun a fixed
patternof[horizontal, vertical]steps and recoil becomes something players can learn and pull against instead of a dice roll.patternLoopandpatternResetcontrol what happens past the end of the pattern and how long a pause resets it. - Movement accuracy.
spreadModifiersscales spread by what the shooter is doing:sprinting,walking,sneaking,standing, plusmidairandinWateron top. - Bloom.
bloomPerShot,bloomMaxandbloomDecaywiden the cone while you hold the trigger and close it again when you stop. - Ammo stats. Ammo items can carry
damageMultiplier,velocityMultiplierandpenetration(entities a shot passes through). Ammo multiplies the gun's numbers, it never replaces them, sobaseDamageanddamageTypestay in charge. A gun remembers which ammo was loaded into it. damageTypeper gun. Defaults tominecraft:arrowas before. Setminecraft:genericfor damage that ignores armor and Protection, so your configured numbers land exactly.burstDelayis configurable instead of a fixed 2 ticks.- Multiple fire and hit sounds per weapon.
- Decimal fire rates, so a gun can fire faster than once per tick.
Fixed
- Bullet spread was not a cone. It rotated around the world axes, giving a
square spread that shrank as you looked up or down. It is now a true cone of
spreaddegrees in every direction. Upgrading servers keep the old maths viacompatibility.legacy-spread; turn it off and retunespreadwhen you are ready. - Two memory leaks: hit tracking and per-player shooting state grew forever. Quitting now also cancels in-flight reload and autofire tasks.
- The OpenMinetopia hook silently allowed weapon use if its reflection broke. It now logs once and blocks until fixed or disabled.
- Legacy
§colour codes are stripped from messages instead of reaching chat.
Permissions
- All command permissions are declared, with a
pewpew.*parent. pewpew.use.<id>per item, defaulting to allowed. Negate it (-pewpew.use.awm) to stop a group shooting, throwing, or attaching to that item.
Developer API and Skript
- Five new events: kill, reload complete, scope, attachment, and hit block. Scope and attachment are cancellable; the kill event lets you rewrite the death message.
- Skript grows to 11 events, 9 expressions and 6 conditions, including
pewpew ammoandpewpew bloom(both writable),pewpew attachment id,pewpew death message, and conditions likeplayer is scoped inorthe pewpew hit was a headshot. - Skript is documented for the first time, in
assets/docs/skript.md.
Integrations
- OpenMinetopia: blocks weapon use while handcuffed and in configured cities or worlds.
Internal
- JUnit tests (31) covering migrations, spread geometry,
extendsresolution and recoil patterns, plus a GitHub Actions build. -devbuilds publish to the snapshots repository instead of releases.
26.1.0Релиз26.1.1, 26.1.2, 26.2 · 29 июля 2026 г.
Fixed
- Recoil no longer spins your camera while moving. Rotation is now sent as a relative delta, so it composes with your own mouse input instead of fighting the client's rotation over the network. This was the cause of the violent camera swinging when strafing and firing at the same time.
selfKnockbacknow fires on every shot instead of only on a hit. Guns with a self shove launch you when you shoot at open air, and multi pellet guns shove you once per shot instead of once per connecting pellet.- Recoil controllers no longer leak when a profile is configured with partial recovery; the recoil task now correctly shuts down when nobody is firing.
Added
- Per gun recoil profiles. New optional
recoilProfileblock on any gun, with ten tunables:verticalMean,verticalVariance,horizontalMean,horizontalVariance,smoothing,damping,recovery,recoveryPenalty,speedandmaxAccumulation. Every gun used to share one hardcoded feel; now an AK can drift right while an M4 stays flat. Seeassets/docs/guns.md. recoveryPenaltythe share of each kick the camera never gives back, so sustained fire walks your aim up the screen.0.0is full recovery.- Set
horizontalMeanandhorizontalVarianceto0for pure vertical recoil.
Changed
- Default weapon configs rewritten. 27 guns across sidearms, SMGs, assault rifles, precision rifles, shotguns, support and launchers, plus a fun tier. Fire rates map to real cyclic rates, magazines and calibers match the real weapons, and each platform has its own recoil character.
- Ammo configs rewritten. 19 items covering every caliber the guns use, including boxed rounds, spare magazines and a 100 round linked belt.
speedin a recoil profile now behaves as a timing factor that converges on the correct total rotation, rather than permanently scaling every movement.
Notes for existing setups
- Guns without a
recoilProfilekeep their previous behavior the block is optional and its defaults match the old hardcoded values. - The rewritten
guns.ymlandammo.ymlrenamed several ammo ids andammoTypetags. If you edited these files, your copies are untouched; if you want the new defaults, back yours up first.
26.0.7Бета26.1.1, 26.1.2, 26.2 · 26 июля 2026 г.
Additions
- Guns with firingMode: projectile can now be explosive. Add an explosive: block for a rocket launcher that detonates on impact (blastRadius, explosionDamage, explosionKnockback), with optional block damage and terrain rebuild.
- Added grenade launchers via payload: the round flies as that throwable's model and inherits its fuse and effect (explosion, smoke, flash, poison, fire).
- Added projectileModel to change how a bullet looks in flight (e.g. minecraft:fire_charge), and trajectory: FLAT|ARC to control projectile drop.
- Added the PewpewGunExplodeEvent API and matching on pewpew gun explode: Skript event, with editable pewpew damage.
26.0.6Бета26.1.1, 26.1.2, 26.2 · 11 июля 2026 г.
Swapped NMS internals for the standard Paper API, so PewPew runs across a wider range of server versions instead of being locked to one build.
26.0.5Бета1.21.11 · 9 июля 2026 г.
Fixes
- Fixed a startup crash (
NoClassDefFoundError) caused by the bStats metrics referencing Skript's shaded class instead of the bundled one.
Improvements
- The update notifier now links to Modrinth, and the download URL is a clickable link in chat.
26.0.4Бета1.21.11 · 8 июля 2026 г.
New
Per-gun knockback - guns can push the victim away (knockback) and shove the shooter back (selfKnockback). Both default to 0, so existing guns are unchanged.
Tunable throwables - explosion damage/knockback, effect duration/amplifier, and fire duration are now per-item config (explosionDamage, explosionKnockback, effectDuration, effectAmplifier, fireTicks). Omit them and throwables behave exactly as before.
Customizable messages - all player-facing text moved to messages.yml (MiniMessage), with built-in fallbacks for missing keys.
WorldGuard support (optional) - registers a pewpew-guns region flag (default allow); deny it to block guns and throwables in a region. Enforced per shot, so full-auto stops on entering a protected area. No effect if WorldGuard isn't installed.
CombatTagPlus support (optional) - combat-tags shooter and victim on a gun hit. No effect if CombatTagPlus isn't installed. Notes
Both integrations are optional soft-depends, toggleable in config.yml (integrations.worldguard.enabled, integrations.combattagplus.enabled). config.yml gains the integrations block automatically on upgrade; messages.yml is generated on first run
26.0.4-betaАльфа1.21.11 · 7 июля 2026 г.
New
Per-gun knockback - guns can push the victim away (knockback) and shove the shooter back (selfKnockback). Both default to 0, so existing guns are unchanged.
Tunable throwables - explosion damage/knockback, effect duration/amplifier, and fire duration are now per-item config (explosionDamage, explosionKnockback, effectDuration, effectAmplifier, fireTicks). Omit them and throwables behave exactly as before.
Customizable messages - all player-facing text moved to messages.yml (MiniMessage), with built-in fallbacks for missing keys.
WorldGuard support (optional) -registers a pewpew-guns region flag (default allow); deny it to block guns and throwables in a region. Enforced per shot, so full-auto stops on entering a protected area. No effect if WorldGuard isn't installed.
CombatTagPlus support (optional) - combat-tags shooter and victim on a gun hit. No effect if CombatTagPlus isn't installed.
Notes
Both integrations are optional soft-depends, toggleable in config.yml (integrations.worldguard.enabled, integrations.combattagplus.enabled). config.yml gains the integrations block automatically on upgrade; messages.yml is generated on first run
26.0.3Бета1.21.11 · 21 июня 2026 г.
New
- Update checker — plugin now checks GitHub for newer releases on startup and notifies players with
pewpew.update.notifyon join. - Locked attachments — attachments can be locked, preventing removal/swapping.
- Dummy shield blocking — dummies now support shield blocking.
Improved
- Recoil — reworked recoil behaviour for better feel.
Fixed
- Module loading reflection that prevented modules from loading correctly.
Комментарии
Загружаем…