sinai-dev-UnityExplorer icon

UnityExplorer

An in-game UI for exploring, debugging and modifying Unity games.

Last updated 9 months ago
Total downloads 185566
Total rating 58 
Categories Misc
Dependency string sinai-dev-UnityExplorer-4.8.2
Dependants 9 other mods depend on this mod

README

UnityExplorer

🔍 An in-game UI for exploring, debugging and modifying Unity games. ✔️ Supports most Unity versions from 5.2 to 2021+ (IL2CPP and Mono).

GitHub

Manual install

BepInEx:

  1. Take the UnityExplorer.BIE.[version].dll file and the UniverseLib.[version].dll file and put them in BepInEx\plugins\.

MelonLoader:

  1. Take the UnityExplorer.ML.[version].dll file and put it in the Mods\ folder created by MelonLoader.
  2. Take the UniverseLib.[version].dll file can put it in the UserLibs/ folder created by MelonLoader.

Features

Object Explorer

  • Use the Scene Explorer tab to traverse the active scenes, as well as the DontDestroyOnLoad and HideAndDontSave objects.
    • The "HideAndDontSave" scene contains objects with that flag, as well as Assets and Resources which are not in any scene but behave the same way.
    • You can use the Scene Loader to easily load any of the scenes in the build (may not work for Unity 5.X games)
  • Use the Object Search tab to search for Unity objects (including GameObjects, Components, etc), C# Singletons or Static Classes.
    • Use the UnityObject search to look for any objects which derive from UnityEngine.Object, with optional filters
    • The singleton search will look for any classes with a typical "Instance" field, and check it for a current value. This may cause unexpected behaviour in some IL2CPP games as we cannot distinguish between true properties and field-properties, so some property accessors will be invoked.

Inspector

