Mods and UserData folders into Rumble Source DirectoryThis mod allows you to set your username and title to anything you like. No more character limits or boring, static names.
Simple Config tabEnable Simple Config box is checkedUserData/NameBending/customBentNameTEMPLATE.json and UserData/NameBending/customBentTitleTEMPLATE.json)You can preview your customizations by going to the Name Plate category in the UI and enabling Nameplate Preview.
Changes you make with this mod will only show up in certain places (name plates, the MatchInfo board, RumbleHUD plates) and not on in others: (park board, leaderboard, friends list).
If you change your custom name or title while the game is open, press N to update it. This hotkey can be changed in the UI settings.
The provided JSON file templates should get you started in the JSON files. Here is a comprehensive guide to the formatting:
You can make sure your JSON is correct with a validator like JSON Lint
Frames are used to create animations. They are defined with an index (the part of the animation they appear in) and a string (the frame itself). Each frame is like a regular name, but the mod will cycle through them to create an animation. The index numbers are usually defined in order (0, 1, 2, 3...) but they can skip numbers to hold on frames for longer.
{
"altText": "Frame Guy",
"frameDuration": 500,
"frames":
{
"0": "A",
"1": "AL",
"2": "ALP",
"3": "ALPH",
"4": "ALPHA",
"15": "ALPHA S",
"16": "ALPHA SH",
"17": "ALPHA SHA",
"18": "ALPHA SHAL",
"19": "ALPHA SHALE",
"30": "ALPHA SHALE",
}
}
Fonts can be specified in a "fonts" object formatted similarly to "frames" (requiring an index number and a font). Place it in the same place as the frames, within a variation. Not every font has to have a corresponding frame, and not every frame has to have a corresponding font.
The available fonts are as follows:
{
"altText": "Font Guy",
"frameDuration": 500,
"frames":
{
"0": "Do you like...",
"4": "Arial?",
"5": "Chinese Rocks?",
"6": "Comic Sans?",
"7": "CRUMBLE?",
"8": "Impact?",
"9": "Minecraft?",
"10": "Roboto?",
"11": "Times New Roman?",
"12": "TUMBLE?",
"16": "No?",
"20": "Then we'll stick with Good Dog Plain",
"28": "Then we'll stick with Good Dog Plain"
},
"fonts":
{
"0": "GoodDogPlain",
"4": "Arial",
"5": "ChineseRocks",
"6": "ComicSans",
"7": "Crumble",
"8": "Impact",
"9": "Minecraft",
"10": "Roboto",
"11": "TimesNewRoman",
"12": "Tumble",
"16": "GoodDogPlain"
}
}
Fields are like variables, allowing you to store, edit, reuse, and animate between values. There are also Factory Fields which allow you to use procedural values, such as random numbers.
You create a field with an identifier and a default value. When the identifier is used within a frame (surrounded by curly braces {}), it will be replaced with the field's current value.
{
"frameDuration": 600,
"fields":
{
"c": "<#F00>"
},
"frames":
{
"0": "{c}Red",
"1": "{c}Fox",
"2": "{c}Red Fox",
"15": "{c}Red Fox"
}
}
c is used to store a color, then applied to each frame. The first frame {c}Red will be interpreted as <#F00>Red. This allows for the user to easily change the color and have it apply to every frame.{
"frameDuration": 300,
"interpolation": true,
"fields":
{
"a": "#F80",
"b": "#F30"
},
"frames":
{
"0": "<{a=#F80}>Rumble <{b=#F30}>Guy!",
"1": "<{a=#F30}>Rumble <{b=#F80}>Guy!"
}
}
= after the identifier, then the new value. Here, the interpolation property has been enabled, so the colors will smoothly fade between the two frames.{
"fields":
{
"pos_x": "RANDOM|-0.2|0.2",
"pos_y": "RANDOM|-0.5|0.2",
"rot": "RANDOM|-5|5",
},
"frames":
{
"0": "<space={pos_x}><voffset={pos_y}><rotate={rot}>A"
}
}
RANDOM to produce a random value every time the frame is drawn. The field's value is defined with the Factory Field in all capital letters, followed by the minimum and maximum values separated by vertical bars |. Every time a Rumble frame is rendered, a random value between the min and max will be used. All Factory Fields are listed below:^ These can be combined with underscores _ (e.g: INSTANCE_RANDOM or FRAME_RANDOM or FRAME_INSTANCE_RANDOM)
FRAME_PROGRESS|10|15)FRAME_PROGRESS but applies across the entire current loop instead of one frameFRAME|10|3 will start with 10 on the first frame, then go up by 3 every frame)FRAME.{
"frameDuration": 500,
"autoScaling": false,
"fields":
{
"pos_x": "INSTANCE_RANDOM|-0.1|0.1",
"pos_y": "INSTANCE_RANDOM|-0.1|0.1",
"rot": "INSTANCE_RANDOM|-5|5",
"c": "<space={pos_x}><voffset={pos_y}><rotate={rot}>A</cspace></voffset></rotate>",
},
"frames":
{
"0": "<scale=1.05><pos=0.1>{c}{c}{c}{c}{c}{c}{c}{c}{c}{c}{c}{c}"
}
}
c. This field can then be used many times to simplify the process. INSTANCE_RANDOM is also used so that each letter A has different random values.{
"frameDuration": 500,
"fields":
{
"a|.0": "TIMER|0|10"
}
"frames":
{
"0": "{a}"
}
}
|. Available formats are as follows:"a|0.00" could show something like 3.14)"a|2" would be able to show values 2, 4, 6, 8...)"a|#|2" could show something like 0F){
"frameDuration": 50,
"autoScaling": false,
"fields":
{
"g1|#|2": "INSTANCE_FRAME_RANDOM|150|200",
"g2|#|2": "INSTANCE_FRAME_RANDOM|50|120",
"c1": "<#FF{g1}00>",
"c2": "<#FF{g2}00>"
},
"frames":
{
"0": "<scale=0.87%>{c1}T{c1}a{c1}c{c1}o{c2}S{c2}l{c2}a{c2}y{c2}e{c2}r"
}
}
c1 and c2 is randomized between two specified extremes, then included in the rest of the color code.Depths are formatted similarly to frames and fonts, but with a number specified for each index. This number will push the text forward/backward off the nameplate, and can be animated per frame.
Images are supported through links. If an image is on the internet and can be accessed directly with a link, it can be used. If you'd like to upload your own image, I recommend using Dropbox (instructions for this can be found here: https://dev.to/devded/how-to-host-images-with-dropbox-43hi)
They are defined in their own section, just like Frames, Fonts, and Fields. Each image has 7 parameters:
This can be done by posting a link to your image in the #image-verification channel under the Mod Resources tab in the Rumble Modding Discord server. A moderator will reply to you with the link and token you need to use (as specified above). If either the link or the token don't match exactly, or the image hosted at the link changes at all, the image will not show.
There is a setting to allow yourself to see any images, even if they haven't been verified. This requires you to accept a disclaimer outlining the risks within the UI.
Get help and find other resources in the Modding Discord: https://discord.gg/fsbcnZgzfa