Billboard GUI suddenly stopped working

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!

I want the Billboard GUIs are displayed again.

  1. What is the issue? Include screenshots / videos if possible!

Hello fellow devs!
I am currently releasing Samurai Era
where you can save Luck in addition to the local currency.
Basically you can gain Luck through good behaviors while lose it through bad behaviors.
For that, I made a billboard GUI with Text Label to show Luck amount got or lost,
supposed to be shown a little above a player’s head.
And I made a module script named Player Effect to show this billboard GUI and
change Luck values in player’s Leaderstats.
Just until recently, it worked fine. But just several days ago it suddenly stopped working.
Now the billboards are never be displayed above players.
the module script is as follows:

local RS = script.Parent
local effects = RS.Effects
local givenLuckAmountDisplay = effects.GivenLuckAmountDisplay
local plusLuckSound = effects.Sounds.PlusLuck
local minusLuckSound = effects.Sounds.MinusLuck

--Display given luck amount on players

local PlayerEffect = {}

function PlayerEffect.GivenLuckAmountDisplay (player, value)

	local clonedGivenLuckAmountDisplay = givenLuckAmountDisplay:Clone()
	
	if value < 0 then
		minusLuckSound:Play()
		clonedGivenLuckAmountDisplay.TextLabel.TextColor3 = Color3.new(255,0,0)
		clonedGivenLuckAmountDisplay.Parent = player:WaitForChild("Character"):WaitForChild("Humanoid").RootPart
		clonedGivenLuckAmountDisplay.TextLabel.Text = "Bad Manner  "..tostring(value)
		
	else 
		plusLuckSound:Play()
		clonedGivenLuckAmountDisplay.TextLabel.TextColor3 = Color3.new(0, 1, 0)
		clonedGivenLuckAmountDisplay.Parent = player:WaitForChild("Character"):WaitForChild("Humanoid").RootPart
		clonedGivenLuckAmountDisplay.TextLabel.Text = "+ "..tostring(value)
	end
	
	local luck = player.leaderstats.Luck
	
	luck.Value = luck.Value + value

	wait(2)
	clonedGivenLuckAmountDisplay:Destroy()
		
end


return PlayerEffect

Both of Player Effect module script and the billboard GUI are in Replicated Storage.

  1. What solutions have you tried so far? Did you look for solutions on the Developer Hub?

I searched on this forum and Youtube but couldn’t find the solution.
I don’t know why it stopped working.
Your help would be highly appreciated.

1 Like

Is the billboard enabled or it’s disabled?

2 Likes

Thank you for your replay.
It is enabled.

Set parent for billboard to head instead of humanoid

1 Like

I tried but the problem persists.

I think I may see the problem it looks like in the function you are calling a module script :thinking: im not sure though what errors are you getting?

1 Like

Ok two things it could be. It could be because you have a table named Player Effects and you are calling a module script named Player Effect. The second (and most likely) Make a variable and require the script like this local plrEffects = require.PlayerEffects.GivenLuckAmountDisplay

Thank you for your reply.
There is no error message for it,
but the texts on billboard GUIs is no longer shown
when I call the function on the module script from local scripts.

I checked other 3 scripts calling the function of the module script, but I found there are no misspellings you point out.

Now I remember what I did for the experience recently, which is the age filter.
I set the age filter according to the announcement by ROBLOX on Dev Forum.
Is this setting related to this problem?
Does anyone know of it?

I partly solved the problem by removing WaitForChild from the module script.
That is:
player:WaitForChild(“Character”):WaitForChild(“Head”) →
player.Character.Head

However, one problem still persists.
I wanna make Donate and Pray system for the shrine in the experience,
where if a player donate 5 R$, a series of pray animations are played and
at the end some Luck is given to the player.
So far, the animations are played properly, but at the end of animations,
the billboard GUI text is not shown.

The error message is in the pic below:

And the enter local script for that in StarterPlayerScripts is as follows:

local pps = game:GetService("ProximityPromptService")

local player = game:GetService("Players").LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local hum = char:WaitForChild("Humanoid")
local hrp = char:WaitForChild("HumanoidRootPart")
local Animator = hum:WaitForChild("Animator")

local passID = 1283736714
local donateAndPrayPromptForBigBudda = game.Workspace.BigBudda.DonationBox.DonationBoxBody.DonateAndPray
local remoteDonateAndPray = game:GetService("ReplicatedStorage"):WaitForChild("DonateAndPray")

local RS = game:GetService("ReplicatedStorage")
local donateAndPrayRE = RS.DonateAndPray
local animations = RS.Effects.Animations
local clap2Times = hum.Animator:LoadAnimation(animations:WaitForChild("Clap2Times"))
clap2Times.Priority = 4
local deepOjigi2 = hum.Animator:LoadAnimation(animations:WaitForChild("DeepOjigi2"))
deepOjigi2.Priority = 4
local pray = hum.Animator:LoadAnimation(animations:WaitForChild("Pray"))
pray.Priotiry = 4
local RS = game:GetService("ReplicatedStorage")
local giveLuckRE = RS.GiveLuck

local PlayerEffect = require(RS.PlayerEffect)
local camera = workspace.CurrentCamera
local TS = game:GetService("TweenService")
local TI = TweenInfo.new(.5)

local dBoxHachi = game.Workspace.Hachimangu.DonationBox.DonationBoxBody
local dBoxCam = dBoxHachi.Parent.dBoxCam


local function onPromptTriggered(prompt, player)
	if prompt.Name == "DonateAndPray" then
		
		game:GetService("MarketplaceService"):PromptProductPurchase(player, passID)
	end
end


pps.PromptTriggered:Connect(onPromptTriggered)


donateAndPrayRE.OnClientEvent:Connect(function(player, prompt)
	
	hum.WalkSpeed = 0
	hum.JumpPower = 0
	hum.UseJumpPower = true
	hrp.Anchored = true

	local tween = TS:Create(hrp, TI, {CFrame = dBoxHachi.CFrame + Vector3.new(-5, 2, 0)})
	tween:Play()
	tween.Completed:Wait()
	
	camera.CameraType = "Scriptable"
	camera.CFrame = dBoxCam.CFrame
	
	wait(2)
	
	deepOjigi2:Play()

	wait(3)
	
	deepOjigi2:Play()
	
	wait(3)
	
	clap2Times:Play()
	
	wait(3)
	
	pray:Play()
	
	wait(5)
	
	deepOjigi2:Play()
	
	wait(3)
	
	hum.WalkSpeed = 16
	hum.JumpPower = 50
	hrp.Anchored = false

	camera.CameraType = "Custom"
	
	wait(1)
	
	PlayerEffect.GivenLuckAmountDisplay(player, 30)
	
end)