I Wanna Make a Remote Event That Gives You Cash On A Leader Board
game.Players.LocalPlayer.leaderstats.DogeCoin.Value = Number
game.ReplicatedStorage.GiveCash:FireServer(CashNumberToGive)
but i dont no how i would code that
I Wanna Make a Remote Event That Gives You Cash On A Leader Board
game.Players.LocalPlayer.leaderstats.DogeCoin.Value = Number
game.ReplicatedStorage.GiveCash:FireServer(CashNumberToGive)
but i dont no how i would code that
If I’m understanding your question correctly:
Edit: I accidentally set the value instead of adding it srry.
ServerScript
game.ReplicatedStorage.GiveCash.OnServerEvent:Connect(function(Player, NewValue)
local Value = Player.leaderstats.DogeCoin
if NewValue then
Value.Value += ToNumber(NewValue) --I'm using ToNumber() here just incase the remote event returns the value as a string.
end
end)
how would i fire this and set the cash number
i know how to fire it but not set cash
The following fires the remote event:
The following sets the value:
does it add so the leaderboard
Ok let me break this down for you
1)you need to know how to fire and receive message from client to server using remote events
you can message the server by writing
RemoteEvent:FireServer(Amount)
Amount is the Amount of cash you want the player to gain
now, you sent the message to give the player coins . We now need the server to listen for the message. you can do it by writing
RemoteEvent.OnClientEvent:Connect(function(player,amount)
end)
the player value is set by default. Everytime you sent a message, the first argument will always be the player’s object . Take it this way , when you text somebody, their name always appear above or to the left of any message . The second argument (the variable called amount) is the data you sent from the client just now .
2)You need to know how to set , add or subtract values
to do that, you need the IntValue of the stats . assuming you know how to write a leaderstats script, you can get the IntValue by writing
local DogeCoinValue = player.leaderstats.DogeCoin
after you write that, you need to know how to set the value… setting the value should be direct . you simply write
player.leaderstats.DogeCoin.Value = 10
to set the value to 10
However , to add the value, it is a bit more challenging . you have to set the value of dogecoin to the value of dogecoin + the amount you want the dogecoin to gain Which would look like this
player.leaderstats.DogeCoin.Value = player.leaderstats.DogeCoin.Value + amount
or
player.leaderstats.DogeCoin.Value += amount
so now , you got to stack your burger and figure out how to do it . I already break it down for you ! programming is about thinking of solutions and I hope this will help you with your venture into programming. if you have any questions, feel free to ask
I do want to add - your way of solving this is vulnerable to exploits.
Exploiters are able to find RemoteEvent
s being fired, and if the name of the RemoteEvent
is called “GiveMoney” it will be very obvious what that event will do.
Exploiters will then fire the RemoteEvent
to the server with a custom value.
Possible vulnerability:
while task.wait() do
game.ReplicatedStorage.GiveCash:FireServer(9999999)
end
--//This will result in infinite money
Thus you should only manage the amount of money the player will get on the ServerScript
’s side, since those scripts are inaccessible to exploiters. Yes it will be a bit harder to determine what exact value they should be getting, but it avoids your game being exploited.
oh ye using dex and remote spy Hmmm
i mean theres not alot of people playing it also i have anti-cheat in my game
the anticheat will most likely not combat this. Why do you need to give money on the clients demand?
If you use the code above you gave the the solution to, then your “anti-cheat” wont work. You’re plainly telling the server to give the amount of cash that the client tells the server to give them.
Client tells the server “give me 99999 money” and the server says “ok” without checking anything. How is your anticheat going to prevent this? You literally designed it this way
okay then how do i fix that???
it’s easy to do, first you need to make a remote for the server to handle the given the player their correct cash amount, so here’s the server script example…
--server script aka regular script NOT local
local remote = game.ReplicatedStorage:WaitForChild("Remote")-- this is the RemoteEvent we add in ReplicatedStorage
remote.OnServerEvent:Connect(function(player)-- the remote that got triggered already knows the player who triggered it so in brackets we add player, on server event is to handle to where if the remote got triggered then in this function here we will run this code
local stat = player:FindFirstChild("leaderstats")-- the leaderstats we are trying to access
local cash = stat.Cash -- this is the Cash we are trying to access
if stat and cash then --let's check to see if stat and cash exist first before running the code we add in our if statement here
cash.Value += 100 -- this is to add 100 cash basically to the player can subtract and more if needed
end
end)
now the client part here
--Local Script aka Client script. NOT the server this script is added in a ScreenGui that Contains the
--Button we will use
local player = game.Players.LocalPlayer -- this is the player who is triggering the remote we made
local remote = game.ReplicatedStorage:WaitForChild("Remote")-- this is the RemoteEvent we add in ReplicatedStorage
local Button = script.Parent.TextButton -- this is the button we will use to let the player click on it to then trigger the remote aka sending a message to the server.
Button.MouseButton1Click:Connect(function()--this is to handle where if the Button were to be Clicked on then we will connect a function basically
if player then --a check to make sure the player exist first before Firing our remote
remote:FireServer() --in the brackets we can add what we wanna send to the server to let server handle it if ever needed
end
end)
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.