Skip to content

Conversation

@akarnokd
Copy link

Unity 6000.3.x changed things around so that the existing UnityExplorer binary could not get bound to stuff.

No code changes required, only a rebuild with the newest Unity DLLs.

Includes the necessary DLLs, three of which was unlocked via BepInEx.AssemblyPublicizer.

I'm on Windows so no idea how the referenced UniverseLib directory is supposed to work.

I compiled it and seems to work in the latest The Planet Crafter build.

Resolves #81

@yukieiji

This comment was marked as resolved.

@yukieiji
Copy link
Owner

I question whether this fix, which adds more support for the deprecated BIE5 and has UE absorb Mono's decompilation issues, is worthwhile.

@yukieiji yukieiji marked this pull request as draft December 18, 2025 18:15
@akarnokd
Copy link
Author

If you are adding a new build target, you should separate the DLLs and keep changes to a minimum.

I don't understand. The new DLLs are in a new separate folder. Do you want me to not duplicate the bepinex and mcs dlls?

adds more support for the deprecated BIE5

BIE6 is not even ready. BIE5 works.

Mono's decompilation issues

Nothing wrong with Mono or decompilation. Unity 6000.3 changed internal data structures. It also offers auto-conversions which are picked up by the compiler just fine. UE has to be recompiled in this new environment to bind and work correcly.

@yukieiji
Copy link
Owner

Do you want me to not duplicate the bepinex and mcs dlls?

That's right.

BIE6 is not even ready. BIE5 works.

I don't think so. I'm modding on BIE6 and haven't encountered any issues whatsoever.

Nothing wrong with Mono or decompilation. Unity 6000.3 changed internal data structures. It also offers auto-conversions which are picked up by the compiler just fine. UE has to be recompiled in this new environment to bind and work correcly.

If that's true, shouldn't we change everything, including Il2Cpp and so on? I don't think it should be limited to a BIE5-specific fix.

I'd also like to ask why the build target is netstandard2.1?

@akarnokd
Copy link
Author

Done deduplicating.

BIE6 is in pre-release for over a year now. If I send people to download BepInEx, they see BIE5 first.

If that's true, shouldn't we change everything

Probably, but I don't have the know-how or means to verify it worked.

netstandard2.1

UnityEngine dll depends on NetStandard 2.1 for some time now. There is probably some DLL forwarding going on in the deployed runtime so that if you compiled against the older DLL targeting public API, that still works today without recompilation.

@yukieiji
Copy link
Owner

What I question about this fix is whether it's worth the cost solely to keep BIE5 UE running in Unity v6.3(Currently, it's just one game).
This fix alone isn't sufficient; it's also necessary to modify the script, GitHubActions, and issue templates, and I will incur maintenance/support costs for the added portions(including this review).

UnityEngine dll depends on NetStandard 2.1 for some time now. There is probably some DLL forwarding going on in the deployed runtime so that if you compiled against the older DLL targeting public API, that still works today without recompilation.

I understand that, but why change to NetStandard 2.1 when it's already built for Net, including for BIE6 and others?
The build itself might pass without issues, but there's a significant difference in available APIs between NetStandard 2.1 and Net47 or Net35. Since Mono is based on Net, it's possible some code might not function properly.

Considering all these factors, it's no exaggeration to say that Unity v6.3 + BIE5 + UE is beyond my support capabilities.

@yukieiji
Copy link
Owner

Before merging this PR, I'd like you to test whether it works properly in BIE6.
If it doesn't work, this fix is reasonable and worth considering for merging.

@akarnokd
Copy link
Author

Getting a working version via the fork is okay for us modding this particular single game. I leave it up to you how you'd want to handle the pre 6000.3 and post 6000.3 binary incompatibility in this repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Unity 6000.3.0f crash due to missing method (Unity v6000.3 with BIE 5)

2 participants