I just changed it right now! 
Changed script:
local TS = game:GetService('TweenService')
local char = script.Parent
local animIsPlaying = false
local damage = {
EarthWall = 12,
EarthJump = 15,
EarthShock = 28
}
local cooldown = {
EarthWall = 1,
EarthJump = 2,
EarthShock = 5
}
local cooldownActive = {
EarthWall = false,
EarthJump = false,
EarthShock = false
}
local hum = char:WaitForChild('Humanoid')
--local torso = char:WaitForChild('Torso')
local ev = char.Bend
local ev2 = char.OnCooldown
ev.OnServerEvent:Connect(function(plr, bend)
if not animIsPlaying then
local anim = hum.Animator:LoadAnimation(script[bend])
local attacks = 0
local torso = char:WaitForChild('Torso')
if not cooldownActive[bend] then
local earth = Instance.new('Part', char)
local movementPoints = {
Appear = CFrame.new(),
Disappear = CFrame.new()
}
local appearanceTime = {
Appear = 0,
Disappear = 0
}
local info = {
Appear = TweenInfo.new(),
Disappear = TweenInfo.new()
}
local goals = {
Appear = {},
Disappear = {}
}
local tween = {
Appear = 'I am dum',
Disappear = 'Stupid too'
}
anim.Priority = Enum.AnimationPriority.Action
anim:Play()
if bend == 'EarthWall' then
movementPoints.Appear = CFrame.new(torso.CFrame.LookVector * 80)
movementPoints.Disappear = CFrame.new(torso.CFrame.LookVector * 100)
appearanceTime.Appear = 0.5
appearanceTime.Disappear = 0.9
info.Appear = TweenInfo.new(
appearanceTime.Appear,
Enum.EasingStyle.Exponential,
Enum.EasingDirection.Out,
0,
false,
0
)
info.Disappear = TweenInfo.new(
appearanceTime.Disappear,
Enum.EasingStyle.Linear,
Enum.EasingDirection.Out,
0,
false,
0
)
goals.Appear = {
CFrame = movementPoints.Appear
}
goals.Dissapear = {
CFrame = movementPoints.Disappear
}
earth.Name = bend
earth.Material = Enum.Material.Slate
earth.Color = Color3.fromRGB(115, 115, 115)
earth.Size = Vector3.new(10, 7, 4)
earth.CanCollide = true
earth.CFrame = CFrame.new(movementPoints.Appear.X, -4, torso.CFrame.Z)
earth.Anchored = true
print(movementPoints)
elseif bend == 'EarthJump' then
movementPoints.Appear = CFrame.new(torso.CFrame.X, 25, torso.CFrame.Z)
movementPoints.Disappear = CFrame.new(torso.CFrame.X, -30, torso.CFrame.Z)
appearanceTime.Appear = 0.75
appearanceTime.Disappear = 0.8
info.Appear = TweenInfo.new(
appearanceTime.Appear,
Enum.EasingStyle.Linear,
Enum.EasingDirection.InOut,
0,
false,
0
)
info.Disappear = TweenInfo.new(
appearanceTime.Disappear,
Enum.EasingStyle.Exponential,
Enum.EasingDirection.InOut,
0,
false,
0
)
goals.Appear = {
CFrame = movementPoints.Appear
}
goals.Disappear = {
CFrame = movementPoints.Disappear
}
earth.Name = bend
earth.Material = Enum.Material.Slate
earth.Color = Color3.fromRGB(115, 115, 115)
earth.Size = Vector3.new(15, 50, 15)
earth.CanCollide = true
earth.CFrame = movementPoints.Disappear
earth.Anchored = true
end
cooldownActive[bend] = true
ev2:FireClient(plr, bend, cooldownActive[bend])
hum.WalkSpeed = 0
animIsPlaying = true
char[bend].Touched:Connect(function(hit)
local hum2 = hit.Parent:FindFirstChild('Humanoid')
if hum2 and hum2 ~= hum then
if attacks < 1 and animIsPlaying then
attacks += 1
hum2:TakeDamage(damage[bend])
end
end
end)
wait(0.45)
tween.Appear = TS:Create(earth, info.Appear, goals.Appear)
tween.Appear:Play()
wait(appearanceTime.Disappear)
tween.Disappear = TS:Create(earth, info.Disappear, goals.Disappear)
tween.Disappear:Play()
wait(anim.Length - appearanceTime.Disappear)
hum.WalkSpeed = 16
animIsPlaying = false
wait(cooldown[bend])
cooldownActive[bend] = false
ev2:FireClient(plr, bend, cooldownActive[bend])
end
end
end)
It still MOVES in one direction but at least it ends up where it should.