В каком из типов скриптов записан код для элемента "монеты"? ServerScript или LocalScript? В случае необходимости невидимости изменений для серверной стороны, изолируйте скрипт монеты (обработчик касания), перенеся его в модель монеты. После чего используйте RemoteEvent в ReplicatedStorage, чтобы отправить событие об изменении leaderstats'а. Пример:
LocalScript в модели монеты
local function coin_touched(part)
local pl = game:GetService("Players")
if not(pl:GetPlayerFromCharacter(part.Parent)) then
return
end
local rs = game:GetService("ReplicatedStorage")
local update_coins = rs:WaitForChild("RemoteEvent")
local coin = script.Parent
local value = 100
update_coins:FireServer(value)
coin.transparency = 1
coin.CanTouch = false
end
ServerScript
local f = Instance.new ("Folder", plr)
f.Name = "leaderstats"
local coins = Instance.new ("IntValue", f)
coins.Name = "FunCoins"
coins.Value = 0
local rs = game:GetService("ReplicatedStorage")
local add_val_event = rs:WaitForChild("RemoteEvent")
function add_value(player, value)
player.leaderstats.FunCoins.Value += value
-- player предается по дефолту с LocalScript
end
add_val_event.OnServerEvent:Connect(add_value)
Скрипт из ServerScriptService:
game.Players.PlayerAdded:Connect(function(plr)
local f = Instance.new ("Folder", plr)
f.Name = "leaderstats"
local coins = Instance.new ("IntValue", f)
coins.Name = "FunCoins"
coins.Value = 0
end)
Скрипт монеты (Part):
local pl = game:GetService("Players")
local coin = script.Parent
function giveMeMyMoney(part)
if part.Parent:FindFirstChild("Humanoid") then
coin.CanTouch = false
local player = pl:GetPlayerFromCharacter(part.Parent)
player.leaderstats.FunCoins.Value += 100
coin.Transparency = 1
script.Disabled = true
end
end
coin.Touched:Connect(giveMeMyMoney)