Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

LocalScript is not firing the ServerScript Please help! Why won't it work?

Asked by 5 years ago
Edited 5 years ago

I have a localscript trying to fire a serverscript. The LS is placed in StarterGUI, the SS is placed in ServerStorage, the RemoteEvent in ReplicatedStorage.

Localscript

01--Waits for player then fires ServerScript--
02 
03    game.Players.PlayerAdded:Connect(function(player)
04    player.CharacterAdded:Connect(function(character)
05        local hrp = character:WaitForChild("HumanoidRootPart",3)
06 
07       if hrp then
08            game.ReplicatedStorage.RemoteEvents.LBLoad:FireServer()
09        else
10 
11        end
12    end)
13end)

Serverscript

01--Loads Leaderboard after finding local player in a localscript--
02 game.ReplicatedStorage.RemoteEvents.LBLoad.OnServerEvent:Connect(function()
03 
04 
05    game.Players.PlayerAdded:connect(function(p)
06        local stats = Instance.new("IntValue")
07        stats.Name = "leaderstats"
08        stats.Parent = p
09 
10        local money = Instance.new("IntValue")
11        money.Name = "Money"
12        money.Value = 0
13        money.Parent = stats
14        local bounty = Instance.new("IntValue")
15        bounty.Name = "Bounty"
16        bounty.Value = 0
17        bounty.Parent = stats
18    end)
19 
20end)

I've also tried V

01--Loads Leaderboard after finding local player in a localscript--
02 game.ReplicatedStorage.RemoteEvents.LBLoad.OnServerEvent:Connect(function()
03 
04 
05 
06        local stats = Instance.new("IntValue")
07        stats.Name = "leaderstats"
08        stats.Parent = game.Players.PlayerAdded
09 
10        local money = Instance.new("IntValue")
11        money.Name = "Money"
12        money.Value = 0
13        money.Parent = stats
14 
15        local bounty = Instance.new("IntValue")
View all 21 lines...

It isn't creating the leaderboard which means it is not firing the remotevent because "leaderstats in not a valid member of Player"

0
Creating a leaderboard of this kind is done on the server, place this code in a server script ForeverBrown 356 — 5y
0
It is in a server script GuestRealization 102 — 5y
0
First bit is ls second is ss GuestRealization 102 — 5y
0
I was just thinking this. I will try that but it should still work I am just trying to learn about remotevents and i don't understand why it isn't working when im able i will combine them on a serverscript but this code is still trying to create it on the server so i dont understand. GuestRealization 102 — 5y

1 answer

Log in to vote
2
Answered by 5 years ago

You don't do playeradded events or any characteradded events those should be only done in the server

Also I don't see a point on why you are using a local script for a leaderboard everything here can and should be done on a server

it should be more like

01game.Players.PlayerAdded:Connect(function(player)
02 
03    local stats = Instance.new("IntValue")
04            stats.Name = "leaderstats"
05            stats.Parent = game.Players.PlayerAdded
06 
07            local money = Instance.new("IntValue")
08            money.Name = "Money"
09            money.Value = 0
10            money.Parent = stats
11 
12            local bounty = Instance.new("IntValue")
13            bounty.Name = "Bounty"
14            bounty.Value = 0
15            bounty.Parent = stats
16 
17end)
0
The problem with this is it doesnt load the leaderboard every single time a player joins and once again the leaderboard is in a server script. GuestRealization 102 — 5y
0
Thanks on the first part though. GuestRealization 102 — 5y
0
Accepted because the first part, and I figured it out. GuestRealization 102 — 5y
Ad

Answer this question