Weapon are the objects that Player character holds when picking-up a weaponTAG or when selecting a weapon slot from the inventory to be equiped.
For this reason they must be configured in oerdr to be able to execute some logic (firing, reloading, etc..) and animations.
Starting from 2023 version weapons do not need to be already linked to the playerCharacter to work. In the new system the weaponTAG contains the reference to the weapon prefab to load and attach to the playerCharacter when picked-up.
To be 100% convincing a weapon must owns an sh2 model (hierarchical model) containing 4 nodes, BUT you can omit them if you want:
MuzzleNode
ProjectileNode
BulletBoxNode
LoaderNode: it is used for showing/hiding weapon loader during ammo re-loading.
Usually loader node is used in this way:
1. A loader model is attached to an hand node of the player, a loader mesh is on a node of the weapon object model.
2. When using the weapon the loader node in the players hand is hidden, the loader mesh in weapon object is showed
3. When reloading the weapon the loader node in player hand is showed while the loader mesh in weapon object is hidden.
Following is the screenshot of the M4 model provided with EasyGame Pack:
The green boxes are the nodes the model must have to be 100% working.
As you can see from the image, the hierarchy structure has a start node called ROOT to which are directrly linked all other nodes: