TopbarPlus v2 | Construct intuitive topbar icons

Thanks for the report we’ve now fixed this in v2.2.1

4 Likes

I finally got it! Thanks for suggesting the PlayerAdded. I was informed how this function works and I put it into practice in the icons

What I did was create a script in ServerScriptService and put this code:

game:GetService(“Players”).PlayerAdded:Connect(function(Player)
Player.CharacterAdded:Connect(function()
local Humanoid = Player.Character:WaitForChild(“Humanoid”)
Humanoid.Died:Connect(function()
local tested = Player:FindFirstChild(“PlayerGui”):FindFirstChild(“TopbarPlusClientReset”)
if tested then
tested.Disabled = true
end
end)
end)
end)

Then I moved TopbarPlusClientReset to StarterGui (PlayerGui) and I set the ResetOnSpawn property of TestGUIs to true.

And what happened is that the TopbarPlusClientReset is deactivated after I delete the icons and it is activated again causing the icons to be recreated.
Here I leave a short of what happens:

I would like to know if what I have done is more or less good in terms of lag, compatibility, filtering, etc.

How do I see a list of available themes?

I’d still strongly recommend the former solutions although at a glance you should be fine in terms of performance!

You can find a list of all themes here (we currently only have BlueGradient and Default) although you should find making your own themes significantly easier with v2.

3 Likes

This is amazing! I will be using this in my games.

2 Likes

Another question that has arisen (possibly I will have more) can it be made that there is more than one visible gui?

2 Likes

You can bind multiple gui instances to an icon using icon:bindToggleItem, e.g.

local localPlayer = game:GetService("Players").LocalPlayer
local playerGui = localPlayer.PlayerGui
local frames = playerGui.ScreenGui

Icon.new()
    :bindToggleItem(frames.Frame1)
    :bindToggleItem(frames.Frame2)
2 Likes

But in separate icons is not possible?

1 Like

Set an icons deselectWhenOtherIconSelected property to false to achieve this.

This can be done two ways (the latter is useful for when chaining methods):

local icon = Icon.new()
icon.deselectWhenOtherIconSelected = false

or (with TopbarPlus v2.3.0)

Icon.new()
    :setProperty("deselectWhenOtherIconSelected", false)
3 Likes

The new properties function works perfectly
Thanks!

1 Like

This is amazing, thank you for making this!

1 Like

When I remove the playerlist (for a custom one) the icons overlap
Some kind of solution for this?

1 Like

Overlap with your custom playerlist or other icons? Can you send images and/or a stripped down place file of the only the icons and bug?

2 Likes

It was fixed only mysteriously, I think I was using the old module or there was a script that prevented the playerlist.

This is great! I had no idea there was a new release until I looked back at the original documentation. It was gone! So hyped to use this.

How to give this credit correctly?

Right now I put it like this in a credits section:


And what about linking this link, do I have to put it in the game or in the description or in the creation group?
:sweat_smile: :ticket:

That’s absolutely fine! Linking is not so easy in-game so don’t worry about that

4 Likes

Wow, this is really good. Just one issue, what if I wanted to tween the binded Ui? Because, so far, I’ve only seen the option to make something Visible.

Instead of using the :bindToggleItem method you can utilise the icon.deselected and icon.selected events:

icon.deselected:Connect(function()
    -- fade frame in using TweenService 
end)

icon.selected:Connect(function()
    -- fade frame out using TweenService 
end)
4 Likes

I’ve been waiting for this to come out. Pretty neat stuff. Is there any way to select or deselect an icon without firing the select/deselect/toggle events?