# Basics

Start by creating a first person controller as mentioned [here](https://akila.gitbook.io/fps-framework/tutorials/character/first-person-controller)[.](https://akila.gitbook.io/fps-framework/tutorials/character/first-person-controller)

## Firearm Wizard <a href="#firearm-wizard" id="firearm-wizard"></a>

The FPS Framework includes a Firearm Wizard that simplifies the setup process. To access it, right-click anywhere in the hierarchy, then navigate to **Akila > FPS Framework > Firearm**. This will open the Firearm Wizard window.

<figure><img src="https://512600823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLQgz9gGwkU5HhRwKT3te%2Fuploads%2FUMXBdNhXqP0Wlr8upi1q%2FScreenshot%202025-04-09%20005834.png?alt=media&#x26;token=7a8f67b2-eb8a-41a3-96a0-9e7b2eee4b19" alt=""><figcaption><p>The firearm wizard</p></figcaption></figure>

### How To Use?

Each section represents exactly what its title indicates. Below are the full details:

#### Basic

<table><thead><tr><th width="170">Name</th><th>Description</th></tr></thead><tbody><tr><td>Name</td><td>The name of your firearm. This will be used as the preset name, the GameObject name, and the display name. You can change it later if needed.</td></tr><tr><td>Preset</td><td>The selected preset from the default firearm options. For example, choosing "Assault Rifle" will apply all the default settings for that weapon type. The same applies to all other preset options.</td></tr></tbody></table>

{% hint style="info" %}
You can customize the presets by editing them under **FPS Framework > Data > Preset**.
{% endhint %}

#### Assginables

<table><thead><tr><th width="169.99993896484375">Name</th><th>Description</th></tr></thead><tbody><tr><td>Replacement</td><td>The object that will be spawned when the item is dropped.</td></tr><tr><td>Firearm HUD</td><td>The FirearmHUD prefab that displays all relevant firearm information.</td></tr><tr><td>Crosshair</td><td>The crosshair assigned to your firearm type.</td></tr></tbody></table>

#### Advanced

<table><thead><tr><th width="170.00006103515625">Name</th><th>Description</th></tr></thead><tbody><tr><td>Shooting Mechanisim</td><td>Defines how projectiles are fired. <strong>Hitscan</strong> uses a Raycast for instant impact, while <strong>Projectile</strong> spawns a physical projectile.</td></tr><tr><td>Shooting Direction</td><td>The origin point from which projectiles are fired.</td></tr><tr><td>Firerate</td><td>The rate at which projectiles or hitscan shots are fired.</td></tr><tr><td>Muzzle Velocity</td><td>The velocity at which physical projectiles travel.</td></tr><tr><td>Range</td><td>The maximum range where hits can damage items.</td></tr></tbody></table>

#### Audio & FX

See [Audio System](https://akila.gitbook.io/fps-framework/tutorials/systems/audio-system) to understand this section.

<table><thead><tr><th width="170">Name</th><th>Description</th></tr></thead><tbody><tr><td>Fire Sound</td><td>The fire audio profile to be played when gun is fired.</td></tr><tr><td>Reload Sound</td><td>The reload audio profile to be played during reloading.</td></tr><tr><td>Auto Generate</td><td>If enabled, the AudioClips below will be activated. Upon firearm creation, the corresponding Audio Profiles will be generated and assigned.</td></tr><tr><td>Fire Audio Clip</td><td>The fire audio clip to be used in the generated audio profile.</td></tr><tr><td>Reload Audio Clip</td><td>The reload audio clip to be used in the generated audio profile.</td></tr></tbody></table>

#### Utilizes

<table><thead><tr><th width="169.99993896484375">Name</th><th>Description</th></tr></thead><tbody><tr><td>Generate Prefab</td><td>Generates a prefab of the created firearm. This is useful for later use as a pickable item. For more information, refer to the <a href="../../systems/interactions/pickable">Pickable </a>section.</td></tr></tbody></table>

After clicking the "Create" button, the Save Scriptable Object window will appear. Select a save path and click "Save." The firearm will now be successfully created.

{% hint style="warning" %}
Make sure to drag your newly created firearm game object into your player's inventory game object as a child.
{% endhint %}


---

# 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://akila.gitbook.io/fps-framework/tutorials/character/firearm/basics.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.
