FireAllClients() only working on the client

Hi all, creating a schedule that allows you to claim things nothing particularly extravagant but after passing from the server back to the client using FIreAllClients() it only works on the client. I’ve used the same thing for other things in my game and they work absolutely fine so wondering if I could have a bit of guidance

Find scripts Below

Firing to the server

for _,ScheduleButtons in pairs(ButtonsFrame:GetDescendants()) do
	if ScheduleButtons:IsA("TextButton") then
		local ActivityClaimed = Functions:CreateInstance("BoolValue", ScheduleButtons.TextLabel.Text.."Claimed", ScheduleButtons)
		local ActivityCounter = Player:WaitForChild("PlayerInfo"):WaitForChild("ActivityCounter")
		function ActivityButtonPressed()
			if ActivityClaimed.Value == false then
				if ActivityCounter.Value == 3 then Functions:CreateNotification(5, "You cannot claim more than 3 activities, unclaim one!", Player) return end
				local Table = {
					ActivityButton = ScheduleButtons,
					Value = ActivityClaimed
				}
				GameEvent:FireServer("ClaimingActivity", Table)
			elseif ActivityClaimed.Value == true then
				local Table = {
					ActivityButton = ScheduleButtons,
					Value = ActivityClaimed
				}
				GameEvent:FireServer("UnClaimingActivity", Table)
			end
		end
		ScheduleButtons.MouseButton1Click:Connect(ActivityButtonPressed)
	end
end

Server Script

GameEvent.OnServerEvent:Connect(function(Player, Event, Table)
-- other stuff before
	elseif Event == "ClaimingActivity" then
		local Success, ErrorMessage = pcall(function()
			local Table = {
				Player = Player,
				ActivityButton = Table.ActivityButton
			}
			GameEvent:FireAllClients("ClaimedActivity", Table)
			Player.PlayerInfo.ActivityCounter.Value = Player.PlayerInfo.ActivityCounter.Value + 1
		end)
		if not Success then
			Functions:CreateNotification(5, ErrorMessage, Player)
		else
			Functions:CreateNotification(5, "Successfully claimed "..Table.ActivityButton.TextLabel.Text, Player)
		end 
-- stuff after 
end)

Back to Client

GameEvent.OnClientEvent:Connect(function(Event, Table)
-- stuff before
	elseif Event == "ClaimedActivity" then
		local ActivityButton = Table.ActivityButton
		ActivityButton.Text = "Claimed by "..tostring(Table.Player)
		for _,ActivityClaimed in pairs(ActivityButton:GetChildren()) do
			if ActivityClaimed:IsA("BoolValue") then
				ActivityClaimed.Value = true
			end
		end
-- Stuff after
end)

I’m sure it’s a small issue but if I could get any help as I’m quite stuck it would be appreciated

“FireAllClients” means that it will fire to all clients(all players), but does not mean it fires to the server.

So this means it only works in the client. If you want it to fire to the server from a server script, prefer using BindableEvent.

perhaps I worded it weird but that first script is on the client, by firing to the server I meant that using the remote event I’m firing it to the serverscript if you know what I mean

Yes, I know that the first script is a client(localscript). FireAllClients can only be used by the server. Not the client. Are you talking about FireAllClients only working in a localscript?

I used FireAllClients on the server script and then using that to do stuff back on the local script

The main issue as you said is that FireAllClients only works in the client. Can you explain more about it? I don’t understand the issue here.

I never said FireAllClients only works on the client. I said that I used FireAllClients so I could change UI Elements on the local script so they can change for everyone

Perhaps your variable names are conflicting?

I’ve fixed it now but thank you!