If there are other things interacting with the script, what might happen in solo testing is that the player gets added before the PlayerAdded event get set up, though that is probably not the issue, what might be the issue is the Character get added too quickly and any changes you make are applied too quickly, so, here are a few fixes, the first one, is to loop through the GetPlayers() method once after setting up PlayerAdded so players already in the game will also have the function ran, and the second fix will be to simply wait 1 second before applying changes, also, check if the character has spawned in already, so it also gets the change
local function onCharacterAdded(char)
wait(1)
char.Parent = workspace.Interactive
end)
local function onPlayerAdded(plr)
plr.CharacterAdded:Connect(onCharacterAdded)
local char = plr.Character
if char then
onCharacterAdded(char)
end
end)
game.Players.PlayerAdded:Connect(onPlayerAdded)
for i, v in ipairs(game.Players:GetPlayers()) do
onPlayerAdded(v)
end