Tags
Creators
Details
All versions
26.1.5
Release
Pewpew 26.1.53 weeks ago 489
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.x
Platforms
Paper
Purpur
Changes
Changes since 26.1.1.
⚠️ Read before updating
- Auto-reload is now off by default. Firing an empty gun now only dry-fires. Set auto-reload: true in config.yml to get the old behaviour back. Even with it on, holding the trigger on an automatic gun won't start a reload; the player has to press the trigger again.
- Switching hotbar slots cancels a reload in progress.
- Each throwable type now has its own cooldown. It used to be one 0.5 s cooldown shared by every throwable.
- Guns without a deathMessage now use the new gun-death message in messages.yml instead of the vanilla death message.
Magazines (opt-in: advanced.magazines: true)
- New MAGAZINE item type in a new file, items/magazines.yml. Each magazine holds its own rounds.
- Reloading swaps in the fullest magazine that fits. The old magazine goes back to your inventory with its rounds still in it.
- Every gun gets a chamber that holds one extra round, so a 30-round magazine gives 31 shots.
- A magazine can hold mixed ammo. Rounds fire last-in, first-out, and each shot uses its own round's stats.
- Fill a magazine by clicking ammo onto it in your inventory.
- Sneak + F ejects the magazine without reloading.
- Guns can limit which magazines they take with a magazines: list.
- New magazine fields: capacity, reloadModifier, modelSuffix and gunModelData. The two model fields change the gun's model for each magazine.
- If no magazine is available, the gun loads loose ammo into the chamber.
- New messages: reloaded and no-magazine.
Models & animations
- animations: frame-by-frame model swaps for fire, reload, reload-round, scope-in and scope-out. Reload animations stretch to fit the gun's actual reload time.
- rig: animations built from several moving parts (item displays with keyframes), in first person or attached to the player.
- holdPose: CROSSBOW: holds the item two-handed like a charged crossbow.
- Aiming changes the model: aimModelSuffix and aimModelData.
- animationCooldown controls whether you can fire while an animation plays.
- color: gives any item a dye color ("#RRGGBB" or "R, G, B"), for example a tinted leather chestplate.
Combat
- scopedRecoil: a separate recoil value while aiming down sights.
- Bullet impacts: shots leave a mark on the block they hit (impacts.enabled, impacts.max-per-gun).
- Breakable glass: bullets break glass and keep flying. The glass comes back after glass.restore-after-seconds and when the server shuts down.
- New TEAR_GAS throwable effect with configurable gasEffects. Players wearing a gas mask are protected (tear-gas.gas-masks).
- New cooldown field on throwables (in ticks, default 10).
- New fields on ammo:
- fireTicks sets the target on fire.
- payload makes the round launch a throwable, so one launcher can fire different grenade rounds.
- New field on guns: defaultAttachments can lock an attachment in place with forced: true.
- New death message for throwables: throwable-death.
Sounds
- New sounds.yml covering every sound the plugin plays: guns, reloads, magazines, hits, explosions, throwables and menus.
- Each sound can be a vanilla sound, a resource-pack sound, several sounds layered together, or none to mute it.
Skript
- New expressions:
- pewpew magazine of %players%
- pewpew magazine rounds of %players%
- pewpew chamber of %players%
- New effects:
- eject the pewpew magazine from %player%
- play pewpew animation "<event>" for %player% [over %n% ticks]
- play pewpew sound "<key>" to %player% / at %location%
Fixes
- Recoil recovery no longer cancels small kicks before they move your aim.
- Reloads are interrupted more strictly (switching slots now cancels them).
Internal
- The project is split into core (platform-independent) and paper modules.
- Gradle wrapper updated.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:iSOIGWo3:TW834i7g"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:iSOIGWo3:TW834i7g"
}

