Swing System

v1.0.1·Updated 2025-04-26

Adds physics-based swinging to R.E.P.O.! Hold RMB (configurable) to swing from surfaces (if LMB not held). Release RMB to jump off with momentum.

About this mod Author’s original text

Swing System for R.E.P.O.

Adds a physics-based swinging mechanic to R.E.P.O., allowing you to attach to static surfaces and traverse levels with momentum! Uses the default grab beam visual for the swing line.

Features

  • Physics-Based Swinging: Uses a SpringJoint for realistic rope-like swinging physics.
  • Surface Attachment: Attach to walls, ceilings, and other static environment pieces within range using a dedicated key.
  • Momentum Control: Use movement keys (WASD) while swinging to influence direction and build speed.

Integrated Visuals: Utilizes the existing PhysGrabber beam effect for the swing line visual while swinging*.

  • Jump-Off Release: Releasing the swing key while swinging automatically gives a momentum-based jump.
  • Configurable Physics: Tune swing distance, forces, and joint properties via the config file.

Dedicated Swing Key: Uses a separate key (Default: Right Mouse Button) for swinging, independent of the primary Grab key (Left Mouse Button). Swing only activates if Grab is not* held.

Controls

  • Hold Swing Key (Default: Right Mouse Button): Aim at a valid surface (wall, ceiling) and HOLD to attach and swing. This only works if the Grab key (Left Mouse Button) is NOT held.
  • WASD (while swinging): Influence swing direction and speed. Push forward/backward to increase/decrease arc, left/right to steer.
  • Release Swing Key (while swinging): Detach from the surface and perform a jump, conserving your current momentum.
  • Hold Grab Key (Default: Left Mouse Button): Performs the standard R.E.P.O. grab action (unaffected by this mod, unless you are actively swinging).

Configuration

After running the game once with the mod installed, a config file will be generated at BepInEx/config/com.BellaModsGames.reposwingsystem.cfg (or matching your GUID).

  • [Controls]
  • SwingKey: The key to hold down to initiate and maintain a swing. (Default: Mouse1 / Right Mouse Button)
  • [Physics]
  • MaxSwingDistance: Maximum distance the swing line can attach from. (Default: 30)
  • SwingForceMultiplier: How strongly WASD input affects your swing momentum. (Default: 50)
  • UpwardsForceMultiplier: Additional upward boost when pressing 'W' while looking up during a swing. (Default: 10)
  • JointSpring: The springiness/tension of the swing line joint. Higher values = stiffer. (Default: 8.0)
  • JointDamper: How much the swing resists oscillation (damping). Higher values = less bounce. (Default: 5.0)
  • JointMassScale: How much the joint connection ignores the player's mass. Higher values make the connection feel stronger/less affected by player weight. (Default: 5.0)

Tips

  • Aim high on walls or ceilings for longer, more effective swings.
  • Actively use WASD during the swing to gain significant momentum.
  • Time your release (letting go of the Swing Key) to control your launch trajectory.
  • Remember you cannot start a swing if you are already holding the Grab key (LMB).

Known Issues

  • Physics might behave erratically if attaching very close to a surface or in tight corners.
  • The beam visual (borrowed from PhysGrabber) might sometimes clip through geometry.
  • Swinging is primarily designed for single-player; behaviour in multiplayer is untested and likely unsynchronized.
  • Rapidly switching between holding LMB and RMB might occasionally cause unexpected beam visual states (though patches attempt to prevent this).

Compatibility

This mod patches PlayerController and PhysGrabber. It may conflict with other mods that heavily modify:

  • Player movement input or physics, especially related to the grab keys.
  • The PhysGrabber's beam activation/deactivation logic.
  • Gravity application.

Credits

  • Mod created by BellaModsGames

Commissioned Mods

I take commissions for custom mods! If you have an idea for a mod you'd like to see created, feel free to contact me:

  • Discord: bellamodsgames

I can create custom gameplay mechanics or systems tailored to your specific requirements.

Version History

1.0.1 (Current based on our iterations)

  • Changed swi

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPack

File & checksum

Filename
Swing_System-1.0.1.zip
File size
157.9 KiB