Skip to content

Commit

Permalink
New PC mod dev wiki (#638)
Browse files Browse the repository at this point in the history
* Ignore Rider files

* Add new modding intro page for Rider

* Optimised images with calibre/image-actions

* Fix formatting

* Fix dead link

* Fix link ...?

* Fix formatting

* Move PC and Quest modding pages

* Fix links

* Good idea

* Fix mistake

* Fix mistake

* Fix mistake

* Fix dead link

* Move pc mod dev index

* Add page files

* Setup touch-up

* Add ILSpy and RUE wiki

* Fix link?

* Fix links pls

* Add harmony patching introduction

* BSML part 1

* BSML part 2

* Clocking in

* Small changes

* Do image links like this?

* Add the full mod guide

* Fix line length

* Changes, add new links

* Add section on the AssemblyPublicizer

* Add section on FieldAccessor

* Add section on Object Redecorating

* Fix line length

* Remove BeatMods section

* Consistency change for tutorial

* Finishing touches

* Fix dead link

* Remove primary constructors

(From provided feedback)

* Remove mention of BepInEx loader

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bloodcloak <[email protected]>
  • Loading branch information
3 people authored Mar 7, 2025
1 parent cc42ae4 commit 9cc445e
Show file tree
Hide file tree
Showing 176 changed files with 2,208 additions and 178 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,8 @@ wiki/.vitepress/cache
# Visual Studio-created directory for... something?
/.vs

# JetBrains Rider files
/.idea

# Ignore config copies forks may keep to deploy a test instance
/wiki/.vitepress/config.*.ts
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/beginners-guide/BetaOptions_SteamBranch.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/beginners-guide/mbf-android-quest-found.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/beginners-guide/mbf-android-usb-tray.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/beginners-guide/mbfModBrowser.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/beginners-guide/mbfReadyToMod.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/beginners-guide/mbfSelectDevice.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/beginners-guide/sqConnected.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/beginners-guide/squninstall.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/0-spacing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/1-spacing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/135_degree_cw.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/180_degree_cw.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/2-spacing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/270_degree_cw.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/3-spacing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/45_degree_ccw.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/45_degree_cw.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/45_degree_cw_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/45_degree_cw_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/45_degree_cw_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/angle_enforcement.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified wiki/.assets/images/mapping/apex.png
Binary file modified wiki/.assets/images/mapping/beatbombreset.png
Binary file modified wiki/.assets/images/mapping/beatbombreset_top.png
Binary file modified wiki/.assets/images/mapping/bomb-spiral-path.png
Binary file modified wiki/.assets/images/mapping/bombhold.png
Binary file modified wiki/.assets/images/mapping/bottom-reset.png
Binary file modified wiki/.assets/images/mapping/burst.png
Binary file modified wiki/.assets/images/mapping/burst_top.png
Binary file modified wiki/.assets/images/mapping/chain_cm.png
Binary file modified wiki/.assets/images/mapping/circle.png
Binary file modified wiki/.assets/images/mapping/cosmetic-bomb-bad.png
Binary file modified wiki/.assets/images/mapping/crouch-signposting.png
Binary file modified wiki/.assets/images/mapping/flick-alt.png
Binary file modified wiki/.assets/images/mapping/flick-alt_top.png
Binary file modified wiki/.assets/images/mapping/gallop.png
Binary file modified wiki/.assets/images/mapping/gallop_top.png
Binary file modified wiki/.assets/images/mapping/good-crouch.png
Binary file modified wiki/.assets/images/mapping/halfonehand.png
Binary file modified wiki/.assets/images/mapping/halfonehand_top.png
Binary file modified wiki/.assets/images/mapping/halfspeedstream.png
Binary file modified wiki/.assets/images/mapping/halfspeedstream_top.png
Binary file modified wiki/.assets/images/mapping/hard-dodge-wall.png
Binary file modified wiki/.assets/images/mapping/intended_rhythm.png
Binary file modified wiki/.assets/images/mapping/inverted-swing.png
Binary file modified wiki/.assets/images/mapping/lean_backhand.png
Binary file modified wiki/.assets/images/mapping/lean_forehand.png
Binary file modified wiki/.assets/images/mapping/left-lean.png
Binary file modified wiki/.assets/images/mapping/left_backhand_ccw.png
Binary file modified wiki/.assets/images/mapping/left_backhand_cw.png
Binary file modified wiki/.assets/images/mapping/left_forehand_ccw.png
Binary file modified wiki/.assets/images/mapping/left_forehand_cw.png
Binary file modified wiki/.assets/images/mapping/momentum-circle.png
Binary file modified wiki/.assets/images/mapping/momentum-lol.png
Binary file modified wiki/.assets/images/mapping/momentum-meh.png
Binary file modified wiki/.assets/images/mapping/momentum-nice.png
Binary file modified wiki/.assets/images/mapping/momentum-no.png
Binary file modified wiki/.assets/images/mapping/momentum-yes.png
Binary file modified wiki/.assets/images/mapping/negative-curvature-135.png
Binary file modified wiki/.assets/images/mapping/negative-curvature-45.png
Binary file modified wiki/.assets/images/mapping/negative-curvature-90-ok.png
Binary file modified wiki/.assets/images/mapping/negative-curvature-90.png
Binary file modified wiki/.assets/images/mapping/negative-curvature-spam.png
Binary file modified wiki/.assets/images/mapping/no-lean.png
Binary file modified wiki/.assets/images/mapping/no_rotation.png
Binary file modified wiki/.assets/images/mapping/non-inverted-swing.png
Binary file modified wiki/.assets/images/mapping/onehandjumps.png
Binary file modified wiki/.assets/images/mapping/onehandjumps_top.png
Binary file modified wiki/.assets/images/mapping/positive-curvature-spam.png
Binary file modified wiki/.assets/images/mapping/right-lean.png
Binary file modified wiki/.assets/images/mapping/right_backhand_ccw.png
Binary file modified wiki/.assets/images/mapping/right_backhand_cw.png
Binary file modified wiki/.assets/images/mapping/right_forehand_ccw.png
Binary file modified wiki/.assets/images/mapping/right_forehand_cw.png
Binary file modified wiki/.assets/images/mapping/scoop.png
Binary file modified wiki/.assets/images/mapping/simple-lean-wall.png
Binary file modified wiki/.assets/images/mapping/simple-sway-wall.png
Binary file modified wiki/.assets/images/mapping/single.png
Binary file modified wiki/.assets/images/mapping/sliders.png
Binary file modified wiki/.assets/images/mapping/stack.png
Binary file modified wiki/.assets/images/mapping/stream.png
Binary file modified wiki/.assets/images/mapping/stream_top.png
Binary file modified wiki/.assets/images/mapping/sway-lean-wall.png
Binary file modified wiki/.assets/images/mapping/sway.png
Binary file modified wiki/.assets/images/mapping/tangle_problem.png
Binary file modified wiki/.assets/images/mapping/tangle_resolve.png
Binary file modified wiki/.assets/images/mapping/top-reset.png
Binary file modified wiki/.assets/images/mapping/tower.png
Binary file modified wiki/.assets/images/mapping/tripletjumps.png
Binary file modified wiki/.assets/images/mapping/tripletjumps_top.png
Binary file modified wiki/.assets/images/mapping/window.png
Binary file added wiki/.assets/images/modding/pc-mod-bsml-file.jpg
Binary file added wiki/.assets/images/modding/pc-mod-bsml-tabs.jpg
Binary file added wiki/.assets/images/modding/pc-mod-ilspy-code.jpg
Binary file added wiki/.assets/images/modding/pc-mod-ilspy-list.jpg
Binary file added wiki/.assets/images/modding/pc-mod-rue1.jpg
Binary file added wiki/.assets/images/modding/pc-mod-rue2.jpg
Binary file removed wiki/.assets/images/modding/testing-console.png
Diff not rendered.
Binary file modified wiki/.assets/images/models/materials/AudioClipDrag.png
Binary file modified wiki/.assets/images/models/materials/AudioLinkAvatarDrag.png
Binary file modified wiki/.assets/images/models/materials/CurveExample.png
Binary file modified wiki/.assets/images/models/materials/HeightMapExample.png
Binary file modified wiki/.assets/images/models/materials/HeightMapExampleHard.png
Binary file modified wiki/.assets/images/models/materials/MelodiUnlitExample.png
Binary file modified wiki/.assets/images/models/materials/RenderQueueExample.png
Binary file modified wiki/.assets/images/models/materials/RenderTypesExample.png
Binary file modified wiki/.assets/images/models/materials/UberShaderProperties.png
Binary file modified wiki/.assets/images/models/materials/UnlitGlowProperties.png
Binary file modified wiki/.assets/images/models/materials/YoutubeLinkExample.png
Binary file modified wiki/.assets/images/models/platforms/AddGlowModelEvents.png
Binary file modified wiki/.assets/images/models/platforms/AddTextureNode.png
Binary file modified wiki/.assets/images/models/platforms/AvailableEventScripts.png
Binary file modified wiki/.assets/images/models/platforms/DeleteDuplicateCubes.png
Binary file modified wiki/.assets/images/models/platforms/DragDropPrefab.png
Binary file modified wiki/.assets/images/models/platforms/DuplicateGlowObject.png
Binary file modified wiki/.assets/images/models/platforms/GlowEvents.png
Binary file modified wiki/.assets/images/models/platforms/GlowModels.png
Binary file modified wiki/.assets/images/models/platforms/SetActiveObject.png
Binary file modified wiki/.assets/images/models/platforms/TrackLanePrefabDrag.png
Binary file modified wiki/.assets/images/models/platforms/TrackRingOrigin.png
Binary file modified wiki/.assets/images/models/platforms/TrackRingOutOfView.png
Binary file modified wiki/.assets/images/models/platforms/TrackRings.png
Binary file modified wiki/.assets/images/models/platforms/TrackRingsComponent.png
Binary file modified wiki/.assets/images/models/platforms/cmbHumanoidPlacement.png
Binary file modified wiki/.assets/images/models/platforms/prefabTogameObject.png
Binary file modified wiki/.assets/images/support/BlankMenuEnvironment.png
Binary file modified wiki/.assets/images/support/GrayMenuEnvironment.png
Binary file modified wiki/.assets/images/support/UnityCrashPopup.png
22 changes: 17 additions & 5 deletions wiki/.vitepress/config/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,14 +111,26 @@ export const en = defineConfig({
name: 'Modding',
path: '/modding/',
routes: [
['PC', '/modding/pc-mod-dev-intro'],
[
'PC',
'/modding/pc/setup',
[
['Setup Guide', '/modding/pc/setup'],
['RUE', '/modding/pc/rue'],
['Decompiling', '/modding/pc/decompiling'],
['Harmony Patching', '/modding/pc/harmony-patching'],
['Creating UI', '/modding/pc/bsml'],
['Zenject and SiraUtil', '/modding/pc/zenject'],
['Full Guide', '/modding/pc/full-mod-guide'],
],
],
[
'Quest',
'/modding/quest-mod-dev-intro',
'/modding/quest/intro',
[
['Config', '/modding/quest-mod-dev-config'],
['Custom Types', '/modding/quest-mod-dev-custom-types'],
['UI', '/modding/quest-mod-dev-ui'],
['Config', '/modding/quest/config'],
['Custom Types', '/modding/quest/custom-types'],
['UI', '/modding/quest/ui'],
],
],
],
Expand Down
48 changes: 4 additions & 44 deletions wiki/modding/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,50 +12,10 @@ Development for [PC](#pc-mod-development) and [Quest standalone](#quest-mod-deve

## PC Mod Development

### Injecting Mods
If you want to make mods for the PC version of the game, the following guide will cover a multitude of different
processes involved in making mods from scratch, as well as some of the different APIs you have access to.

Instead, most mods within the mod installer rely on
[BSIPA (Beat Saber Illusion Plugin Architecture)](https://github.com/nike4613/BeatSaber-IPA-Reloaded/)
to inject plugins into the game, as well as providing some useful tools for us modders.

For those of you who prefer [BepInEx](https://github.com/BepInEx/BepInEx) over either of these options, Bepis has created
a loader for BSIPA plugins, available [here](https://github.com/BepInEx/BepInEx.BSIPA.Loader). As for developing Beat Saber
plugins with the BepInEx plugin API, a generic guide exists on their
[documentation site](https://bepinex.github.io/bepinex_docs/v5.0/articles/dev_guide/plugin_tutorial/index.html),
but other than that you're kinda on your own.

### Project Setup

If you are interested in creating a Beat Saber mod, but do not have a template or Visual Studio template set up,
[follow the Intro guide to get your project all set up](./pc-mod-dev-intro.md).

#### Ready to go?

Check out the [links below](#other-links) for documentation relating to Unity and related tooling. If you have any questions,
the best place to ask is in the `#pc-mod-dev` channel on the [BSMG Discord](https://discord.gg/beatsabermods)

### Launch args

Helpful launch arguments that will make modding / debugging easier.

<!-- markdownlint-disable MD013 -->

| Argument&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description |
| -------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--verbose` | Enables the output log window for IPA. This will show the debug console that mods use. |
| `fpfc` | "First Person Flying Controller"<br /><br />This allows you to use WASD and the mouse to navigate around the menu in game. This makes testing much easier, because you don't have to put on your headset! |
| `-vrmode oculus` | If you are running Beat Saber through Steam, this allows you to play the game on an Oculus headset. |

<!-- markdownlint-enable MD013 -->

### Other Links

- [BeatMods](https://beatmods.com)
- [BeatMods Approval Guidelines](https://docs.google.com/document/d/15RBVesZdS-U94AvesJ2DJqcnAtgh9E2PZOcbjrQle5Y/edit?usp=sharing)
- [Unity Scripting API](https://docs.unity3d.com/ScriptReference/index.html)
- [dnSpy](https://github.com/0xd4d/dnSpy)
- [Harmony](https://github.com/pardeike/Harmony)
- [Beat Saber IPA](https://nike4613.github.io/BeatSaber-IPA-Reloaded/)
Visit the [PC Mod Development](./pc/index.md) page to begin.

## Quest Mod Development

Expand All @@ -67,4 +27,4 @@ limited to:
- User Interfaces using `bsml`
- Custom types

Visit the [Quest Mod Development Intro](./quest-mod-dev-intro.md) page for more information on getting started!
Visit the [Quest Mod Development Intro](./quest/intro.md) page for more information on getting started!
125 changes: 0 additions & 125 deletions wiki/modding/pc-mod-dev-intro.md

This file was deleted.

Loading

0 comments on commit 9cc445e

Please sign in to comment.