Tags
Creators
Details
Licensed GPL-3.0-only
Published 2 months ago
Updated 2 months ago
All versions
0.1.5
Release
ModularShoot 0.1.52 months ago 10
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Client and server
Changes
[0.1.5] - 2026-08-11
Fixed
- Dedicated server crash: fixed a
NoClassDefFoundErrorcrash when resolving gun/plugin item display names on a dedicated server (paths like the/modularshoot statscommand and death messages are protected). - Plugin bare-key namespace drift: bare
traits/adds_variantskeys in plugin definitions now land in themodularshootnamespace, matching guns — same-name traits and variants between a gun and its plugins now merge correctly. - Zero-speed bullets never expire: bullets with a speed of 0 are now removed immediately as expired instead of lingering forever.
- Reload validation false positives: a plugin whose tags only partially match is no longer warned as "cannot be installed on any gun"; valid bindings pointing at Java-API-registered guns are no longer reported as "not found".
- First-person recoil direction fix: the muzzle was pressed down — now corrected to a slight rise (kick back into the screen + muzzle rise toward the viewer).
Improved
- Uninstall overflow precheck tests: added 10 automated tests covering the 0.1.4 overflow precheck and random-uninstall candidate filtering.
- Robustness: edge cases such as invalid damage types, corrupted state data, slot-count integer overflow and shared mutable references no longer cause crashes or lock-ups.
- Consistency: uninstall now respects listener mutations; tooltip plugin-bar counts match the overflow rules; rate-limit state is cleaned up on logout; reload validation now covers the binding tables and the shooters summary.
- Rendering: 3D bullet lighting now uses the interpolated position, more accurate at high speed.
- Cleanup: removed 8 pieces of dead code and fixed 7 outdated javadocs.
- Tests: every shipped datapack JSON is now decoded by its real codec (45 files);
BulletS2CPacketcodec round-trip tests added; 414 tests in total. - Localization: tooltip count parentheses and the lock anchor character are now lang keys — no more CJK punctuation in en_us.
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:9y0nNlNt:2oKo9bjZ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:9y0nNlNt:2oKo9bjZ"
}

