2024-08-07 16:45:56 +00:00
|
|
|
local Players = game:GetService("Players")
|
|
|
|
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
|
|
|
|
2024-12-26 05:15:41 +00:00
|
|
|
local std = ReplicatedStorage.std
|
|
|
|
local ref = require(std.ref)
|
|
|
|
local collect = require(std.collect)
|
2024-08-07 16:45:56 +00:00
|
|
|
|
2024-12-26 05:15:41 +00:00
|
|
|
local cts = require(std.components)
|
|
|
|
local world = require(std.world)
|
2024-08-07 16:45:56 +00:00
|
|
|
local Player = cts.Player
|
|
|
|
local Character = cts.Character
|
|
|
|
|
|
|
|
local conn = {}
|
|
|
|
|
2024-12-26 05:15:41 +00:00
|
|
|
local function playersAdded(player: Player)
|
|
|
|
local e = ref(player.UserId)
|
|
|
|
world:set(e, Player, player)
|
|
|
|
local characterAdd = player.CharacterAdded
|
|
|
|
conn[e] = characterAdd:Connect(function(rig)
|
|
|
|
while rig.Parent ~= workspace do
|
|
|
|
task.wait()
|
|
|
|
end
|
|
|
|
world:set(e, Character, rig)
|
|
|
|
end)
|
2024-08-07 16:45:56 +00:00
|
|
|
end
|
|
|
|
|
2024-12-26 05:15:41 +00:00
|
|
|
local function playersRemoved(player: Player)
|
|
|
|
local e = ref(player.UserId)
|
|
|
|
world:clear(e)
|
|
|
|
local connection = conn[e]
|
|
|
|
connection:Disconnect()
|
|
|
|
conn[e] = nil
|
2024-08-21 15:57:40 +00:00
|
|
|
end
|
2024-12-26 05:15:41 +00:00
|
|
|
|
|
|
|
local scheduler = require(std.scheduler)
|
|
|
|
local phases = require(std.phases)
|
|
|
|
scheduler.SYSTEM(playersAdded, phases.PlayerAdded)
|
|
|
|
scheduler.SYSTEM(playersRemoved, phases.PlayerRemoved)
|
|
|
|
|
|
|
|
return 0
|