I'm working on displaying a UI(User Interface) when an NPC BOSS dies, It does work at first but when the NPC dies again the UI doesn't show up. I think It's because the variable that holds the NPC character model becomes nil because It respawns. I've tried to place the new NPC into the same variable that holds the NPC character, but I had no success.

I use two scripts for this UI notification, one script is in the StarterCharacterScripts and the other is a local script located in the StarterPlayerScripts. The StarterCharacterScripts script checks the health of the NPC and changes a bool value located in the local player. Then the local script from the StarterPlayerScripts checks any changes from the bool value and depending if true or false it would show the UI.

Here's some code

-- Located in the StarterCharacterScripts

local Spawn_Alert = player:WaitForChild("Spawn_Alert")
local T = Spawn_Alert:WaitForChild("Treasure")

NPC = workspace:WaitForChild("NPC")
NPC_Humanoid = NPC:FindFirstChild("Humanoid")
if NPC_Humanoid.Health <= 0 then
	T.Value = true
else
	NPC = workspace:WaitForChild("NPC")
	NPC_Humanoid = NPC:FindFirstChild("Humanoid")
	T.Value = false
end
-- located in the StartPlayerScripts

local Players = game:GetService("Players")
local player = Players.LocalPlayer or Players:GetPropertyChangedSignal("LocalPlayer"):wait()
player.CharacterAdded:Connect(function(character)
	player.CharacterAppearanceLoaded:Wait()
	--// Wait for player's Folder and Values
	local Spawn_Alert = player:WaitForChild("Spawn_Alert")
	local T = Spawn_Alert:WaitForChild("Treasure")
	--// Get's player Image Holders
	local T_IH = Players.LocalPlayer.PlayerGui.Alert.T_IH
	--// Checks Value change to change Image Transparency
	T:GetPropertyChangedSignal("Value"):Connect(function()
		if T.Value == true then
			T_IH.ImageTransparency = 0
		else
			T_IH.ImageTransparency = .7
		end
	end)
end)

Just to clarify, the problem Is the NPC variable and I'm not sure how to fix this. Thanks for reading :D

1 comment

0

:c