Code Monkey home page Code Monkey logo

unityexplorer's Introduction

πŸ” An in-game UI for exploring, debugging and modifying Unity games.

βœ”οΈ Supports most Unity versions from 5.2 to 2021+ (IL2CPP and Mono).

✨ Powered by UniverseLib

Releases

⚑ Thunderstore releases: BepInEx Mono | BepInEx IL2CPP | MelonLoader IL2CPP

Release schedule

Releases will be posted at most once per week, generally on weekends.

Nightly builds can be found here.

BepInEx

Release IL2CPP Mono
BIE 6.X βœ… link βœ… link
BIE 6.X (CoreCLR) βœ… link βœ–
BIE 5.X βœ–οΈ n/a βœ… link
  1. Unzip the release file into a folder
  2. Take the plugins/sinai-dev-UnityExplorer folder and place it in BepInEx/plugins/

Note: BepInEx 6 is obtainable via builds.bepinex.dev

MelonLoader

Release IL2CPP Mono
ML 0.5 βœ… link βœ… link
ML 0.6 βœ… link βœ–οΈ
  1. Unzip the release file into a folder
  2. Copy the DLL inside the Mods folder into your MelonLoader Mods folder
  3. Copy all of the DLLs inside the UserLibs folder into your MelonLoader UserLibs folder

Standalone

IL2CPP Mono
βœ… link βœ… link

The standalone release can be used with any injector or loader of your choice, but it requires you to load the dependencies manually.

  1. Ensure the required libs are loaded - UniverseLib, HarmonyX and MonoMod. Take them from the UnityExplorer.Editor release if you need them.
  2. For IL2CPP, load Il2CppAssemblyUnhollower and start an Il2CppAssemblyUnhollower runtime
  3. Load the UnityExplorer DLL
  4. Create an instance of Unity Explorer with UnityExplorer.ExplorerStandalone.CreateInstance();
  5. Optionally subscribe to the ExplorerStandalone.OnLog event to handle logging if you wish

Unity Editor

  1. Download the UnityExplorer.Editor release.
  2. Install the package, either by using the Package Manager and importing the package.json file, or by manually dragging the folder into your Assets folder.
  3. Drag the Runtime/UnityExplorer prefab into your scene, or create a GameObject and add the Explorer Editor Behaviour script to it.

Common issues and solutions

Although UnityExplorer should work out of the box for most Unity games, in some cases you may need to tweak the settings for it to work properly.

To adjust the settings, open the config file:

  • BepInEx: BepInEx\config\com.sinai.unityexplorer.cfg
  • MelonLoader: UserData\MelonPreferences.cfg
  • Standalone: sinai-dev-UnityExplorer\config.cfg

Try adjusting the following settings and see if it fixes your issues:

  • Startup_Delay_Time - increase to 5-10 seconds (or more as needed), can fix issues with UnityExplorer being destroyed or corrupted during startup.
  • Disable_EventSystem_Override - if input is not working properly, try setting this to true.

If these fixes do not work, please create an issue in this repo and I'll do my best to look into it.

Features

Inspector API

If you want to inspect an object or Type from outside the C# console, use the InspectorManager class:

To inspect an object:

UnityExplorer.InspectorManager.Inspect(theObject);

To inspect a Type:

UnityExplorer.InspectorManager.Inspect(typeof(SomeClass));

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, Sprite and Material objects, there is a View 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

Building

  1. Run the build.ps1 powershell script to build UnityExplorer. Releases are found in the Release folder.

Building individual configurations from your IDE is fine, though note that the intial build process builds into Release/<version>/... instead of the subfolders that the powershell script uses. Batch building is not currently supported with the project.

Acknowledgments

Disclaimer

UnityExplorer is in no way associated with Unity Technologies. "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere.

unityexplorer's People

Contributors

herpderpinstine avatar js6pak avatar liesauer avatar sinai-dev avatar tanamichi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unityexplorer's Issues

Main Menu does not display in Outward

Pressing F7 in game does nothing, no UI. The force mouse enable works.

