Next Gen Studio UI Preview is here! [Beta]

Wait. Custom tabs are out already?

Yes, although you need to use a .JSON file
Im horrible at explaining things, just read the posts above lol
The CustomRibbonTabs folder is found in your roblox folder

1 Like

Copied me ; )

Just curious, does the start page flicker like a VHS for you? I get that effect sometimes but its more amusing than annoying.

i’ve been looking for it for a while and i can’t seem to find it for some reason

Plugins, you can map to a PluginToolbarButton; however I ran into issues where the plugin button didn’t initalize fast enough so the ribbon seemed to not work some of the time.

1 Like

I’m running into the same issue, only some plugins that I downloaded locally seemed fast enough to initialize for it to show on the Ribbon.

It’s a known issue with certain Nvidia DirectX drivers on certain GPUs (all of them have been laptops). There’s a few workarounds to try but the easiest to switch Studio to using Vulkan Studio Settings > Rendering > General > Graphics Mode

1 Like

There’s some non-intuitive things you have to do to get a plugin button working. All of this will go away when there’s a nice UI to just simply place buttons visually. Here’s some quick tips (just to repeat: I’m working on a more detailed how-to we’ll publish as a whole new topic):

  • Create a new entry in the “Controls” array
  • Give it an “Id” that is unique within that file
  • Give it a “Type” field. There’s a bunch of options here but “IconButton” is probably what you want
  • Use the Print Actions thing in the right click menu to dump the actions available
    • For an IconButton, you’re going to copy the “Uri” block from the action you’re wanting to use, paste it in your control entry, and rename it to “Action”

Here’s a simple example of the Emulator and plugin DataStore Editor as IconButtons:

{
    "Name": "My New Tab",
    "Controls": [
        {
            "Id": "DeviceEmulator",
            "Type": "IconButton",
            "Action": {
                "PluginId": "DeviceEmulation",
                "DataModel": "Standalone",
                "Category": "Actions",
                "ItemId": "Toggle"
            }
        },
        {
            "Id": "DSEditor",
            "Type": "IconButton",
            "Action": {
                "PluginId": "701506235",
                "DataModel": "Edit",
                "Category": "Actions",
                "PluginType": "Cloud",
                "ItemId": "DataStore Editor_DataStoreEditor"
            }
        }
    ]
}
5 Likes

Its under the ROBLOX folder, its the folder with (presumably) your roblox ID, and then you find the tab

1 Like

Windows: %LOCALAPPDATA%\Roblox\<userID>\CustomRibbonTabs
MacOS : ~/Documents/Roblox/<userID>/CustomRibbonTabs

These locations will not be stomped with version udpates. One .json file per tab.

5 Likes

Thank you! Now I understand what “Print Actions” does lol.

1 Like

Yep! Also note: not every action has a Uri block. Those are actions that have not yet been ported over to the new architecture. We will eventually get everything moved over but there’s 200+ actions that should work.

1 Like

how can i get local plugins in the bar it gives error that the itemid with toggle does not exist

and also how can i put items from other dropdowns into another i want all ui into 1 dropdown


