mszguns

v2.0.1·Updated 2026-05-07

Adds guns to the game using a modular system that makes adding your own easy

Screenshots 2 screenshots

About this mod Author’s original text

mszak47

A MelonLoader mod that adds guns to Miside Zero, built on top of InventoryFramework. Guns are defined as folders containing a config file and assets, no code is required to add new ones.

Features:

  • Modular gun system requiring no scripting
  • Optional Photon multiplayer through Multiside

Currently comes with these three guns:

Multiplayer roadmap

  • ✅ Selected gun syncing
  • ✅ Shot syncing + audio
  • ❌ ADS syncing
  • ❌ Gun pitch (up down) syncing (Requires to be implemented in Multiside)
  • ❌ Health system

Installation

Install the latest release manually or using a tool like mod manager.

Build + file setup

This section has been removed for readability, see it here:

Creating a Gun

Each gun lives in its own subfolder inside Mods/mszguns. The folder must contain a gun.json file. All other files are discovered automatically if you follow the naming conventions below.

Folder Structure

mszguns/

my_gun/

gun.json

model.glb ← gun model (GLB format)

shot.wav ← gunshot audio (.wav or.mp3)

icon.png ← inventory icon

hole.png ← bullet hole texture (optional, only if you wish to override it)

File names are flexible, the loader will find them as long as they have the right extension. You only need to set the file fields in gun.json if you want to use non-default names.

gun.json

{

"Id": "my_gun",

"DisplayName": "My Gun",

"FireRate": 0.1,

"AudioVolume": 0.5,

"Damage": 10.0,

"Range": 100.0,

"AdsSpeed": 0.2,

"AdsFov": 50.0,

"RecoilKickDuration": 0.05,

"RecoilRecoverDuration": 0.15,

"BulletHoleDuration": 10.0,

"NormalPosition": [0.3, -0.3, 0.5],

"AdsPosition": [0.0, -0.15, 0.4],

"NormalAngle": [0.0, 0.0, 0.0],

"RecoilAngle": [-5.0, 0.0, 0.0],

"Effect": "Normal"

}

All fields are optional and will fall back to defaults if omitted.

Fields

| Field | Type | Default | Description |

| ----------------------- | -------- | ------------------------------------------- | ---------------------------------------------------------------- |

| Id | string | folder name | Unique identifier. Inferred from the folder name if not set. |

| DisplayName | string | "" | Name shown in the inventory label. |

| ModelFile | string | first.glb in folder | Path to the GLB model file. |

| AudioFile | string | first.wav.mp3 in folder | Path to the gunshot audio file. |

| IconFile | string | icon.* or first.png | Path to the inventory icon. |

| HoleFile | string | hole.* in folder, then mszguns/hole.png | Path to the bullet hole texture. |

| FireRate | float | 0.1 | Seconds between shots when holding fire. |

| AudioVolume | float | 0.5 | Gunshot audio volume (0–1). |

| Damage | float | 10.0 | Damage per shot. (Currently unused, reserved for future use.) |

| Range | float | 100.0 | Raycast range in units. |

| AdsSpeed | float | 0.2 | Time in seconds to transition to/from ADS. |

| AdsFov | float | 50.0 | Field of view while aiming down sights. |

| RecoilKickDuration | float | 0.05 | Time to reach the recoil angle on fire. |

| RecoilRecoverDuration | float | 0.15 | Time to return to the normal angle after recoil. |

| BulletHoleDuration | float | 10.0 | Seconds before a bullet hole starts fading. |

| NormalPosition | float[3] | [0, 0, 0] | Local position of the gun relative to the camera when hipfiring. |

| AdsPosition | float[3] | [0, 0, 0] | Local position when aiming down sights. |

| NormalAngle | float[3] | [0, 0, 0] | Local euler angles when hipfiring. |

| RecoilAngle | float[3] | [0, 0, 0] | Local euler angles at peak recoil. |

| Effect | string | "Normal" | Shot effect. See below. |

Shot Effects

| Value | Description |

| --------- | ------------------------------------------------------------------------- |

| Normal | Single raycast shot. Spawns a bullet hole on hit. |

| Shotgun | 8 raycasts with random spread. Spawns a bullet hole per pellet that hits. |

| Cube | Spawns a physical cube projectile that flies forward. No bullet holes. |

More effects are planned.

Co

Install & use Install: follow the bundled instructions

  1. Unzip the archive from playbuff and read the bundled readme / instructions first.
  2. Most mods rely on the game's mod loader — the usual route is a community mod manager (such as r2modman): pick this game, install, and it handles the loader and dependencies.
  3. For a manual install, put the mod files into the matching Mod / plugins folder inside the game directory.
  4. Launch the game to confirm it loaded; mods with listed dependencies need those installed as well.

Install locations vary a lot between mods — the bundled readme is the most reliable guide.

Dependencies

Install these first, or the mod will not work:

LavaGang-MelonLoadergameknight963-InventoryFramework

File & checksum

Filename
mszguns-2.0.1.zip
File size
10.5 MiB