UlvakSkillz-RumbleModdingAPI icon

RumbleModdingAPI

API to Help Modders Get Started

Last updated 2 weeks ago
Total downloads 415
Total rating 1 
Categories Mods Tools Libraries
Dependency string UlvakSkillz-RumbleModdingAPI-2.1.4
Dependants 6 other packages depend on this package

This mod requires the following mods to function

LavaGang-MelonLoader-0.5.7 icon
LavaGang-MelonLoader

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

Preferred version: 0.5.7

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.5.7
  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

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()
  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 The Ring:
  • Calls.GameObjects.Map0.*
  1. Able to be Called in The Pit:
  • Calls.GameObjects.Map1.*

Patch Notes

Version 2.1.4

  • Fixed File Pathing to Structure Pools

Version 2.1.3

  • Fixed File Pathing to Both Match Slabs in Both Maps

Version 2.1.2

  • Added Calls.IsMapInitialized()
  • Actually Fixed IsHost()

Version 2.1.1

  • Fixed IsHost() Always Returning True (except in Park)
  • Removed Unused GameObject.Find() that Eluded Deletion

Version 2.1.0

  • Replaced Calls.Scene.SceneChangeDone with Calls.Scene.WhenSceneChanged
  • Added "Calls.GameObjects" and Child Calls to get almost any GameObject

Version 2.0.0

  • Updated to no longer create an instance of the API for every mod that uses it but instead works as a Data Server.
  • Moved Methods into Different Call Paths to Help Organization
  • Added Method Calls.IsHost
  • Players in Actor Number Order

Help And Other Resources

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