So I try and clone this Camera into game.Workspace, And when ever I test this in Solo Mode via Studio it works perfectly but in Server's it wont work. I've tried some prints for debugging and it seems that the Weld Script won't work in the Workspace. Any help?
-- By xImmortalChaos--
local Previous = nil
function Weld(Objects)
for i,v in pairs(Objects:GetChildren()) do
if v:IsA("Part") or v:IsA("UnionOperation") then
if Previous ~= nil then
local Weld = Instance.new("Weld", Previous)
Weld.Part0 = Previous
Weld.Part1 = v
Weld.C0 = Previous.CFrame:inverse()
Weld.C1 = v.CFrame:inverse()
end
Previous = v
end
end
for i,v in pairs(Objects:GetChildren()) do
if v:IsA("Part") or v:IsA("UnionOperation") then
v.Anchored = false
end
end
script:Destroy()
end
Weld(script.Parent)
The Script that clones the hole model into game.Workspace, Well not into game.Workspace it clones the model into a Player's current camera.
wait(1)
local Player = game.Players.LocalPlayer
repeat wait() until game.Workspace:FindFirstChild(Player.Name)
local Character = Player.Character
local Camera = game.Workspace.CurrentCamera
Camera:ClearAllChildren()
--Player.CameraMode = "LockFirstPerson"
local NewModel = Instance.new("Model", Camera)
local Humanoid = Instance.new("Humanoid", NewModel)
local Arm = Character["Right Arm"]:Clone()
Arm.Parent = NewModel
local BodyColors = Instance.new("BodyColors", NewModel)
BodyColors.RightArmColor = BrickColor.new("Pastel brown")
Arm.CanCollide = true
local ModelCamera = game.Lighting.Camera:Clone()
ModelCamera.Parent = NewModel
function WeldCamera()
local Weld = ModelCamera.Handle:FindFirstChild("ArmWeld")
if not Weld then
Weld = Instance.new("Weld", ModelCamera.Handle)
Weld.Name = "ArmWeld"
Weld.Part0 = ModelCamera.Handle
Weld.Part1 = Arm
end
Weld.C0 = CFrame.new(0.8, 0.8, 0) * CFrame.Angles(0, math.pi/2, 0)
end
function WeldArm()
local Weld = Arm:FindFirstChild("Weld")
if not Weld then
Weld = Instance.new("Weld", Arm)
Weld.Part0 = Character.Head
Weld.Part1 = Arm
end
Weld.C0 = Character.Head.CFrame:toObjectSpace(Camera.CoordinateFrame) * CFrame.new(0.9, -1, -1.5) * CFrame.Angles(math.pi/2, 0, 0)
end
while wait() do
coroutine.resume(coroutine.create(function()
WeldArm()
end))
coroutine.resume(coroutine.create(function()
WeldCamera()
end))
end

1 comment
Yeah, One is a local script the other is a server script, But still does not work in online.