Trouble with BindableEvent

I am trying to make a script print “a2” whenever a player’s character gets added and fires my BindableEvent, the firing part of the BindableEvent works fine, but the script that listens for the event does not work.

Firing Script (Stored in ServerScriptService)

local be = game.ReplicatedStorage.PlayerAdded

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		be:Fire(character)
		print("a1")
	end)
	
end)

Listening Script (Stored in StarterCharacterScripts)

local be = game.ReplicatedStorage.PlayerAdded

be.Event:Connect(function(character)
	print("a2")

end)

The BindableEvents are stored in ReplicatedStorage, any reason why “a2” wouldn’t print?

Is the PlayerAdded or listener on client or server? BindableEvents can only listen for server side scripts. Also why not make a function that triggers directly when a player is added?

I think it is because it is a character script, so wouldn’t that be a local script? Try a remote event, because those are server to client.

Tried switching to RemoteEvent, firing script works fine once again but the listening script doesn’t.

Firing Script

local be = game.ReplicatedStorage.PlayerAdded

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		be:FireClient(player)
		print("a1")
	end)
end)

Listening Script

local be = game.ReplicatedStorage.PlayerAdded


be.OnServerEvent:Connect(function(character)
	print("a2")
	
end)

“a1” prints once again and “a2” doesn’t, remoteEvent is stored in ReplicatedStorage.

Wouldnt it be
be.OnClientEvent:Connect(function(character)

Pretty sure it’s not, it gives an error “OnClientEvent can only be used on the client”.

The listener is in a script so I believe it would be on server, I can’t directly make a function because PlayerAdded doesn’t work when stored inside StarterCharacterScripts.

Not working? It works basically just fine for me. I use it with DataStores??

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		print("a1")
	end)
end)

Putting this directly into StarterPlayerScript doesn’t print anything

Misread, thought you said ServerScriptService. But why not putting the script there, only if it’s that piece of code?

The script in StarterPlayerScript is for controlling the players joints, I simplified it so it’s easier for debugging.