Skip to content

H8PPY/RuntimeUnityLoader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Runtime Unity Loader (RUL)

R.U.L. (also known as Runtime Unity Loader) is a runtime based IL2CPP loader, being designed to simplify functionality and security of mod loading. I made this as a base for developers to use on their own projects if needed!

(NOTE: It is recommended to use the source rather than a release, as the base does not provide much more)

It comes with changes with how modders can interact with the loader, changes include:

  • Simple runtime-based C# API Generation, for practically any game.
  • Export resolving during runtime.
  • Class resolving during runtime.
  • Direct interface for interaction with the UnityEngine.
  • Support for UnityDoorstop (for those that cannot setup a loader themselves)
  • And some other things I forgot to include.

To use this, pair it up with UnityDoorstop OR your own loader if needed! You will need to do some setup for both to have it properly initialize however when setup it should function like normal. Look up CoreCLR injection for more information about making it yourself.

You may also check out this repo for references: https://github.com/renkun-ken/cpp-coreclr (From: https://yizhang82.dev/hosting-coreclr)

Important

  1. I do not work on this anymore, mostly since I am focusing on other things. I mostly will not change anything myself unless otherwise, if you would like something to be implemented make a pull request with your work, or fork it and change it yourself
  2. I am not responsible for the usage of the source code by any means, potential risks may be ahead if using users offspring from this project! Please double-check what you are using and make sure it's trustworthy.

Compiling

For windows users, it is very straight forward process. Do as follows:

  • Open Visual Studio OR Visual Studio Code. Make sure to have dependencies installed (net 9.0)
  • Open project and compile, for VSC users you will need to install the C# extension for compilation to work.

For linux users, you will need to setup Visual Studio Code OR a virtual machine. For VM compiling, do as follows:

  • Start a Windows10 QEMU session (basic install of the ISO, setup, Recommended: 8GB ram 4-Core, 3D Acceleration if possible)
  • For easier file transfering, setup virtio-fs file system passthrough to share files, or setup an FTP server.
  • Install Visual Studio and Dependencies (net 9.0, others)
  • Open project and compile.

Note

If you want an actual UI for interacting with QEMU, you may use solutions such as VMM (Virtual Machine Manager), Boxes, or others.

Specifically for Gentoo Linux users, do these steps as follows:

  • Install the C# SDK, you may choose to use the binary or source, as root enter one of the following:
emerge --ask dev-dotnet/dotnet-sdk-bin:9.0
emerge --ask dev-dotnet/dotnet-sdk:9.0
  • When finished, CD into the project folder (opening the project in terminal) OR open the project in your favorite editor such as VSC, Vim, or practically anything.
  • To compile the program, you will need to go into LCore folder, going into the LCore folder you can run this command in the terminal to build the project:
dotnet build

If the gentoo solution does not work for you, refer to compiling via VM.

About

A Runtime-Based loader for Unity games that use IL2CPP, made as a base!

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages