How to use TextBox input to change a value by firing a RemoteEvent

I’ve been trying to figure this out for about 30 minutes and have had no luck. I’m stumped and cannot figure this out.

I am trying to make a script that allows the player to change their money by inputting a number into their TextBox.

Local Script (child of TextBox)

script.Parent.FocusLost:Connect(function(enter)
    if enter then
        -- this is to check the player's input
        local finalvalue = tonumber(script.Parent.Text)
        print(script.Parent.Text)
        -- if it was not a number
        if finalvalue == nil then
            script.Parent.Text = "Not a number"
            wait(1)
            -- just making sure that it doesn't delete the player's new input
            if script.Parent.Text == "Not a number" then
                script.Parent.Text = ""
            end
        else
            -- firing the money remote event with the finalvalue variable
            game.ReplicatedStorage.ChangeMoney:FireServer(finalvalue)
            print("fired")
            -- resetting the textbox
            script.Parent.Text = ""
        end

    end
end)

Server Script (child of ServerScriptService)

game.ReplicatedStorage.ChangeMoney.OnServerEvent:Connect(function(amt)

    game.ReplicatedStorage.Money.Value = tonumber(amt)
    print("money changed to " .. tostring(amt))
end)

Thank you.

>Solution :

The problem is that OnServerEvent receives a Player in addition to a tuple of arguments passed by FireServer().

It looks like there is just one money value for the entire server, so assuming that the value you’re trying to change is independent of the player who sent the RemoteEvent, you can just change your function declaration to accept the Player and just disregard it after that:

game.ReplicatedStorage.ChangeMoney.OnServerEvent:Connect(function(player, amt)

Leave a Reply