A cooperative multiplayer mod for Star Ocean: The Second Story R, built using BepInEx and Unity IL2CPP modding tools.
The goal of this project is to add cooperative gameplay features to Star Ocean 2 R, allowing multiple players to participate together while preserving the original game's mechanics and systems.
Current features:
- BepInEx plugin framework setup
- Runtime testing tools
- Multiplayer/cooperative player control
- A legitimate copy of Star Ocean: The Second Story R
- BepInEx IL2CPP installed
- Windows PC version of the game
- Visual Studio 2022
- .NET 8 SDK
- BepInEx IL2CPP development environment
- IL2CPP interop assemblies generated from the game
- Install BepInEx IL2CPP into your Star Ocean 2 R installation.
- Download or build the latest GDM Coop Mod DLL.
- Copy the plugin DLL into:
STAR OCEAN THE SECOND STORY R/
└── BepInEx/
└── plugins/
└── GDMCoopMod.dll
- Launch the game.
BepInEx should load the plugin automatically.
The mod provides keyboard shortcuts for assigning controllers to party characters.
To assign a controller to a character:
- Press F1–F4 to select the character you want to assign.
- The selected controller will be assigned to that character.
| Key | Function |
|---|---|
| F1 | Assign selected controller to Character 1 / Select Controller 1 |
| F2 | Assign selected controller to Character 2 / Select Controller 2 |
| F3 | Assign selected controller to Character 3 / Select Controller 3 |
| F4 | Assign selected controller to Character 4 / Select Controller 4 |
| F5 | Unassign the selected controller |
| F6 | Unassign all controllers |
| F7 | Display controller/assignment information |
Note: Pressing F2 selects Controller 2. Once a controller is selected, pressing F1–F4 assigns it to the corresponding character.
The following keys control whether the game's AI is enabled for the characters:
| Key | Function |
|---|---|
| F9 | Enable AI |
| F10 | Disable AI |
To assign Controller 2 to Character 3:
- Press F2 to select Controller 2.
- Press F3 to assign Controller 2 to Character 3.
To remove Controller 2 from its assigned character:
- Press F2 to select Controller 2.
- Press F5 to unassign it.
To reset all controller assignments:
- Press F6.
Clone the repository:
git clone https://github.com/<username>/GDMCoopMod.gitOpen the solution in Visual Studio.
Build the project:
Build → Build Solution
The compiled DLL will be located in:
bin/
└── Debug/
└── net8.0/
└── GDMCoopMod.dll
Copy the DLL into the BepInEx plugins folder to test.
The following are required to run the mod:
- Star Ocean: The Second Story R (PC version)
- A legitimate copy of the game is required.
- BepInEx IL2CPP
- Required mod loader.
- Provides plugin loading, IL2CPP interop, and Harmony patching.
The following are required to build the mod from source:
- Visual Studio 2022
- Workload:
.NET desktop development
- Workload:
- .NET 8 SDK
- Git
The project references assemblies generated/provided by BepInEx:
BepInEx/core/
├── BepInEx.Core.dll
├── BepInEx.Unity.IL2CPP.dll
├── 0Harmony.dll
└── Il2CppInterop.Runtime.dll
After installing BepInEx and launching the game once, IL2CPP interop assemblies will be generated:
BepInEx/interop/
├── Il2Cppmscorlib.dll
├── UnityEngine.CoreModule.dll
├── UnityEngine.IMGUIModule.dll
├── UnityEngine.UI.dll
├── UnityEngine.PhysicsModule.dll
├── UnityEngine.TextRenderingModule.dll
├── UnityEngine.InputLegacyModule.dll
├── Unity.InputSystem.dll
└── Assembly-CSharp.dll
These files are generated from the game installation and are not included in this repository.
Developers must generate their own copies.
- Install BepInEx IL2CPP into the game directory.
- Launch the game once to generate interop assemblies.
- Clone this repository.
- Update project references to point to your local BepInEx and interop assemblies.
- Build the solution.
This project targets the IL2CPP version of Unity used by Star Ocean: The Second Story R.
Because the game uses IL2CPP:
- Game assemblies are generated through BepInEx interop tools.
- Decompiled assemblies are used for reference during development.
- Runtime patches and modifications are implemented through BepInEx and Harmony.
Generated game files and interop assemblies are intentionally not included in this repository.
Contributions, suggestions, and testing reports are welcome.
Before submitting changes:
- Keep code organized and documented.
- Avoid committing generated files.
- Test changes in-game before submitting pull requests.
This project is licensed under the MIT License.
See LICENSE for details.
This project is a fan-made modification and is not affiliated with or endorsed by Square Enix or Gemdrops.
You must own a legitimate copy of Star Ocean: The Second Story R to use this mod.