Hi everyone I’m currently working on a Tool Ability System and I need an Ability that teleports the player if tool is activated to the MouseButton or sth. with a Cooldown of 10 Seconds Ik I may be annoying but I don’t really know how to do these abilities I even searched up on other platforms.
1 Like
--LocalScript parented to the tool
local player:Player = game:GetService("Players").LocalPlayer
local character:Model = player.Character or player.CharacterAdded:Wait()
local rootPart:Part = character:WaitForChild("HumanoidRootPart")
local tool:Tool = script.Parent
local function onToolActivated()
rootPart.CFrame += rootPart.CFrame.LookVector * 5
end
tool.Activated:Connect(onToolActivated)
You can also use raycasting to stop the player going through walls.
2 Likes
you it works but how can I use this raycasting thing
You would just cast a ray beforehand to ensure they don’t go through a wall.
local params:RaycastParams = RaycastParams.new()
params.FilterDescendantsInstances = {character}
params.FilterType = Enum.RaycastFilterType.Exclude
--then, when you need it:
local target = nil
local origin:Vector3 = rootPart.CFrame.Position
local direction:Vector3 = rootPart.CFrame.LookVector * 5
local hit:RaycastResult = workspace:Raycast(origin, direction, params)
if hit then
target = CFrame.new(hit.Position) * CFrame.Angles(rootPart.CFrame:ToEularAnglesXYZ()) :: CFrame
else
target = rootPart.CFrame + (rootPart.CFrame.LookVector * 5)
end
rootPart.CFrame = target
1 Like
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.