Animation was Running Fine in Moon Animator but in game the tool doesn’t animate the handle
Animation in Blender/Moon Animator: https://streamable.com/vebw55
How it looks like in Game: https://streamable.com/4y2jde
Animation was Running Fine in Moon Animator but in game the tool doesn’t animate the handle
Animation in Blender/Moon Animator: https://streamable.com/vebw55
How it looks like in Game: https://streamable.com/4y2jde
Well, is the Motor6D connected efficiently with the sword?
doesn’t matter if it has motor6D on it or not it won’t work
What do you mean it doesn’t matter? A Motor6D is what makes body parts move. For that matter, try to delete all the Motor6Ds in your game. (Don’t do it)
even if i put Motor 6D on it the sword wont move properly
here is the script
--//Services
local Replicated_Storage = game:GetService("ReplicatedStorage")
local User_Unput_Service = game:GetService("UserInputService")
local Run_Service = game:GetService("RunService")
local Player_Service = game:GetService("Players")
--//Tool
local Tool = script.Parent
local Animations_Folder = Tool:WaitForChild("Animations")
--//Events
local Events_Folder = Tool:WaitForChild("Events")
local Weapon_Remote = Events_Folder.Weapon_Remote
local Parry_Remote = Events_Folder.Parry_Remote
--//Player
local Player = Player_Service.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character.Humanoid
--//Camera
local Current_Camera = workspace.CurrentCamera
--//Values
local Range = 10
local Attack_Count = 1
local CoolDown = false
local Parry_Cooldown = false
--//Tables
local Data = {}
local Attack_Animations = {
"rbxassetid://14726824433",
"rbxassetid://14726830597"
}
--| Main Script |--
local function Attack_Camera_Shake(Length)
local Start_Time = tick()
for i = 1, 5 do
if tick() - Start_Time >= Length then break end
local X = math.random(-100, 100) / 300
local Y = math.random(-100, 100) / 300
local Z = math.random(-100, 100) / 300
Humanoid.CameraOffset = Vector3.new(X, Y, Z)
Current_Camera.CFrame *= CFrame.Angles(X/50, Y/50, Z/50)
task.wait()
end
Humanoid.CameraOffset = Vector3.new(0, 0, 0)
end
local function Parry(Key)
if Key.KeyCode == Enum.KeyCode.F and Parry_Cooldown == false and Tool.Parent == Character then
Parry_Cooldown = true
Data = {Action = "Parry"}
Parry_Remote:FireServer(Data)
task.wait(2)
Parry_Cooldown = false
end
end
local function Attack(Target)
if CoolDown == false then
CoolDown = true
local Animation = Humanoid:LoadAnimation(Animations_Folder.Combat[tostring(Attack_Count)])
Animation:Play()
local RayCast_Origin = Character.HumanoidRootPart.Position
local RayCast_Orientation = (Character.HumanoidRootPart.CFrame.LookVector * 180 - RayCast_Origin).Unit * Range
local RayCast_Params = RaycastParams.new()
RayCast_Params.FilterDescendantsInstances = {Character}
RayCast_Params.FilterType = Enum.RaycastFilterType.Exclude
local RayCast_Result = workspace:Raycast(RayCast_Origin, RayCast_Orientation, RayCast_Params)
if Attack_Count <#Animations_Folder.Combat:GetChildren() then
Attack_Count += 1
else
Attack_Count = 1
end
if RayCast_Result then
if RayCast_Result.Instance.Parent:FindFirstChild("Humanoid") then
if RayCast_Result.Instance.Parent:WaitForChild("Parry").Value == 0 then
Target = RayCast_Result.Instance.Parent
Data = {Action = "Attack"}
task.wait(0.2)
Attack_Camera_Shake(1)
Weapon_Remote:FireServer(Data, Target, RayCast_Result.Instance)
else
Target = RayCast_Result.Instance.Parent
task.wait(0.2)
Attack_Camera_Shake(2)
Weapon_Remote:FireServer(Data, Target, RayCast_Result.Instance)
Parry_Cooldown = false
task.wait(1.5)
end
end
end
task.wait(0.3)
CoolDown = false
end
end
Tool.Activated:Connect(Attack)
User_Unput_Service.InputBegan:Connect(Parry)
You need to set up the Motor6D using a script (when the tool is equipped) in the same way the character is previously rigged for the working animation.
wait mb i sent wrong script
--//Services
local Replicated_Storage = game:GetService("ReplicatedStorage")
local User_Unput_Service = game:GetService("UserInputService")
local Run_Service = game:GetService("RunService")
local Player_Service = game:GetService("Players")
--//Tool
local Tool = script.Parent
local Animations_Folder = Tool:WaitForChild("Animations")
--//Events
local Events_Folder = Tool:WaitForChild("Events")
local Weapon_Remote = Events_Folder.Weapon_Remote
local Parry_Remote = Events_Folder.Parry_Remote
--//Player
local Player = Player_Service.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
--//Camera
local Current_Camera = workspace.CurrentCamera
--//Values
local Range = 15
local Attack_Count = 1
local CoolDown = false
local Parry_Cooldown = false
--//Tables
local Data = {}
--| Main Script |--
local function Equipped()
local Motor6D = Instance.new("Motor6D", Character["Right Arm"])
Motor6D.Part0 = Character:WaitForChild("Right Arm")
Motor6D.Part1 = Tool:WaitForChild("Handle")
end
local function Attack_Camera_Shake(Length)
local Start_Time = tick()
for i = 1, 5 do
if tick() - Start_Time >= Length then break end
local X = math.random(-100, 100) / 300
local Y = math.random(-100, 100) / 300
local Z = math.random(-100, 100) / 300
Humanoid.CameraOffset = Vector3.new(X, Y, Z)
Current_Camera.CFrame *= CFrame.Angles(X/50, Y/50, Z/50)
task.wait()
end
Humanoid.CameraOffset = Vector3.new(0, 0, 0)
end
local function Parry(Key)
if Key.KeyCode == Enum.KeyCode.F and Parry_Cooldown == false and Tool.Parent == Character then
Parry_Cooldown = true
Data = {Action = "Parry"}
Parry_Remote:FireServer(Data)
task.wait(2)
Parry_Cooldown = false
end
end
local function Attack(Target)
if CoolDown == false then
CoolDown = true
local RayCast_Origin = Character.HumanoidRootPart.Position
local RayCast_Orientation = (Character.HumanoidRootPart.CFrame.LookVector * 180 - RayCast_Origin).Unit * Range
local RayCast_Params = RaycastParams.new()
RayCast_Params.FilterDescendantsInstances = {Character}
RayCast_Params.FilterType = Enum.RaycastFilterType.Exclude
local RayCast_Result = workspace:Raycast(RayCast_Origin, RayCast_Orientation, RayCast_Params)
local Animation = Humanoid:LoadAnimation(Animations_Folder.Combat[tostring(Attack_Count)])
Animation:Play()
if Attack_Count <#Animations_Folder.Combat:GetChildren() then
Attack_Count += 1
else
Attack_Count = 1
end
if RayCast_Result then
if RayCast_Result.Instance.Parent:FindFirstChild("Humanoid") then
if RayCast_Result.Instance.Parent:WaitForChild("Parry").Value == 0 then
Target = RayCast_Result.Instance.Parent
Data = {Action = "Attack"}
task.wait(0.2)
Attack_Camera_Shake(1)
Weapon_Remote:FireServer(Data, Target, RayCast_Result.Instance)
else
Target = RayCast_Result.Instance.Parent
task.wait(1.3)
Attack_Camera_Shake(2)
Weapon_Remote:FireServer(Data, Target, RayCast_Result.Instance)
Parry_Cooldown = false
task.wait(0.3)
end
end
end
task.wait(3)
CoolDown = false
end
end
Tool.Equipped:Connect(Equipped)
Tool.Activated:Connect(Attack)
User_Unput_Service.InputBegan:Connect(Parry)
No Matter if i create or copy Motor6D from dummy the tool wont move
That’s because the weapon is probably named Handle, so it’s going to the right arm’s Toolgrip or whatever it was. Try renaming Handle to something else and ticking requirehandle off, or remove Toolgrip somehow.