Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- [[ Reacher MODIFIED v2.0.1 ]]
- --This version was modified by LiteralIyMatt (m.#0115)
- --Designed for Steal Time From Others & Be The Best by Detourious
- --Game can be found at: https://www.roblox.com/games/6361937392/steal-time-from-others-be-the-best
- --================================WARNING================================
- --THIS SCRIPT IS DESIGNED FOR A VERY NICHE TYPE OF SWORD, THIS WILL CAUSE YOU TO TP AROUND PLAYERS ON MOST SWORDS.
- --USE AT YOUR OWN RISK.
- --================================WARNING================================
- local KEY = Enum.KeyCode
- local Settings = {
- Keybinds = {
- ["INCREASE"] = KEY["Q"];
- ["DECREASE"] = KEY["E"];
- ["TOGGLE_REACH"] = KEY["R"];
- ["TOGGLE_VISUALIZER"] = KEY["T"];
- ["TOGGLE_DAMAGE_AMP"] = KEY["X"];
- ["CHECK_SETTINGS"] = KEY["C"];
- ["TOGGLE_NOTIFICATIONS"] = KEY["V"];
- ["TOGGLE_AUTO_CLICKER"] = KEY["B"];
- ["KILL_SCRIPT"] = KEY["Z"];
- };
- Values = { -- Set these to what you want the default values for each to be upon execution
- ["distance"] = 3.5;
- ["enabled"] = true;
- ["notifications"] = true;
- ["visualizer"] = true;
- ["damage_amp"] = true;
- ["auto_clicking"] = true;
- ["cooldown"] = false;
- ["killed"] = true;
- };
- DISTANCE_INCREMENT = 0.5; -- How much will be added/removed upon distance increase/decrease
- COOLDOWN = 0.05; -- How long the cooldown is on regular FTI (NOT FOR DAMAGE AMP)
- }
- -- Services
- local Players = game:GetService("Players")
- local RunService = game:GetService("RunService")
- local UserInputService = game:GetService("UserInputService")
- local StarterGui = game:GetService("StarterGui")
- -- Globals
- local F = string.format
- local Upper = string.upper
- -- Statics
- local SPEED_COLOR = 1
- local WHITELIST = {"Head", "Torso", "Right Arm", "Left Arm", "Right Leg", "Left Leg", }
- -- Non statics
- local connections = {}
- local instances = {}
- -- Instances
- local localPlayer = Players.LocalPlayer
- local Notify = function(x)
- if Settings.Values.notifications == true then
- StarterGui:SetCore("SendNotification", {
- Title = " Reach v3.0";
- Text = x;
- })
- end
- end
- connections.InputBegan = UserInputService.InputBegan:Connect(function(INPUT, GPE)
- if GPE then return end
- local KEY = INPUT.KeyCode
- if KEY == Settings.Keybinds.INCREASE then
- Settings.Values.distance = Settings.Values.distance + Settings.DISTANCE_INCREMENT
- Notify(F("Distance: %s", Settings.Values.distance))
- elseif KEY == Settings.Keybinds.DECREASE then
- Settings.Values.distance = Settings.Values.distance - Settings.DISTANCE_INCREMENT
- Notify(F("Distance: %s", Settings.Values.distance))
- elseif KEY == Settings.Keybinds.TOGGLE_REACH then
- Settings.Values.enabled = not Settings.Values.enabled
- Notify(F("Reach: %s", tostring(Settings.Values.enabled)))
- elseif KEY == Settings.Keybinds.TOGGLE_DAMAGE_AMP then
- Settings.Values.damage_amp = not Settings.Values.damage_amp
- Notify(F("Damage Amp: %s", tostring(Settings.Values.damage_amp)))
- elseif KEY == Settings.Keybinds.TOGGLE_VISUALIZER then
- Settings.Values.visualizer = not Settings.Values.visualizer
- Notify(F("Visualizer: %s", tostring(Settings.Values.visualizer)))
- elseif KEY == Settings.Keybinds.TOGGLE_NOTIFICATIONS then
- Settings.Values.notifications = not Settings.Values.notifications
- elseif KEY == Settings.Keybinds.CHECK_SETTINGS then
- local str = F("Distance: %s\nDamage Amp: %s\nCooldown: %s", Settings.Values.distance, tostring(Settings.Values.damage_amp), tostring(Settings.Values.cooldown))
- Notify(str)
- elseif KEY == Settings.Keybinds.TOGGLE_AUTO_CLICKER then
- Settings.Values.auto_clicking = not Settings.Values.auto_clicking
- Notify(F("Auto Clicking: %s", tostring(Settings.Values.auto_clicking)))
- elseif KEY == Settings.Keybinds.KILL_SCRIPT then
- Settings.Values.killed = true
- Notify("DISABLED")
- for _, connection in pairs(connections) do
- pcall(function()
- connection:Disconnect()
- end)
- end
- for _, part in pairs(instances) do
- part:Destroy()
- end
- end
- end)
- local FireFakes = function(handle, part)
- local region = Region3.new(handle.Position + Vector3.new(-1, -1, -1), handle.Position + Vector3.new(1, 1, 1))
- local objects = game:GetService("Workspace"):FindPartsInRegion3(region)
- for i, instance in pairs(objects) do
- if instance:IsA("Part") and instance:FindFirstChild("TouchTransmitter") and instance.Parent.ClassName ~= "Tool" then
- coroutine.wrap(function()
- firetouchinterest(part, handle ,0)
- task.wait()
- firetouchinterest(part, handle, 1)
- end)()
- end
- end
- end
- local FireTouchInterest = function(handle, part)
- coroutine.wrap(FireFakes)(handle, part)
- coroutine.wrap(function()
- firetouchinterest(part, handle ,0)
- task.wait()
- firetouchinterest(part, handle, 1)
- end)()
- end
- local BindVisualizer = function(obj)
- while obj.Parent == game:GetService("CoreGui") do
- pcall(function()
- local selectionBox = instances["visualizer"]:FindFirstChildOfClass("SelectionBox")
- for i = 0, 1, 0.001 * SPEED_COLOR do
- selectionBox.Color3 = Color3.fromHSV(i, 1, 1)
- selectionBox.SurfaceColor3 = Color3.fromHSV(i, 1, 1)
- task.wait()
- end
- end)
- if Settings.Values.killed == true then
- break
- end
- task.wait()
- end
- end
- connections.Heartbeat = RunService.Heartbeat:Connect(function()
- local character = localPlayer.Character
- if not character then return end
- local sword = character:FindFirstChildOfClass("Tool")
- local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
- local humanoid = character:FindFirstChild("Humanoid")
- if Settings.Values.enabled and sword and sword.Handle and humanoidRootPart and humanoid then
- local handle = sword.Handle
- if Settings.Values.auto_clicking then
- sword:Activate()
- end
- if not instances["visualizer"] and Settings.Values.visualizer == true then
- local part = Instance.new("Part")
- part.Name = "_"
- part.Anchored = false
- part.CanCollide = false
- part.Massless = true
- local selectionBox = Instance.new("SelectionBox", part)
- selectionBox.Name = "_"
- selectionBox.Adornee = part
- selectionBox.LineThickness = 0.015
- selectionBox.SurfaceTransparency = 0.5
- selectionBox.Transparency = 0
- part.Parent = game:GetService("CoreGui")
- instances["visualizer"] = part
- BindVisualizer(part)
- elseif instances["visualizer"] and Settings.Values.visualizer == false then
- instances["visualizer"]:Destroy()
- instances["visualizer"] = nil
- end
- if instances["visualizer"] then
- instances["visualizer"].Size = Vector3.new(Settings.Values.distance * 1.65, 0.55, Settings.Values.distance * 1.65)
- instances["visualizer"].CFrame = humanoidRootPart.CFrame - (humanoidRootPart.CFrame.UpVector * 2.75) + (humanoidRootPart.CFrame.RightVector * 1.5) + (humanoidRootPart.CFrame.LookVector * 1.5)
- end
- for i, player in pairs(Players:GetPlayers()) do
- if player ~= localPlayer and player.Character then
- local targetCharacter = player.Character
- local targetRoot = targetCharacter:FindFirstChild("HumanoidRootPart")
- local targetHumanoid = targetCharacter:FindFirstChild("Humanoid")
- local targetPart
- local chosenIndex = math.random(1, #WHITELIST)
- local last
- for i = 1, #WHITELIST do
- if i == chosenIndex and targetCharacter:FindFirstChild(WHITELIST[i]) then
- targetPart = targetCharacter:FindFirstChild(WHITELIST[i])
- if targetPart and targetPart.Transparency <= 0.8 then
- break
- else
- last = nil
- break
- end
- end
- last = i
- end
- if not targetRoot or not targetHumanoid or last == nil then return end
- if (handle.Position - targetRoot.Position).Magnitude <= Settings.Values.distance then
- if Settings.Values.damage_amp == true then
- for _,v in pairs({"Right Arm", "Right Arm", "Left Arm", "Torso"}) do
- local part = targetCharacter:FindFirstChild(v)
- if part and part.Transparency <= 0.8 and targetHumanoid.Health > 0 then
- for i = 1, math.random(1, 2) do
- FireTouchInterest(part, handle)
- end
- else
- break
- end
- end
- elseif Settings.Values.cooldown == false then
- Settings.Values.cooldown = true
- FireTouchInterest(targetPart, handle)
- task.wait(Settings.COOLDOWN)
- Settings.Values.cooldown = false
- end
- end
- end
- end
- else -- GC instances since everythings disabled
- for i,v in pairs(instances) do
- v:Destroy()
- instances[i] = nil
- end
- end
- end)
- _G.HeadSize = 25
- _G.Disabled = true
- game:GetService('RunService').RenderStepped:connect(function()
- if _G.Disabled then
- for i,v in next, game:GetService('Players'):GetPlayers() do
- if v.Name ~= game:GetService('Players').LocalPlayer.Name then
- pcall(function()
- v.Character.HumanoidRootPart.Size = Vector3.new(_G.HeadSize,_G.HeadSize,_G.HeadSize)
- v.Character.HumanoidRootPart.Transparency = 1
- v.Character.HumanoidRootPart.BrickColor = BrickColor.new("Really blue")
- v.Character.HumanoidRootPart.Material = "Neon"
- v.Character.HumanoidRootPart.CanCollide = false
- end)
- end
- end
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement