[v3!] TopbarPlus v3.0.0 | Construct intuitive topbar icons; customise them with themes, dropdowns, captions, labels and much more

Hello, I wonder how I can remove the rounded corner modification in my own Theme.

I want a solution when i press another gui and the tween one will openrobloxapp-20211026-0141373.wmv (575.7 KB)

Very awesome module, But my icon images do not seem to be loading…
image

Are you using you’re using the Image ID and not the Decal ID?

If you have BTRoblox installed it’s easy to get it with one click.

Afaik TopbarPlus doesn’t handle this edge case.

1 Like

Oh i’ll try that once i get on, Thanks!

icon:set("iconCornerRadius", UDim.new(0, 0))

1 Like

Thanks, didn’t know it disable it completly!

1 Like

Funny enough we’ve already changed the behaviour to this (to destroy the icons) although just haven’t deployed the update. I should have some time in a few weeks to fully test and deploy the next update which includes this change.

Thanks I’ll look into this!

You must ensure the UI doesn’t reset on spawn or that you re-listen for the UI when the the player does respawn.

This appears to be an issue with how you’re indexing ‘Uniforms’ as apposed to a bug with TopbarPlus. Try using :WaitForChild().

How are you binding your UIs to the buttons? e.g. icon:bindToggleItem(guiObjectOrLayerCollector)

Thanks for the report, this will be fixed in the next update, see the top response to Marinist for more details.

For the time being, you will have to manually destroy the icons within a dropdown before setting new dropdown icons:

local dropdownIcons = icon.dropdownIcons
for _, icon in pairs(dropdownIcons) do
    icon:Destroy()
end

I’m not 100% sure of what you wish to achieve, could you explain further?

You can achieve this by modifying icon.deselectWhenOtherIconSelected.

This isn’t possible, you’d have to create and write your own fork of TopbarPlus to achieve this.

You can also achieve this by first looking at the properties table here…

… then doing icon:set(propertName, value)

This isn’t very obvious in the docs so I plan to add more examples.

You might be interested in icon:select() and icon:deselect()

2 Likes

So essentially, when you have a key binded to a button thats inside a menu the button will do its function, but the menu will not open to show said button, even though when you open the menu the button is selected.

Is it possible to select multiple items at the same time? For example, on the Playground, there’s a ‘mute ambience’ button. I would’ve expected that to have stayed selected if I pressed other objects such as ‘shop.’

https://gyazo.com/032a41b99c5c0b0a5e5d98e2bd25723e.gif

EDIT: reading the documentation helps… future readers:
Probably worth updating the playground with this, seems to make sense IMO.

icon.deselectWhenOtherIconSelected = true
3 Likes

First of all, I found two “bugs” at once … at least I think. It is cool your Icons supports Rich text, but the function you are getting text size takes the whole text. As a result, when you try to set icon label to this string <b><font color=\"#04afec\">DPM Accounts</font></b>, the result is very very long icon: image. The second thing is the aligment - when the button is longer than the last icon’s end (that holds the hidden icons cuz of small screen size), the icon is aligned by the end of the list of icons (for right alignent the most left icon’s end) and you cannot see the whole icon.

Then, I would like to suggest a few things. (Please edit me if the thing was suggested already, I gave up at 119)
I don’t think it would be big problem, but it can short the code a little bit more - multiple iconStates!
You can handle it by reading other arguments (second and third), or by reading a table.
Example:

Icon:setLabel("Account", "deselected", "hovering")
-- or
Icon:setLabel("Account", {"deselected", "hovering"})

Aaand I forgot the two more suggestions … so maybe next time =D

I don’t think @ForeverHD can fix this, it happens in all TextObjects that has automatic scaling. It’d probably an issue Roblox need to fix themselves

1 Like

I think developer(s) is using TextService:GetTextSize() method, which probably does not handle this problem … idk now. I also think if developer(s) find it worth, he (they … sorry, I really don’t know now) would do it. I don’t know about any other auto scaling for objects, and if the function really does not support rich text, I will try to find or report the problem as bug in another article.

When I’m thinking about it, if I would test that myself this bug report does not must be there … I will try it next day

Edit: Did some fast research and found out this might be problem from Roblox, same as I already found an article about it.
And, if there is no mistake in what I’ve read, term “developers” should be right.

1 Like

How can I make Topbar only visible to people who enter their name?

You can disable the top bar using the following code

task.wait()
pcall(function()
	local starterGui = game:GetService('StarterGui')
	starterGui:SetCore("TopbarEnabled", false) --// true to enable
end)

i keep getting these errors when im trying to use it

Module code did not return exactly one value - Studio
10:02:21.124 Requested module experienced an error while loading

:setImage() doesn’t work for me :frowning:

Man, this asset is one of most useful things on Roblox. Thank you for making this. I really needed it as a beginning developer :slight_smile:

@ForeverHD You’re awesome.

P.S. I can’t wait for Nanoblox to fully come out.

1 Like

How would I be able to add a uistroke to the topbar?