# MUTATOR functions (from: `qcsrc/client/mutators/events.qh`, `qcsrc/common/mutators/events.qh`, `qcsrc/server/mutators/events.qh`)
-### Introduction
-
-How to use MUTATOR functions:
+### How to use MUTATOR functions:
**Attention:** to use a hook, first register your mutator using `REGISTER_MUTATOR`, then create your function using `MUTATOR_HOOKFUNCTION`.
<br />
<br />
+# WEAPON functions
+
+## A bit of introduction
+
+You'll need understand that weapons can be interacted with autocvars variables and its own .qh file where cvars are declared. *Think*, *touch*, *explode* and those types of functions can be declared within an *attack* function and *whatever* it is called. Note that there are also METHODs that are necessary for the weapon to work.
+
+- **Think** function makes the weapon shot react on what to do.
+- **Touch** function makes the weapon shot react against some element where touch (like player, monster, vehicle, ...).
+- **Explode** function makes the weapon explosion react.
+- **Attack/Whatever** function is where the weapon attack executes, keep in mind that it has the other functions attached to be executed.
+
+You can look the example of this weapon code:
+- [**devastator.qh**](https://timepath.github.io/scratchspace/d9/dfa/devastator_8qh_source.html)
+- [**devastator.qc**](https://timepath.github.io/scratchspace/d9/d5d/devastator_8qc_source.html)
+
+<br />
## List of WEAPON functions
-This is a created functions list to modify/create weapons. There are incomplete explanations for each function.
+This is a created list of functions to modify/create weapons. There are incomplete explanations for each function.
There are contents taken from `qcsrc/common/weapons/all.qh`.
**WARNING:** The contents may content wonky code, and the interactions can change and not do the same what happens here.
-<br />
<br />
- [**W_SetupShot_Dir**](https://timepath.github.io/scratchspace/d4/d3f/tracing_8qh.html#aff0ea351757ee6caf83b25d12d18656c)
- [**W_MuzzleFlash**](https://timepath.github.io/scratchspace/d0/ddd/weapons_2all_8qh_source.html)(located in `qcsrc/common/weapons/all.qh` line 406)
-In the moment when player shots the weapon, weapon flashes.
+In the moment when player shots the weapon, weapon flashes.
+
*Note:* write `#ifdef SVQC` at the start of using this function, and write with `#endif` after declared the function(only can do this if the code which needs execute can do this, although maybe you need more functions/things in the code inside this).
```c
- [**Weapon decrease ammo, speed factor, rate factor, reload functions**](https://timepath.github.io/scratchspace/d5/de0/weaponsystem_8qc.html)
(located in `qcsrc/server/weapons/weaponsystem.qh`)
+<br />
+<br />
+
+# Menu and Draw functions
+
+You can look the draw functions where HUD is being drawn:
+- [**Draw functions and macros (`qcsrc/client/draw.qh`)**](https://timepath.github.io/scratchspace/d5/d8d/client_2draw_8qh_source.html)
+
+More info inside the code where you can draw/print HUD and menu:
+- [**Globals, constants, fonts, prints, error cmds, vector stuff, conversion functions and all drawing/printing HUDs/menus/characters related (`qcsrc/dpdefs/upstream/menudefs.qc`)**](https://timepath.github.io/scratchspace/d8/de2/menudefs_8qc_source.html)
+
+<br />
-AND.... STILL in process
\ No newline at end of file
+AND... STILL more things in process
\ No newline at end of file