The inspector is used to see detailed information on objects of any type and manipulate their values, as well as to inspect C# Classes with static reflection.

  • The GameObject Inspector (tab prefix [G]) is used to inspect a GameObject, and to see and manipulate its Transform and Components.
    • You can edit any of the input fields in the inspector (excluding readonly fields) and press Enter to apply your changes. You can also do this to the GameObject path as a way to change the GameObject's parent. Press the Escape key to cancel your edits.
    • note: When inspecting a GameObject with a Canvas, the transform controls may be overridden by the RectTransform anchors.
  • The Reflection Inspectors (tab prefix [R] and [S]) are used for everything else
    • Automatic updating is not enabled by default, and you must press Apply for any changes you make to take effect.
    • Press the button to expand certain values such as strings, enums, lists, dictionaries, some structs, etc
    • Use the filters at the top to quickly find the members you are looking for
    • For Texture2D, Image, SpriteandMaterialobjects, there is aView Texture` button at the top of the inspector which lets you view the Texture(s) and save them as a PNG file.
    • For AudioClip objects there is a Show Player button which opens an audio player widget. For clips which are loaded as DecompressOnLoad, there is also a button to save them to a .wav file.

C# Console

  • The C# Console uses the Mono.CSharp.Evaluator to define temporary classes or run immediate REPL code.
  • You can execute a script automatically on startup by naming it startup.cs and placing it in the sinai-dev-UnityExplorer\Scripts\ folder (this folder will be created where you placed the DLL file).
  • See the "Help" dropdown in the C# console menu for more detailed information.

Hook Manager

  • The Hooks panel allows you to hook methods at the click of a button for debugging purposes.
    • Simply enter any class and hook the methods you want from the menu.
    • You can edit the source code of the generated hook with the "Edit Hook Source" button. Accepted method names are Prefix (which can return bool or void), Postfix, Finalizer (which can return Exception or void), and Transpiler (which must return IEnumerable<HarmonyLib.CodeInstruction>). You can define multiple patches if you wish.

Mouse-Inspect

  • The "Mouse Inspect" dropdown in the "Inspector" panel allows you to inspect objects under the mouse.
    • World: uses Physics.Raycast to look for Colliders
    • UI: uses GraphicRaycasters to find UI objects

Freecam

  • UnityExplorer provides a basic Free Camera which you can control with your keyboard and mouse.
  • Unlike all other features of UnityExplorer, you can still use Freecam while UnityExplorer's menu is hidden.
  • Supports using the game's main Camera or a separate custom Camera.
  • See the Freecam panel for further instructions and details.

Clipboard

  • The "Clipboard" panel allows you to see your current paste value, or clear it (resets it to null)
    • Can copy the value from any member in a Reflection Inspector, Enumerable or Dictionary, and from the target of any Inspector tab
    • Can paste values onto any member in a Reflection Inspector
    • Non-parsable arguments in Method/Property Evaluators allow pasting values
    • The C# Console has helper methods Copy(obj) and Paste() for accessing the Clipboard

Settings

  • You can change the settings via the "Options" tab of the menu, or directly from the config file.
    • BepInEx: BepInEx\config\com.sinai.unityexplorer.cfg
    • MelonLoader: UserData\MelonPreferences.cfg
    • Standalone {DLL_location}\sinai-dev-UnityExplorer\config.cfg

Settings

  • You can change the settings via the "Options" tab of the menu, or directly from the config file.

Acknowledgments

Available versions

Please note that the install buttons only work if you have compatible client software installed, such as the Thunderstore Mod Manager. Otherwise use the zip download links instead.

Upload date Version number Downloads Download link  
2022-6-5 4.8.2 63152 Version 4.8.2 Install
2022-5-15 4.8.1 5172 Version 4.8.1 Install
2022-5-8 4.8.0 3102 Version 4.8.0 Install
2022-4-30 4.7.12 3445 Version 4.7.12 Install
2022-4-25 4.7.11 2596 Version 4.7.11 Install
2022-4-25 4.7.10 909 Version 4.7.10 Install
2022-4-23 4.7.8 1732 Version 4.7.8 Install
2022-4-23 4.7.7 961 Version 4.7.7 Install
2022-4-22 4.7.6 1529 Version 4.7.6 Install
2022-4-19 4.7.4 2017 Version 4.7.4 Install
2022-4-11 4.7.1 3404 Version 4.7.1 Install
2022-4-11 4.7.0 872 Version 4.7.0 Install
2022-3-31 4.6.2 4346 Version 4.6.2 Install
2022-3-21 4.6.0 4149 Version 4.6.0 Install
2022-3-14 4.5.12 3456 Version 4.5.12 Install
2022-3-13 4.5.11 1524 Version 4.5.11 Install
2022-3-10 4.5.10 2626 Version 4.5.10 Install
2022-3-5 4.5.9 2924 Version 4.5.9 Install
2022-3-4 4.5.8 1517 Version 4.5.8 Install
2022-3-3 4.5.7 1774 Version 4.5.7 Install
2022-2-11 4.5.6 5281 Version 4.5.6 Install
2022-2-4 4.5.5 3510 Version 4.5.5 Install
2022-1-23 4.5.2 4309 Version 4.5.2 Install
2022-1-23 4.5.1 1093 Version 4.5.1 Install
2022-1-18 4.5.0 2727 Version 4.5.0 Install
2022-1-2 4.4.3 4684 Version 4.4.3 Install
2021-12-24 4.4.1 3416 Version 4.4.1 Install
2021-12-2 4.4.0 5404 Version 4.4.0 Install
2021-10-26 4.3.5 8025 Version 4.3.5 Install
2021-10-19 4.3.4 2667 Version 4.3.4 Install
2021-10-16 4.3.3 2103 Version 4.3.3 Install
2021-9-7 4.3.2 4484 Version 4.3.2 Install
2021-9-7 4.3.1 1175 Version 4.3.1 Install
2021-9-6 4.3.0 1448 Version 4.3.0 Install
2021-8-23 4.2.1 3064 Version 4.2.1 Install
2021-7-28 4.2.0 4493 Version 4.2.0 Install
2021-7-19 4.1.11 2916 Version 4.1.11 Install
2021-7-14 4.1.10 2097 Version 4.1.10 Install
2021-7-11 4.1.9 1756 Version 4.1.9 Install
2021-7-2 4.1.8 2195 Version 4.1.8 Install
2021-6-22 4.1.7 2020 Version 4.1.7 Install
2021-6-20 4.1.6 1431 Version 4.1.6 Install
2021-6-14 4.1.5 1339 Version 4.1.5 Install
2021-6-7 4.1.4 1430 Version 4.1.4 Install
2021-6-7 4.1.3 1292 Version 4.1.3 Install