UlvakSkillz-RumbleModdingAPI icon

RumbleModdingAPI

API to Help Modders Get Started and to remove the necessity of GameObject.Find

Last updated 2 months ago
Total downloads 3510
Total rating 8 
Categories Mods Tools Libraries
Dependency string UlvakSkillz-RumbleModdingAPI-3.1.3
Dependants 57 other packages depend on this package

This mod requires the following mods to function

LavaGang-MelonLoader-0.6.4 icon
LavaGang-MelonLoader

The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono

Preferred version: 0.6.4

README

I created this API to Help others get into the Modding Scene for Rumble.

Video Guide


How to Include the API in your Project:

  1. Install MelonLoader Version 0.6.2+
  2. Run Game (This initialized MelonLoader) (Close at T-Pose)
  3. Put RumbleModdingAPI.dll in your Mods Folder
  4. Add RumbleModdingAPI.dll as a Reference in your Project.
  5. Add "using RumbleModdingAPI;" at the top of your code / with the other "using"s
  6. Call Methods Supplied By Typing "Calls." followed by the Method Name (Visual Studios Supplies the List)
  • Calls.IsInitialized() - Use when messing with things in the loader to make sure API is ready
  • Calls.Scene.[Methods] - Used to see if scene changed
  • Calls.Managers.[Methods] - Used to access Managers
  • Calls.Gym.[Methods] - Used to access Gym Specific Objects
  • Calls.Park.[Methods] - Used to access Park Specific Objects
  • Calls.Pools.Structures.Methods - Used to access Structure Pools
  • Calls.Pools.ShiftStones.Methods - Used to access ShiftStone Pools
  • Calls.Players.Methods - Used for Quick access to different Players
  • Calls.Create.[Methods] - Used to create new Text/Buttons
  • Calls.ControllerMap.(Left/Right)Controller.[Methods] - Used to read Controller Inputs
  • Calls.onMapInitialized - System.Action to use as a listener to Auto-Run a Method when map is done Loading

In-Depth How to Setup a Project to Use the API:

  1. Drag the Mods Folder into the RUMBLE Folder

  2. Click Create New Project

  3. Select Class Library (.NET Framework)

  4. Name Project

  5. Add References (Browse to "RUMBLE\MelonLoader\Managed" for Rumble References)

  • Add MelonLoader.dll (MelonLoader Folder)
  • Add RUMBLE.Runtime.dll (Managed Folder)
  • Add RumbleModdingAPI.dll (Mods Folder)
  1. Open Properties Dropdown and Open (double click) "AssemblyInfo.cs"

  2. In AssemblyInfo.cs, Add Usings at the Top:

  • using MelonLoader;
  • using YourModsName;
  1. After the Usings, Put:
  • [assembly: MelonInfo(typeof(Class1), "YourModsName", "1.0.0", "YourName")]
  • [assembly: MelonGame("Buckethead Entertainment", "RUMBLE")]
  1. Open Class File (default class name is "Class1")

  2. Add usings at the Top:

  • using MelonLoader;
  • using RumbleModdingAPI;
  1. Add " : MelonMod" after the Class Name

  2. Inside the Class Add a Function:

  • public override void OnSceneWasLoaded(int buildIndex, string sceneName) {}
  1. (Optional Test) Add Reference to Add this Line inside OnSceneWasLoaded: (On Gym Load, it'll output the player's name)
  • if (sceneName == "Gym") { MelonLogger.Msg(Calls.Managers.GetPlayerManager().localPlayer.Data.GeneralData.PublicUsername); }
  1. Build Project

  2. Open File Explorer to "C:\Users\YOURUSER\source\repos\YOURPROJECT\YOURPROJECT\obj\Debug"

  • Copy YOURPROJECT.dll into the Rumble Mods Folder (RUMBLE/Mods)
  1. Open Rumble and Load into the Gym. Then Look at the Console (Black Window)

  2. Subscribe to UlvakSkillz (and Like this Mod)


