weld.C0 = CFrame.new(character.Torso.Position.X, character.Torso.Position.Y, character.Torso.Position.Z-3)*CFrame.new(0, 0, 0)
No matter how I change this weld, the barrier always spawns in the sky, at the same spot. I set the position of everything to the character(and even tried torso.CFrame) just to see how ridiculous the bug is. I've been stuck on it for a while. Help is appreciated, thanks.
Local
player = game.Players.LocalPlayer
character = player.Character
repeat wait(.1) until character:FindFirstChild("Bools")
bools = character.Bools
Barrier = bools.Barrier
currentEnergy = bools.currentEnergy
maxEnergy = bools.maxEnergy
function onDown()
if Barrier.Value == false then
Barrier.Value = true
workspace.Events.Barrier:FireServer(player)
print("Client Barrier")
end
end
function onUp()
if Barrier.Value == true then
workspace.Events.BarrierOff:FireServer(player)
print("Client Barrier Off")
wait(.1)
Barrier.Value = false
end
end
script.Parent.MouseButton1Down:connect(onDown)
script.Parent.MouseButton1Up:connect(onUp)
Server
script.Parent.OnServerEvent:connect(function(player)
local Data = player:FindFirstChild("Data")
local Element1 = Data.Element1
local Strength = Data.Strength
local StrengthXP = Data.StrengthXP
local Defence = Data.Defence
local DefenceXP = Data.DefenceXP
local Magika = Data.Magika
local MagikaXP = Data.MagikaXP
local Agility = Data.Agility
local AgilityXP = Data.AgilityXP
--
local character = player.Character
local bools = character.Bools
local barrier = bools.Barrier
--
local currentEnergy = player.Character.Bools.currentEnergy
local maxEnergy = player.Character.Bools.maxEnergy
--
if currentEnergy.Value >= maxEnergy.Value*.01 and not character.Torso:FindFirstChild("Barrier") then
print("Barrier Server")
local bp = Instance.new("BodyPosition", character.Torso)
bp.Name = "BodyPosition"
local p = Instance.new("Part", character.Torso)
p.Name = "Barrier"
p.Transparency = 0.6
p.BrickColor = BrickColor.new("Deep blue")
local weld = Instance.new("ManualWeld", character.Torso)
weld.Part0 = character.Torso
weld.Part1 = p
p.Size = Vector3.new(3+(Defence.Value/5),3+(Defence.Value/5), 0.5)
bp.Position = Vector3.new(character.Torso.Position.x, character.Torso.Position.y, character.Torso.Position.z)
barrier.Value = true
while barrier.Value == true do
wait(.1)
weld.C0 = CFrame.new(character.Torso.Position.X, character.Torso.Position.Y, character.Torso.Position.Z-3)*CFrame.new(character.Torso.Position.X, character.Torso.Position.Y, character.Torso.Position.Z)
currentEnergy.Value = currentEnergy.Value-(maxEnergy.Value*.01)
MagikaXP.Value = MagikaXP.Value+0.025
DefenceXP.Value = DefenceXP.Value+0.025
bools.walkSpeed.Multiplier.Value = 0.0625
if currentEnergy.Value <= 0 then
barrier.Value = false
p:destroy()
bp:destroy()
weld:destroy()
end
end
end
end)

3 comments
Sidenote: It CFramed correctly before but it isn't quite working after i made a bugfix to it.. no errors.
Not too sure but ':destroy()' should be 'Destroy()'
Problem seems to lie in the weld not actually being correctly handled, this is on roblox's part sadly... sigh.