Skip to content
This repository was archived by the owner on May 9, 2023. It is now read-only.

Commit 48e98a1

Browse files
authored
Merge pull request #22 from sinai-dev/3.0.0-rewrite
3.0.0 rewrite, see release for details
2 parents f4ba14c + d379d6b commit 48e98a1

File tree

137 files changed

+12968
-10959
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

137 files changed

+12968
-10959
lines changed

README.md

Lines changed: 36 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
</p>
44

55
<p align="center">
6-
An in-game explorer and a suite of debugging tools for <a href="https://docs.unity3d.com/Manual/IL2CPP.html">IL2CPP</a> and <b>Mono</b> Unity games, using <a href="https://github.com/HerpDerpinstine/MelonLoader">MelonLoader</a> and <a href="https://github.com/BepInEx/BepInEx">BepInEx</a>.<br><br>
7-
6+
An in-game explorer and a suite of debugging tools for <a href="https://docs.unity3d.com/Manual/IL2CPP.html">IL2CPP</a> and <b>Mono</b> Unity games, to aid with modding development.
7+
</p>
8+
<p align="center">
89
<a href="../../releases/latest">
910
<img src="https://img.shields.io/github/release/sinai-dev/Explorer.svg" />
1011
</a>
@@ -22,20 +23,19 @@
2223

2324
## Releases
2425

