diff --git a/.gitignore b/.gitignore index 5ec172d2b..cf7b111ff 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/wiki/.assets/images/beginners-guide/BetaOptions_OculusBranch.jpg b/wiki/.assets/images/beginners-guide/BetaOptions_OculusBranch.jpg index e88ce2859..6b6485505 100644 Binary files a/wiki/.assets/images/beginners-guide/BetaOptions_OculusBranch.jpg and b/wiki/.assets/images/beginners-guide/BetaOptions_OculusBranch.jpg differ diff --git a/wiki/.assets/images/beginners-guide/BetaOptions_SteamBranch.jpg b/wiki/.assets/images/beginners-guide/BetaOptions_SteamBranch.jpg index fe235b08a..2bec22f9f 100644 Binary files a/wiki/.assets/images/beginners-guide/BetaOptions_SteamBranch.jpg and b/wiki/.assets/images/beginners-guide/BetaOptions_SteamBranch.jpg differ diff --git a/wiki/.assets/images/beginners-guide/mbf-android-modding-complete.png b/wiki/.assets/images/beginners-guide/mbf-android-modding-complete.png index 3da940774..a48cbb100 100644 Binary files a/wiki/.assets/images/beginners-guide/mbf-android-modding-complete.png and b/wiki/.assets/images/beginners-guide/mbf-android-modding-complete.png differ diff --git a/wiki/.assets/images/beginners-guide/mbf-android-preferences-changed.png b/wiki/.assets/images/beginners-guide/mbf-android-preferences-changed.png index 952b3e202..043168e1f 100644 Binary files a/wiki/.assets/images/beginners-guide/mbf-android-preferences-changed.png and b/wiki/.assets/images/beginners-guide/mbf-android-preferences-changed.png differ diff --git a/wiki/.assets/images/beginners-guide/mbf-android-quest-found.png b/wiki/.assets/images/beginners-guide/mbf-android-quest-found.png index 4edcdf91f..fcb8562d5 100644 Binary files a/wiki/.assets/images/beginners-guide/mbf-android-quest-found.png and b/wiki/.assets/images/beginners-guide/mbf-android-quest-found.png differ diff --git a/wiki/.assets/images/beginners-guide/mbf-android-ready-to-mod.png b/wiki/.assets/images/beginners-guide/mbf-android-ready-to-mod.png index ea0b29535..c4f86bffc 100644 Binary files a/wiki/.assets/images/beginners-guide/mbf-android-ready-to-mod.png and b/wiki/.assets/images/beginners-guide/mbf-android-ready-to-mod.png differ diff --git a/wiki/.assets/images/beginners-guide/mbf-android-usb-tray.png b/wiki/.assets/images/beginners-guide/mbf-android-usb-tray.png index e2ef52509..1a347de49 100644 Binary files a/wiki/.assets/images/beginners-guide/mbf-android-usb-tray.png and b/wiki/.assets/images/beginners-guide/mbf-android-usb-tray.png differ diff --git a/wiki/.assets/images/beginners-guide/mbfModBrowser.png b/wiki/.assets/images/beginners-guide/mbfModBrowser.png index c518d97f2..ba3400c12 100644 Binary files a/wiki/.assets/images/beginners-guide/mbfModBrowser.png and b/wiki/.assets/images/beginners-guide/mbfModBrowser.png differ diff --git a/wiki/.assets/images/beginners-guide/mbfReadyToMod.png b/wiki/.assets/images/beginners-guide/mbfReadyToMod.png index 056c1e89d..dc301ca8a 100644 Binary files a/wiki/.assets/images/beginners-guide/mbfReadyToMod.png and b/wiki/.assets/images/beginners-guide/mbfReadyToMod.png differ diff --git a/wiki/.assets/images/beginners-guide/mbfSelectDevice.png b/wiki/.assets/images/beginners-guide/mbfSelectDevice.png index 68bca54d9..071af712e 100644 Binary files a/wiki/.assets/images/beginners-guide/mbfSelectDevice.png and b/wiki/.assets/images/beginners-guide/mbfSelectDevice.png differ diff --git a/wiki/.assets/images/beginners-guide/sqConnected.png b/wiki/.assets/images/beginners-guide/sqConnected.png index 28f5b977b..45b55cae5 100644 Binary files a/wiki/.assets/images/beginners-guide/sqConnected.png and b/wiki/.assets/images/beginners-guide/sqConnected.png differ diff --git a/wiki/.assets/images/beginners-guide/squninstall.png b/wiki/.assets/images/beginners-guide/squninstall.png index 07fa3ac18..49df6d9cd 100644 Binary files a/wiki/.assets/images/beginners-guide/squninstall.png and b/wiki/.assets/images/beginners-guide/squninstall.png differ diff --git a/wiki/.assets/images/mapping/0-spacing.png b/wiki/.assets/images/mapping/0-spacing.png index 0a470b191..daaedc6f8 100644 Binary files a/wiki/.assets/images/mapping/0-spacing.png and b/wiki/.assets/images/mapping/0-spacing.png differ diff --git a/wiki/.assets/images/mapping/1-spacing.png b/wiki/.assets/images/mapping/1-spacing.png index 7a9d5d17f..d9f42f5cc 100644 Binary files a/wiki/.assets/images/mapping/1-spacing.png and b/wiki/.assets/images/mapping/1-spacing.png differ diff --git a/wiki/.assets/images/mapping/135_degree_cw.png b/wiki/.assets/images/mapping/135_degree_cw.png index 7cfbae037..49c17c251 100644 Binary files a/wiki/.assets/images/mapping/135_degree_cw.png and b/wiki/.assets/images/mapping/135_degree_cw.png differ diff --git a/wiki/.assets/images/mapping/180_degree_cw.png b/wiki/.assets/images/mapping/180_degree_cw.png index 6796805fd..062df5a4d 100644 Binary files a/wiki/.assets/images/mapping/180_degree_cw.png and b/wiki/.assets/images/mapping/180_degree_cw.png differ diff --git a/wiki/.assets/images/mapping/2-spacing.png b/wiki/.assets/images/mapping/2-spacing.png index 723833d85..fdd87db32 100644 Binary files a/wiki/.assets/images/mapping/2-spacing.png and b/wiki/.assets/images/mapping/2-spacing.png differ diff --git a/wiki/.assets/images/mapping/270_degree_cw.png b/wiki/.assets/images/mapping/270_degree_cw.png index cec5bd4d4..e5a7d7275 100644 Binary files a/wiki/.assets/images/mapping/270_degree_cw.png and b/wiki/.assets/images/mapping/270_degree_cw.png differ diff --git a/wiki/.assets/images/mapping/3-spacing.png b/wiki/.assets/images/mapping/3-spacing.png index b55bb78c8..ffd653922 100644 Binary files a/wiki/.assets/images/mapping/3-spacing.png and b/wiki/.assets/images/mapping/3-spacing.png differ diff --git a/wiki/.assets/images/mapping/45_degree_ccw.png b/wiki/.assets/images/mapping/45_degree_ccw.png index f29c4b2b8..e295cae5d 100644 Binary files a/wiki/.assets/images/mapping/45_degree_ccw.png and b/wiki/.assets/images/mapping/45_degree_ccw.png differ diff --git a/wiki/.assets/images/mapping/45_degree_cw.png b/wiki/.assets/images/mapping/45_degree_cw.png index 9126b2d93..4c5517c0b 100644 Binary files a/wiki/.assets/images/mapping/45_degree_cw.png and b/wiki/.assets/images/mapping/45_degree_cw.png differ diff --git a/wiki/.assets/images/mapping/45_degree_cw_2.png b/wiki/.assets/images/mapping/45_degree_cw_2.png index ce6c0f63f..227214f24 100644 Binary files a/wiki/.assets/images/mapping/45_degree_cw_2.png and b/wiki/.assets/images/mapping/45_degree_cw_2.png differ diff --git a/wiki/.assets/images/mapping/45_degree_cw_3.png b/wiki/.assets/images/mapping/45_degree_cw_3.png index 53a584381..edfefccaa 100644 Binary files a/wiki/.assets/images/mapping/45_degree_cw_3.png and b/wiki/.assets/images/mapping/45_degree_cw_3.png differ diff --git a/wiki/.assets/images/mapping/45_degree_cw_4.png b/wiki/.assets/images/mapping/45_degree_cw_4.png index 61d8f0ec8..f469a45d7 100644 Binary files a/wiki/.assets/images/mapping/45_degree_cw_4.png and b/wiki/.assets/images/mapping/45_degree_cw_4.png differ diff --git a/wiki/.assets/images/mapping/angle_enforcement.png b/wiki/.assets/images/mapping/angle_enforcement.png index 2e451e35b..f493dc384 100644 Binary files a/wiki/.assets/images/mapping/angle_enforcement.png and b/wiki/.assets/images/mapping/angle_enforcement.png differ diff --git a/wiki/.assets/images/mapping/apex.png b/wiki/.assets/images/mapping/apex.png index 3c2af51f3..9ee3e0a6e 100644 Binary files a/wiki/.assets/images/mapping/apex.png and b/wiki/.assets/images/mapping/apex.png differ diff --git a/wiki/.assets/images/mapping/beatbombreset.png b/wiki/.assets/images/mapping/beatbombreset.png index fcfe68d6b..98acaaa6f 100644 Binary files a/wiki/.assets/images/mapping/beatbombreset.png and b/wiki/.assets/images/mapping/beatbombreset.png differ diff --git a/wiki/.assets/images/mapping/beatbombreset_top.png b/wiki/.assets/images/mapping/beatbombreset_top.png index 9c722ca17..9455ef2ec 100644 Binary files a/wiki/.assets/images/mapping/beatbombreset_top.png and b/wiki/.assets/images/mapping/beatbombreset_top.png differ diff --git a/wiki/.assets/images/mapping/bomb-spiral-path.png b/wiki/.assets/images/mapping/bomb-spiral-path.png index 119ba54f9..49a0d64d1 100644 Binary files a/wiki/.assets/images/mapping/bomb-spiral-path.png and b/wiki/.assets/images/mapping/bomb-spiral-path.png differ diff --git a/wiki/.assets/images/mapping/bombhold.png b/wiki/.assets/images/mapping/bombhold.png index 16234396e..dac9defa8 100644 Binary files a/wiki/.assets/images/mapping/bombhold.png and b/wiki/.assets/images/mapping/bombhold.png differ diff --git a/wiki/.assets/images/mapping/bottom-reset.png b/wiki/.assets/images/mapping/bottom-reset.png index c6686bc51..7de9ad88d 100644 Binary files a/wiki/.assets/images/mapping/bottom-reset.png and b/wiki/.assets/images/mapping/bottom-reset.png differ diff --git a/wiki/.assets/images/mapping/burst.png b/wiki/.assets/images/mapping/burst.png index a8169387d..ccc47f742 100644 Binary files a/wiki/.assets/images/mapping/burst.png and b/wiki/.assets/images/mapping/burst.png differ diff --git a/wiki/.assets/images/mapping/burst_top.png b/wiki/.assets/images/mapping/burst_top.png index fd6c72151..0dc3825e7 100644 Binary files a/wiki/.assets/images/mapping/burst_top.png and b/wiki/.assets/images/mapping/burst_top.png differ diff --git a/wiki/.assets/images/mapping/chain_cm.png b/wiki/.assets/images/mapping/chain_cm.png index 2dfe8e162..624cfec63 100644 Binary files a/wiki/.assets/images/mapping/chain_cm.png and b/wiki/.assets/images/mapping/chain_cm.png differ diff --git a/wiki/.assets/images/mapping/circle.png b/wiki/.assets/images/mapping/circle.png index 8aa59a50a..5928a14fb 100644 Binary files a/wiki/.assets/images/mapping/circle.png and b/wiki/.assets/images/mapping/circle.png differ diff --git a/wiki/.assets/images/mapping/cosmetic-bomb-bad.png b/wiki/.assets/images/mapping/cosmetic-bomb-bad.png index f38d4589d..5a2c0a1a2 100644 Binary files a/wiki/.assets/images/mapping/cosmetic-bomb-bad.png and b/wiki/.assets/images/mapping/cosmetic-bomb-bad.png differ diff --git a/wiki/.assets/images/mapping/crouch-signposting.png b/wiki/.assets/images/mapping/crouch-signposting.png index 7469994ae..12b815d10 100644 Binary files a/wiki/.assets/images/mapping/crouch-signposting.png and b/wiki/.assets/images/mapping/crouch-signposting.png differ diff --git a/wiki/.assets/images/mapping/flick-alt.png b/wiki/.assets/images/mapping/flick-alt.png index ebb001987..738b9e7ec 100644 Binary files a/wiki/.assets/images/mapping/flick-alt.png and b/wiki/.assets/images/mapping/flick-alt.png differ diff --git a/wiki/.assets/images/mapping/flick-alt_top.png b/wiki/.assets/images/mapping/flick-alt_top.png index f481e1cea..68411e97c 100644 Binary files a/wiki/.assets/images/mapping/flick-alt_top.png and b/wiki/.assets/images/mapping/flick-alt_top.png differ diff --git a/wiki/.assets/images/mapping/gallop.png b/wiki/.assets/images/mapping/gallop.png index 6f75b162b..2db0a42da 100644 Binary files a/wiki/.assets/images/mapping/gallop.png and b/wiki/.assets/images/mapping/gallop.png differ diff --git a/wiki/.assets/images/mapping/gallop_top.png b/wiki/.assets/images/mapping/gallop_top.png index 293cbccd5..b86531468 100644 Binary files a/wiki/.assets/images/mapping/gallop_top.png and b/wiki/.assets/images/mapping/gallop_top.png differ diff --git a/wiki/.assets/images/mapping/good-crouch.png b/wiki/.assets/images/mapping/good-crouch.png index ef7528514..f0cd670c0 100644 Binary files a/wiki/.assets/images/mapping/good-crouch.png and b/wiki/.assets/images/mapping/good-crouch.png differ diff --git a/wiki/.assets/images/mapping/halfonehand.png b/wiki/.assets/images/mapping/halfonehand.png index 99aef5e6c..b566b7e18 100644 Binary files a/wiki/.assets/images/mapping/halfonehand.png and b/wiki/.assets/images/mapping/halfonehand.png differ diff --git a/wiki/.assets/images/mapping/halfonehand_top.png b/wiki/.assets/images/mapping/halfonehand_top.png index 7f974af18..fef38787e 100644 Binary files a/wiki/.assets/images/mapping/halfonehand_top.png and b/wiki/.assets/images/mapping/halfonehand_top.png differ diff --git a/wiki/.assets/images/mapping/halfspeedstream.png b/wiki/.assets/images/mapping/halfspeedstream.png index 92564108c..bbb6a5a71 100644 Binary files a/wiki/.assets/images/mapping/halfspeedstream.png and b/wiki/.assets/images/mapping/halfspeedstream.png differ diff --git a/wiki/.assets/images/mapping/halfspeedstream_top.png b/wiki/.assets/images/mapping/halfspeedstream_top.png index 2884b82a6..9135f5802 100644 Binary files a/wiki/.assets/images/mapping/halfspeedstream_top.png and b/wiki/.assets/images/mapping/halfspeedstream_top.png differ diff --git a/wiki/.assets/images/mapping/hard-dodge-wall.png b/wiki/.assets/images/mapping/hard-dodge-wall.png index 43540b1a5..540fca2c1 100644 Binary files a/wiki/.assets/images/mapping/hard-dodge-wall.png and b/wiki/.assets/images/mapping/hard-dodge-wall.png differ diff --git a/wiki/.assets/images/mapping/intended_rhythm.png b/wiki/.assets/images/mapping/intended_rhythm.png index a0d91e818..a540bbc17 100644 Binary files a/wiki/.assets/images/mapping/intended_rhythm.png and b/wiki/.assets/images/mapping/intended_rhythm.png differ diff --git a/wiki/.assets/images/mapping/inverted-swing.png b/wiki/.assets/images/mapping/inverted-swing.png index 2e8c0140e..38192ac51 100644 Binary files a/wiki/.assets/images/mapping/inverted-swing.png and b/wiki/.assets/images/mapping/inverted-swing.png differ diff --git a/wiki/.assets/images/mapping/lean_backhand.png b/wiki/.assets/images/mapping/lean_backhand.png index af94b6514..5786a0a23 100644 Binary files a/wiki/.assets/images/mapping/lean_backhand.png and b/wiki/.assets/images/mapping/lean_backhand.png differ diff --git a/wiki/.assets/images/mapping/lean_forehand.png b/wiki/.assets/images/mapping/lean_forehand.png index 777ca53a5..9bc09ca51 100644 Binary files a/wiki/.assets/images/mapping/lean_forehand.png and b/wiki/.assets/images/mapping/lean_forehand.png differ diff --git a/wiki/.assets/images/mapping/left-lean.png b/wiki/.assets/images/mapping/left-lean.png index 82defaa01..ee6fd1d9b 100644 Binary files a/wiki/.assets/images/mapping/left-lean.png and b/wiki/.assets/images/mapping/left-lean.png differ diff --git a/wiki/.assets/images/mapping/left_backhand_ccw.png b/wiki/.assets/images/mapping/left_backhand_ccw.png index 071d30a49..67eefdf2b 100644 Binary files a/wiki/.assets/images/mapping/left_backhand_ccw.png and b/wiki/.assets/images/mapping/left_backhand_ccw.png differ diff --git a/wiki/.assets/images/mapping/left_backhand_cw.png b/wiki/.assets/images/mapping/left_backhand_cw.png index 61746c1db..bc981156e 100644 Binary files a/wiki/.assets/images/mapping/left_backhand_cw.png and b/wiki/.assets/images/mapping/left_backhand_cw.png differ diff --git a/wiki/.assets/images/mapping/left_forehand_ccw.png b/wiki/.assets/images/mapping/left_forehand_ccw.png index 8ca3b02e6..758b17b89 100644 Binary files a/wiki/.assets/images/mapping/left_forehand_ccw.png and b/wiki/.assets/images/mapping/left_forehand_ccw.png differ diff --git a/wiki/.assets/images/mapping/left_forehand_cw.png b/wiki/.assets/images/mapping/left_forehand_cw.png index 99aed0e74..a85569b31 100644 Binary files a/wiki/.assets/images/mapping/left_forehand_cw.png and b/wiki/.assets/images/mapping/left_forehand_cw.png differ diff --git a/wiki/.assets/images/mapping/momentum-circle.png b/wiki/.assets/images/mapping/momentum-circle.png index 9347caed1..cfd0c356e 100644 Binary files a/wiki/.assets/images/mapping/momentum-circle.png and b/wiki/.assets/images/mapping/momentum-circle.png differ diff --git a/wiki/.assets/images/mapping/momentum-lol.png b/wiki/.assets/images/mapping/momentum-lol.png index 2156609b7..7a0cd0857 100644 Binary files a/wiki/.assets/images/mapping/momentum-lol.png and b/wiki/.assets/images/mapping/momentum-lol.png differ diff --git a/wiki/.assets/images/mapping/momentum-meh.png b/wiki/.assets/images/mapping/momentum-meh.png index df0d1e33a..d9b383a8b 100644 Binary files a/wiki/.assets/images/mapping/momentum-meh.png and b/wiki/.assets/images/mapping/momentum-meh.png differ diff --git a/wiki/.assets/images/mapping/momentum-nice.png b/wiki/.assets/images/mapping/momentum-nice.png index 92f0c863e..a3bf626df 100644 Binary files a/wiki/.assets/images/mapping/momentum-nice.png and b/wiki/.assets/images/mapping/momentum-nice.png differ diff --git a/wiki/.assets/images/mapping/momentum-no.png b/wiki/.assets/images/mapping/momentum-no.png index e812e2594..8e786935a 100644 Binary files a/wiki/.assets/images/mapping/momentum-no.png and b/wiki/.assets/images/mapping/momentum-no.png differ diff --git a/wiki/.assets/images/mapping/momentum-yes.png b/wiki/.assets/images/mapping/momentum-yes.png index a0d05ef95..4fa82090a 100644 Binary files a/wiki/.assets/images/mapping/momentum-yes.png and b/wiki/.assets/images/mapping/momentum-yes.png differ diff --git a/wiki/.assets/images/mapping/negative-curvature-135.png b/wiki/.assets/images/mapping/negative-curvature-135.png index c306fe94d..8ee540113 100644 Binary files a/wiki/.assets/images/mapping/negative-curvature-135.png and b/wiki/.assets/images/mapping/negative-curvature-135.png differ diff --git a/wiki/.assets/images/mapping/negative-curvature-45.png b/wiki/.assets/images/mapping/negative-curvature-45.png index 3f159eb34..bb72815ff 100644 Binary files a/wiki/.assets/images/mapping/negative-curvature-45.png and b/wiki/.assets/images/mapping/negative-curvature-45.png differ diff --git a/wiki/.assets/images/mapping/negative-curvature-90-ok.png b/wiki/.assets/images/mapping/negative-curvature-90-ok.png index 57bdab02e..b3b7fd6b1 100644 Binary files a/wiki/.assets/images/mapping/negative-curvature-90-ok.png and b/wiki/.assets/images/mapping/negative-curvature-90-ok.png differ diff --git a/wiki/.assets/images/mapping/negative-curvature-90.png b/wiki/.assets/images/mapping/negative-curvature-90.png index 5abac4400..3943f3fcc 100644 Binary files a/wiki/.assets/images/mapping/negative-curvature-90.png and b/wiki/.assets/images/mapping/negative-curvature-90.png differ diff --git a/wiki/.assets/images/mapping/negative-curvature-spam.png b/wiki/.assets/images/mapping/negative-curvature-spam.png index 0bbf26b7f..f2e2ab93b 100644 Binary files a/wiki/.assets/images/mapping/negative-curvature-spam.png and b/wiki/.assets/images/mapping/negative-curvature-spam.png differ diff --git a/wiki/.assets/images/mapping/no-lean.png b/wiki/.assets/images/mapping/no-lean.png index 1f0b20a9d..52333410c 100644 Binary files a/wiki/.assets/images/mapping/no-lean.png and b/wiki/.assets/images/mapping/no-lean.png differ diff --git a/wiki/.assets/images/mapping/no_rotation.png b/wiki/.assets/images/mapping/no_rotation.png index 60c838e7f..e4c763f0c 100644 Binary files a/wiki/.assets/images/mapping/no_rotation.png and b/wiki/.assets/images/mapping/no_rotation.png differ diff --git a/wiki/.assets/images/mapping/non-inverted-swing.png b/wiki/.assets/images/mapping/non-inverted-swing.png index dbb416bc4..974ae7f0a 100644 Binary files a/wiki/.assets/images/mapping/non-inverted-swing.png and b/wiki/.assets/images/mapping/non-inverted-swing.png differ diff --git a/wiki/.assets/images/mapping/onehandjumps.png b/wiki/.assets/images/mapping/onehandjumps.png index d80ac2571..fa916f9a9 100644 Binary files a/wiki/.assets/images/mapping/onehandjumps.png and b/wiki/.assets/images/mapping/onehandjumps.png differ diff --git a/wiki/.assets/images/mapping/onehandjumps_top.png b/wiki/.assets/images/mapping/onehandjumps_top.png index 80ec65f83..8e32ca6bf 100644 Binary files a/wiki/.assets/images/mapping/onehandjumps_top.png and b/wiki/.assets/images/mapping/onehandjumps_top.png differ diff --git a/wiki/.assets/images/mapping/positive-curvature-spam.png b/wiki/.assets/images/mapping/positive-curvature-spam.png index b3a1cd7fa..0351d395a 100644 Binary files a/wiki/.assets/images/mapping/positive-curvature-spam.png and b/wiki/.assets/images/mapping/positive-curvature-spam.png differ diff --git a/wiki/.assets/images/mapping/right-lean.png b/wiki/.assets/images/mapping/right-lean.png index b4bae761a..49ac2ad54 100644 Binary files a/wiki/.assets/images/mapping/right-lean.png and b/wiki/.assets/images/mapping/right-lean.png differ diff --git a/wiki/.assets/images/mapping/right_backhand_ccw.png b/wiki/.assets/images/mapping/right_backhand_ccw.png index 1b6bac238..d27d05d94 100644 Binary files a/wiki/.assets/images/mapping/right_backhand_ccw.png and b/wiki/.assets/images/mapping/right_backhand_ccw.png differ diff --git a/wiki/.assets/images/mapping/right_backhand_cw.png b/wiki/.assets/images/mapping/right_backhand_cw.png index 910f687a3..1dc34629a 100644 Binary files a/wiki/.assets/images/mapping/right_backhand_cw.png and b/wiki/.assets/images/mapping/right_backhand_cw.png differ diff --git a/wiki/.assets/images/mapping/right_forehand_ccw.png b/wiki/.assets/images/mapping/right_forehand_ccw.png index 382b01d05..839c299b6 100644 Binary files a/wiki/.assets/images/mapping/right_forehand_ccw.png and b/wiki/.assets/images/mapping/right_forehand_ccw.png differ diff --git a/wiki/.assets/images/mapping/right_forehand_cw.png b/wiki/.assets/images/mapping/right_forehand_cw.png index dd024fbf4..cb1576cae 100644 Binary files a/wiki/.assets/images/mapping/right_forehand_cw.png and b/wiki/.assets/images/mapping/right_forehand_cw.png differ diff --git a/wiki/.assets/images/mapping/scoop.png b/wiki/.assets/images/mapping/scoop.png index 619dc7abe..3761a51df 100644 Binary files a/wiki/.assets/images/mapping/scoop.png and b/wiki/.assets/images/mapping/scoop.png differ diff --git a/wiki/.assets/images/mapping/simple-lean-wall.png b/wiki/.assets/images/mapping/simple-lean-wall.png index df38e9b5d..e34db87f5 100644 Binary files a/wiki/.assets/images/mapping/simple-lean-wall.png and b/wiki/.assets/images/mapping/simple-lean-wall.png differ diff --git a/wiki/.assets/images/mapping/simple-sway-wall.png b/wiki/.assets/images/mapping/simple-sway-wall.png index f6a1346de..3221ae9fb 100644 Binary files a/wiki/.assets/images/mapping/simple-sway-wall.png and b/wiki/.assets/images/mapping/simple-sway-wall.png differ diff --git a/wiki/.assets/images/mapping/single.png b/wiki/.assets/images/mapping/single.png index 0934754e9..bc5471c73 100644 Binary files a/wiki/.assets/images/mapping/single.png and b/wiki/.assets/images/mapping/single.png differ diff --git a/wiki/.assets/images/mapping/sliders.png b/wiki/.assets/images/mapping/sliders.png index c20c31fc1..a99dd9bb7 100644 Binary files a/wiki/.assets/images/mapping/sliders.png and b/wiki/.assets/images/mapping/sliders.png differ diff --git a/wiki/.assets/images/mapping/stack.png b/wiki/.assets/images/mapping/stack.png index ee0bd2167..fe012442d 100644 Binary files a/wiki/.assets/images/mapping/stack.png and b/wiki/.assets/images/mapping/stack.png differ diff --git a/wiki/.assets/images/mapping/stream.png b/wiki/.assets/images/mapping/stream.png index a1f6a8ec2..61df0f6a6 100644 Binary files a/wiki/.assets/images/mapping/stream.png and b/wiki/.assets/images/mapping/stream.png differ diff --git a/wiki/.assets/images/mapping/stream_top.png b/wiki/.assets/images/mapping/stream_top.png index 93a8a7766..c374ce6f6 100644 Binary files a/wiki/.assets/images/mapping/stream_top.png and b/wiki/.assets/images/mapping/stream_top.png differ diff --git a/wiki/.assets/images/mapping/sway-lean-wall.png b/wiki/.assets/images/mapping/sway-lean-wall.png index 9f735683f..9852b4445 100644 Binary files a/wiki/.assets/images/mapping/sway-lean-wall.png and b/wiki/.assets/images/mapping/sway-lean-wall.png differ diff --git a/wiki/.assets/images/mapping/sway.png b/wiki/.assets/images/mapping/sway.png index 983b498d5..99d871330 100644 Binary files a/wiki/.assets/images/mapping/sway.png and b/wiki/.assets/images/mapping/sway.png differ diff --git a/wiki/.assets/images/mapping/tangle_problem.png b/wiki/.assets/images/mapping/tangle_problem.png index d263dbaeb..ff5b148ea 100644 Binary files a/wiki/.assets/images/mapping/tangle_problem.png and b/wiki/.assets/images/mapping/tangle_problem.png differ diff --git a/wiki/.assets/images/mapping/tangle_resolve.png b/wiki/.assets/images/mapping/tangle_resolve.png index f89a01ecb..d75f37a42 100644 Binary files a/wiki/.assets/images/mapping/tangle_resolve.png and b/wiki/.assets/images/mapping/tangle_resolve.png differ diff --git a/wiki/.assets/images/mapping/top-reset.png b/wiki/.assets/images/mapping/top-reset.png index 7d836da8b..5ec106a50 100644 Binary files a/wiki/.assets/images/mapping/top-reset.png and b/wiki/.assets/images/mapping/top-reset.png differ diff --git a/wiki/.assets/images/mapping/tower.png b/wiki/.assets/images/mapping/tower.png index 9c9f88a47..4ed222e9b 100644 Binary files a/wiki/.assets/images/mapping/tower.png and b/wiki/.assets/images/mapping/tower.png differ diff --git a/wiki/.assets/images/mapping/tripletjumps.png b/wiki/.assets/images/mapping/tripletjumps.png index a581c793d..5bc7fb3f2 100644 Binary files a/wiki/.assets/images/mapping/tripletjumps.png and b/wiki/.assets/images/mapping/tripletjumps.png differ diff --git a/wiki/.assets/images/mapping/tripletjumps_top.png b/wiki/.assets/images/mapping/tripletjumps_top.png index 237d6140a..6196e04d8 100644 Binary files a/wiki/.assets/images/mapping/tripletjumps_top.png and b/wiki/.assets/images/mapping/tripletjumps_top.png differ diff --git a/wiki/.assets/images/mapping/window.png b/wiki/.assets/images/mapping/window.png index 2dd4999ca..eaef10098 100644 Binary files a/wiki/.assets/images/mapping/window.png and b/wiki/.assets/images/mapping/window.png differ diff --git a/wiki/.assets/images/modding/pc-mod-bsml-buttons.jpg b/wiki/.assets/images/modding/pc-mod-bsml-buttons.jpg new file mode 100644 index 000000000..e52d6bb32 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-bsml-buttons.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-bsml-embeddedresource.jpg b/wiki/.assets/images/modding/pc-mod-bsml-embeddedresource.jpg new file mode 100644 index 000000000..63a7250f4 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-bsml-embeddedresource.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-bsml-file.jpg b/wiki/.assets/images/modding/pc-mod-bsml-file.jpg new file mode 100644 index 000000000..2e1e97a2e Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-bsml-file.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-bsml-floating-screen.jpg b/wiki/.assets/images/modding/pc-mod-bsml-floating-screen.jpg new file mode 100644 index 000000000..0336b3c7b Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-bsml-floating-screen.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-bsml-settings.jpg b/wiki/.assets/images/modding/pc-mod-bsml-settings.jpg new file mode 100644 index 000000000..7d23bbc5f Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-bsml-settings.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-bsml-tabs.jpg b/wiki/.assets/images/modding/pc-mod-bsml-tabs.jpg new file mode 100644 index 000000000..9a32afc74 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-bsml-tabs.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-build-rider.png b/wiki/.assets/images/modding/pc-mod-build-rider.png new file mode 100644 index 000000000..7d3aa7646 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-build-rider.png differ diff --git a/wiki/.assets/images/modding/pc-mod-console-testing.png b/wiki/.assets/images/modding/pc-mod-console-testing.png new file mode 100644 index 000000000..71a0b61fb Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-console-testing.png differ diff --git a/wiki/.assets/images/modding/pc-mod-directory-rider.png b/wiki/.assets/images/modding/pc-mod-directory-rider.png new file mode 100644 index 000000000..dc0937062 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-directory-rider.png differ diff --git a/wiki/.assets/images/modding/pc-mod-ilspy-analyze.jpg b/wiki/.assets/images/modding/pc-mod-ilspy-analyze.jpg new file mode 100644 index 000000000..21245c26a Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-ilspy-analyze.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-ilspy-code.jpg b/wiki/.assets/images/modding/pc-mod-ilspy-code.jpg new file mode 100644 index 000000000..ee5b4a645 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-ilspy-code.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-ilspy-list.jpg b/wiki/.assets/images/modding/pc-mod-ilspy-list.jpg new file mode 100644 index 000000000..9d375f879 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-ilspy-list.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-ilspy-search.jpg b/wiki/.assets/images/modding/pc-mod-ilspy-search.jpg new file mode 100644 index 000000000..5277d4efc Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-ilspy-search.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-references-rider.png b/wiki/.assets/images/modding/pc-mod-references-rider.png new file mode 100644 index 000000000..2da997758 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-references-rider.png differ diff --git a/wiki/.assets/images/modding/pc-mod-rider-decompiling.jpg b/wiki/.assets/images/modding/pc-mod-rider-decompiling.jpg new file mode 100644 index 000000000..0829fa2c6 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-rider-decompiling.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-rider-plugin.png b/wiki/.assets/images/modding/pc-mod-rider-plugin.png new file mode 100644 index 000000000..b67f28462 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-rider-plugin.png differ diff --git a/wiki/.assets/images/modding/pc-mod-rue1.jpg b/wiki/.assets/images/modding/pc-mod-rue1.jpg new file mode 100644 index 000000000..a82ca7496 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-rue1.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-rue2.jpg b/wiki/.assets/images/modding/pc-mod-rue2.jpg new file mode 100644 index 000000000..6d63b04f0 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-rue2.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-template-rider.png b/wiki/.assets/images/modding/pc-mod-template-rider.png new file mode 100644 index 000000000..06fc1d70e Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-template-rider.png differ diff --git a/wiki/.assets/images/modding/pc-mod-tutorial-event-analyze.jpg b/wiki/.assets/images/modding/pc-mod-tutorial-event-analyze.jpg new file mode 100644 index 000000000..c8e048ea8 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-tutorial-event-analyze.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-tutorial-menu.jpg b/wiki/.assets/images/modding/pc-mod-tutorial-menu.jpg new file mode 100644 index 000000000..87f198779 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-tutorial-menu.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-tutorial-pool-analyze.jpg b/wiki/.assets/images/modding/pc-mod-tutorial-pool-analyze.jpg new file mode 100644 index 000000000..94dc2a375 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-tutorial-pool-analyze.jpg differ diff --git a/wiki/.assets/images/modding/pc-mod-tutorial-test.jpg b/wiki/.assets/images/modding/pc-mod-tutorial-test.jpg new file mode 100644 index 000000000..9aa62d1a5 Binary files /dev/null and b/wiki/.assets/images/modding/pc-mod-tutorial-test.jpg differ diff --git a/wiki/.assets/images/modding/testing-console.png b/wiki/.assets/images/modding/testing-console.png deleted file mode 100644 index 708c54e1a..000000000 Binary files a/wiki/.assets/images/modding/testing-console.png and /dev/null differ diff --git a/wiki/.assets/images/models/materials/AudioClipDrag.png b/wiki/.assets/images/models/materials/AudioClipDrag.png index 23c160e99..3e49dd0b0 100644 Binary files a/wiki/.assets/images/models/materials/AudioClipDrag.png and b/wiki/.assets/images/models/materials/AudioClipDrag.png differ diff --git a/wiki/.assets/images/models/materials/AudioLinkAvatarDrag.png b/wiki/.assets/images/models/materials/AudioLinkAvatarDrag.png index d957f38c1..1dbd66c8f 100644 Binary files a/wiki/.assets/images/models/materials/AudioLinkAvatarDrag.png and b/wiki/.assets/images/models/materials/AudioLinkAvatarDrag.png differ diff --git a/wiki/.assets/images/models/materials/CurveExample.png b/wiki/.assets/images/models/materials/CurveExample.png index 1fc3378fa..b31e8813f 100644 Binary files a/wiki/.assets/images/models/materials/CurveExample.png and b/wiki/.assets/images/models/materials/CurveExample.png differ diff --git a/wiki/.assets/images/models/materials/FireTrailShaderProperties.png b/wiki/.assets/images/models/materials/FireTrailShaderProperties.png index f2e492724..44903fea1 100644 Binary files a/wiki/.assets/images/models/materials/FireTrailShaderProperties.png and b/wiki/.assets/images/models/materials/FireTrailShaderProperties.png differ diff --git a/wiki/.assets/images/models/materials/GlassRefractionParameters.png b/wiki/.assets/images/models/materials/GlassRefractionParameters.png index 8f9915cc0..bf4d0b4e8 100644 Binary files a/wiki/.assets/images/models/materials/GlassRefractionParameters.png and b/wiki/.assets/images/models/materials/GlassRefractionParameters.png differ diff --git a/wiki/.assets/images/models/materials/HeightMapExample.png b/wiki/.assets/images/models/materials/HeightMapExample.png index 12203eb43..549e9e1b1 100644 Binary files a/wiki/.assets/images/models/materials/HeightMapExample.png and b/wiki/.assets/images/models/materials/HeightMapExample.png differ diff --git a/wiki/.assets/images/models/materials/HeightMapExampleHard.png b/wiki/.assets/images/models/materials/HeightMapExampleHard.png index 79b1b5adb..62acddd07 100644 Binary files a/wiki/.assets/images/models/materials/HeightMapExampleHard.png and b/wiki/.assets/images/models/materials/HeightMapExampleHard.png differ diff --git a/wiki/.assets/images/models/materials/MelodiUnlitExample.png b/wiki/.assets/images/models/materials/MelodiUnlitExample.png index 56afb1e55..eca3d7e85 100644 Binary files a/wiki/.assets/images/models/materials/MelodiUnlitExample.png and b/wiki/.assets/images/models/materials/MelodiUnlitExample.png differ diff --git a/wiki/.assets/images/models/materials/RenderQueueExample.png b/wiki/.assets/images/models/materials/RenderQueueExample.png index 32f2c1b15..bece9188f 100644 Binary files a/wiki/.assets/images/models/materials/RenderQueueExample.png and b/wiki/.assets/images/models/materials/RenderQueueExample.png differ diff --git a/wiki/.assets/images/models/materials/RenderTypesExample.png b/wiki/.assets/images/models/materials/RenderTypesExample.png index abd8ec56a..73eb0e933 100644 Binary files a/wiki/.assets/images/models/materials/RenderTypesExample.png and b/wiki/.assets/images/models/materials/RenderTypesExample.png differ diff --git a/wiki/.assets/images/models/materials/UberShaderProperties.png b/wiki/.assets/images/models/materials/UberShaderProperties.png index 4e9e7f436..6bc6e6c5a 100644 Binary files a/wiki/.assets/images/models/materials/UberShaderProperties.png and b/wiki/.assets/images/models/materials/UberShaderProperties.png differ diff --git a/wiki/.assets/images/models/materials/UnlitGlowProperties.png b/wiki/.assets/images/models/materials/UnlitGlowProperties.png index 4543b906c..c801c20b2 100644 Binary files a/wiki/.assets/images/models/materials/UnlitGlowProperties.png and b/wiki/.assets/images/models/materials/UnlitGlowProperties.png differ diff --git a/wiki/.assets/images/models/materials/YoutubeLinkExample.png b/wiki/.assets/images/models/materials/YoutubeLinkExample.png index 56be26504..a4213592d 100644 Binary files a/wiki/.assets/images/models/materials/YoutubeLinkExample.png and b/wiki/.assets/images/models/materials/YoutubeLinkExample.png differ diff --git a/wiki/.assets/images/models/platforms/AddEventManagerScript.png b/wiki/.assets/images/models/platforms/AddEventManagerScript.png index e17d6b348..1161cb296 100644 Binary files a/wiki/.assets/images/models/platforms/AddEventManagerScript.png and b/wiki/.assets/images/models/platforms/AddEventManagerScript.png differ diff --git a/wiki/.assets/images/models/platforms/AddGlowModelEvents.png b/wiki/.assets/images/models/platforms/AddGlowModelEvents.png index 8364432f8..5c6660cab 100644 Binary files a/wiki/.assets/images/models/platforms/AddGlowModelEvents.png and b/wiki/.assets/images/models/platforms/AddGlowModelEvents.png differ diff --git a/wiki/.assets/images/models/platforms/AddTextureNode.png b/wiki/.assets/images/models/platforms/AddTextureNode.png index 33e52d821..1da9615a5 100644 Binary files a/wiki/.assets/images/models/platforms/AddTextureNode.png and b/wiki/.assets/images/models/platforms/AddTextureNode.png differ diff --git a/wiki/.assets/images/models/platforms/AssignGlowModelsToEvents.png b/wiki/.assets/images/models/platforms/AssignGlowModelsToEvents.png index dbab19557..6f8c50910 100644 Binary files a/wiki/.assets/images/models/platforms/AssignGlowModelsToEvents.png and b/wiki/.assets/images/models/platforms/AssignGlowModelsToEvents.png differ diff --git a/wiki/.assets/images/models/platforms/AvailableEventScripts.png b/wiki/.assets/images/models/platforms/AvailableEventScripts.png index 7f5e52704..d4b1ea487 100644 Binary files a/wiki/.assets/images/models/platforms/AvailableEventScripts.png and b/wiki/.assets/images/models/platforms/AvailableEventScripts.png differ diff --git a/wiki/.assets/images/models/platforms/BakedLightingSettings.jpg b/wiki/.assets/images/models/platforms/BakedLightingSettings.jpg index 22a602409..a744627d5 100644 Binary files a/wiki/.assets/images/models/platforms/BakedLightingSettings.jpg and b/wiki/.assets/images/models/platforms/BakedLightingSettings.jpg differ diff --git a/wiki/.assets/images/models/platforms/DeleteDuplicateCubes.png b/wiki/.assets/images/models/platforms/DeleteDuplicateCubes.png index 0c337e165..aeb2cfcfc 100644 Binary files a/wiki/.assets/images/models/platforms/DeleteDuplicateCubes.png and b/wiki/.assets/images/models/platforms/DeleteDuplicateCubes.png differ diff --git a/wiki/.assets/images/models/platforms/DragDropPrefab.png b/wiki/.assets/images/models/platforms/DragDropPrefab.png index c1b913a97..68e82bf9c 100644 Binary files a/wiki/.assets/images/models/platforms/DragDropPrefab.png and b/wiki/.assets/images/models/platforms/DragDropPrefab.png differ diff --git a/wiki/.assets/images/models/platforms/DragDropPrefabResult.png b/wiki/.assets/images/models/platforms/DragDropPrefabResult.png index 01fd22749..3ef71dfcb 100644 Binary files a/wiki/.assets/images/models/platforms/DragDropPrefabResult.png and b/wiki/.assets/images/models/platforms/DragDropPrefabResult.png differ diff --git a/wiki/.assets/images/models/platforms/DuplicateExistingPrefab.png b/wiki/.assets/images/models/platforms/DuplicateExistingPrefab.png index 74ba8bcea..7203bd25f 100644 Binary files a/wiki/.assets/images/models/platforms/DuplicateExistingPrefab.png and b/wiki/.assets/images/models/platforms/DuplicateExistingPrefab.png differ diff --git a/wiki/.assets/images/models/platforms/DuplicateGlowObject.png b/wiki/.assets/images/models/platforms/DuplicateGlowObject.png index 3bd86df80..eb318b5ac 100644 Binary files a/wiki/.assets/images/models/platforms/DuplicateGlowObject.png and b/wiki/.assets/images/models/platforms/DuplicateGlowObject.png differ diff --git a/wiki/.assets/images/models/platforms/DuplicatedGlowModelsResult.png b/wiki/.assets/images/models/platforms/DuplicatedGlowModelsResult.png index 05259a5ba..30ce392c7 100644 Binary files a/wiki/.assets/images/models/platforms/DuplicatedGlowModelsResult.png and b/wiki/.assets/images/models/platforms/DuplicatedGlowModelsResult.png differ diff --git a/wiki/.assets/images/models/platforms/GlowEvents.png b/wiki/.assets/images/models/platforms/GlowEvents.png index c0eb60f7a..fa0a83f63 100644 Binary files a/wiki/.assets/images/models/platforms/GlowEvents.png and b/wiki/.assets/images/models/platforms/GlowEvents.png differ diff --git a/wiki/.assets/images/models/platforms/GlowModels.png b/wiki/.assets/images/models/platforms/GlowModels.png index 2dc1ba294..44057343b 100644 Binary files a/wiki/.assets/images/models/platforms/GlowModels.png and b/wiki/.assets/images/models/platforms/GlowModels.png differ diff --git a/wiki/.assets/images/models/platforms/SelectObjectToBakeLighting.jpg b/wiki/.assets/images/models/platforms/SelectObjectToBakeLighting.jpg index 4d4834ba1..12b0b5e6e 100644 Binary files a/wiki/.assets/images/models/platforms/SelectObjectToBakeLighting.jpg and b/wiki/.assets/images/models/platforms/SelectObjectToBakeLighting.jpg differ diff --git a/wiki/.assets/images/models/platforms/SetActiveObject.png b/wiki/.assets/images/models/platforms/SetActiveObject.png index 776699f33..359f6f566 100644 Binary files a/wiki/.assets/images/models/platforms/SetActiveObject.png and b/wiki/.assets/images/models/platforms/SetActiveObject.png differ diff --git a/wiki/.assets/images/models/platforms/ShaderPerformanceExample.jpg b/wiki/.assets/images/models/platforms/ShaderPerformanceExample.jpg index 940f90780..a753fd877 100644 Binary files a/wiki/.assets/images/models/platforms/ShaderPerformanceExample.jpg and b/wiki/.assets/images/models/platforms/ShaderPerformanceExample.jpg differ diff --git a/wiki/.assets/images/models/platforms/TrackLanePrefabDrag.png b/wiki/.assets/images/models/platforms/TrackLanePrefabDrag.png index 79222b883..c94012ad2 100644 Binary files a/wiki/.assets/images/models/platforms/TrackLanePrefabDrag.png and b/wiki/.assets/images/models/platforms/TrackLanePrefabDrag.png differ diff --git a/wiki/.assets/images/models/platforms/TrackRingOrigin.png b/wiki/.assets/images/models/platforms/TrackRingOrigin.png index e9c420f6c..4cb6becd0 100644 Binary files a/wiki/.assets/images/models/platforms/TrackRingOrigin.png and b/wiki/.assets/images/models/platforms/TrackRingOrigin.png differ diff --git a/wiki/.assets/images/models/platforms/TrackRingOutOfView.png b/wiki/.assets/images/models/platforms/TrackRingOutOfView.png index 9cb8bb215..c356567ec 100644 Binary files a/wiki/.assets/images/models/platforms/TrackRingOutOfView.png and b/wiki/.assets/images/models/platforms/TrackRingOutOfView.png differ diff --git a/wiki/.assets/images/models/platforms/TrackRings.png b/wiki/.assets/images/models/platforms/TrackRings.png index 9be11e1f8..07d31a409 100644 Binary files a/wiki/.assets/images/models/platforms/TrackRings.png and b/wiki/.assets/images/models/platforms/TrackRings.png differ diff --git a/wiki/.assets/images/models/platforms/TrackRingsComponent.png b/wiki/.assets/images/models/platforms/TrackRingsComponent.png index 20547a231..957212b6b 100644 Binary files a/wiki/.assets/images/models/platforms/TrackRingsComponent.png and b/wiki/.assets/images/models/platforms/TrackRingsComponent.png differ diff --git a/wiki/.assets/images/models/platforms/cmbHumanoidPlacement.png b/wiki/.assets/images/models/platforms/cmbHumanoidPlacement.png index 401238a4d..935fbbb13 100644 Binary files a/wiki/.assets/images/models/platforms/cmbHumanoidPlacement.png and b/wiki/.assets/images/models/platforms/cmbHumanoidPlacement.png differ diff --git a/wiki/.assets/images/models/platforms/prefabTogameObject.png b/wiki/.assets/images/models/platforms/prefabTogameObject.png index 6291df8c4..b249c07ac 100644 Binary files a/wiki/.assets/images/models/platforms/prefabTogameObject.png and b/wiki/.assets/images/models/platforms/prefabTogameObject.png differ diff --git a/wiki/.assets/images/support/BlankMenuEnvironment.png b/wiki/.assets/images/support/BlankMenuEnvironment.png index 1428376d5..8913a7b4e 100644 Binary files a/wiki/.assets/images/support/BlankMenuEnvironment.png and b/wiki/.assets/images/support/BlankMenuEnvironment.png differ diff --git a/wiki/.assets/images/support/GrayMenuEnvironment.png b/wiki/.assets/images/support/GrayMenuEnvironment.png index f3b5eba13..baed2cd72 100644 Binary files a/wiki/.assets/images/support/GrayMenuEnvironment.png and b/wiki/.assets/images/support/GrayMenuEnvironment.png differ diff --git a/wiki/.assets/images/support/UnityCrashPopup.png b/wiki/.assets/images/support/UnityCrashPopup.png index 14bb5b57b..e82e18443 100644 Binary files a/wiki/.assets/images/support/UnityCrashPopup.png and b/wiki/.assets/images/support/UnityCrashPopup.png differ diff --git a/wiki/.vitepress/config/en.ts b/wiki/.vitepress/config/en.ts index e14c30661..a67e65ce1 100644 --- a/wiki/.vitepress/config/en.ts +++ b/wiki/.vitepress/config/en.ts @@ -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'], ], ], ], diff --git a/wiki/modding/index.md b/wiki/modding/index.md index 329a63442..40e071357 100644 --- a/wiki/modding/index.md +++ b/wiki/modding/index.md @@ -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. - - - -| Argument               | Description | -| -------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `--verbose` | Enables the output log window for IPA. This will show the debug console that mods use. | -| `fpfc` | "First Person Flying Controller"

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. | - - - -### 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 @@ -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! diff --git a/wiki/modding/pc-mod-dev-intro.md b/wiki/modding/pc-mod-dev-intro.md deleted file mode 100644 index ce7c51668..000000000 --- a/wiki/modding/pc-mod-dev-intro.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -prev: false -next: false -description: Learn how to create your own PC mods! ---- - -# PC Mod Development Intro - -_Learn how to get started writing your own PC Mods._ - -## Getting Started - -::: warning -This guide is for making mods for the **PC** version of Beat Saber! - -If you want to develop mods for the **Quest Standalone** version of the game, visit the [Quest Mod Development Guide](./quest-mod-dev-intro.md) - -Make sure your game is modded before trying to make a mod. -See instructions for [modding Beat Saber on PC.](/pc-modding.md) - -This guide assumes you have a basic to intermediate understanding of C# and Unity. -You may have difficulty understanding what is covered here if you do not have this foundation. -::: - -Beat Saber is made in Unity 2019.3 using C# with .NET framework 4.6 -You will need to download the latest version of [Visual Studio Community](https://visualstudio.microsoft.com/). - -## Setup Modding Tools - -We will be using the BeatSaberModdingTools extension in this tutorial, -as it comes with modding templates and useful features. -BeatSaberModdingTools is maintained by Zingabopp. -If you find the tools to be useful, consider throwing some support their way. - -You can download it on their [GitHub](https://github.com/Zingabopp/BeatSaberTemplates/releases/latest). -You will need to download `BeatSaberModdingTools.vsix`. (Expand the Assets dropdown if you cannot find it) - -Once downloaded, open the `.vsix` and it will install itself as a Visual Studio Plugin. -If you have any issues, consult the project's [README](https://github.com/Zingabopp/BeatSaberModdingTools#readme) and [WIKI](https://github.com/Zingabopp/BeatSaberModdingTools/wiki). - -## Template setup - -First, create a new project using the template. -We are going to use the `BSIPA4 Plugin (Core)` template, and we'll be calling our mod `BSPlugin1`. -You should change the name to whatever you want to call your mod. - -![Modding Template Select](/.assets/images/modding/modding-template-select.png 'Modding Template Select') -![Modding Template Name](/.assets/images/modding/modding-template-name.png 'Modding Template Name') - -You will then need to set your Beat Saber Directory in Visual Studio. -Follow the instructions [on the template readme](https://github.com/Zingabopp/BeatSaberModdingTools#how-to-use), -or see the screenshot below. - -![Setup Beat Saber Directory](/.assets/images/modding/setup-bs-directory.png 'Setup Beat Saber Directory') - -At this point, **try and build the project**, and it should automatically find the -references for you and the build should succeed. - -If your build does not succeed, check that you don't have any missing references. - -::: tip -BeatSaberModdingTools will automatically handle references. If your references could not be found, [double-check the instructions](https://github.com/Zingabopp/BeatSaberModdingTools#how-to-use). - -If you need to manually add references, right click on `References` in the Project folder, then `Beat Saber Reference Manager...`. -Select your references, then click "Apply". - -You can find more information about the reference manager [here](https://github.com/Zingabopp/BeatSaberModdingTools/wiki/Adding-References). -::: - -## Inspecting the Code - -You should have 5 files open automatically with the template. - -| Filename | About | -| ------------------------ | ------------------------------------------------------------------------------ | -| `manifest.json` | Information about your mod for BSIPA. | -| `Plugin.cs` | The main file that is loaded for your mod. | -| `AssemblyInfo.cs` | File information about your mod. This is mostly managed by Modding Tools. | -| `PluginConfig.cs` | A template for enabling config for your mod. This is commented out by default. | -| `BSPlugin1Controller.cs` | A generic MonoBehaviour for your mod. | - -### Edit your mod's Manifest - -Fill out the `manifest.json` file with your information. -The `name` and `id` keys are used to identify your mod. -The ID should match the ID used when uploading your mod to BeatMods. - -::: warning -Do **not** remove the dependency on BSIPA. As of BSIPA v4.1 this is required for your mod to load. -::: - -## Compiling - -Build your plugin with `Build -> Build Solution` or CTRL + SHIFT + B -Your compiled DLL should automatically be copied to the `Plugins` folder in your Beat Saber directory! -This will be done for both debug and release builds. - -::: tip NOTE -When you are ready to release your mod, select the `Release` option to make a Release build of your mod. - -Building in Release mode will generate a packaged `.zip` file ready to upload to BeatMods. -::: - -## Testing your mod in-game - -To test if your mod is loaded in-game, you will need to launch Beat Saber with the BSIPA Console enabled. -Add `--verbose` as a launch argument and run the game. -For more information on launch arguments, see [here](./#launch-args). - -When you launch the game, you should see BSIPA load your mod in the console window. - -![Testing console screenshot](/.assets/images/modding/testing-console.png 'Testing console screenshot') - -## Next Steps - -Here are some useful resources in continuing your modding career. - -- If you need help with developing mods, you can ask in `#pc-mod-dev` on the [BSMG Discord](https://discord.gg/beatsabermods). -- If you want to decompile code, check out [dnSpy](https://github.com/dnSpy/dnSpy/releases) -- See the BSIPA Documentation for more information about the [configuration system](https://bsmg.github.io/BeatSaber-IPA-Reloaded/tags/4.1.3/articles/start-dev.html#configuring-your-plugin). -- If you need to patch the game's code for your mod, you should use [Harmony](https://github.com/pardeike/Harmony#readme). - The `0Harmony.dll` is already installed for modded games. -- For experienced developers, you may be interested in learning about Zenject, the Dependency Injection system used heavily - by Beat Saber. [SiraUtil](https://github.com/Auros/SiraUtil#readme) is a library that allows you to easily hook - into this system. diff --git a/wiki/modding/pc/bsml.md b/wiki/modding/pc/bsml.md new file mode 100644 index 000000000..e2c5ffde6 --- /dev/null +++ b/wiki/modding/pc/bsml.md @@ -0,0 +1,362 @@ +--- +prev: Harmony Patching +next: Zenject and SiraUtil +--- + +# Creating Beat Saber UI + +[BeatSaberMarkupLanguage (BSML)](https://github.com/monkeymanboy/BeatSaberMarkupLanguage) is the most common way to +create customized UI in Beat Saber. BSML is effectively a tag-based language that mimics the GameObject hierarchy +of Unity. It parses tags into GameObjects, and attaches the relevant Unity and Beat Saber UI elements to them. + +The documentation for all BSML components can be found [here](https://monkeymanboy.github.io/BSML-Docs/). + +## Getting Set Up + +Of course, if you want to add BSML in your mod, make sure that you have it installed in your game, and your project +is referencing BSML. + +### Creating the BSML file + +You can name the file anything you want, just make sure that its file extension is `.bsml`. + +![BSML File Screenshot](/.assets/images/modding/pc-mod-bsml-file.jpg 'BSML File Screenshot') + +BSML will require that the bsml file be embedded in the assembly. You can do this by right-clicking the file in the +explorer, going to properties, and then changing the build action to `EmbeddedResource`. + +![Embedded Resource Property Screenshot](/.assets/images/modding/pc-mod-bsml-embeddedresource.jpg 'Embedded Resource Property Screenshot') + +### Writing in BSML + +If you're using Rider, you may have to add a file association for `.bsml` files to get basic syntax highlighting. To +do this, go to `File | Settings | Editor | File Types` and search for `XML`. Add a new file name pattern as `*.bsml`. +This will make Rider accept `.bsml` files as XML files and do highlighting accordingly. + +To get autocompletion in a BSML file, you will need to provide a schema. A way to do this is to use the +[background tag](https://monkeymanboy.github.io/BSML-Docs/Tags/BackgroundTag/) and add the schema to it: + +```xml + + + +``` + +Rider may prompt you that the resource is not found. Simply right click on the URL, or press `Alt+Enter`, and select +fetch external resource. + +Once set up, you should have basic autocompletion for tags if you start typing inside the `` tag. + +## Running Code In The Menu + +There are a couple different ways you can display your BSML in game, however, it is first important to note that +you should not call any of the methods mentioned below outside of the main menu. You should make sure the game has finished +loading the main menu before doing anything. + +- The recommended method, if you don't already use SiraUtil, is BSML's own `MainMenuAwaiter` class that has an + [event](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/events/) called `MainMenuInitializing` + that is invoked when the main menu loads +- If you are using SiraUtil, it is recommended to bind a type with a `Location.Menu`, or on the `MainSettingsMenuViewControllersInstaller` +- BS Utils also provides events in `BSEvents` and they are called `earlyMenuSceneLoadedFresh` and `lateMenuSceneLoadedFresh` +- You can use the game's `GameScenesManager` and the `transitionDidFinishEvent`, then check if the output `ScenesTransitionSetupDataSO` + is a `MenuScenesTransitionSetupDataSO` using a + [type test expression](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/type-testing-and-cast) +- If you want to get an event when the main menu loads yourself, you can use Unity's + [SceneManager](https://docs.unity3d.com/6000.0/Documentation/ScriptReference/SceneManagement.SceneManager.html) + and check the name of the loaded scene manually, however this is a lot more effort than all of the other methods +- You could also use a Harmony patch into a method that will run every time the menu reinitializes, but this is also unnecessarily + complicated + +## Adding Menus + +Once you have code running in the main menu, it's time to decide where you want to display your UI. + +### Mod Settings + +The mod settings menu is added by BSML and can be accessed from a custom button in the main menu settings. To register +your own tab, check the `BSMLSettings` class. `TutorialMenu` is just a normal class. + +```c# +private readonly TutorialMenu tutorialMenu = new TutorialMenu(); + +public void AddSettingsMenu() +{ + BSMLSettings.Instance.AddSettingsMenu( + name: "Tutorial Mod", + resource: "TutorialMod.tutorial.bsml", + host: tutorialMenu); +} +``` + +![Mod Settings Screenshot](/.assets/images/modding/pc-mod-bsml-settings.jpg 'Mod Settings Screenshot') + +### Gameplay Setup + +The mods tab is added by BSML in the Gameplay Setup menu, which is found to the left of the song list, where +you can normally find player settings and gameplay modifiers. To register a new tab, check the `GameplaySetup` class. +`TutorialMenu` is just a normal class. + +```c# +private readonly TutorialMenu tutorialMenu = new TutorialMenu(); + +public void AddTab() +{ + GameplaySetup.Instance.AddTab( + name: "Tutorial Mod", + resource: "TutorialMod.tutorial.bsml", + host: tutorialMenu); +} +``` + +![Mod Tabs Screenshot](/.assets/images/modding/pc-mod-bsml-tabs.jpg 'Mod Tabs Screenshot') + +### Custom Flow Coordinator + +BSML gives you a way to create a button in the left screen of the main menu. This button can do anything you want it +to do, but most modders make it present their mod's UI. This is done by using a `FlowCoordinator`, and by adding one +or more `ViewController` objects to it. + +BSML provides methods to create both flow coordinators and view controllers, which makes this process a lot cleaner. + +BSML has a few choices of view controller types you can inherit; we are going to use the `BSMLAutomaticViewController` +because it has the option of hot reloading the menu when you make changes to the bsml file. + +```c# +[ViewDefinition("TutorialMod.tutorial.bsml")] +public class TutorialViewController : BSMLAutomaticViewController { } +``` + +The flow coordinator is responsible for managing view controllers. `FlowCoordinator` has many members that you can use +or override, so it's worth checking out the code for it. + +```c# +public class TutorialFlowCoordinator : FlowCoordinator +{ + private readonly TutorialViewController tutorialViewController = BeatSaberUI.CreateViewController(); + + // Called immediately when the flow coordinator is activated + protected override void DidActivate(bool firstActivation, bool addedToHierarchy, bool screenSystemEnabling) + { + if (firstActivation) + { + // Sets the title text in the top bar + SetTitle("Tutorial Mod"); + showBackButton = true; + } + + if (addedToHierarchy) + { + ProvideInitialViewControllers(tutorialViewController); + } + } + + protected override void BackButtonWasPressed(ViewController topViewController) + { + BeatSaberUI.MainFlowCoordinator.DismissFlowCoordinator(this); + } +} +``` + +The code below is related to managing the menu button. We tell the `MainFlowCoordinator` to present our own +flow coordinator. You can also have your own way to dismiss your flow coordinator but, in the example above, +we are relying on the back button to do this. + +```c# +private readonly TutorialFlowCoordinator tutorialFlowCoordinator; +private readonly MenuButton menuButton; + +public MenuManager() +{ + tutorialFlowCoordinator = BeatSaberUI.CreateFlowCoordinator(); + menuButton = new MenuButton("Tutorial Mod", ShowFlowCoordinator); +} + +public void AddMenuButton() +{ + MenuButtons.Instance.RegisterButton(menuButton); +} + +private void ShowFlowCoordinator() +{ + BeatSaberUI.MainFlowCoordinator.PresentFlowCoordinator(tutorialFlowCoordinator); +} +``` + +![Mod Buttons Screenshot](/.assets/images/modding/pc-mod-bsml-buttons.jpg 'Mod Buttons Screenshot') + +### Floating Screen + +If you want to place your UI components anywhere, you can create a floating screen. This will allow you to have a view controller +anywhere in the world. You can also create a handle for the floating screen which will allow the player to move the screen +around. + +The example below creates just creates a small screen near the ground in front of the player's place. + +```c# +private readonly TutorialViewController tutorialViewController = BeatSaberUI.CreateViewController(); + +public void CreateFloatingScreen() +{ + var floatingScreen = FloatingScreen.CreateFloatingScreen( + screenSize: new Vector2(25f, 10f), + createHandle: false, + position: new Vector3(0f, 0.5f, 2f), + rotation: Quaternion.Euler(45f, 0f, 0f)); + + floatingScreen.SetRootViewController(tutorialViewController, ViewController.AnimationType.None); +} +``` + +Since floating screens aren't part of the screen system, and because the menu persists during gameplay, you can have +the floating screen active in the game scene. The below screenshot is of the floating screen from +[SliceDetails](https://github.com/qqrz997/SliceDetails), which is activated when the game is paused. + +![Floating Screen Screenshot](/.assets/images/modding/pc-mod-bsml-floating-screen.jpg 'Floating Screen Screenshot') + +## Interacting With The Menu + +Now let's take a look at some of the ways you can make use of your UI. Again, to find out more about the components +that we will talk about in the following sections, check the [BSML documentation](https://monkeymanboy.github.io/BSML-Docs/). + +### Buttons And Actions + +We are going to add a [button](https://monkeymanboy.github.io/BSML-Docs/Tags/ButtonTag/) to the menu: + +```xml +