{
    "Name": "UI(custom)",
    "Controls": [
 {
            "Type": "SplitButton",
            "Id": "GUI",
"Id": "Frame",
            "ShowSettingOptions": true,
            "DefaultAction": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "Insert/ScreenGui",
                "Category": "Actions"
            },
            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertGui",
                "Category": "Settings"
            },

            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertUIFrame",
                "Category": "Settings"
            },
        },
        {
            "Type": "SplitButton",
            "Id": "GUI",
            "ShowSettingOptions": true,
            "DefaultAction": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "Insert/Frame",
                "Category": "Actions"
            },
            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertGui",
                "Category": "Settings"
            }
        },
        {
            "Type": "SplitButton",
            "FastFlag": "!UpdateUITabLuaRibbon",
            "Id": "Label",
            "ShowSettingOptions": true,
            "DefaultAction": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "Insert/TextLabel",
                "Category": "Actions"
            },
            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertGui",
                "Category": "Settings"
            }
        },
        {
            "Type": "SplitButton",
            "FastFlag": "!UpdateUITabLuaRibbon",
            "Id": "Input",
            "ShowSettingOptions": true,
            "DefaultAction": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "Insert/TextButton",
                "Category": "Actions"
            },
            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertGui",
                "Category": "Settings"
            }
        },
        {
            "Type": "SplitButton",
            "FastFlag": "!UpdateUITabLuaRibbon",
            "Id": "Style",
            "ShowSettingOptions": true,
            "DefaultAction": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "Insert/UICorner",
                "Category": "Actions"
            },
            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertGui",
                "Category": "Settings"
            }
        },
        {
            "Type": "SplitButton",
            "FastFlag": "UpdateUITabLuaRibbon",
            "Id": "Label",
            "ShowSettingOptions": true,
            "DefaultAction": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "Insert/ImageLabel",
                "Category": "Actions"
            },
            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertGui",
                "Category": "Settings"
            }
        },
        {
            "Type": "SplitButton",
            "FastFlag": "UpdateUITabLuaRibbon",
            "Id": "Input",
            "ShowSettingOptions": true,
            "DefaultAction": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "Insert/ImageButton",
                "Category": "Actions"
            },
            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertGui",
                "Category": "Settings"
            }
        },
        {
            "Type": "SplitButton",
            "FastFlag": "UpdateUITabLuaRibbon",
            "Id": "Appearance",
            "ShowSettingOptions": true,
            "DefaultAction": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "Insert/UICorner",
                "Category": "Actions"
            },
            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertGui",
                "Category": "Settings"
            }
        },
        {
            "Type": "SplitButton",
            "Id": "Layout",
            "ShowSettingOptions": true,
            "DefaultAction": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "Insert/UIGridLayout",
                "Category": "Actions"
            },
            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertGui",
                "Category": "Settings"
            }
        },
        {
            "Type": "SplitButton",
            "Id": "Constraint",
            "ShowSettingOptions": true,
            "DefaultAction": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "Insert/UIAspectRatioConstraint",
                "Category": "Actions"
            },
            "Setting": {
                "PluginId": "BuilderTools",
                "DataModel": "Standalone",
                "ItemId": "InsertGui",
                "Category": "Settings"
            }
        },

        {
            "Id": "Select",
            "Type": "IconButton",
            "Action": {
                "PluginId": "Select",
                "DataModel": "Standalone",
                "Category": "Actions",
                "ItemId": "Toggle"
            }
        },

{
            "Id": "DeviceEmulator",
            "Type": "IconButton",
            "Action": {
                "PluginId": "DeviceEmulation",
                "DataModel": "Standalone",
                "Category": "Actions",
                "ItemId": "Toggle"
            }
        },
{
            "Id": "GameSettings",
            "Type": "IconButton",
            "Action": {
                "PluginId": "GameSettings",
                "DataModel": "Standalone",
                "Category": "Actions",
                "ItemId": "Toggle"
            }
        },
        {
            "Id": "AutoProperties",
            "Type": "IconButton",
            "Action": {
                "PluginId": "user_auto properties.rbxmx",
                "DataModel": "Edit",
                "Category": "Actions",
                "PluginType": "Cloud",
                "ItemId": ""
            }
        }
    ]
}
1 Like

An extensive tutorial will be released soon, you should wait for that. In the meantime, as Paul said above, you can use the “Print Actions” button to find the Id by right-clicking the ribbon.

that doesnt work for me though

That button I believe is enabled through a FFlag. You should wait for the documentation then.

i can see the button but it does nothing

Yeah I had trouble making a custom split button on my own too. @Saphirae_13 had to walk me through it so maybe we can do a mini explainer in the how-to post.

Print actions should dump to the Output window. Does it not do that for you?

Pro-tip: clear the Output window first, then print actions, and (assuming it works) paste the output into a code editor that can format JSON. VSCode works well.

2 Likes

Yeah the schema we use for this is pretty complex. I think Paul’s upcoming explainer on this will really help clarify how to make what you want to see.

3 Likes

Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain. Terrain.
Would you like to terrain or would you like to terrain? Hmmm???

3 Likes