Links
Creators
Details
Licensed ARR
Published 2 months ago
Updated 2 weeks ago
All versions
26.1.2-1.0.0
Release
irons_artifice-26.1.2-1.0.0last month 1,122
Compatibility
Minecraft: Java Edition
26.1.2
Platform
NeoForge
Supported environments
Client and server
Required content
Any compatible version
Changes
Additions
- Added Suppressor Attachment Modifier
- Added Hook Shot Modifier
- Added Bloodletting Tip Modifier
- Added
irons_artifice:gunstag - Added
irons_artifice:ammotag
Changes
- Buffed Clockwork Rifle damage 6 -> 7
- Nerfed Frozen Jacket damage per shrapnel 50%->33%
- Fire Rate is now displayed in the tooltip at the effective firerate instead of the raw numerical rate (rounded to ticks)
Fixes
- Fixed Bullets not firing projectile impact event
- Reworked fire delay handling to reduce network jitter that could cause fire rate stuttering for automatic guns, especially on laggy connections.
API
BREAKING CHANGES
GunplayManager#tryFirenow returns an enumFireOutcomeinstead of a boolean- Contains additional context for why the shot failed, or fired.
- Fire Delay is now an entity attachment, not an item component
- Hand Occupancy is now keyed by the new
GunStateenum (RELOAD,FIRE) instead of raw strings.GunProfile#occupancyFornow takes aGunState. GunItem#currentOccupancynow must take an entity- Reworked
AnimationAdjuster- No longer an enum, but an interface. Can now be implemented by addons.
GunProfilenow takes a list of animation adjusters, instead of only one- Removed
NONEanimation adjuster
GunProfileis now a final class instead of a record. Constructor is now private, and usesGunProfile.BuilderShotProfile#gethas been renamed toShotProfile#peek. This is to clarify that returned value is not stored (so mutating it was a silent failure)
Additions
- All
GunItemss, including those added by addons, are automatically registered with a gun renderer and arm pose extension - Added item tags
irons_artifice:gunsandirons_artifice:ammo(IronsArtificeTags.GUNS,IronsArtificeTags.AMMO)- For ammo, there is currently no support for delineating which stacks where chosen when loaded into a gun
- Added
api.GunBones: named constants for every bone the client helpers look up. Use these in your own models if you weren't already. - Added
api.GunAnimations: named constants for the animation names (idle,fire,reload,equip) and controller names the gunplay system triggers. Use these in your own animation files if you weren't already. GunInHandRendererrender hooks are nowprotectedso the renderer can be more easily subclassed.IronsArtificeClient.armPoseExtensionis now public.- Datagen helpers are now public and reusable:
ItemModelDataGenerator.gunModel(...)andgenerateTemplatedItem(...),GECKOLIB_GUN_DISPLAY/REVOLVER_GUN_DISPLAY. - The published artifact now includes a sources jar.
- Added
ShotComponentTemplate, aSupplier<ShotComponentMap>for building shot components (instead of the in-line supplier in the old GunProfile constructor). Build one withShotComponentTemplate.builder(damage, spread, characterBlowback, fireDelayTicks, cameraRecoil) - Added
ShotProfile#modify(type, consumer)to modify components in one line - Added
ShotProfile#modifyValue(type, ValueModifier)andShotComponentMap#modifyValue(type, ValueModifier), helpers tomodifycomponents typed as values with aValueModifier
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:yOy4oSzi:YpV5q2lL"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:yOy4oSzi:YpV5q2lL"
}

