RUMBLE does not support other mod managers. If you want to use a manager, you must use the RUMBLE Mod Manager, a manager specifically designed for this game.
Decompiled source of Singularity v1.0.1
Mods/Singularity.dll
Decompiled 9 months agousing System; using System.Collections; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using CustomMapLib; using Il2CppInterop.Runtime.InteropTypes.Arrays; using Il2CppPhoton.Pun; using Il2CppRUMBLE.Players; using MelonLoader; using Microsoft.CodeAnalysis; using Singularity; using UnityEngine; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: MelonInfo(typeof(Main), "Singularity", "1.0.1", "ERROR", null)] [assembly: MelonGame("Buckethead Entertainment", "RUMBLE")] [assembly: MelonColor(255, 255, 0, 0)] [assembly: MelonAuthorColor(255, 255, 0, 0)] [assembly: AssemblyDescription("")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: VerifyLoaderVersion(0, 6, 2, true)] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("b10c94a1-8a40-4701-bc5b-98eabb44dfea")] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("Singularity")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Singularity")] [assembly: AssemblyTitle("Singularity")] [assembly: AssemblyVersion("1.0.0.0")] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace Singularity { public class Main : Map { public static GameObject skyboxHolder; public bool amhost; public static bool inMatch; public override void OnLateInitializeMelon() { ((Map)this).Initialize("Singularity", "1.0.1", "ERROR", (Map)(object)this); } public Quaternion GetAngleToFaceMe(Vector3 objectPosition, Vector3 lookAtPosition) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) Vector3 val = objectPosition - lookAtPosition; return Quaternion.LookRotation(val); } public override void OnMapCreation() { //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Expected O, but got Unknown //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_036a: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) MelonLogger.Msg("Creating Singularity Map"); using Stream stream = ((MelonBase)this).MelonAssembly.Assembly.GetManifestResourceStream("Singularity.Resources.spacemap"); byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); Il2CppAssetBundle val = Il2CppAssetBundleManager.LoadFromMemory(Il2CppStructArray<byte>.op_Implicit(array)); Material val2 = val.LoadAsset<Material>("BlackHoleMaterial"); GameObject val3 = val.LoadAsset<GameObject>("Blackhole"); GameObject val4 = Object.Instantiate<GameObject>(val3); val4.transform.localPosition = new Vector3(0f, 10.48f, 0f); Transform child = val4.transform.GetChild(0).GetChild(0); child.localPosition = new Vector3(0f, 0f, 0.0655f); child.localScale = new Vector3(5.9855f, 5.8945f, 10f); val4.transform.GetChild(0).localScale = new Vector3(1.2827f, 1.2827f, 0f); val4.transform.localScale = Vector3.one * 2291f; GameObject val5 = ((Map)this).CreatePrimitiveObject((PrimitiveType)3, new Vector3(-15.3327f, -0.53f, 41.7818f), Quaternion.identity, Vector3.zero, (ObjectType)1, (PrimitivePhysicsMaterial)null); for (int i = 0; i < 359; i++) { GameObject val6 = ((Map)this).CreatePrimitiveObject((PrimitiveType)3, val5.transform.forward * 30f, Quaternion.identity, new Vector3(13.8f, 1f, 13.8f), (ObjectType)9, (PrimitivePhysicsMaterial)null); val6.transform.rotation = GetAngleToFaceMe(val6.transform.position, val5.transform.position); val5.transform.Rotate(new Vector3(0f, 1f, 0f)); val6.transform.position = val6.transform.position + new Vector3(0f, 10f, 0f); Object.Destroy((Object)(object)val6.GetComponent<Renderer>()); } Material material = val.LoadAsset<Material>("Purple_4K_Resolution"); GameObject val7 = ((Map)this).CreatePrimitiveObject((PrimitiveType)3, Vector3.zero, Quaternion.identity, Vector3.one, (ObjectType)9, (PrimitivePhysicsMaterial)null); val7.transform.localScale = new Vector3(200f, 1f, 200f); val7.transform.localPosition = new Vector3(0f, -13.7891f, 0f); val7.GetComponent<MeshCollider>().convex = true; ((Collider)val7.GetComponent<MeshCollider>()).isTrigger = true; val7.AddComponent<KillOnCollide>(); Object.Destroy((Object)(object)val7.GetComponent<Renderer>()); skyboxHolder = new GameObject("SkyboxHolder"); Renderer val8 = (Renderer)(object)skyboxHolder.AddComponent<MeshRenderer>(); val8.material = material; Object.DontDestroyOnLoad((Object)(object)skyboxHolder); val4.transform.SetParent(base.mapParent.transform); val4.transform.localPosition = new Vector3(0f, 10.48f, 0f); base.mapParent.transform.position = new Vector3(0f, -11f, 0f); base.HostPedestal.SetFirstSequence(new Vector3(0f, 0f, 30f)); base.ClientPedestal.SetFirstSequence(new Vector3(0f, 0f, -30f)); val.Unload(false); } private Vector3 GetRandomPointOnHemisphere(float radius) { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) float num = Random.Range(0f, (float)Math.PI * 2f); float num2 = Random.Range(0f, (float)Math.PI / 2f); float num3 = radius * Mathf.Sin(num2) * Mathf.Cos(num); float num4 = radius * Mathf.Cos(num2); float num5 = radius * Mathf.Sin(num2) * Mathf.Sin(num); return new Vector3(num3, num4, num5); } private IEnumerator coroutine(bool amHost) { yield return (object)new WaitForSeconds(2f); MelonLogger.Msg("Singularity map loaded! Prepare for chaos."); RenderSettings.skybox = skyboxHolder.GetComponent<Renderer>().material; if ((Object)(object)skyboxHolder != (Object)null) { Renderer renderer2 = skyboxHolder.GetComponent<Renderer>(); if ((Object)(object)renderer2 != (Object)null && (Object)(object)renderer2.material != (Object)null) { RenderSettings.skybox = renderer2.material; } else { MelonLogger.Error("Skybox material not found in SkyboxHolder"); } } else { MelonLogger.Error("SkyboxHolder is null"); } DynamicGI.UpdateEnvironment(); amhost = amHost; GameObject sceneBoundaryPlayer = GameObject.Find("Logic/SceneBoundaryPlayers"); GameObject sceneBoundaryStructure = GameObject.Find("Logic/SceneBoundaryStructures"); Object.Destroy((Object)(object)sceneBoundaryStructure); Object.Destroy((Object)(object)sceneBoundaryPlayer); RenderSettings.ambientMode = (AmbientMode)1; RenderSettings.ambientIntensity = 1f; RenderSettings.defaultReflectionMode = (DefaultReflectionMode)0; RenderSettings.fogColor = Color.black; Light[] lights = Il2CppArrayBase<Light>.op_Implicit(Object.FindObjectsOfType<Light>()); Light[] array = lights; foreach (Light light in array) { light.cullingMask = -1; } Renderer[] renderers = Il2CppArrayBase<Renderer>.op_Implicit(Object.FindObjectsOfType<Renderer>()); Renderer[] array2 = renderers; foreach (Renderer renderer in array2) { renderer.lightProbeUsage = (LightProbeUsage)0; renderer.reflectionProbeUsage = (ReflectionProbeUsage)0; renderer.lightmapIndex = -1; } GameObject directionalLight = GameObject.Find("Lighting and effects/Directional Light"); directionalLight.transform.rotation = Quaternion.Euler(278.8893f, 245.8519f, 0f); Light skylight = directionalLight.GetComponent<Light>(); skylight.color = new Color(1f, 0.64f, 0f); skylight.intensity = 7f; inMatch = true; } public override void OnMapMatchLoad(bool amHost) { MelonCoroutines.Start(coroutine(amHost)); } public override void OnMapDisabled() { inMatch = false; } } [RegisterTypeInIl2Cpp] public class KillOnCollide : MonoBehaviour { private void OnTriggerEnter(Collider other) { MelonLogger.Msg("Collided with thingy ahahahahaaaaaaaaaaaaaaaaaaaaa!"); if (!PhotonNetwork.IsMasterClient) { MelonLogger.Msg("Not master client"); return; } PlayerController component = ((Component)((Component)other).transform.root).GetComponent<PlayerController>(); if ((Object)(object)component != (Object)null) { MelonLogger.Msg("playerController not null"); component.assignedPlayer.Data.HealthPoints = 0; } } } }