Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Why is this server message saying the wrong thing? (Remote Events)

Why is this server message saying the wrong thing? (Remote Events)

When the server message is created, it says for example:

"[Server]: Nanaluk01 Has Unboxed Nanaluk01" .... why?

And yes, all my variables and values are correct. And no, there is no errors.

This is the part of my code that calls a RemoteEvent that then runs a Server-Script: This is a small part of a script that is a LocalScript

local StartNotification = game.ReplicatedStorage:WaitForChild("Events"):WaitForChild("StartNotification")


--//The function that gives the player the item he/she got
function GiveItem(p,Item)
	if Item ~= "150 Coins" and Item ~= "300 Coins" then
		local AwardedItem = ItemsToGiveFolder:FindFirstChild(Item):Clone()
		AwardedItem.Parent = game.Workspace:FindFirstChild(p)
		AwardedItem.Enabled = true
		
		--//Fire StartNotification(event)
		StartNotification:FireServer(Player,AwardedItem)
	else
		local CoinsToGive = ItemsToGiveFolder:FindFirstChild(Item)
		print("Old Value: " ..Coins.Value)
		Coins.Value = Coins.Value + CoinsToGive.Value
		print("New Value: " ..Coins.Value)
		
		--//Fire StartNotification(event)
		StartNotification:FireServer(Player.Name,CoinsToGive.Name)
	end
end

Then the RemoteEvent that is called, runs a Server-Script, which has this code: And then the Server-Script fires another event that creates the message in the chat.

local chat_event = game.ReplicatedStorage:WaitForChild("Events"):WaitForChild("chat_event") 
local StartNotification = game.ReplicatedStorage:WaitForChild("Events"):WaitForChild("StartNotification")

StartNotification.OnServerEvent:connect(function(Player,Name)
	chat_event:FireAllClients("[Server]: " .. Player.Name .. " Has Unboxed " .. Name.Name .. "!")
end)

This is the code for the script that actually creates the message: This is a LocalScript.

local chat_event = game.ReplicatedStorage:WaitForChild("Events"):WaitForChild("chat_event")

chat_event.OnClientEvent:connect(function(chat)
	game:GetService("StarterGui"):SetCore("ChatMakeSystemMessage",{Text = chat; color = Color3.new(4,2,0)})
end)

And, I said, it creates a message that says for example this: "[Server]: Nanaluk01 Has Unboxed Nanaluk01" .... which is not what is should say...

It should say something like this, for instance: "[Server]: Nanaluk01 Has Unboxed Sword" ... Why isn't it doing that

1 answer

✓ Accepted answer

The first parameter of any event listener to OnServerEvent is the player which fired the event. You fire the player as an argument expecting it to be the first parameter (Player), when it's really the second (Name). This can be remedied simply by modifying your LocalScript to only fire the event with AwardedItem, omitting Player as it's added automatically, and doing the same for the second one.

local StartNotification = game.ReplicatedStorage:WaitForChild("Events"):WaitForChild("StartNotification")


--//The function that gives the player the item he/she got
function GiveItem(p,Item)
    if Item ~= "150 Coins" and Item ~= "300 Coins" then
        local AwardedItem = ItemsToGiveFolder:FindFirstChild(Item):Clone()
        AwardedItem.Parent = game.Workspace:FindFirstChild(p)
        AwardedItem.Enabled = true

        --//Fire StartNotification(event)
        StartNotification:FireServer(AwardedItem) --// Remove Player here..
    else
        local CoinsToGive = ItemsToGiveFolder:FindFirstChild(Item)
        print("Old Value: " ..Coins.Value)
        Coins.Value = Coins.Value + CoinsToGive.Value
        print("New Value: " ..Coins.Value)

        --//Fire StartNotification(event)
        StartNotification:FireServer(CoinsToGive.Name) --// And here.
    end
end

Hope this helped.

This discussion is preserved as it was. New answers, comments, and votes are closed.