Strange BillboardGui behaviour

I’ve been encountering some dodgy BillboardGui behavior and I’m not sure if it’s with my code or not. This may be extremely basic but I’ve been stuck on this for a little while now and would rather ask for help.

I have a team skill system. When you join in by clicking, a bubble will show up above your head with a randomly selected message, such as ‘Count me in!’. It always works the first time you join a team skill, however, if you leave the team skill and then join again (or join a different one), the bubble will show up however there will be no text for other players. You can see the text and so can the server but other players cannot.

Here is the relevant code that controls the speech bubbles:

I’ve tried to change where the code is run, changing the lengths of the tweens and the delay. I also tried adding a debounce to how fast you can join, but that didn’t do anything.

Thanks in advance!

Edit: Here’s how the BillboardGui looks.

Are you controlling this using a local script?

No, I’m using a script.

Can I have a file of the place so I can look into it in more detail?

I’m aware you said that this is serversided, which I don’t agree with… but that’s besides the point.

I would strongly recommend having one server script that will fire all clients and change the text label in the bubble!

4 Likes

Also you should use a module for all those functions, cleans your code up a lot.

1 Like

Yeah I was just giving a generic example.

There is a framework out right now called AeroFramework and it connects all of your modules up making it extremely nice and simple to do this sort of thing.

I’m assuming you don’t want to start over using a new framework, but its just the general idea of using modules a lot more then people do now.

2 Likes

I would strongly recommend having one server script that will fire all clients and change the text label in the bubble!

So, should I make a RemoteEvent which changes the text in a LocalScript and then make the Script fire it for all clients?

I would recommend doing everything via client.

Considering you already have a script that detects when to prompt the billboard simply Fire All Clients using a remoteevent and then use your localscript in order to make the billboards visible as well as prompt the proper text!

1 Like

I see, I’ll try that. Thank you!

Anything UI-related should always be in the hands of the client, not the server. The server should only be passing information for the client to utilise when constructing an interface.