Hello, so there is no error, because everything works perfect, but the thing is, I have not really ever used welds before, and I am needing some help positioning the CFrame of the weld in the correct position, I am making a pause menu type of thing, and I want the player to be able to hold the phone like normal, can anyone help me with the positioning?
Code:
local uis = game:GetService("UserInputService")
local plr = game.Players.LocalPlayer
local music = plr.PlayerGui:WaitForChild("MenuMusic")
local phonegui = plr.PlayerGui:WaitForChild("PhoneGui")
local char = plr.Character or plr.CharacterAdded:wait()
local hum = char:WaitForChild("Humanoid")
local hand = char:WaitForChild("LeftHand")
local cam = workspace.CurrentCamera
local phone = game:GetService("ReplicatedStorage")["Phone"]
local anim = Instance.new("Animation")
anim.AnimationId = "rbxassetid://1212301570"
local animTrack = hum:LoadAnimation(anim)
local holding = false
local spamprotect = false
uis.InputBegan:Connect(function(input, gp)
if (gp) then
return
else
if (input.UserInputType == Enum.UserInputType.Keyboard) then
if (input.KeyCode == Enum.KeyCode.P) and (holding == false) and (spamprotect == false) then
spamprotect = true
for i,v in pairs(char:GetChildren()) do
if v:IsA("Accessory") then
for i,x in pairs(v:GetChildren()) do
if x:IsA("Part") then
x.Transparency = 1
end
end
end
end
local clonedPhone = phone:Clone()
clonedPhone.Parent = char
clonedPhone.Position = char:WaitForChild("LeftHand").Position
clonedPhone.CFrame = clonedPhone.CFrame * CFrame.fromEulerAnglesXYZ(0,5,0)
local weld = Instance.new("Weld")
weld.Part0 = hand
weld.C0 = hand.CFrame
weld.Part1 = clonedPhone
weld.C1 = CFrame.fromEulerAnglesXYZ(89.6,0,-0.65) *hand.CFrame * CFrame.new(0,0,0)
weld.Parent = clonedPhone
holding = true
hum.WalkSpeed = 0
hum.JumpPower = 0
hum.MaxHealth = math.huge
hum.Health = hum.MaxHealth
animTrack:Play()
wait(0.2)
cam.CameraType = Enum.CameraType.Scriptable
cam.CameraSubject = clonedPhone
cam.CoordinateFrame = CFrame.new(char:WaitForChild("Head").Position, clonedPhone.Position) * CFrame.fromEulerAnglesXYZ(0,0,0)
cam.FieldOfView = 50
local blur = Instance.new("BlurEffect", cam)
blur.Name = "Blur"
blur.Size = 0
for i = 0,5 do
wait(0.05)
blur.Size = blur.Size +1
end
phonegui.Adornee = clonedPhone
music:Play()
spamprotect = false
elseif (input.KeyCode == Enum.KeyCode.P) and (holding == true) and (spamprotect == false) then
spamprotect = true
cam:FindFirstChild("Blur"):Destroy()
char:FindFirstChild("Phone"):Destroy()
holding = false
animTrack:Stop()
cam.CameraType = Enum.CameraType.Custom
cam.CameraSubject = hum
cam.FieldOfView = 70
hum.WalkSpeed = 16
hum.JumpPower = 50
hum.MaxHealth = 100
hum.Health = hum.MaxHealth
music:Stop()
for i,v in pairs(char:GetChildren()) do
if v:IsA("Accessory") then
for i,x in pairs(v:GetChildren()) do
if x:IsA("Part") then
x.Transparency = 0
end
end
end
end
spamprotect = false
end
end
end
end)
The weld part is all you need to worry about, I am just pasting the whole script in case you need to test it in studio if you are able to help me.
