You are viewing a potentially older version of this package. View all versions.
Sparroh-AntiMaterialRifle-1.2.2 icon

AntiMaterialRifle

Anti-Material Rifle — a heavy kinetic bolt-action sniper for Mycopunk. High single-shot damage, low capacity, single-round reload.

Date uploaded 2 weeks ago
Version 1.2.2
Download link Sparroh-AntiMaterialRifle-1.2.2.zip
Downloads 88
Dependency string Sparroh-AntiMaterialRifle-1.2.2

This mod requires the following mods to function

BepInEx-BepInExPack_Mycopunk-5.4.2403 icon
BepInEx-BepInExPack_Mycopunk

BepInEx pack for Mycopunk. Preconfigured and ready to use.

Preferred version: 5.4.2403

README

Ballistic Sniper

BepInEx mod for Mycopunk that adds the Anti-Material Rifle — a dedicated long-range kinetic sniper.

Weapon

Name Anti-Material Rifle
API ballistic_sniper
Gear ID 87421
Base model Cartridge SMG (runtime clone)

Fantasy

Pure long-range precision. Slow, deliberate, high-impact kinetic shots. No energy charge, no smart targeting.

Base stats

Stat Value
Damage 145
Fire rate 48 RPM (1.25 s between shots)
Magazine 5
Reserve 20
Reload 3.1 s total (single-round; ~0.62 s per shell)
Fire mode Semi / bolt-action
Projectile Travel time + bullet drop
Falloff Soft after long range
ADS Slow (~0.55 s), strong zoom
Hip-fire Very poor

Single-round reload

Reload chambers one round at a time. Each shell’s animation is scaled so a full empty magazine still takes about the full reload duration. Press fire during reload (with at least one round chambered) to cancel the remaining shells and shoot immediately.

Architecture

Runtime clone of CartridgeSMG (always present in Global.AllGear):

  1. Clone prefab → new GearInfo + empty upgrade pool
  2. ApplyBallisticSniperStats rewrites GunData
  3. BallisticSniperBehaviour marks the gear for reload hooks
  4. Equip remaps NGO spawn to the vanilla base gun, then stamps catalog identity
File Role
Plugin.cs BepInEx entry, registration timing
WeaponRegistration.cs Clone, GearInfo, sniper stats, AllGear inject
BallisticSniperBehaviour.cs Identity host on catalog / live instances
BallisticSniperReloadHook.cs Single-round reload + per-shell duration
SpawnGearHooks.cs Equip remap + GearSelectionWindow safety

Install

<Mycopunk>/BepInEx/plugins/BallisticSniper.dll

Dependencies: Mycopunk, BepInEx 5.4.2403+.

Build

dotnet build --configuration Release

Output: bin/Release/netstandard2.1/BallisticSniper.dll

Persistence

Save data is keyed by gear ID (87421). The mod registers into AllGear before PlayerData.OnAwake runs AddGear, then re-binds GearData.Gear afterward so levels, unlock, and equip (weapon1ID / weapon2ID) survive relaunch.

Look for: [BallisticSniper] Persistence OK: level=… unlocked=…

In-game checklist

  1. BepInEx log shows gear registration (ballistic_sniper, id 87421)
  2. Gear select lists Anti-Material Rifle (auto-unlocked)
  3. Equip primary → slow semi fire, high damage, small mag
  4. Reload loads one round at a time
  5. ADS is accurate when standing still; hip-fire is poor
  6. Level up / equip, full quit, relaunch → progress and loadout kept
  7. Upgrade UI shows hex grid + inventory (Match-Grade Rounds is in the pool; own instances via drops/craft)

Notes

  • Visuals currently reuse the Cartridge SMG model; swap later via ModelImportHooks / AssetBundle.

  • 28 upgrades registered (Heavy Grain through Overkill, plus Boundary Incursion). See upgrade notes.txt.

  • Hold reload with full mag + High Explosive equipped to throw/detonate C4.

  • Uses standard projectile bullets (travel time + drop), not rail/hitscan.

  • Multiplayer: all clients need the same mod and matching gear id.

License

MIT — see LICENSE

CHANGELOG

Changelog

1.2.2

Reload feel

  • Single-round reload chambers on shell finish (not mid-anim), so cancel no longer grants free ammo
  • Soft-cancel: fire during reload finishes the current shell, then stops the tube chain (empty → stops at 1)
  • 0.5s bolt-close only when the tube sequence ends or is canceled (not after every shell)

Fixes

  • Custom gear no longer resets to CartridgeSMG / BounceShotgun after main-menu relaunch (persist catalog id after spawn stamp)
  • Heavy Grain no longer double-applies damage (was squared, then stacked hard with Subsonic)
  • Reserve Load no longer double-applies ammo capacity; unequip no longer wipes other GunData mods
  • Death Mark no longer re-applies from its own blast / AOE chains
  • On-hit upgrades ignore DamageOverTime and AOE (Shock DoT no longer retriggers them)
  • Scouter uses a short pulse highlight instead of a long near-continuous ping
  • Spotter/Scouter highlights no longer wipe each other or NRE on bad meshes
  • Myco Splash applies Rot via overlap damage instead of null-VFX explosion spawn

1.2.1

  • Hand wrote the descriptions because AI is stupid and adds flowery language.
  • Also cleaned up the structure of the mod, no functional changes to the weapon (other than upgrade sizes being smaller for now).

1.2.0

  • Reload interrupt: fire during single-round reload cancels remaining shells and shoots
  • Switched from RailBullet (hitscan) to standard SimpleProjectileBullet so speed/gravity apply
  • Perforator + Ricochet Protocol rewritten for projectile bullets
  • New upgrades: Boundary Incursion (gridgrow), Synchronize, Overkill (28 total)
  • Longwatch now meaningfully affects flight path after projectile swap

1.1.0

  • Full upgrade pool (25 modules) from upgrade notes — overtuned numbers
  • Paths: Death Mark, Auto Trigger, High Explosive C4, Longwatch, Perforator, Twin Link, etc.
  • Combat hooks: damage, fire, recoil, move speed, reload C4, chamber bonus, spread (Deadbolt / Auto Trigger)
  • Behaviour Data host mirrors CyclerRework pattern
  • QA fixes: Hullbreaker, Reposition/Overpressure move, Spotter/Scouter Highlighter, Powered Echo bullet, HE cube, Auto Trigger keeps tube reload
  • Round 2: Perforator via RailBullet.PierceTargets + falloff; Ricochet post-bounce retarget; Twin Link instant Shock; One in the Chamber clears block on fire; Scouter centered on aim point

1.0.0

  • Anti-Material Rifle (ballistic_sniper, gear id 87421)
  • Runtime clone of CartridgeSMG with full ballistic sniper GunData rewrite
  • Base stats: 145 damage, 48 RPM, mag 5 / reserve 20, 3.1s reload, projectile travel + drop
  • Single-round reload (one shell at a time; full empty reload ≈ total reload duration)
  • ADS spread fix (standing ADS near-perfect; hip stays wide)
  • Persistence: register before PlayerData.AddGear; re-bind GearData after save load (levels / equip / unlock)
  • Display name via TextBlocks; upgrade grid copied from SMG
  • Starter upgrade Match-Grade Rounds (enables hex grid + inventory UI via HasUpgrades)
  • Auto-unlock into gear select
  • Equip remap + identity stamp for NGO-safe spawning