# Shoot Modifier

```yaml
  Shoot_Modifier:
    Projectile_Amount: <IntModifier>
    Projectile_Speed: <DoubleModifier>
    Base_Spread: <DoubleModifier>
    Override_Spread: <Spread>
    Fully_Automatic_Shots_Per_Second: <IntModifier>
    Add_Mechanics: <Mechanics>  # or use Replace_Mechanics
    Recoil_Modifier:
      Mean_X: <DoubleModifier>
      Mean_Y: <DoubleModifier>
      Variance_X: <DoubleModifier>
      Variance_Y: <DoubleModifier>
      Speed: <DoubleModifier>
      Damping: <DoubleModifier>
      Damping_Recovery: <DoubleModifier>
      Smoothing_Factor: <DoubleModifier>
      
```

### Projectile\_Amount

Modifies the [Shoot](https://cjcrafter.gitbook.io/weaponmechanics/weapon-modules/shoot#projectiles_per_shot), the number of projectiles launched for each shot. This is typically used for shotguns, to increase the amount of pellets/shrapnel.&#x20;

### Projectile\_Speed

Modifies the [Shoot](https://cjcrafter.gitbook.io/weaponmechanics/weapon-modules/shoot#projectile_speed), the speed, in $$\frac{m}{s}$$, that the projectile should be launched at. You can use this on suppressor attachments to decrease the muzzle velocity of the launched projectile(s).

### Base\_Spread

Modifies the [Spread](https://cjcrafter.gitbook.io/weaponmechanics/weapon-modules/shoot/spread#base_spread), the random variations in bullet path. Increasing the spread will make the gun harder to use because bullets will fly more randomly.&#x20;

### Override\_Spread

{% hint style="warning" %}
In general, you should try to use the [#base\_spread](#base_spread "mention") feature instead of `Override_Spread`. This is to make it easier to configure multiple attachments that modify spread at the same time.&#x20;
{% endhint %}

Completely overrides the [Spread](https://cjcrafter.gitbook.io/weaponmechanics/weapon-modules/shoot/spread) of the weapon.

### Fully\_Automatic\_Shots\_Per\_Second

Modifies the [Shoot](https://cjcrafter.gitbook.io/weaponmechanics/weapon-modules/shoot#fully_automatic_shots_per_second) of the weapon. For non-automatic weapons (semi/burst weapons), the starting value will be 0.&#x20;

<details>

<summary>Allow Selective Fire Example</summary>

In this example, selective fire still works with burst and semi-auto weapons. This is because we use the `MULTIPLY` option, and $$0\times x=0$$, where $$x$$ can be any number. In this example, the full auto rate will be 50% higher then before.&#x20;

```yaml
    Shoot_Modifier:
      Fully_Automatic_Shots_Per_Second: MULTIPLY 1.50
```

</details>

<details>

<summary>Convert to Full Auto Example</summary>

In this example, selective fire will no longer work. This example will convert all weapons to fully automatic weapons.

```yaml
    Shoot_Modifier:
      Fully_Automatic_Shots_Per_Second: SET 6
```

</details>

### Add\_Mechanics

{% hint style="info" %}
This will add additional [Mechanics](https://cjcrafter.gitbook.io/mechanics/) to the current mechanics. To replace all current mechanics, change the config key to `Replace_Mechanics`.&#x20;
{% endhint %}

Modifies the current mechanics applied whenever an entity shoots the weapon. In practice, this can be used to create suppressors, VALORANT styled skins (skins that modify sounds shoot sounds), make sounds louder, etc.

<details>

<summary>Suppressor Example</summary>

In this example, we replace the original mechanics (and thus, the original sound) with a suppressed sound with less volume.&#x20;

```yaml
    Shoot_Modifier:
      Replace_Mechanics:
        - "CustomSound{sound=shoot.m4a1.silenced.loud, volume=2, noise=0.1}"
```

</details>

### Recoil\_Modifier

Lets you modify the recoil of the weapon. This can be used to make recoil more/less "snappy," which allows finer control over balancing your guns.

All config options match 1 to 1 with the config options in the [base recoil section](https://cjcrafter.gitbook.io/weaponmechanics/weapon-modules/shoot/recoil) of your gun. In general, modifying just the speed value can be enough to increase/decrease recoil.

```yaml
    Shoot_Modifier:
      Recoil_Modifier:
        # ~20% increase in initial recoil
        Speed: MULTIPLY 1.20
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cjcrafter.gitbook.io/weaponmechanicsplus/modifiers/shoot-modifier.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
