MetroidPrimeSWEP
Metroid Prime SWEP is a passion project recreation of the original Metroid Prime character controller for Garry's Mod.
Install / Use
/learn @JWalkerMailly/MetroidPrimeSWEPREADME
Metroid Prime SWEP
Metroid Prime SWEP is a passion project recreation of the original Metroid Prime character controller for Garry's Mod with utmost fidelity in mind. The project also ships with a comprehensive API and a multitude of hooks for developers to integrate their own add-ons.
Features
- Save States
- Power Beam, Wave Beam, Ice Beam and Plasma Beam
- Charge Beam
- Missiles
- Super Missiles, Wavebuster, Ice Spreader and Flamethrower
- Combat Visor, Scan Visor, Thermal Visor and X-Ray Visor
- Lock On System
- Log Book System
- Space Jump, Dashing and Air Movement
- Grapple Beam
- Power Suit, Varia Suit, Gravity Suit and Phazon Suit damage reduction
- Morph Ball, Boost Ball, Spider Ball
- Bombs and Power Bombs
- And more...
Controls
| Key | Default | Action | | ------ | ------ | ------ | | IN_ATTACK | Mouse 1 | Fire Beam, Charge Beam, Bombs (Morph Ball) | | IN_ATTACK2 | Mouse 2 | Fire Missile, Missile Combo, Power Bombs (Morph Ball) | | IN_SPEED | Shift | Lock On, Scan, Grapple Beam, Spider Ball (Morph Ball) | | IN_JUMP | Space Bar | Space Jump, Dash (Lock On), Boost Ball (Morph Ball) | | KEY_UP, KEY_LEFT, KEY_RIGHT, KEY_DOWN | Arrow Keys | Switch Beam | | KEY_E + KEY_UP, KEY_LEFT, KEY_RIGHT, KEY_DOWN | E + Arrow Keys | Switch Visor | | IN_CROUCH | Left Control Key | Morph Ball / Unmorph |
</br>Options & Cheats
An options menu is available in Sandbox mode from the Spawn Menu. It will be found in the extended portion of the menu in a category labelled "Metroid Prime". The options menu allows users and developers to tweak the display options of their session and enable / disable upgrades as they wish, granted sv_cheats is turned on.
<details> <summary><strong>Game Commands</strong></summary>
The following commands are all accessible from the options menu: | Command | Values | Description | | ------ | ------ | ------ | | mp_cheats_autosave | 0 / 1 | Enables or disables autosave upon dying or removing the Power Suit. | | mp_cheats_damagetakenscale | 1 - 10 | Multiplies damage taken while using the Power Suit. | | mp_cheats_damagegivenscale | 1 - 10 | Multiplies damage dealt while using the Power Suit. | | mp_cheats_scandashing | 0 / 1 | Enables or disables Scan Dashing feature found in first release of Metroid Prime. |
</details> <details> <summary><strong>Control Commands</strong></summary>Warning: Changing controls may have consequences and cause conflicts with other addons. Change at your own risk. Controls use the KEY enums, see the following link for a list of possible values: https://wiki.facepunch.com/gmod/Enums/KEY. | ConVar | Values | Description | | ------ | ------ | ------ | | mp_controls_selectorlayer | 0 - 159 | Defines the visor layer key to use when changing visors. | | mp_controls_selector1 | 0 - 159 | Defines the key to use to swap to Beam/Visor 1. | | mp_controls_selector2 | 0 - 159 | Defines the key to use to swap to Beam/Visor 2. | | mp_controls_selector3 | 0 - 159 | Defines the key to use to swap to Beam/Visor 3. | | mp_controls_selector4 | 0 - 159 | Defines the key to use to swap to Beam/Visor 4. |
</details> <details> <summary><strong>Gesture Commands</strong></summary>The following commands are all accessible from the options menu. Gestures can be used to change Beam/Visor using mouse movements instead of keyboard inputs. | ConVar | Values | Description | | ------ | ------ | ------ | | mp_options_gestures | 0 / 1 | Enables or disables gesture feature. | | mp_controls_gesture | 0 - 159 | Defines the key to hold down to initiate a gesture. | | mp_options_gesturedzone | 0.1 - 1.0 | Defines the mouse movement dead zone for gestures. Default value of 0.125. | | mp_options_gesturealpha | 0.1 - 1.0 | Defines the mouse sensitivity for gestures. Default value of 0.125. | | mp_options_gesturehelp | 0 / 1 | Show gesture calibration on screen. |
</details> <details> <summary><strong>Display Commands</strong></summary>The following commands are all accessible from the options menu: | Command | Values | Description | | ------ | ------ | ------ | | mp_options_autoaim | 0 / 1 | Enables or disables auto-aim. | | mp_options_viewmodelfov | 54 - 76 | Changes viewmodel FOV. | | mp_options_widescreenfix | 0 / 1 | Stretches HUD to fill widescreen displays. | | mp_options_visoropacity | 0 - 100 | Opacity of heads-up-display. | | mp_options_helmetopacity | 0 - 100 | Opacity of Samus' helmet. | | mp_options_hudlag | 0 / 1 | Enables or disables HUD lag. | | mp_options_facereflection | 0 / 1 | Enables or disables Samus' face reflection on Combat Visor. | | mp_options_keephud | 0 / 1 | Enables or disables HUD display even when the Power Suit is not in use. Must be in inventory. |
</details> <details> <summary><strong>Cheat Commands</strong></summary>The following commands are all accessible from the options menu: | Command | Args | Args | Description | | ------ | ------ | ------ | ------ | | mp_cheats_savestate | - | - | Save current session. | | mp_cheats_deletestate | - | - | Delete current session. | | mp_cheats_set_missileamount | 0 - 255 | - | Set current missile ammo count. | | mp_cheats_set_missilecapacity | 0 - 255 | - | Set missile max ammo count. | | mp_cheats_enable_powerbeam | 0 / 1 | - | Enables or disables Power Beam. | | mp_cheats_enable_wavebeam | 0 / 1 | - | Enables or disables Wave Beam. | | mp_cheats_enable_icebeam | 0 / 1 | - | Enables or disables Ice Beam. | | mp_cheats_enable_plasmabeam | 0 / 1 | - | Enables or disables Plasma Beam | mp_cheats_enable_chargebeam | 0 / 1 | - | Enables or disables Charge Beam. | | mp_cheats_enable_supermissile | 0 / 1 | - | Enables or disables Super Missile Combo. | | mp_cheats_enable_wavebuster | 0 / 1 | - | Enables or disables Wavebuster Combo. | | mp_cheats_enable_icespreader | 0 / 1 | - | Enables or disables Ice Spreader Combo. | | mp_cheats_enable_flamethrower | 0 / 1 | - | Enables or disables Flamethrower Combo. | | mp_cheats_enable_spacejump | 0 / 1 | - | Enables or disables Space Jump. | | mp_cheats_enable_grapplebeam | 0 / 1 | - | Enables or disables Grapple Beam. | | mp_cheats_enable_powersuit | 0 / 1 | - | Enables or disables Power Suit. | | mp_cheats_enable_variasuit | 0 / 1 | - | Enables or disables Varia Suit. | | mp_cheats_enable_gravitysuit | 0 / 1 | - | Enables or disables Gravity Suit. | | mp_cheats_enable_phazonsuit | 0 / 1 | - | Enables or disables Phazon Suit. | | mp_cheats_set_energytankamount | 0 - 14 | - | Sets base filled energy tank amount. Although this command exists, you probably shouldn't use it. | | mp_cheats_set_energytankcapacity | 0 - 14 | 0 / 1 | First argument sets max energy tank capacity. Second argument to refill health or not. | | mp_cheats_enable_combatvisor | 0 / 1 | - | Enables or disables Combat Visor. | | mp_cheats_enable_scanvisor | 0 / 1 | - | Enables or disables Scan Visor. | | mp_cheats_enable_thermalvisor | 0 / 1 | - | Enables or disables Thermal Visor. | | mp_cheats_enable_xrayvisor | 0 / 1 | - | Enables or disables X-Ray Visor. | | mp_cheats_enable_morphball | 0 / 1 | - | Enables or disables Morph Ball. | | mp_cheats_enable_morphballbombs | 0 / 1 | - | Enables or disables Morph Ball Bombs. | | mp_cheats_enable_morphballboost | 0 / 1 | - | Enables or disables Boost Ball. | | mp_cheats_enable_morphballspider | 0 / 1 | - | Enables or disables Spider Ball. | | mp_cheats_set_powerbombamount | 0 - 8 | - | Sets current Power Bomb count. | | mp_cheats_set_powerbombcapacity | 0 - 8 | - | Sets Power Bomb max ammo. |
</details> </br>Addon Integration
The supplied API offers methods for other addons to integrate with this project. Here you will find a guide on all available features and endpoints.
<details> <summary><strong>Damage Types</strong></summary>
Weapons use a combination of custom damage types: | DMG Type | Value | Weapons | | ------ | ------ | ------ | | DMG_MP_NULL | 0 | Unused | | DMG_MP_POWER | 1 | Power Beam, Super Missile | | DMG_MP_WAVE | 2 | Wave Beam, Wavebuster | | DMG_MP_ICE | 4 | Ice Beam, Ice Spreader | | DMG_MP_PLASMA | 8 | Plasma Beam, Flamethrower | | DMG_MP_BOMB | 16 | Bombs, Power Bombs | | DMG_MP_SPECIAL | 32 | Missile, Super Missile, Wavebuster, Ice Spreader, Flamethrower, Power Bombs | | DMG_MP_PHAZON | 64 | Unused |
To check for a specific damage type, use: https://wiki.facepunch.com/gmod/CTakeDamageInfo:GetDamageCustom
</details> <details> <summary><strong>Adding Threat Indicator Support</strong></summary>To add entities to the threat indication system, use the following stub in an autorun script:
game.MetroidPrimeThreats.Add("entity_class_name")
</details>
<details>
<summary><strong>Adding Log Book Support</strong></summary>
There are two ways to add Log Book support to your entities. The first method declares the Log Book data directly in your shared.lua file. The second approach makes use of an autorun script to register your entity into the game. If you are the author of the entity you wish to add support for, the first approach is recommended. If you are not the author, your only option will be the second method.
Method 1
In your shared.lua file, declare the following:
ENT.LogBook = {
Description = "",
Left = Material(""), // or nil
Right = Material("") // or nil
}
Values: | Var | Description | | ------ | ------ | | Description | Text to be displayed on the Scan Visor upon scan completion. | | Left | Material to be displayed on the left side of the Scan Visor upon scan completion. | | Right | Material to be displayed on the right side of the Scan Visor upon scan completion. |
Additional Values: | Var | Description | | ------ | ------ | | Sc
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