[Message: BepInEx] BepInEx 5.4.5.0 - Outward [Info : BepInEx] Running under Unity v2018.4.8.10209753 [Info : BepInEx] CLR runtime version: 4.0.30319.17020 [Info : BepInEx] Supports SRE: False [Info : BepInEx] System platform: Bits64, Windows [Message: BepInEx] Preloader started [Info : BepInEx] 1 patcher plugin loaded [Info : BepInEx] Patching [UnityEngine.CoreModule] with [BepInEx.Chainloader] [Message: BepInEx] Preloader finished [Message: BepInEx] Chainloader ready [Message: BepInEx] Chainloader started [Info : BepInEx] 16 plugins to load [Info : BepInEx] Loading [FailedRecipes 1.3] [Info : BepInEx] Loading [InstantTakeItems 1.3] [Info : BepInEx] Loading [AlchemyCookingRecipeDisplay 1.3] [Info : BepInEx] Loading [Better Targeting 1.6.0] [Info : BepInEx] Loading [SideLoader 3.0.4] [Message:SideLoader] Version 3.0.4 starting... [Info : BepInEx] Loading [Blacksmith's Toolbox 2.1] [Info : BepInEx] Loading [SharedModConfig 2.0] [Info : BepInEx] Loading [Combat HUD 4.5] [Message:Combat HUD] Combat HUD started, version 4.5 [Info : BepInEx] Loading [Combat Overhaul 2.3] [Info : BepInEx] Loading [Custom Weight 2.2] [Info : BepInEx] Loading [Dismantler 1.1] [Info : BepInEx] Loading [Extended Quickslots 3.0] [Info : BepInEx] Loading [More Map Details 1.3] [Info : BepInEx] Loading [Necromancer Skills 2.91] [Info : BepInEx] Loading [UnityExplorer 3.1.3] [Message:UnityExplorer] Initializing Legacy Input support... [Message:UnityExplorer] UnityExplorer 3.1.3 initialized. [Message: BepInEx] Chainloader startup complete [Message:SideLoader] Set up custom keybinding 'Toggle Target', actionID: 138 [Message:SideLoader] Set up custom keybinding 'SideLoader Menu', actionID: 139 [Message:SideLoader] Set up custom keybinding 'Shared Mod Config Menu', actionID: 140 [Message:SideLoader] Set up custom keybinding 'QS_Instant12', actionID: 141 [Message:SideLoader] Set up custom keybinding 'QS_Instant13', actionID: 142 [Message:SideLoader] Set up custom keybinding 'QS_Instant14', actionID: 143 [Message:SideLoader] Set up custom keybinding 'QS_Instant15', actionID: 144 [Message:SideLoader] Set up custom keybinding 'QS_Instant16', actionID: 145 [Message:SideLoader] Set up custom keybinding 'QS_Instant17', actionID: 146 [Message:SideLoader] Set up custom keybinding 'QS_Instant18', actionID: 147 [Message:SideLoader] Set up custom keybinding 'QS_Instant19', actionID: 148 [Message:SideLoader] Set up custom keybinding 'QS_Instant20', actionID: 149 [Message:SideLoader] Set up custom keybinding 'QS_Instant21', actionID: 150 [Info : Console] Searching for compatible XInput library... [Info : Console] Found Xinput1_4.dll. [Message:UnityExplorer] Loaded UI bundle [Warning:UnityExplorer] Error setting up console! Message: Operation is not supported on this platform. [Message:UnityExplorer] Initialized UnityExplorer UI. [Message:SideLoader] Registered SideLoader RPCManager with view ID 899 [Message:SideLoader] Reading SLPack BlacksmithsToolbox [Message:SideLoader] Reading SLPack CombatHUD [Message:SideLoader] Loaded assetbundle combathud [Message:SideLoader] Reading SLPack Necromancy [Message:SideLoader] Reading SLPack SharedModConfig [Message:SideLoader] Loaded assetbundle sharedmodconfig [Message:SideLoader] Applying custom Items, count: 11 [Message:SideLoader] Applying Item Template. ID: 5850750, Name: Blacksmith's Toolbox [Message:SideLoader] Applying Item Template. ID: 8999050, Name: Activated Plague Aura [Message:SideLoader] Applying Item Template. ID: 8890108, Name: Army of Death [Message:SideLoader] Applying Item Template. ID: 8890106, Name: Death Ritual [Message:SideLoader] Applying Item Template. ID: 8890105, Name: Life Ritual [Message:SideLoader] Applying Item Template. ID: 8890100, Name: Noxious Tendrils [Message:SideLoader] Applying Item Template. ID: 8890107, Name: Plague Aura [Message:SideLoader] Applying Item Template. ID: 2598500, Name: Skeleton Blade [Message:SideLoader] Reading folder mat_itm_crystalbladerunicbladelight [Message:SideLoader] Set texture _MainTex on mat_itm_crystalbladerunicbladelight [Message:SideLoader] Applying Item Template. ID: 8890103, Name: Summon [Message:SideLoader] Applying Item Template. ID: 8890104, Name: Transcendence [Message:SideLoader] Applying Item Template. ID: 8890101, Name: Vital Attunement [Message:SideLoader] SideLoader Setup Finished [Message:SideLoader] ------------------------- [Message:Combat HUD] Combat HUD finished setting up [Message:SideLoader] Finished invoking OnPacksLoaded.

Missing Method Exception

Game: Orcs Civil War x64
Unity Version: 2019.3.12
Using Latest Release v2.71 MelonLoader
Type: IL2CPP
Explorer: Latest release

Expected Result: Open game, press F7 to show menu.

Cannot open Explorer. MelonLoader console/log fills with 'Missing Method Exception'. (Log truncated for easy reading)

MelonLoader_20-09-27_10-22-19.619.log

(GTFO) Crash due to missing methods in Scene/SceneManager

I tried running UE 3.1.7 under the latest BIE version (#343 - 3b64e9).

I've also tried using the same BIE build and UE version as in #32, but to no avail:

[Message: Preloader] BepInEx 6.0.0-be.329 - GTFO
[Message: Preloader] BLEEDING EDGE Build #325 from 3d75179e8684953739fa32ce7d4c7e02879cea07 at master
[Info   :   BepInEx] System platform: Bits64, Windows
[Info   : Preloader] Running under Unity v2019.4.1.15122501
[Info   : Preloader] 0 patcher plugins loaded
[Info   : Preloader] 0 assemblies discovered
[Message:   BepInEx] Chainloader initialized
[Info   :Unhollower] Registered mono type UnhollowerRuntimeLib.DelegateSupport+Il2CppToMonoDelegateReference in il2cpp domain
[Info   :   BepInEx] 1 plugin to load
[Info   :   BepInEx] Loading [UnityExplorer 3.1.6]
[Info   :Unhollower] Registered mono type UnityExplorer.ExplorerBepInPlugin+ExplorerBehaviour in il2cpp domain
[Message:UnityExplorer] ExplorerBehaviour.Awake
[Message:UnityExplorer] Initializing Legacy Input support...
[Error  :   BepInEx] Error loading [UnityExplorer 3.1.6] : Method not found: void UnityEngine.SceneManagement.SceneManager.add_activeSceneChanged(UnityEngine.Events.UnityAction`2<UnityEngine.SceneManagement.Scene, UnityEngine.SceneManagement.Scene>)
[Message:   BepInEx] Chainloader startup complete
[Message:UnityExplorer] Loaded UI bundle
[Warning:UnityExplorer] Exception setting up UI: System.MissingMethodException: Method not found: bool UnityEngine.SceneManagement.Scene.op_Equality(UnityEngine.SceneManagement.Scene,UnityEngine.SceneManagement.Scene)
  at UnityExplorer.Inspectors.SceneExplorer.Init () [0x00001] in <4cfa252ff5484d859db2e1f7557dd2f0>:0 
  at UnityExplorer.UI.Modules.HomePage.Init () [0x0001b] in <4cfa252ff5484d859db2e1f7557dd2f0>:0 
  at UnityExplorer.UI.MainMenu..ctor () [0x000f3] in <4cfa252ff5484d859db2e1f7557dd2f0>:0 
  at UnityExplorer.UI.UIManager.Init () [0x0000d] in <4cfa252ff5484d859db2e1f7557dd2f0>:0 
  at UnityExplorer.ExplorerCore.CheckUIInit () [0x00029] in <4cfa252ff5484d859db2e1f7557dd2f0>:0 

Any idea what could be causing this?

Can't load Explorer on IL2CPP BepInEx

[Message: Preloader] BepInEx 6.0.0.0 - Among Us
[Info   : Preloader] Running under Unity v2019.4.9.5308042
[Message:   BepInEx] Chainloader initialized
[Info   :   BepInEx] 1 plugins to load
[Info   :   BepInEx] Loading [Explorer 2.0.8] - D:\Among Us Mods\Tools\depotdownloader-2.3.6\depots\945361\5720078\BepInEx\plugins\Explorer.dll
[Error  :   BepInEx] Error loading [Explorer] : Base class UnityEngine.MonoBehaviour is value type and can't be inherited from
[Message:   BepInEx] Chainloader startup complete

Ok, I tried with BepInEx also (Even with the BepInEx 6.0 Preview) and same thing. Missing method. Also tried with 'Among Us x86'. Nothing. Can't find Unity.Input. At least with BepInEx it loads MCS, it just can't load UnityEngine.Input

Ok, I tried with BepInEx also (Even with the BepInEx 6.0 Preview) and same thing. Missing method. Also tried with 'Among Us x86'. Nothing. Can't find Unity.Input. At least with BepInEx it loads MCS, it just can't load UnityEngine.Input

Originally posted by @wh0am15533 in #16 (comment)

Explorer Crashes

Hello again!
build: IL2CPP MelonLoader
Game: VRChat

I found some bug:
In some moments when GameObject is destroyed, explorer crashes game without any messages in logs.
its looks like as NullReferenceException and game crashes.
Can you check this?

GUILayout.BeginArea Missing Method

I'm trying to use CppExplorer but I'm getting this error which seems to be related to the unhollower:

Exception in IL2CPP-to-Managed trampoline, not passing it to il2cpp: System.MissingMethodException: void UnityEngine.GUILayout.BeginArea(UnityEngine.Rect,UnityEngine.GUIStyle)
  at (wrapper dynamic-method) UnhollowerRuntimeLib.DelegateSupport.(il2cpp delegate trampoline) System.Void_System.Int32(intptr,int,UnhollowerBaseLib.Runtime.Il2CppMethodInfo*)

Exception in IL2CPP-to-Managed trampoline, not passing it to il2cpp: System.MissingMethodException

Whole melon log is filled with the same error.

Unity 2019.2.21t
OS: WIndows 7, MelonLoader detects it as Microsoft Windows NT 6.1.7601.65536 Service Pack 1
Game: Event Horizon by ZipasGames
MelonLoader v0.2.6 Open-Beta

Excpetion results in non-functioning UI
image

Error:

[Error] Exception in IL2CPP-to-Managed trampoline, not passing it to il2cpp: System.MissingMethodException: Il2CppSystem.Type Il2CppSystem.Type.GetTypeFromHandle(System.RuntimeTypeHandle)
  at UnityEngine.GUILayout.BeginScrollView (UnityEngine.Vector2 scrollPosition, UnityEngine.GUIStyle style, UnhollowerBaseLib.Il2CppReferenceArray`1[T] options) [0x00056] in <9ca34594992948f6b73aae206f97c87c>:0 
  at UnityEngine.GUILayout.BeginScrollView (UnityEngine.Vector2 scrollPosition, UnityEngine.GUIStyle style) [0x00003] in <9ca34594992948f6b73aae206f97c87c>:0 
  at Explorer.MainMenu.MainWindow (System.Int32 id) [0x000d1] in <24375ce37d934bff87a091e6c793b62e>:0 
  at (wrapper dynamic-method) UnhollowerRuntimeLib.DelegateSupport.(il2cpp delegate trampoline)

Full log:
MelonLoader_20-08-24_15-16-42.822.log

Log of installing CppExplorer on fresh instalation of the game:
MelonLoader_20-08-24_15-12-50.644.log

[Suggestion] Explorer Window

Hey, it sometimes happens to me that my explorer window gets stuck too high
causing it to not be able to unmove until I Restart the game and change the melonconfig.
VRChat-Dawn-1182-986-38

Could it be possible to be able to move the window on the "Debug Console | Show| |Clear| Log Unity Debug?" footer of the explorer window or where it says "Inspector Mouse Inspect (UI) | Mouse Inspect (3D)"?

[Feature Request] Add change default hotkey (F7)

Hello again
I'm using CppExplorer for make mods for VRChat and default hotkey F7 used in VRChat gesture expressions from Desktop mode
When i use expression on F7 i see CppExplorer Window ;)
Can you add Hotkey change feature? Or add public static variable where we can override due from custom VRCExplorerMouseControl for CppExplorer.
You makes updates faster than light and this very impressive and hard work.

Polytopia Crashes When UnityExplorer Opens

When trying to open Unity Explorer 3.2.2 in The Battle of Polytopia: Moonrise, the game crashes with the following error:
InvalidCastException: Unable to cast object of type 'StandaloneInputModule' to type 'PolytopiaInputModule'.
It looks like Polytopia is trying to convert the buttons in UnityExplorer to their proprietary buttons. If possible, how can I get around this?

Failure to load UnityExplorer in case of Unity net35 target

Version used: 3.2.2

It used to work before, I'm not exactly sure which, might've been 3.1.6 or earlier.

[Error  : Unity Log] TypeLoadException: Could not load type 'Microsoft.CodeAnalysis.EmbeddedAttribute' from assembly 'UnityExplorer.BIE5.Mono, Version=3.2.2.0, Culture=neutral, PublicKeyToken=null'.
Stack trace:
Mono.CSharp.Namespace.AddType (Mono.CSharp.ModuleContainer module, Mono.CSharp.TypeSpec ts)
Mono.CSharp.MetadataImporter.ImportTypes (System.Type[] types, Mono.CSharp.Namespace targetNamespace, Boolean importExtensionTypes)
Mono.CSharp.ReflectionImporter.ImportAssembly (System.Reflection.Assembly assembly, Mono.CSharp.RootNamespace targetNamespace)
ScriptLoader.MonoCompiler+<>c__DisplayClass2_0.<Compile>b__1 (System.Reflection.Assembly a)
ScriptLoader.MonoCompiler.ImportAppdomainAssemblies (System.Action`1 import)
ScriptLoader.MonoCompiler.Compile (System.Collections.Generic.Dictionary`2 sources, System.IO.TextWriter logger)
ScriptLoader.ScriptLoader.CompileScripts ()
ScriptLoader.ScriptLoader.Awake ()
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
UnityEngine.Application:.cctor()
XLogHandler:Register()
XLogHandler:Register()
GlobalObject:Initialize()

UnityExplorer not working in Operator

I'm trying to use this with melon loader, but it is not working.
Melon Console says that the mod it universal and its working without error.
But when i press F7, nothing happens. But, when the game loads, my cursor is not locked, so
i know its working. Ive also tried changing the keybind in the ini file, but still does not show.
Ive tried It with two games now. And cannot get either to work.

~Phasmophobia (with bypass)
~Operator (just mono)

3.0.0 Building

I am unable to build due to missing dependencies/references for textmeshpro.
I understand this is in its early stage but I want to use this for testing a 32-bit version of melonloader on Among us (currently, the original explorer does not work).

Can you please update the building section or release a built version here?

(Melonloader/il2cpp/32-bit)

Thank you

UnityExplorer Il2cpp BepInEx error

I am getting this error, followed by a bunch of subsequent errors,

Error loading [UnityExplorer 3.2.7] : Method not found: void UnityEngine.Application.add_logMessageReceived(UnityEngine.Application/LogCallback)

[Info   :   BepInEx] 1 plugin to load
[Info   :   BepInEx] Loading [UnityExplorer 3.2.7]
[Info   :Unhollower] Registered mono type UnityExplorer.ExplorerBepInPlugin+ExplorerBehaviour in il2cpp domain
[Message:UnityExplorer] ExplorerBehaviour.Awake
[Error  :   BepInEx] Error loading [UnityExplorer 3.2.7] : Method not found: void UnityEngine.Application.add_logMessageReceived(UnityEngine.Application/LogCallback)
[Message:   BepInEx] Chainloader startup complete
[Error  :Unhollower] Exception in IL2CPP-to-Managed trampoline, not passing it to il2cpp: System.NullReferenceException: Object reference not set to an instance of an object
  at UnityExplorer.UI.UIManager.Update () [0x00001] in <5d1ee40d327745d590652c1f96b7953b>:0 
  at UnityExplorer.ExplorerCore.Update () [0x00018] in <5d1ee40d327745d590652c1f96b7953b>:0 
  at UnityExplorer.ExplorerBepInPlugin+ExplorerBehaviour.Update () [0x00001] in <5d1ee40d327745d590652c1f96b7953b>:0 
  at (wrapper dynamic-method) UnityExplorer.ExplorerBepInPlugin+ExplorerBehaviour.Trampoline_VoidThisUnityExplorer.ExplorerBepInPlugin+ExplorerBehaviourUpdate(intptr,UnhollowerBaseLib.Runtime.Il2CppMethodInfo*)

Exception on startup in Cozy Grove

var map = addMap.Invoke(null, new object[] { asset, "UI" });

Don't know enough about MelonLoader internals to know what the heck is happening here. Possibly asset needs an explicit cast to the assetType type?

New Input System not working with 3.0

Currently, phasmophobia has no actual inputkeys but it seems you guys have the "waspressedthisframe" and thats the only way that you can use the inputkeys. Im having trouble fixing the files to work with phasmophobia. I dont know if you guys might fix it in the future or ill just keep trying.

[Bug] Scene selection doesn't seem to work after loading (DontDestroyOnLoad?)

I noticed that, while starting VRChat using this mod, there are arrow buttons to select between the scenes you can explore. However, as soon as a world loads, the scene selection becomes locked. I suspect this is because CppExplorer isn't looking at the DontDestroyOnLoad scenes, and only looks at the actually active scenes.

(BepInEx) Plugin loads, cursor visible, but main menu not shown in game GTFO

Hi, I'm unsure exactly what the issue appears to be since I see nothing that stands out in the console to me, however UnityExplorer appears to be in a broken/non working state with the game GTFO. Is it possible to look into this issue?

Sorry for lack of information, I have set Log_Unity_Debug = True however the log file is never created. The bep console logs are as follows:

[Message: Preloader] BLEEDING EDGE Build #325 from 3d75179e8684953739fa32ce7d4c7e02879cea07 at master
[Info   :   BepInEx] System platform: Bits64, Windows
[Info   : Preloader] Running under Unity v2019.4.1.15122501
[Info   : Preloader] 0 patcher plugins loaded
[Info   : Preloader] 0 assemblies discovered
[Message:   BepInEx] Chainloader initialized
[Info   :Unhollower] Registered mono type UnhollowerRuntimeLib.DelegateSupport+Il2CppToMonoDelegateReference in il2cpp domain
[Info   :   BepInEx] 1 plugin to load
[Info   :   BepInEx] Loading [UnityExplorer 3.1.5]
[Info   :Unhollower] Registered mono type UnityExplorer.ExplorerBepInPlugin+ExplorerBehaviour in il2cpp domain
[Message:UnityExplorer] ExplorerBehaviour.Awake
[Message:UnityExplorer] Initializing Legacy Input support...
[Message:UnityExplorer] UnityExplorer 3.1.5 initialized.
[Message:   BepInEx] Chainloader startup complete
[Message:     Unity] WwiseUnity: Initialize sound engine... basePath: GeneratedSoundBanks
[Message:     Unity] Wwise defaultPoolSize: 16777216 AkSoundEngine.AK_SOUNDBANK_VERSION: 125
[Message:     Unity] WwiseUnity: Sound engine initialized.
[Message:     Unity] InControl (version 1.6.17 build 9143)
[Message:     Unity] <size=13><color=red>TODO : Implement m_badPacketQuestion/m_badPacketAnswer and the SNet_BadPacketCatcher</color></size>
[Message:     Unity] > GLOBAL SetupManagers, State : Dev HasNetwork: True
[Message:     Unity] GameDataInit.Initialize
[Message:     Unity] ------------------------------------------------------------  MusicManager. Loading soundbank for music! ------------------------------------------------------------
[Message:     Unity] GuiManager.UpdateResolution w: 1920 h: 1080
[Warning:     Unity] The referenced script on this Behaviour (Game Object '<null>') is missing!
[Message:     Unity] CM_PageRundown_New.UpdateRundownExpeditionProgression, RundownManager.RundownProgressionReady: False
[Message:     Unity] PageRundown could NOT get the rundownTimerData from playfab, reverting to a new instance!
[Message:     Unity] Setting watermark revision to 21989
[Message:     Unity] EnemyCostManager : Costs for Normal difficulty loaded
[Message:     Unity] <color=red> >>>>>> GAMESTATEMANAGER CHANGE STATE FROM : Inactive TO: Startup</color>
[Message:     Unity] Vertical fov: 55 aspect: 1.777778 halfV: 0.4799655 gives horizontal: 85.56559
[Message:     Unity] DEFAULTING TO MICROPHONE: Headset Microphone (CORSAIR HS70 PRO Wireless Gaming Headset)
[Message:     Unity] <color=red>FocusStateManager.ChangeState, new state: InActive</color> force: False
[Message:     Unity] GuiManager.UpdateResolution w: 1920 h: 1080
[Message:     Unity] Vertical fov: 55 aspect: 1.777778 halfV: 0.4799655 gives horizontal: 85.56559
[Message:     Unity] GuiManager OnResoultionChange, ScreenRes width: 1920 height: 1080
Setting breakpad minidump AppID = 493520
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  76561198018984325 [API loaded no]
[Message:     Unity] Steamworks.NET initilized
[Message:     Unity] <color=red> >>>>>> GAMESTATEMANAGER CHANGE STATE FROM : Startup TO: Offline</color>
[Message:     Unity] <color=red>FocusStateManager.ChangeState, new state: MainMenu</color> force: False
[Message:     Unity] DropServerManager: Idle
[Message:     Unity] SNET is Online, Woop!
[Message:     Unity] Waiting for network.. DONE!
[Message:     Unity] PlayFabManager.OnSteamInitialized
[Warning:     Unity] Failed to change display to ExclusiveFullscreen...reverting to FullscreenWindow
[Message:UnityExplorer] Loaded UI bundle
[Warning:UnityExplorer] Exception setting up UI: System.MissingMethodException: Method not found: void UnityEngine.Canvas.set_pixelPerfect(bool)
  at UnityExplorer.UI.UIManager.Init () [0x00007] in <eda1e31723544933943831fedf8d2864>:0
  at UnityExplorer.ExplorerCore.CheckUIInit () [0x00029] in <eda1e31723544933943831fedf8d2864>:0
[Message:     Unity] [163 - GetAuthSessionTicketResponse] - 13 -- k_EResultOK
[Message:     Unity] PlayFabManager.OnLoginSuccess. NewlyCreated: False
[Message:     Unity] PlayFabManager.RefreshGlobalTitleData
[Message:     Unity] <color=purple>PlayFab.OnGetCurrentTime Wednesday, 13 January 2021</color>
[Message:     Unity] UpdateLocalPlayerData Done, result: 0 OnSuccess: System.Action
[Message:     Unity] TODO : Skipping icon generation for the hacking tool. It crashes later while trying to construct the tool for rendering
[Warning:     Unity] The character used for Ellipsis is not available in font asset [Perfect DOS VGA 437 Win SDF].
[Message:     Unity] RundownManager: Requesting rundown progression from drop server for rundown key 'Local_25'...
[Message:     Unity] PlayFabMatchMakingManager: Requesting list of QoS servers...
[Message:     Unity] DropServerManager: Enqueueing rundown progression request (rundown: Local_25)
[Message:     Unity] DropServerManager: Woke up
[Message:     Unity] DropServerManager: Making rundown progression request...
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Warning:     Unity] Failed to create agent because there is no valid NavMesh
[Message:     Unity] DropServerManager: Rundown progression request completed successfully
[Message:     Unity] DropServerManager: Sleeping for 2 seconds...
[Message:     Unity] RundownManager: Got rundown progression from drop server
[Message:     Unity] CM_PageRundown_New.OnRundownProgressionFileUpdated
[Message:     Unity] tier: TierA index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierA index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierA index: 2 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierB index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierB index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierB index: 2 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierC index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierC index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierC index: 2 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierD index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierD index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierE index: 0 EXPEDITION LOCKED
[Message:     Unity] CM_PageRundown_New.UpdateRundownExpeditionProgression, RundownManager.RundownProgressionReady: True
[Message:     Unity] DropServerManager: Idle
[Message:     Unity] CM_PageIntro.OnSkip!
[Message:     Unity] GS_Offline.OnLocalPlayerPressStart!
[Message:     Unity] <color=red> >>>>>> GAMESTATEMANAGER CHANGE STATE FROM : Offline TO: NoLobby</color>
[Message:     Unity] <color=#C84800>PageRundown placing rundown, ID: 25 DataBlock: Rundown 004 - EA</color>
[Message:     Unity] tier: TierA index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierA index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierA index: 2 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierB index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierB index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierB index: 2 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierC index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierC index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierC index: 2 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierD index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierD index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierE index: 0 EXPEDITION LOCKED
[Message:     Unity] CM_PageRundown_New.UpdateRundownExpeditionProgression, RundownManager.RundownProgressionReady: True
[Message:     Unity] tier: TierA index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierA index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierA index: 2 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierB index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierB index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierB index: 2 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierC index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierC index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierC index: 2 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierD index: 0 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierD index: 1 EXPEDITION UNLOCKED
[Message:     Unity] tier: TierE index: 0 EXPEDITION LOCKED
[Message:     Unity] CM_PageRundown_New.UpdateRundownExpeditionProgression, RundownManager.RundownProgressionReady: True
[Message:     Unity] Pagerundown GOT RundownTimerData from playfab: ShowScrambledTimer: False ShowCountdownTimer: False Year: 2020 Month: 10 Day: 22 Hour: 11 Minute: 0```



Error loading

[Error : BepInEx] Error loading [UnityExplorer 3.2.0] : Method not found: void UnityEngine.Cursor.set_lockState(UnityEngine.CursorLockMode)

Add Inspectors for types

Object inspector having good features but he cant edit vectors(Vector2,Vector3(most commonly used structures)), Quaternion rotations, and Unity Color struct. This is can help explore some game elements and writing mods for this.

Please add this structures in near release.
Thanks you.

Add Quick Edit Transform values

i see new version 3.* don't have quick edit Transform values such as position, rotation, scale and same for local values.
In 2.* versions it is very helpful for positioning game objects and other things.

ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Can you add this feature in 3.*?

[Error] System.MissingMethodException: bool UnityEngine.Cursor.get_visible()

logs are here:
[08:48:25.007] Registered mono type MelonLoader.Support.MelonLoaderComponent in il2cpp domain
[08:48:25.027] Registered mono type UnhollowerRuntimeLib.DelegateSupport+Il2CppToMonoDelegateReference in il2cpp domain
[08:48:25.043] ------------------------------
[08:48:25.044] Unity 2019.4.1
[08:48:25.045] OS: Microsoft Windows NT 10.0.18363.0
[08:48:25.046] ------------------------------
[08:48:25.047] Name: GTFO
[08:48:25.047] Developer: 10 Chambers Collective
[08:48:25.048] Type: Il2Cpp
[08:48:25.049] ------------------------------
[08:48:25.050] Using v0.2.7.2 Open-Beta
[08:48:25.050] ------------------------------
[08:48:25.393] No Plugins Loaded!
[08:48:25.395] ------------------------------
[08:48:25.397] Explorer v2.0.7 by Sinai
[08:48:25.397] Game Compatibility: Universal
[08:48:25.398] ------------------------------
[08:48:26.227] [Explorer] Initializing Legacy Input support...
[08:48:26.235] [Explorer] [Error] System.MissingMethodException: bool UnityEngine.Cursor.get_visible()

at Explorer.ExplorerCore..ctor () [0x00041] in :0

at Explorer.ExplorerMelonMod.OnApplicationStart () [0x00007] in :0

at MelonLoader.MelonHandler.OnApplicationStart () [0x0015d] in <0b18a86417cb47c8b3fed3a346dfca50>:0
Anything wrong?

should add support for like favorites or presets

like say theirs something you consistently edit or a location you constantly go to should add the ability to like favorite it and just go there instantly. or like a value you edit regularly can favorite that change and just click apply from you favorites list and it apply that change again without having to find that value and enter the numbers again every time. this would be usfull for alot of things especially if bug testing something were your consistently editing certain values or disabling certain things repeatedly.

Compatibility Issue With 32Bit Mono Game

Version: UnityExplorer v3.1.6 for Melonloader Mono
Game: Muse Dash x86
Melonloader version: v0.3.0 ALPHA Pre-Release
Issue: Fails to load mod and crashes on init. Could be an issue with Melonloader with the new release, no idea tbh
Latest.log

Edit:
Game Uses .NET Framework 3.5

Toggling Application causes game to hang and crash

Game: Humankind - OpenDev LUCY
Explorer Version: 3.1.2
Game Type: IL2CPP
Loader: MelonLoader

image

This is the first time I've used your tool, so forgive me if I'm incorrect or even if this is simple!

In Humankind (it's an OpenDev but you need to have pre-ordered the game or watched 3hrs of streamers and get a Twitch drop to access), using Explorer toggles off Amplitude.Mercury.Application and thus the game stays on a black screen. If you enable it, the game begins to load and then hangs before needing to be forcefully closed.

Log file:
(It hangs on AssetDatabase.Load UIData)
https://gist.github.com/Scott-Crawley/09c35bfc67239031ce22e129851ed0e7

Part of me wonders if a delayed start for Explorer would fix this? An option in the config for that would be useful if that's the issue.

Plugin Loads but "Empty"

Hello.

I downloaded the release version (also tried to compile myself to see if anything is different) and plugin loaded.

But, I only get a "black" screen: https://i.imgur.com/ziAoOIt.png

While on the CppExplorer Wiki there are tons of options. Whatever I click, nothing happens and nothing shows up.

My game is Unity 2019.4.2 with latest MelonLoader.

There are no errors during Melon\Game startup and CppExplorer shows, but only what you see in that picture.

Can this be solved in any way?
Thanks.

[Request] Navigate all loaded scenes, instead of just the main

For games like VRChat, multiple parts of the game are loaded in different scenes. For instance, the UI is in a separate scene from the world, but they are loaded and active together. Being able to pick the scene you are inspecting and modifying would allow for a lot more editing and research potential!

Possible Issue with GettingMonoType() For Il2Cpp Games

Apologies to spring this on you so soon after the last issue but someone else has mentioned
Ever since this commit
Considerable frames drops can be noticed when looking at GameObjects with Several Monobehaviours. Leading me to believe that the caching mechanism may not be functioning as intended.
If you want an example use VRChat and in the "World Scene" look for VRCPlayer[Local] and watch your frames die when you try inspect it

[Request] Lock cursor controls in some games while using CppExplorer

When using CppExplorer with VRChat, although I'm sure this applies to others as well, the cursor still functions both within the game, as well as the CppExplorer window. This makes navigation in the menus a lot harder, especially if the game likes to steal your cursor and lock it to the center of the view. A feature to lock the game's ability to lock or utilize the mouse cursor and buttons would be really helpful

Build option for standalone instead of BepInEx / MelonLoader

Hi,

found this sweet little tool randomly when looking around what modding frameworks exist out there. Really great job!

Now I wondered whether I could use this without having to use BepInEx or MelonLoader as these seemed to be mostly used for just getting the initial instance creation and Unity update hook up and running.

So I came up with a few very small changes to the solution, adding a build configuration STANDALONE and using that in a few places and everything seems to be fine.

Maybe you want to merge these changes into mainline? Would be appreciated :)
No experience with GitHub pull requests and stuff, so I will attach the unified diffs for the two existing files and the new source file to this message. PS: Actually attached it as a zip containing these, as it's not even allowed to upload .cs or .patch files here :D

Cheers,
Chris

UnityExplorer7d.zip

GUI assets becoming "corrupted?"

MelonLoader v0.2.7.4, IL2CPP.

When interreacting with the menu issues like this begin occurring, the gui can be interacted with and it appears to be mainly visual:
image
image
image

Functionality issues in latest vrchat update

Latest vrchat update switched obfuscation that now has made UnityExplorer fail to get component types, they now show as UnityEngine.Component if they are VRC made components, switch to ML 3.0 and see if you can fix it? /shrug

Lacking this feature has been making development much slower.

Reflection explorer is not working

I am trying to use Reflection Explorer, but it gives me error: [CppExplorer] [Warning] Exception drawing ReflectionWindow: System.MissingMethodException, void UnityEngine.RectOffset..ctor(int,int,int,int) . How can i fix it?

Crash When Using With VRChat

Even on the current latest version of Explorer
You can consistently crash in VRChat when opening the menu by

  • Open the game
  • When you spawn in your home world
  • Open explorer
  • Close the menu
  • Switch world
  • When you load into the new world
  • Open explorer
  • Bam you have successfully crashed yourself πŸ’―

    There is no useful information in the logs.
    You can however avoid this by switching the scene you are looking at to DontDestroyOnLoad before switching world leading me to believe this most likely is an issue because of the way VRChat handles loading scenes and unloading them. Also just a bit of extra weirdness if you avoid the crash like I mentioned above you don't appear to crash again (until you restart the game) even if you stay on the "world scene" and switch world

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.