2.2.1
Compatibility
Changes
Added
-
Valorant crosshair: a new crosshair (4 thin lines and a dot) in the resource pack.
-
Spread indicator: 4 lines around the crosshair spread out when your shot becomes inaccurate (moving, jumping, spraying), like Valorant's firing error (
weapons.hud.spread-indicator). -
Hit markers around the crosshair: white (body), red (head), big red X (kill, with a sound), dotted orange (wallbang) (
weapons.hud.hit-markers). -
Damage numbers at the impact point, visible only to the shooter (
weapons.hud.damage-numbers). -
Alt-fire while aiming: 3-round burst for the Vandal, Phantom and Bulldog, 4-round for the Stinger (
ads.burst,burst-rate,burst-pauseinweapons.yml). -
Silenced weapons: the Ghost (and slightly the Phantom) can be heard from less far and have shorter tracers (
loudness,tracer-scale). -
Knife:
- right click = heavy attack, 75 from the front and 150 from behind, slower (
heavy-damage,heavy-backstab-damage,heavy-cooldown); - quick-melee with F, without switching weapon, when there's no weapon to pick up.
- right click = heavy attack, 75 from the front and 150 from behind, slower (
-
Fixed shotgun patterns: Bucky, Judge and Shorty pellets form a predictable pattern (one in the center, two rings), like Valorant (
spread.pattern: fixed). -
Gunfire you can hear from afar: beyond the sound's range, a shot is heard quieter, lower and from the shooter's direction, up to 80 blocks (
weapons.gunfire-range), much less for silenced weapons. -
Tracers matching the skin:
Skin Color Effect Prime gold sparkles Reaver purple soul flames Glitchpop alternating pink and cyan glow Ion cyan electric sparks Elderflame orange flames Oni red petals
Fixed
- Battle pass: the menu didn't open (error while displaying rewards).
- Footsteps: an error repeated in a loop after a map world was unloaded / reloaded.
- Reloading keeps the bullets left in the magazine and is cancelled by switching weapons (behaviour confirmed).
- Bullets deviating while standing still. Three causes fixed:
- the click arrived before the aim: in a Minecraft client tick, the click is sent before the packet carrying the camera rotation. The first shot used the previous tick's aim, so a small adjustment right before clicking was enough to deviate the bullet. The click's shot now fires on the next tick with the up-to-date aim; lag compensation accounts for it (
weapons.defer-click-shot); - false "in the air": a single tick off the ground (stairs, block edge) added the full jump inaccuracy. It now only applies after 2 ticks off the ground, and never on ladders (
weapons.air-grace-ticks); - dropping aim: aim / scope was released when a right-click packet arrived slightly late (network jitter), applying hip-fire inaccuracy. It now holds for 8 ticks (
weapons.aim-release-ticks).
- the click arrived before the aim: in a Minecraft client tick, the click is sent before the packet carrying the camera rotation. The first shot used the previous tick's aim, so a small adjustment right before clicking was enough to deviate the bullet. The click's shot now fires on the next tick with the up-to-date aim; lag compensation accounts for it (
- Counter-strafing: with no movement key held, you count as standing still (the remaining measured speed is just position noise), except for real pushes like a dash, slide or explosion.
Changed
- Reworked spray recoil:
- the climb eases off: the first bullets rise the most, then recoil reaches a plateau (
max-climb) instead of rising in a straight line; - the left / right sway starts smoothly, with a bit of randomness (
recoil.sway-jitter); - less recoil crouched (×0.85,
recoil.crouch-multiplier) and aiming (×0.85,recoil.ads-multiplier).
- the climb eases off: the first bullets rise the most, then recoil reaches a plateau (
- Faster recoil reset: after a spray, recoil and inaccuracy return to zero within 0.45 s (automatic weapons) or 0.35 s (semi-automatic), whatever the spray length (
recoil.recovery-time). Tap-firing stays accurate.
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:5AxXyQzL:a0dbYISX"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:5AxXyQzL:a0dbYISX"
}

