Clickdetector remote not firing properly

Hey yall,

I’m working on a project and just ran into an issue I’ve never had before, where my remote won’t properly fire from Server → Client. I asked around in some different development communities and was told nothing looked wrong with my code so I just wanted to check here.

Heres my Serverside code:

ClickDetector.MouseClick:Connect(function(plr)
	local Data = plr:WaitForChild("Data")
	local PotionState = Data.PotionState

	if Data.IsInPotionMode.Value == false then
		print("Not in potion mode")
		return
	end

	if not (plr.Name == OwnerValue.Value) then
		print("Not correct owner")
		return
	end
	
	ToggleEvent:FireClient(plr) -- The line with the issue (Is 100% defined correctly)
	PotionUtils.ActivatePotion(PotionState.Value, MainModel) -- THIS LINE PRINTS "ACTIVATED" SO ITS NOT THE WAITFORCHILD BREAKING IT
end)

and heres my clientside code (This is in StarterPlayerScripts, as I tried it in StarterGUI initially and it didn’t receive the event)

ToggleEvent.OnClientEvent:Connect(function()
	print("Recieved") -- Doesn't print
end)

If im just being slow, my bad, but thanks for reading <3

Also just a note, but I also have tried creating & using a different remote

Something must not be setup correctly like the location of the event or one of the value objects. I setup a version of your code and it worked.
script in serverscriptservice:

local RS:ReplicatedStorage = game:GetService("ReplicatedStorage")
local ClickDetector = game.Workspace:WaitForChild("Part",8):WaitForChild("ClickDetector",8)
local ToggleEvent:RemoteEvent = RS:WaitForChild("ToggleEvent",8)
local OwnerValue:StringValue = Instance.new("StringValue")

OwnerValue.Value = "iondrive"

local Data = Instance.new("Folder")
Data.Name = "Data"
local IsInPotionMode = Instance.new("BoolValue")
IsInPotionMode.Value = true
IsInPotionMode.Name = "IsInPotionMode"
IsInPotionMode.Parent = Data

local potionstate = Instance.new("BoolValue")
potionstate.Value = true
potionstate.Name = "PotionState"
potionstate.Parent = Data



ClickDetector.MouseClick:Connect(function(plr)
	Data.Parent = plr
	
	local Data = plr:WaitForChild("Data")
	local PotionState = Data.PotionState

	if Data.IsInPotionMode.Value == false then
		print("Not in potion mode")
		return
	end

	if not (plr.Name == OwnerValue.Value) then
		print("Not correct owner")
		return
	end

	ToggleEvent:FireClient(plr) -- The line with the issue (Is 100% defined correctly)
	--PotionUtils.ActivatePotion(PotionState.Value, MainModel) -- THIS LINE PRINTS "ACTIVATED" SO ITS NOT THE WAITFORCHILD BREAKING IT
end)

localscript in playerscripts:

print("Hello world!")

local RS:ReplicatedStorage = game:GetService("ReplicatedStorage")

local ToggleEvent:RemoteEvent = RS:WaitForChild("ToggleEvent")

ToggleEvent.OnClientEvent:Connect(function()
	print("Received") -- Doesn't print
end)

Part in workspace with a clickdetector parented to it and a remote event in replicated storage named “ToggleEvent”
Here is the output:

18:24:47.552  Hello world!  -  Client - LocalScript:1
18:24:50.232  Received  -  Client - LocalScript:8