All Projects → sinai-dev → Unityexplorer

sinai-dev / Unityexplorer

Licence: gpl-3.0
An in-game explorer and a suite of debugging tools for IL2CPP and Mono Unity games, to aid with modding development.

Projects that are alternatives of or similar to Unityexplorer

Oxide.rust
Rust game extension for the Oxide modding framework
Stars: ✭ 185 (+7.56%)
Mutual labels:  unity, unity3d, modding
Centrifuge
Cross-platform runtime mod loader and API for any Unity-based game. Supports Unity 5 and up!
Stars: ✭ 18 (-89.53%)
Mutual labels:  unity, unity3d, modding
Bepinex
Unity / XNA game patcher and plugin framework
Stars: ✭ 1,001 (+481.98%)
Mutual labels:  unity, unity3d, modding
Ugui Mvvm
Unity3D uGUI mvvm databinding via the standard IXChanged interfaces used in wpf (INotifyPropertyChanged, INotifyCollectionChanged, etc)
Stars: ✭ 169 (-1.74%)
Mutual labels:  unity, unity3d
Unitydxrtest
A testbed project for Unity real-time ray tracing features
Stars: ✭ 172 (+0%)
Mutual labels:  unity, unity3d
Unity Bullet Hell
An extremely efficient projectile generator for unity.
Stars: ✭ 168 (-2.33%)
Mutual labels:  unity, unity3d
Qframework
Unity3D System Design Architecture
Stars: ✭ 2,326 (+1252.33%)
Mutual labels:  unity, unity3d
Unitymobileinput
Unity mobile Input plugin for iOS and Android (Unity UI compatible)
Stars: ✭ 170 (-1.16%)
Mutual labels:  unity, unity3d
Bloodfx
Procedural blood stain shader
Stars: ✭ 170 (-1.16%)
Mutual labels:  unity, unity3d
Unity Design Pattern
🍵 All Gang of Four Design Patterns written in Unity C# with many examples. And some Game Programming Patterns written in Unity C#. | 各种设计模式的Unity3D C#版本实现
Stars: ✭ 2,600 (+1411.63%)
Mutual labels:  unity, unity3d
Bobbin
small Unity editor tool that can automatically download and import Google Docs or Sheets (or anything with a URL) into your Unity project; perfect for collaborating with designers, writers, or translators
Stars: ✭ 176 (+2.33%)
Mutual labels:  unity, unity3d
Unity Dithered Transparency Shader
Unity material and shader for applying clipped, dithered transparency
Stars: ✭ 174 (+1.16%)
Mutual labels:  unity, unity3d
Openvdbforunity
Unity plugins for OpenVDB
Stars: ✭ 166 (-3.49%)
Mutual labels:  unity, unity3d
Vjui
Custom UI controls for VJing with Unity
Stars: ✭ 168 (-2.33%)
Mutual labels:  unity, unity3d
Computestochasticreflections
Compute Stochastic Screen Space Reflections for unity post processing
Stars: ✭ 163 (-5.23%)
Mutual labels:  unity, unity3d
Rimlight
Customizable rimlight shader for Unity that includes pulsation and noise scrolling. Give your scenes that extra oomph!
Stars: ✭ 170 (-1.16%)
Mutual labels:  unity, unity3d
Nvjob Water Shader Simple And Fast
#NVJOB Simple Water Shaders. Free Unity Asset.
Stars: ✭ 172 (+0%)
Mutual labels:  unity, unity3d
Ssrt
Real-time indirect diffuse illuminaton using screen-space information for Unity.
Stars: ✭ 176 (+2.33%)
Mutual labels:  unity, unity3d
Cloudonce
Unified Game Services API for Unity
Stars: ✭ 175 (+1.74%)
Mutual labels:  unity, unity3d
Commonchinesecharacter
游戏开发中的常用汉字字库,包括3500常用字和7000常用字
Stars: ✭ 162 (-5.81%)
Mutual labels:  unity, unity3d

An in-game explorer and a suite of debugging tools for IL2CPP and Mono Unity games, to aid with modding development.

Releases

Mod Loader IL2CPP Mono
BepInEx 6.X link ❔* link
BepInEx 5.X ❌ n/a link
MelonLoader 0.3 link link
Standalone link link

* BepInEx 6.X Mono release may not work on all games yet.

Features

  • Scene Explorer: Simple menu to traverse the Transform heirarchy of the scene.
  • GameObject Inspector: Various helpful tools to see and manipulate the GameObject, similar to what you can do in the Editor.
  • Reflection Inspector: Inspect Properties and Fields. Can also set primitive values and evaluate primitive methods.
  • Search: Search for UnityEngine.Objects with various filters, or use the helpers for static Instances and Classes.
  • C# Console: Interactive console for evaluating C# methods on the fly, with some basic helpers.
  • Inspect-under-mouse: Hover over an object with a collider and inspect it by clicking on it. There's also a UI mode to inspect UI objects.

