Skip to content

Changelog v3.6.0

enso-x edited this page Mar 14, 2026 · 2 revisions

Added

  • Ammo type system for weapons:
    • new ammo registry that scans plugin assets and runtime mods for items with HyGuns.AmmoSettings;
    • loaded ammo state tracking on the weapon item (selected, loaded, HUD icon);
    • ammo compatibility checks based on ammo family and weapon class;
    • default ammo resolution when several compatible ammo items are present.
  • Ammo selection UI:
    • new AmmoSelectionPage and SelectAmmoInteraction;
    • updated weapon templates so reload input can open ammo selection after a short hold.
  • Ammo-driven weapon customization:
    • ammo items can now override weapon settings through HyGuns.AmmoSettings.SettingsOverrides;
    • ammo items can inject custom impact interactions.
  • Ammo impact interaction handlers:
    • ApplyEffect
    • ClearEntityEffect
    • TeleportToBlockHit
  • Weapon repair content:
    • WeaponRepairPage
    • WeaponRepairInteraction
    • Weapon_Repair_Kit item, model, icon, and recipe.

Changed

  • Weapon settings format in HyGuns.Settings was reorganized into nested groups:
    • Ammo
    • Fire
    • Ammo.Reload
    • Projectiles
  • Fire cooldown is now split into two layers:
    • Interactions.Primary.Cooldown.Cooldown still controls the base interaction cadence on the item side;
    • HyGuns.Settings.Fire.Cooldown adds server-side fire gating and can be overridden by ammo.
  • Reload, reload-check, gun validation, shooting, and HUD flows now read capacity/reload/ammo source from the new nested settings model.
  • HUD ammo icon now comes from the selected/loaded ammo item instead of weapon-level AmmoIcon.
  • Reserve ammo counting is now based on compatible ammo items in the inventory, not a single fixed weapon ammo id.
  • Weapon templates (Template_Flamethrower, Template_Handgun, Template_Rifle, Template_Shotgun, Template_Sniper) were migrated to the new format and updated to support ammo selection UI.
  • Gun settings merge flow now applies overrides in this order:
    • interaction overrides
    • loaded ammo overrides
    • base weapon settings

Format Changes

Weapon format (HyGuns.Settings)

  • WeaponIcon and DealLethalDamage stay at the root of HyGuns.Settings.
  • Ammo-related values moved into HyGuns.Settings.Ammo.
  • Fire-rate values moved into HyGuns.Settings.Fire.
  • Projectile-related values moved into HyGuns.Settings.Projectiles.
  • Reload values moved into HyGuns.Settings.Ammo.Reload.
  • Existing nested systems from previous versions such as AmmoGuidance and WallPenetration continue to live under HyGuns.Settings.

Supported keys in HyGuns.Settings.Ammo:

  • Family
  • WeaponClass (string or array)
  • ItemId (optional exact ammo item binding)
  • Capacity (alias: Max)
  • Reload.Time
  • Reload.Amount
  • AmmoSave.Enabled
  • AmmoSave.Chance

Supported keys in HyGuns.Settings.Fire:

  • Cooldown

Important:

  • HyGuns.Settings.Fire.Cooldown does not replace Interactions.Primary.Cooldown.Cooldown.
  • For normal weapon fire-rate behavior, keep both values configured.
  • Interactions.Primary.Cooldown.Cooldown controls how often the client/item interaction can run.
  • HyGuns.Settings.Fire.Cooldown is an additional server-side cooldown used by HyGuns logic and ammo overrides.

Supported keys in HyGuns.Settings.Projectiles:

  • ConfigId
  • ProjectileId (alias: ProjectileID)
  • Count
  • Spread
  • Damage

Ammo item format (HyGuns.AmmoSettings)

  • Ammo items are now first-class content entries.
  • Any item that defines HyGuns.AmmoSettings is treated as ammo.
  • Ammo items can define compatibility, UI icon, settings overrides, and hit interactions.

Fixed

  • Reload validation now works with ammo families/classes instead of a single legacy ammo item id.
  • Shooting and reload flows now preserve selected ammo state and HUD icon correctly when switching ammo.
  • HUD reserve ammo display now follows the currently selected or resolved compatible ammo type.
  • Ammo discovery no longer depends on Tags.Type: Ammo; HyGuns.AmmoSettings is sufficient.

Build / Version

  • Version bumped from 3.5.2 to 3.6.0.

Clone this wiki locally