Fully Loaded - Weapon System

Fully Loaded is a complete weapons system that is ideal for any project that requires projectile or raycast-based shooting: whether it’s an FPS or a top-down 2D shooter. Fully loaded handles firing (primary and secondary fire modes), weapon switching, ammo use, reloading, hit-detection and damage, and so many more things all out of the box: all you have to do is create the weapons and projectiles you need, then customize them to your heart’s content.


Fully Loaded provides a simple and straightforward way of customizing weapons and projectiles without needing to write any code to do so, thanks to its easy to use custom inspectors. Everything from trigger types (semi-auto, automatic, hold-to-charge), clip sizes and reload times, randomized shot scatter, burst fire, and many more things can be tweaked in seconds (even whilst in play mode) for speedy iteration while developing your game.


You can set up a primary and secondary fire mode for each weapon that are completely independent: they can fire different projectiles, have different reload settings and clip sizes, even use different ammo. Multi-Shot allows for firing multiple projectiles at once (think shotgun), while Burst Fire allows setting up a series of shots in quick succession - and of course you can combine the two!


Did I mention impact effects, bullet trails and explosions? How about bullet penetration and bullet drop? Weapon and ammo pickups? You get all those too! There are also 2D and 3D example scenes with several functional weapons for you to try, as well as character controller prefabs that can be easily dropped into your own scenes for rapid integration.


Object Pooling is implemented automatically with no setup required: all projectiles and effects are pooled so garbage collection can be kept to an absolute minimum.


A great deal of thought has gone into the design of Fully Loaded to ensure that the code is modular, maintainable, easy to extend and performant. For example, new trigger types, or new shot spread behaviors can be added in a plug and play fashion without even having to modify the original code to integrate them. Fully Loaded is also flexible: the code makes no assumptions about which input system is used for example, you aren’t forced into any one solution, and there is no requirement to have your collision layer matrix set up in a particular way in order for the projectiles to work. You aren’t required to overwrite your project settings or add a bunch of tags and layers, those decisions are up to you.


Fully Loaded is designed for both 2D and 3D projects.


Unity Forums | Online Documentation