You are viewing a potentially older version of this package. View all versions.
UlvakSkillz-RumbleModdingAPI-3.0.0 icon

RumbleModdingAPI

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

Date uploaded 2 weeks ago
Version 3.0.0
Download link UlvakSkillz-RumbleModdingAPI-3.0.0.zip
Downloads 43
Dependency string UlvakSkillz-RumbleModdingAPI-3.0.0

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

Help And Other Resources

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

CHANGELOG

Version 3.0.5

  • (Actually) (ACTUALLY MOVED DLL THIS TIME) Updated to MelonLoader v0.6.2+

Version 3.0.4

  • (Actually) Updated to MelonLoader v0.6.2+

Version 3.0.3

  • Updated to MelonLoader v0.6.2+

Version 3.0.2

  • Fixed ReadMe
  • Made MapInitialized Invoke after getting Health

Version 3.0.1

  • Log Statements Get their ModName again

Version 3.0.0

  • Updated to MelonLoader 0.6.2

Version 2.2.3

  • Fixed Calls.GameObjects.Map1.Map1Production.MainStaticGroup calls pointing to wrong spot
  • Added Mod Color

Version 2.2.2

  • Removed left over Log Message

Version 2.2.1

  • Fixed Changelog Formatting
  • Changed System.Action isMapInitialized to static System.Action onMapInitialized

Version 2.2.0

  • Created Changelog
  • Added "Calls.Create" Class with "NewButton" and "NewText" Methods
  • Added "System.Action isMapInitialized" so others can add a listener to do something on every scene change after it is done initializing each scene change.
  • Added Calls.ControllerMap.(Left/Right)Controller.Get(Trigger, Grip, Primary, Secondary, Joystick, JoystickClick)
  • Changed Managers away from GameObject.Find to ManagerType.instance

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