How to install

BepInEx

Note: For IL2CPP you should use BepInEx 6 (Bleeding Edge), for Mono you should use BepInEx 5 (until Mono support stabilizes in BepInEx 6).

  1. Install BepInEx for your game.
  2. Download the UnityExplorer release for BepInEx IL2CPP or Mono above.
  3. Take the UnityExplorer.BIE.___.dll file and put it in [GameFolder]\BepInEx\plugins\
  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\unity-libs\ folder.

MelonLoader

Note: You must use version 0.3 of MelonLoader or greater. Version 0.3 is currently in pre-release, so you must opt-in from your MelonLoader installer (enable alpha releases).

  1. Install MelonLoader for your game.
  2. Download the UnityExplorer release for MelonLoader IL2CPP or Mono above.
  3. Take the contents of the release and put it in the [GameFolder]\Mods\ folder. It should look like [GameFolder]\Mods\UnityExplorer.ML.___.dll

Standalone

The standalone release is based on the BepInEx build, so it requires Harmony 2.0 (or HarmonyX) to function properly.

  1. Load the DLL from your mod or inject it. You must also make sure that the required libraries (Harmony, Unhollower for Il2Cpp, etc) are loaded.
  2. Create an instance of Unity Explorer with ExplorerStandalone.CreateInstance();
  3. Optionally subscribe to the ExplorerStandalone.OnLog event to handle logging if you wish.

Logging

Explorer saves all logs to disk (only keeps the most recent 10 logs). They can be found in a "UnityExplorer" folder in the same place as where you put the DLL file.

These logs are also visible in the Debug Console part of the UI.

Settings

You can change the settings via the "Options" page of the main menu, or directly from the config file (generated after first launch). The config file will be found either inside a "UnityExplorer" folder in the same directory as where you put the DLL file, or for BepInEx it will be at BepInEx\config\UnityExplorer\.

Main Menu Toggle (KeyCode)

  • Default: F7
  • See this article for a full list of all accepted KeyCodes.

Force Unlock Mouse (bool)

  • Default: true
  • Forces the cursor to be unlocked and visible while the UnityExplorer menu is open, and prevents anything else taking control.

Default Page Limit (int)

  • Default: 25
  • Sets the default items per page when viewing lists or search results.
  • Requires a restart to take effect, apart from Reflection Inspector tabs.

Default Output Path (string)

  • Default: Mods\UnityExplorer
  • Where output is generated to, by default (for Texture PNG saving, etc).

Log Unity Debug (bool)

  • Default: false
  • Listens for Unity Debug.Log messages and prints them to UnityExplorer's log.

Hide on Startup (bool)

  • Default: false
  • If true, UnityExplorer will be hidden when you start the game, you must open it via the keybind.

Building

If you'd like to build this yourself, all you need to do is download this repository and build from Visual Studio. If you want to build for BepInEx or MelonLoader IL2CPP then you will need to install the mod loader for a game and set the directory in the csproj file.

For IL2CPP:

  1. Install BepInEx or MelonLoader for your game.
  2. Open the src\UnityExplorer.csproj file in a text editor.
  3. Set BIECppGameFolder (for BepInEx) and/or MLCppGameFolder (for MelonLoader) so the project can locate the necessary references.
  4. For Standalone builds, you can either install BepInEx for the game to build, or just change the .csproj file and set the Unhollower reference manually.

For all builds:

  1. Open the src\UnityExplorer.sln project.
  2. Select Solution 'UnityExplorer' (1 of 1 project) in the Solution Explorer panel, and set the Active config property to the version you want to build, then build it.
  3. The DLLs are built to the Release\ folder in the root of the repository.
  4. If ILRepack fails or is missing, use the NuGet package manager to re-install ILRepack.Lib.MSBuild.Task, then re-build.

Credits

Written by Sinai.

Licensing

This project uses code from:

  • (GPL) ManlyMarco's Runtime Unity Editor, which I used for some aspects of the C# Console and Auto-Complete features. The snippets I used are indicated with a comment.
  • (MIT) denikson (aka Horse)'s mcs-unity. I commented out the SkipVisibilityExt constructor since it was causing an exception with the Hook it attempted in IL2CPP.
  • (Apache) InGameCodeEditor was used as the base for the syntax highlighting for UnityExplorer's C# console, although it has been heavily rewritten and optimized. Used classes are in the UnityExplorer.UI.Main.CSConsole.Lexer namespace.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].