-
What do you want to achieve?
I wanna switch from using RaycastHitbox module to this FastCast module.
The result should look something similar to this:
robloxapp-20200606-1847083 -
What is the issue?
The sword doesn’t move. It does the throw animation and stays frozen in mid air. -
What solutions have you tried so far?
I’ve been looking all over the api for anything I might be missing. I don’t understand what’s wrong with my code.
swordClone = nil; hitSomething = false; -- new caster for throwable sword Caster = FastCast.new() -- not sure what I would do with the origin, lastPoint, rayDir, displacement, or cosmeticBulletObject Caster.LengthChanged:connect(function(...) print(...) end) -- Upon the caster hitting something OnHitConnection = Caster.RayHit:Connect(function(hit,hitPos, normal, material, cosmeticBulletObject) print'RayHit Event called' if not hit then return end print('Hit obj found',hit:GetFullName()) if (hit ~= swordClone) and (hit.CanCollide or hit.Parent:FindFirstChild('Humanoid') ) then hitSomething = hit doDamage(hit,DefaultDamage*3) if swordClone then swordClone.CFrame = swordClone.CFrame*CFrame.new(0,-3,0) end --OnHitConnection:Disconnect() wait(1) if swordClone then swordClone.Anchored = false swordClone.CanCollide = true end end end) function throwAttack(whereToThrow) print'Throw attack!' SpearThrowAnim:Play(.1,1,2) Handle.SwingSound:Play() SpearThrowAnim.Stopped:Wait() swordClone = Handle:Clone() swordClone.CFrame = CFrame.new(Handle.Position,whereToThrow)*CFrame.Angles(math.rad(-90),0,0) swordClone.Anchored = true swordClone.Parent = workspace--Char Tool.Parent = game.ServerScriptService -- I don't use ServerStorage because this script is inside the tool, I don't want the script to end here. local origin = swordClone.Position local direction = (origin-whereToThrow).Unit local BULLET_GRAVITY = Vector3.new(0,-1,0) -- Fire/throw the sword! Caster:Fire(origin, direction*3, 100, swordClone, Char, false, BULLET_GRAVITY) hitSomething = false -- make sword pick-up-able stuff (you can ignore the stuff after this line) local EInteractObj = game.ServerStorage.EtoInteract:Clone() EInteractObj.Parent = swordClone local toolTaken = false EInteractObj.OnPlayerActivate.Event:Connect(function(PlayerWhoClicked) if toolTaken then return end toolTaken = true local gave = give(PlayerWhoClicked,Tool) if gave then Player = PlayerWhoClicked Char = Player.Character Hum = Char:WaitForChild('Humanoid') OnHitConnection:Disconnect() swordClone:Destroy() else toolTaken = false end end) end The throwAttack function is called whenever the user activates the throw-move.
whereToThrow is the Mouse.Hit.p value (this is a server script though)