25-
| Mod Loader | Il2Cpp | Mono |
26+
| Mod Loader | IL2CPP | Mono |
2627
| ----------- | ------ | ---- |
2728
| [MelonLoader](https://github.com/HerpDerpinstine/MelonLoader) | ✔️ [link](https://github.com/sinai-dev/Explorer/releases/latest/download/Explorer.MelonLoader.Il2Cpp.zip) | ✔️ [link](https://github.com/sinai-dev/Explorer/releases/latest/download/Explorer.MelonLoader.Mono.zip) |
2829
| [BepInEx](https://github.com/BepInEx/BepInEx) |[link](https://github.com/sinai-dev/Explorer/releases/latest/download/Explorer.BepInEx.Il2Cpp.zip) | ✔️ [link](https://github.com/sinai-dev/Explorer/releases/latest/download/Explorer.BepInEx.Mono.zip) |
2930

30-
<b>Il2Cpp Issues:</b>
31+
<b>IL2CPP Issues:</b>
3132
* Some methods may still fail with a `MissingMethodException`, please let me know if you experience this (with full debug log please).
32-
* Reflection may fail with certain types, see [here](https://github.com/knah/Il2CppAssemblyUnhollower#known-issues) for more details.
33-
* Scrolling with mouse wheel in the Explorer menu may not work on all games at the moment.
33+
* Reflection may fail with certain types, see [here](https://github.com/knah/IL2CPPAssemblyUnhollower#known-issues) for more details.
3434

3535
## Features
3636

3737
<p align="center">
38-
<img src="https://raw.githubusercontent.com/sinai-dev/Explorer/master/overview.png">
38+
<img src="overview.png">
3939
</p>
4040

4141
* <b>Scene Explorer</b>: Simple menu to traverse the Transform heirarchy of the scene.
@@ -47,79 +47,54 @@
4747

4848
## How to install
4949

50-
### MelonLoader
51-
Requires [MelonLoader](https://github.com/HerpDerpinstine/MelonLoader) to be installed for your game.
50+
### BepInEx
5251

53-
1. Download the relevant release from above.
54-
2. Unzip the file into the `Mods` folder in your game's installation directory, created by MelonLoader.
55-
3. Make sure it's not in a sub-folder, `Explorer.dll` should be directly in the `Mods\` folder.
52+
0. Install [BepInEx](https://github.com/BepInEx/BepInEx) for your game.
53+
1. Download the UnityExplorer release for BepInEx IL2CPP or Mono above.
54+
2. Take the `UnityExplorer.dll` file and put it in `[GameFolder]\BepInEx\plugins\`
55+
3. Take the `UnityExplorer\` folder (with `explorerui.bundle`) and put it in `[GameFolder]\Mods\`, so it looks like `[GameFolder]\Mods\UnityExplorer\explorerui.bundle`.
56+
4. In IL2CPP, it is highly recommended to get the base Unity libs for the game's Unity version and put them in the `BepInEx\unhollowed\base\` folder.
5657

57-
### BepInEx
58-
Requires [BepInEx](https://github.com/BepInEx/BepInEx) to be installed for your game.
58+
### MelonLoader
5959

60-
1. Download the relevant release from above.
61-
2. Unzip the file into the `BepInEx\plugins\` folder in your game's installation directory, created by BepInEx.
62-
3. Make sure it's not in a sub-folder, `Explorer.dll` should be directly in the `plugins\` folder.
60+
0. Install [MelonLoader](https://github.com/HerpDerpinstine/MelonLoader) for your game.
61+
1. Download the UnityExplorer release for MelonLoader IL2CPP or Mono above.
62+
2. Take the contents of the release and put it in the `[GameFolder]\Mods\` folder. It should look like `[GameFolder]\Mods\UnityExplorer.dll` and `[GameFolder]\Mods\UnityExplorer\explorerui.bundle`.
6363

6464
## Mod Config
6565

66-
There is a simple Mod Config for the Explorer. You can access the settings via the "Options" page of the main menu.
66+
You can access the settings via the "Options" page of the main menu, or directly from the config at `Mods\UnityExplorer\config.xml` (generated after first launch).
6767

68-
`Main Menu Toggle` (KeyCode) | Default: `F7`
68+
`Main Menu Toggle` (KeyCode)
69+
* Default: `F7`
6970
* See [this article](https://docs.unity3d.com/ScriptReference/KeyCode.html) for a full list of all accepted KeyCodes.
7071

71-
`Default Window Size` (Vector2) | Default: `x: 550, y: 700`
72-
* Sets the default width and height for all Explorer windows when created.
72+
`Force Unlock Mouse` (bool)
73+
* Default: `true`
74+
* Forces the cursor to be unlocked and visible while the UnityExplorer menu is open, and prevents anything else taking control.
7375

74-
`Default Items per Page` (int) | Default: `20`
76+
`Default Page Limit` (int)
77+
* Default: `25`
7578
* Sets the default items per page when viewing lists or search results.
79+
* <b>Requires a restart to take effect</b>, apart from Reflection Inspector tabs.
7680

77-
`Enable Bitwise Editing` (bool) | Default: `false`
78-
* Whether or not to show the Bitwise Editing helper when inspecting integers
79-
80-
`Enable Tab View` (bool) | Default: `true`
81-
* Whether or not all inspector windows a grouped into a single window with tabs.
82-
83-
`Default Output Path` (string) | Default: `Mods\Explorer`
81+
`Default Output Path` (string)
82+
* Default: `Mods\Explorer`
8483
* Where output is generated to, by default (for Texture PNG saving, etc).
8584

86-
## Mouse Control
87-
88-
Explorer can force the mouse to be visible and unlocked when the menu is open, if you have enabled "Force Unlock Mouse" (Left-Alt toggle). Explorer also attempts to prevent clicking-through onto the game behind the Explorer menu.
89-
90-
If you need more mouse control:
91-
92-
* For VRChat, use [VRCExplorerMouseControl](https://github.com/sinai-dev/VRCExplorerMouseControl)
93-
* For Hellpoint, use [HPExplorerMouseControl](https://github.com/sinai-dev/Hellpoint-Mods/tree/master/HPExplorerMouseControl/HPExplorerMouseControl)
94-
* You can create your own plugin using one of the two plugins above as an example. Usually only a few simple Harmony patches are needed to fix the problem.
95-
96-
For example:
97-
```csharp
98-
using Explorer;
99-
using Harmony; // or 'using HarmonyLib;' for BepInEx
100-
// ...
101-
// You will need to figure out the relevant Class and Method for your game using dnSpy.
102-
[HarmonyPatch(typeof(MyGame.InputManager), nameof(MyGame.InputManager.Update))]
103-
public class InputManager_Update
104-
{
105-
[HarmonyPrefix]
106-
public static bool Prefix()
107-
{
108-
// prevent method running if menu open, let it run if not.
109-
return !ExplorerCore.ShowMenu;
110-
}
111-
}
112-
```
85+
`Log Unity Debug` (bool)
86+
* Default: `false`
87+
* Listens for Unity `Debug.Log` messages and prints them to UnityExplorer's log.
11388

11489
## Building
11590

116-
If you'd like to build this yourself, you will need to have installed BepInEx and/or MelonLoader for at least one Unity game. If you want to build all 4 versions, you will need at least one Il2Cpp and one Mono game, with BepInEx and MelonLoader installed for both.
91+
If you'd like to build this yourself, you will need to have installed BepInEx and/or MelonLoader for at least one Unity game. If you want to build all 4 versions, you will need at least one IL2CPP and one Mono game, with BepInEx and MelonLoader installed for both.
11792

11893
1. Install MelonLoader or BepInEx for your game.
11994
2. Open the `src\Explorer.csproj` file in a text editor.
120-
3. Set the relevant `GameFolder` values for the versions you want to build, eg. set `MLCppGameFolder` if you want to build for a MelonLoader Il2Cpp game.
95+
3. Set the relevant `GameFolder` values for the versions you want to build, eg. set `MLCppGameFolder` if you want to build for a MelonLoader IL2CPP game.
12196
4. Open the `src\Explorer.sln` project.
122-
5. Select `Solution 'Explorer' (1 of 1 project)` in the Solution Explorer panel, and set the <b>Active config</b> property to the version you want to build, then build it.
97+
5. Select `Solution 'UnityExplorer' (1 of 1 project)` in the Solution Explorer panel, and set the <b>Active config</b> property to the version you want to build, then build it.
12398
5. The DLLs are built to the `Release\` folder in the root of the repository.
12499
6. If ILRepack fails or is missing, use the NuGet package manager to re-install `ILRepack.Lib.MSBuild.Task`, then re-build.
125100

@@ -128,5 +103,5 @@ If you'd like to build this yourself, you will need to have installed BepInEx an
128103
Written by Sinai.
129104

130105
Thanks to:
131-
* [ManlyMarco](https://github.com/ManlyMarco) for their [Runtime Unity Editor](https://github.com/ManlyMarco/RuntimeUnityEditor), which I used for the REPL Console and the "Find instances" snippet, and the UI style.
132-
* [denikson](https://github.com/denikson) for [mcs-unity](https://github.com/denikson/mcs-unity). I commented out the `SkipVisibilityExt` constructor since it was causing an exception with the Hook it attempted.
106+
* [ManlyMarco](https://github.com/ManlyMarco) for their [Runtime Unity Editor](https://github.com/ManlyMarco/RuntimeUnityEditor), which I used for some aspects of the C# Console and Auto-Complete features.
107+
* [denikson](https://github.com/denikson) (aka Horse) for [mcs-unity](https://github.com/denikson/mcs-unity). I commented out the `SkipVisibilityExt` constructor since it was causing an exception with the Hook it attempted in IL2CPP.

icon.png

7.2 KB
Loading

lib/UnityEngine.UI.dll

243 KB
Binary file not shown.

overview.png

42.7 KB
Loading

resources/explorerui.bundle

213 KB
Binary file not shown.

0 commit comments

Comments
 (0)