+## Bones and animations
+
+MUST contain `tag_handle`, `tag_shell` and `tag_shot` bone names attached. These tag_names MUST be attached, if not the model will cause errors.
+
+`tag_Somename` is another one, you can add if you need some optional animation in this bone. (Not useful for [old methodology](#old-methodology))
+
+Moreover, watch out about position and rotation. `h_*.iqm` alterates the position and rotation of `v_*.md3`. The positions may not be equal.
+
+`g_*` and `v_*` MUST contain one bone. The animations can't be included. It isn't like `h_*`.
+
+Required animations and in the correct order:
+- `fire`
+- `fire2`
+- `idle`
+- `reload`
+
+## Textures and materials
+
+Please note that before exporting, about textures and materials, you have to assign the same as the script like this example shader file (`crylink.shader` file):
+```
+crylink_new // your material name
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map textures/crylink_new.tga // the texture you wanna display in-game, make sure to test in Blender!
+ rgbgen lightingDiffuse
+ }
+}
+```
+Note: `crylink_new` must appear in the material.
+<br/><br/>Material:<br/>
+<img src="uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg" alt="crylinkblendermaterialsample" width=920 />
+<br/>
+
+# New methodology
+
+You can make optional customized animations adding bones for the animations.
+
+## SMD (includes IQM converter and dpmodel guide)
+
+Use Source Tools addon in Blender to export the model and animations.
+
+- For `h_*`:<br/>
+Select the mesh and 1 animation and click Export, you need to export all animations one per one:
+<br/><img src="uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg" alt="blenderSMDexport1" width=380 /><br/><br/>
+Repeat the process:<br/><img src="uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg" alt="blenderSMDexport2" width=350 /><br/><br/>
+<img src="uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg" alt="blenderSMDexport3" width=350 /><br/><br/><img src="uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg" alt="blenderSMDexport4" width=350 />
+<br/><br/>
+
+- For `g_*` and `v_*`:<br/>
+Just select the mesh:
+<br/><img src="uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg" alt="blenderSMDexport5" width=350 /><br/>
+
+Use `iqm.exe` from [IQM exporter](https://gitlab.com/xonotic/iqm), in Windows, in CMD execute for convert SMD to IQM for `v_*` and `g_*`: <br/>`iqm v_myweapon.iqm v_mesh.smd`
+<br/>`iqm g_myweapon.iqm g_mesh.smd`
+<br/><br/>Linux: `./iqm.exe g_myweapon.iqm g_mesh.smd`
+<br/>`./iqm.exe v_myweapon.iqm v_mesh.smd`
+
+Rename extension to MD3: <br/>`g_myweapon.iqm` to `g_myweapon.md3`<br/>and `v_myweapon.iqm` to `v_myweapon.md3`
+
+Use dpmodel tool to generate `h_myweapon.dpm` and `h_myweapon.dpm.framegroups`, in command line execute: `dpmodel yourconfig.txt`
+<br/>More info explained about dpmodel tool: [dpmodel](dpmodel)
+<br/>Rename extension to IQM: `h_myweapon.dpm` to `h_myweapon.iqm` and `h_myweapon.dpm.framegroups` to `h_myweapon.iqm.framegroups`.
+
+Save those compiled model files into `models/weapons/` folder where they belong.
+
+**Conclusion**: Sometimes, renaming formats can be useful to save effort. Note: it's a kind of weird way to do stuff, file formats are hardcoded in the gamecode rather than dynamically obtained. The issue of model resources was found here: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/2629#note_686988936
+
+# Export troubleshooting
+
+- _**Spamming CSQC errors:**_<br/>
+If you received spamming errors like that:<br/>
+<img src="uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg" alt="spammingerrorstagweapon" width=450 /><br/>
+It's because you didn't do correctly the steps after exporting the models. Remember, `g_*` and `v_*` MUST contain one bone.
+
+- _**Broken shadow artifacts (enabled with `r_shadows 2` and disabled `r_shadow_shadowmapping 0`):**_<br/>
+To solve this, the possible way is exporting to IQM from Blender, selecting bone and mesh (both highlighted). Usually, this issue happens in `g_*` and `v_*` ones.
+<br/>Reference: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/2667
+
+- _**When exporting to IQM, get duplicated names in the texture:**_<br/>
+<img src="uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg" alt="duplicatedtexturenameloadingerror" width=700 /><br/>
+Take a closer look what is telling here:<br/>
+_The "Materials" option controls how material names are generated. "material+image-ext" combines the name of the material and the name of the UV-map image (without its extension or directory) to generate the material name, "material" uses only the name of the material, and "image" just uses the name of the UV-map image (without its directory)._ <br/><br/>
+When you export to IQM, you need to watch out that detail after selected File > Export > Inter-Quake Model (.iqm, .iqe).<br/>
+Pay attention to this [section](##textures-and-materials) when you need to export correctly, the material/texture(image) should be one thing, so do the following: Export IQM > Materials: > select `material` or `image` instead `material+image-ext`.<br/>
+<img src="uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg" alt="exportiqmiqeblenderdetails" width=200 /><br/>
+
+- _**Model scale animations aren't working:**_<br/>
+SMD format doesn't support bone scaling animations, although you try to compile them into dpmodel tool, it won't change nothing. More info here: https://steamcommunity.com/groups/BlenderSourceTools/discussions/1/152392786900223348/ <br/>
+Same goes for IQM.
+
+# Old methodology
+
+*Note: this section is obsolete.*
+
+**IMPORTANT**: In this methodology, you can't make cool animations with separated objects, because `h_*.iqm` here is a plane mesh with bones.
+
+Note: the model should be rotated as YXZ, instead being XYZ. Because the tip of the weapon is Y, horizontally is X.
+
+`tag_weapon` is a MUST bone for this methodology.
+