BepInEx 5.x mod for Bits & Bops that adds additional visual effects for the in-game editor.
- Install BepInEx 5.x for Bits & Bops.
- Download
BopVisualEffects.dllfrom the latest release. - Place
BopVisualEffects.dllin<GameRoot>/BepInEx/plugins/. - Launch the game — effects will be available in the in-game editor.
See this document for the full list of effects this mod enables.
Each effect can be individually enabled or disabled in the BepInEx config file (<GameRoot>/BepInEx/config/BopVisualEffects.cfg), under the [Effects] section.
The config file is at <GameRoot>/BepInEx/config/BopVisualEffects.cfg. It's generated automatically on first load. To disable an effect, set its entry to false:
[Effects]
## Whether the Camera Shake effect is active.
# Setting type: Boolean
# Default value: true
CameraShake.Enabled = falseSee the effects documentation for all available config keys.
Disabled effects are removed from the in-game editor and will not run during playback.
- Copy
BopVisualEffects/BopVisualEffects.user.props.exampletoBopVisualEffects/BopVisualEffects.user.props. - Set
GameRootinBopVisualEffects/BopVisualEffects.user.propsto the path where Bits & Bops is installed. - Build the solution with
dotnet build BopVisualEffects.sln
Derived paths:
BepInExPluginsDir = <GameRoot>/BepInEx/pluginsUnityManagedDir = <GameRoot>/Bits & Bops_Data/Managed
If BepInExPluginsDir exists, build output is copied there automatically.
- Create a class in
BopVisualEffects/Effects/<EffectName>/that implementsIVisualEffectDefinition. - Fill in
Id(lowercase, with spaces),DisplayName(human-readable),ConfigKey(PascalCase, used for config file entries) andDescription. - Implement
CreateTemplateso the effect appears in the editor template list. - Add a dedicated runtime runner
MonoBehaviourfor the effect (in the same file or a sibling file). - Implement
TryScheduleto read entity properties and spawn your runner throughEffectRuntimeController.Instance.SpawnRunner<T>(...). - Register the effect once in
EffectDefinitionRegistry.Initialize(...)usingRegister(new YourEffect()). - Record a short
.mp4preview video showing the event selected with its properties and the effect being applied in the editor. Upload it to GitHub (e.g. by attaching it to a PR comment or issue) and copy the resulting link. - Update
docs/effects/README.mdand include the uploaded video link under the Preview section for the new effect.
Formatting, code style rules and analyzer rules are enforced on Pull Requests. To enable auto-format on commit locally, run the attached script once after cloning the repository.
Windows:
scripts/setup-git-hooks.batLinux/macOS:
./scripts/setup-git-hooks.sh