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

Hey @ForeverHD So im still having troubles with this one part, where Im using a DANCE GUI.

If I set the GUI to “ResetonSpawn” to FALSE then it will stop working.

But that means it stops working after reset for the TOPBAR.

I tried your way -


local icons = Icon.IconController:getIcons()
for _, icon in pairs(icons) do
	Icon.IconController:clearIconOnSpawn(icon)
end

But im getting the message “index nil with getIcons
any idea?

Howdy, :clearIconOnSpawn should only be used when your GUI’s ResetOnSpawn is true. If you’ve set your value to false you shouldn’t need to do anything else (ensuring your LocalScript is located within that particular GUI or StarterPlayerscripts).

1 Like

Hey @ForeverHD u can add to topbar+ “models frame” can rotate, etc u put a model and u view it like a image but the model rotate!, its a suggestion. i dont need use it!

A little nitpicky, but it would be nice if there was a better indication that the module was required on the server.
Instead of this error: Icon.TopbarPlusGui:335: attempt to index nil with 'PlayerGui'.
Took me some time to realize what exactly was going on.

Like ViewportFrames? Sure we can consider that.

Do you mean required on the client? It shouldn’t be required on the server. We do have this message at the very top of the docs although can certainly look at creating a dedicated notice box to make it more visible:

If not, could you explain further what you mean?

2 Likes

I was using a configuration module that is shared between the client and the server.

For some reason I decided to place references to icons inside of it (for the client to access), and I got that rather confusing error.

It’s a small thing but it would be handy if the module detected internally if it is being required by the server RunService:IsServer(), and if it would use error("Topbarplus can only be required by the client!") to alert the user.

It’s a small thing but doing this can save some time to users that (ab)use the system :wink:.

2 Likes

Absolute time-saver. Huge thanks for creating this module, I’ll definitely be using it in the future. Wish I would have found it sooner.

One thing I noticed was when messing around with the 3rd Party NumberSpinnerModule by boatbomber, after using the convertLabelToNumberSpinner() function, any change to the value of the topBar label (Now a Number Spinner) no longer resized the label to an appropriate size. It was also set too far to the right in most cases. This left the frame constantly too big or too small. Obviously I could have setSize() the frame and gotten it to size properly but I wasn’t sure what exact calculations you had done to determine the proper pixel/offset values. Ultimately I wasn’t planning on using the NumberSpinner in the topBar, just messing around with it, but if someone were to they might struggle with the same issue.

It’s also very possible I just used the function wrong so if that’s the case feel free to let me know.

2 Likes

Good spot thanks, I’ll add this to bugs and have it fixed for the next release. In the meantime the best course of action is as you mentioned, using icon:setSize(x, y) to modify it appropriately.

TopbarPlus keeps saying the requested module had trouble when I require it? Should I redownload it to my ReplicatedStorage? It might have broke durning the use of rblx-to-Rojo. Also, this module is amazing.

EDIT: Does this module consider if you have the leaderstats and emotes disabled (as in the three dots icon)?

Can you share the exact error message please. The easiest way to install TopbarPlus is by simply dragging the model (aka Icon module) into ReplicatedStorage.

Yes it accounts for those and virtually everything you’ll encounter on the topbar.

2 Likes

Here is an image (on mobile rn so I am sending a screenshot):

If you’re requiring the Icon module (I’m assuming on line 5 of your localscript) then there should be more output that that. Can you send all of the error messages please.

1 Like

That’s all that shows. I am gonna try to remove the module and add it back it.

Remove the search for “TopbarPlus” and it should show all the errors.

How can I make a gui that is in the top bar is that I try and it does not come out and on the page of the top bar it does not come out as I do?

@ForeverHD I can make a top bar plus but in Spanish form? I just wrote for you to give me the permissions to do it

hey @ForeverHD I made a top bar and when I try to open and close it no longer works as I do and this is the game for you to try and some screenshots of what I did wrong

Game TopBar Test

Photos

What did I do wrong

Icon.new() must have a variables:

local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui", 30)
local IconModule = game.ReplicatedStorage.Icon
local Icon = require(IconModule)
local IconController = require(IconModule:WaitForChild("IconController"))
local Themes = require(IconModule:WaitForChild("Themes"))

local StarterGui = playerGui:WaitForChild("Prueba")
local Frame = StarterGui:WaitForChild("Frame")

-- To create a button you need to create Icon.new() variable
local Button  = Icon.new()
Button:setImage(5239440263)
Button:setLabel("Prueba")
Button:notify()
Button:setTip("I CANNOT SPEAK SPANISH!!!")
Button:bindToggleKey(Enum.KeyCode.E)
Button:setCaption("Prueba")
Button:setSize(32, 32)

Button.selected:Connect(function()
	Frame:TweenPosition(UDim2.new(-0, 0, 0.405, 0))
end)
Button.deselected:Connect(function()
	Frame:TweenPosition(UDim2.new(-0.112, 0, 0.405, 0))
end)
1 Like

I’m not sure why bindToggleKey won’t fire the selected function but if you try to open and close it too fast, the TweenPosition call is ignored as the frame is already being tweened.

Frame:TweenPosition(PositionHere, Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 1, true)

Argument one provides the position goal, argument two provides the EasingDirection, argument three provides the EasingStyle, argument four provides the length of the tween and argument five tells if the tween can be overridden or not.

The code above should work the same as the code you have in your photo but allows the Tween to be overridden instead of being ignored.
If you would like to know what EasingDirection and EasingStyle does, you can click on the text.

1 Like