A lightweight Unity framework for manual and automatic weapons, attack cycles, runtime upgrades, critical damage, and extensible ScriptableObject attack behaviors.Build manual and automatic weapons without coupling combat logic to a specific player controller, input package, targeting system, inventory, or spawning system.Reusable Weapon System provides a readable foundation for players, enemies, turrets, traps, and vehicles. Weapon defaults are stored in ScriptableObject assets, while each equipped weapon receives its own mutable runtime statistics. Upgrades never modify the original assets.FEATURES• One manually controlled weapon per WeaponController• Multiple automatic weapons per AutoWeaponController• Configurable attack events within each automatic cycle• Cooldowns after completed attack cycles• Runtime stat copies based on ScriptableObject defaults• Add, multiply, and override stat modifiers• Manual, automatic, all-weapon, and specific-weapon filtering• Critical chance and critical-damage multipliers• ScriptableObject attack strategies• Included raycast and overlap-sphere attacks• Generic GameObject ownership• Optional automatic-targeting interface• Optional LineRenderer attack visuals• Optional debug drawing, disabled by default• Parent-object IDamageable lookup• EditMode and PlayMode testsFLEXIBLE INTEGRATIONThe runtime does not read input directly. Your own input, AI, networking, or command system calls WeaponController.TryAttack().Automatic targeting is also replaceable. Implement IAutomaticWeaponTargeting or allow automatic weapons to attack using their current forward direction.INCLUDED SAMPLEThe Basic Demo contains:• Manual mouse aiming• A manual raycast pistol• An automatically targeted gun• An automatic overlap-sphere saw• Nearest-target selection• Damageable targets• Cycle-based spin visualsREQUIREMENTS AND LIMITATIONS• Developed and tested with Unity 6000.2.13f1• Uses Unity 3D physics• Runtime code is render-pipeline independent• Included demo materials are configured for URP• Sample mouse input uses Unity’s legacy Input API• Does not include production weapon models, inventory, networking, reloading, ammunition, or a complete health systemFull setup instructions and examples are included in README.md.• Version: 1.0.0• Tested Unity version: 6000.2.13f1• Language: C#• Physics: Unity 3D Physics• Runtime render-pipeline support: Built-in, URP, and HDRP• Demo render pipeline: URP• External runtime dependencies: None• Input dependency: None in Runtime• Sample input: Legacy Unity Input API• Assembly definitions included for Runtime, Editor, Samples, EditMode tests, and PlayMode tests



