
Last updated | a day ago |
Total downloads | 7 |
Total rating | 1 |
Categories | Libraries |
Dependency string | Ernedev-ZortLib-1.0.0 |
Dependants | 1 other package depends on this package |
This mod requires the following mods to function

BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100README
ABOUT
A basic library for Zort Made by Erne
USAGE
Reference ZortLib.dll to your project
Add ZortLib as a dependency to your plugin class
[BepInPlugin(pluginGuid, pluginName, pluginVersion)]
[BepInDependency(ZortLib.libGuid, BepInDependency.DependencyFlags.HardDependency)]
public class MyClass : BaseUnityPlugin
{
}
Actions
sceneDelay
: Invokes the actions after delayscene
: Byte for numbering scenes
OnMenu()
: Calls frame per second on menuOnLobby()
: Calls frame per second on lobbyOnGame()
: Calls frame per second on game
OnceMenu()
: Calls once start on menuOnceLobby()
: Calls once start on lobbyOnceGame()
: CCalls once start on game
public void Awake()
{
OnLobby += () => Debug.Log("Im at lobby");
OnceLobby += LobbyOnce;
}
public void LobbyOnce => Debug.Log("Im joined to lobby");
Output :
"Im at lobby"
"Im joined to lobby"
"Im at lobby"
...
ZortUtils
InvokeIn(MonoBehaviour, float, Action)
: Invokes the action
this.InvokeIn(3.5f, () =>
{
Debug.Log("3,5 Seconds passed");
});
GetPrivateVariable<T>(object, string)
: Gets private variable from instanceSetPrivateVariable<T>(object, string, T)
: Gets private variable from instance
public void Awake()
{
string scene = ZortUtils.GetPrivateVariable<string>(MyClass.instance, "scene");
Debug.Log(scene);
ZortUtils.SetPrivateVariable<string>(MyClass.instance, "scene", "haha I changed it");
scene = ZortUtils.GetPrivateVariable<string>(MyClass.instance, "scene");
Debug.Log(scene);
}
... // Another class
private string scene = "nothing";
...
Output :
"nothing"
"haha I changed it"
InvokePrivateVoid(object, string, params object[])
: Invokes private method from instance
public override void OnceGame()
{
ZortUtils.InvokePrivateVoid(MyClass.instance, "Noclip");
}
... // Another class
private void Noclip => Debug.Log("Noclip Open :)");
...
Output :
"Noclip Open :)"
ReplaceMethod(Type, string, Type, string)
: Replaces first method to second method
public void Awake()
{
ZortUtils.ReplaceMethod(typeof(MyClass), "Awake", typeof(MyClass), "Method2");
Method1();
Method2();
}
private void Method1() => Debug.Log("First Method");
private void Method2() => Debug.Log("Second Method");
Output :
"First Method"
"First Method"
PatchUtils
RegisterCallback(Type, string, Action, bool = false)
: Registers a action calling after from methodUnRegisterCallback(Type, string)
: UnRegisters a callback
public override void OnceGame()
{
// If its private -> RegisterCallback("Myclass", "StartGame", ...);
RegisterCallback(typeof(MyClass), nameof(MyClass.StartGame), ()=> {
Debug.Log("Noo I'm after the game starts");
}, false);
}
public void StartGame() => Debug.Log("Game Is Started");
Output :
"Game Is Started"
"Noo I'm after the game starts"
Mono
Just use Mono.Instance if you need MonoBehaviour on anywhere
Mono.Instance.InvokeIn(1f, () => Debug.Log("Hi"));