Calls:

  1. Able to be Called Anytime:
  • Calls.GameObjects.DDOL.*
  • Calls.IsInitialized()
  • Calls.IsMapInitialized()
  • Calls.Scene
    • .WhenSceneChanged()
    • .GetSceneName()
  • Calls.Managers
    • .GetGameManager()
    • .GetNetworkManager()
    • .GetPlayerManager()
    • .GetInputManager()
    • .GetSceneManager()
    • .GetNotificationManager()
    • .GetStackManager()
    • .GetQualityManager()
    • .GetSocialHandler()
    • .GetSlabManager()
    • .GetRecordingCamera()
    • .GetCombatManager()
    • .GetBHapticsManager()
    • .GetPhotonHandler()
    • .GetAudioManager()
    • .GetSteamAudioManager()
    • .GetUIGameObject()
    • .GetPoolManager()
  • Calls.Pools.Structures
    • .GetPoolDisc()
    • .GetPoolPillar()
    • .GetPoolBall()
    • .GetPoolCube()
    • .GetPoolWall()
    • .GetPoolSmallRock()
    • .GetPoolLargeRock()
    • .GetPoolBoulderBall()
  • Calls.Pools.ShiftStones
    • .GetPoolVolatileStone()
    • .GetPoolChargeStone()
    • .GetPoolSurgeStone()
    • .GetPoolFlowStone()
    • .GetPoolGuardStone()
    • .GetPoolStubbornStone()
    • .GetPoolAdamantStone()
    • .GetPoolVigorStone()
  • Calls.Players
    • .IsHost()
    • .GetAllPlayers()
    • .GetLocalPlayer()
    • .GetPlayerController()
    • .GetEnemyPlayers()
    • .GetClosestPlayer(UnityEngine.Vector3 pos, bool ignoreLocalController)
    • .GetClosestPlayer(UnityEngine.Vector3 pos, PlayerController ignoreController)
    • .GetPlayerByControllerType(RUMBLE.Players.ControllerType controllerType)
    • .GetPlayerByActorNo(int actorNumber)
    • .GetPlayersInActorNoOrder()
    • .GetLocalHealthbarGameObject()
  • Calls.Create (Callable after first Gym Load)
    • .NewText()
    • .NewText(string text, float textSize, Color textColor, UnityEngine.Vector3 textPosition, Quaternion textRotation)
    • .NewButton()
    • .NewButton(UnityEngine.Vector3 buttonPosition, Quaternion buttonRotation)
    • .NewButton(Action action)
    • .NewButton(UnityEngine.Vector3 buttonPosition, Quaternion buttonRotation, Action action)
  • Calls.ControllerMap
    • .LeftController.Get(Trigger, Grip, Primary, Secondary, Joystick, JoystickClick)
    • .RightController.Get(Trigger, Grip, Primary, Secondary, Joystick, JoystickClick)
  1. Able to be Called in the Gym:
  • Calls.GameObjects.Gym.*
  • Calls.Gym
    • .GetGymMailTube()
    • .GetGymMatchConsole()
    • .GetGymRegionSelectorGameObject()
    • .GetGymBeltRack()
    • .GetGymFriendBoard()
    • .GetParkBoardBasicGymVariant()
    • .GetGymParkBoardGymVariant()
    • .GetGymHoward()
    • .GetGymPoseGhostHandler()
    • .GetGymDailyLeaderboard()
    • .GetGymRankStatusSlabGameObject()
    • .GetGymCommunitySlabGameObject()
    • .GetGymShiftstoneQuickswapper()
    • .GetGymShiftstoneCabinet()
    • .GetGymGondolaGameObject()
    • .GetGymRanksGameObject()
    • .GetGymSpawnPointHandler()
    • .GetGymMatchmakingHandler()
    • .GetGymRewardHandler()
  1. Able to be Called in the Park:
  • Calls.GameObjects.Park.*
  • Calls.Park
    • .GetParkSpawnPointHandler()
    • .GetParkInstance()
    • .GetParkFriendBoard()
    • .GetParkBoardBasicParkVariant()
    • .GetParkBoardParkVariant()
    • .GetParkShiftstoneQuickswapper()
  1. Able to be Called in Matchmaking:
  • Calls.Mods
    • .getMyModString()
    • .getOpponentModString()
    • .getMyMods()
    • .getOpponentMods()
    • .doesOpponentHaveMod(string modName, string modVersion, bool matchVersion = true)
  1. Able to be Called in The Ring:
  • Calls.GameObjects.Map0.*
  1. Able to be Called in The Pit:
  • Calls.GameObjects.Map1.*
  1. Actions to Listen to:
  • Calls.onMapInitialized (used shortly after scene change when api has scene items)
  • Calls.onModStringRecieved (used right after mod list is recieved to check opponents mods)

Help And Other Resources

Get help and find other resources in the Modding Discord: https://discord.gg/fsbcnZgzfa