Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Global Toggles
- _G.ESPEnabled = true -- Toggle ESP on/off
- _G.AimbotEnabled = true -- Toggle Aimbot on/off
- -- Services
- local Players = game:GetService("Players")
- local RunService = game:GetService("RunService")
- local UserInputService = game:GetService("UserInputService")
- local Camera = game.Workspace.CurrentCamera
- --Speed Hack
- -- Default WalkSpeed
- local defaultWalkSpeed = 16 -- Standard Roblox walk speed
- local customWalkSpeed = defaultWalkSpeed -- Adjustable speed
- -- Function to set walk speed
- local function setWalkSpeed(speed)
- if Players.LocalPlayer.Character and Players.LocalPlayer.Character:FindFirstChild("Humanoid") then
- Players.LocalPlayer.Character.Humanoid.WalkSpeed = speed
- end
- end
- -- Update walk speed continuously (in case character respawns)
- RunService.Heartbeat:Connect(function()
- if Players.LocalPlayer.Character and Players.LocalPlayer.Character:FindFirstChild("Humanoid") then
- Players.LocalPlayer.Character.Humanoid.WalkSpeed = customWalkSpeed
- end
- end)
- -- List of Locations
- local locations = {
- {Name = "Nearest ATM", PartName = "MoneyShooter", Offset = Vector3.new(0, 0, -3)}, -- ATM teleport
- {Name = "Nearest Cash Register", PartName = "MoveToPart", ParentModel = "CounterWithCash", Offset = Vector3.new(0, 0, -3)}, -- Cash Register teleport
- {Name = "Criminal Base", PartName = "TeleportPart1", ParentModel = "CriminalBase_InteractingModel", Offset = Vector3.new(0, 0, 0)}, -- Criminal Teleport
- }
- -- Function to find the nearest location
- local function findNearestLocation(partName, parentModel)
- local nearestPart = nil
- local shortestDistance = math.huge
- for _, obj in ipairs(workspace:GetDescendants()) do
- if parentModel then
- -- Look for specific parent model (e.g., CounterWithCash)
- if obj:IsA("Model") and obj.Name == parentModel then
- local targetPart = obj:FindFirstChild(partName)
- if targetPart and targetPart:IsA("BasePart") then
- local distance = (Players.LocalPlayer.Character.HumanoidRootPart.Position - targetPart.Position).Magnitude
- if distance < shortestDistance then
- nearestPart = targetPart
- shortestDistance = distance
- end
- end
- end
- else
- -- Look for parts directly
- if obj:IsA("BasePart") and obj.Name == partName then
- local distance = (Players.LocalPlayer.Character.HumanoidRootPart.Position - obj.Position).Magnitude
- if distance < shortestDistance then
- nearestPart = obj
- shortestDistance = distance
- end
- end
- end
- end
- return nearestPart
- end
- -- Function to teleport the player
- local function teleportTo(part, offset)
- if part and Players.LocalPlayer.Character and Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
- local targetPosition = part.Position + offset -- Use only the Vector3 position
- Players.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(targetPosition)
- print("Teleported to:", part.Name)
- else
- print("Failed to teleport. Part not found.")
- end
- end
- -- Settings
- local FOV = 100 -- Field of View for aimbot targeting
- local Smoothness = 0.2 -- Controls how smooth the aimbot is (lower is faster)
- local AimPart = "Head" -- Body part to aim at (e.g., "Head", "Torso")
- local BulletSpeed = 1000 -- Bullet travel speed (game-specific)
- local Gravity = Vector3.new(0, -196.2, 0) -- Gravity, typically Roblox standard
- -- Store all ESP highlights for cleanup
- local ESPInstances = {}
- -- Drawing API for FOV circle
- local FOVCircle = Drawing.new("Circle")
- FOVCircle.Visible = true
- FOVCircle.Color = Color3.new(1, 1, 1) -- White color
- FOVCircle.Thickness = 2
- FOVCircle.Transparency = 1
- FOVCircle.Filled = false
- -- Function to update FOV circle position and size
- local function updateFOVCircle()
- local mousePos = UserInputService:GetMouseLocation()
- FOVCircle.Position = mousePos
- FOVCircle.Radius = FOV
- end
- -- Function to create ESP
- local function addESP(player)
- if not _G.ESPEnabled then return end
- -- Ensure the player has a character
- if player ~= Players.LocalPlayer and player.Character then
- local highlight = Instance.new("Highlight")
- highlight.Adornee = player.Character
- highlight.Parent = player.Character
- highlight.FillColor = Color3.new(1, 0, 0) -- Red for enemies
- highlight.OutlineColor = Color3.new(1, 1, 1) -- White outline
- highlight.FillTransparency = 0.5
- highlight.OutlineTransparency = 0
- -- Store for cleanup
- ESPInstances[player] = highlight
- end
- end
- -- Cleanup ESP for a player
- local function removeESP(player)
- if ESPInstances[player] then
- ESPInstances[player]:Destroy()
- ESPInstances[player] = nil
- end
- end
- -- Add ESP for all current players
- for _, player in ipairs(Players:GetPlayers()) do
- if player.Character then
- addESP(player)
- end
- -- Listen for respawn (CharacterAdded)
- player.CharacterAdded:Connect(function()
- if _G.ESPEnabled then
- wait(0.1) -- Small delay to ensure character is fully loaded
- removeESP(player) -- Clean up any existing ESP
- addESP(player) -- Reapply ESP
- end
- end)
- end
- -- Add ESP for new players
- Players.PlayerAdded:Connect(function(player)
- player.CharacterAdded:Connect(function()
- if _G.ESPEnabled then
- wait(0.1) -- Small delay to ensure character is fully loaded
- addESP(player)
- end
- end)
- end)
- -- Monitor Kill Switch (Optional Cleanup)
- RunService.Heartbeat:Connect(function()
- if not _G.ESPEnabled then
- -- Destroy all ESP highlights and clear the table
- for _, instance in pairs(ESPInstances) do
- if instance and instance.Parent then
- instance:Destroy()
- end
- end
- ESPInstances = {}
- print("ESP Disabled and Cleaned Up")
- end
- end)
- -- Function to calculate the closest player to the crosshair
- local function getClosestPlayer()
- local closestPlayer = nil
- local shortestDistance = FOV -- Use the current FOV value from the slider
- for _, player in ipairs(Players:GetPlayers()) do
- if player ~= Players.LocalPlayer and player.Character and player.Character:FindFirstChild(AimPart) then
- local part = player.Character[AimPart]
- local screenPosition, onScreen = Camera:WorldToViewportPoint(part.Position)
- if onScreen then
- local mousePos = UserInputService:GetMouseLocation()
- local distance = (Vector2.new(screenPosition.X, screenPosition.Y) - mousePos).Magnitude
- if distance < shortestDistance then
- closestPlayer = player
- shortestDistance = distance
- end
- end
- end
- end
- return closestPlayer
- end
- -- Function to calculate bullet prediction
- local function getPredictedPosition(targetPart, targetVelocity, distance)
- local travelTime = distance / BulletSpeed
- -- Predict future position based on velocity and gravity
- local futurePosition = targetPart.Position + (targetVelocity * travelTime) + (0.5 * Gravity * travelTime^2)
- return futurePosition
- end
- -- Aimbot Functionality
- RunService.RenderStepped:Connect(function()
- if _G.AimbotEnabled then
- local target = getClosestPlayer()
- if target and target.Character and target.Character:FindFirstChild(AimPart) then
- local targetPart = target.Character[AimPart]
- local targetVelocity = target.Character:FindFirstChild("HumanoidRootPart") and target.Character.HumanoidRootPart.Velocity or Vector3.zero
- local distance = (Camera.CFrame.Position - targetPart.Position).Magnitude
- -- Calculate predicted position
- local predictedPosition = getPredictedPosition(targetPart, targetVelocity, distance)
- -- Smoothly adjust the camera to the predicted position using the current Smoothness value
- local newPosition = Camera.CFrame.Position:Lerp(predictedPosition, Smoothness)
- Camera.CFrame = CFrame.new(Camera.CFrame.Position, newPosition)
- end
- end
- -- Update FOV circle position and size
- updateFOVCircle()
- end)
- -- Load Orion Library
- local OrionLib = loadstring(game:HttpGet(('https://raw.githubusercontent.com/shlexware/Orion/main/source')))()
- -- Create the main window
- local Window = OrionLib:MakeWindow({Name = "Viper.GG Street Shootout", HidePremium = false, SaveConfig = true, ConfigFolder = "StreetShootout"})
- -- Tabs
- local MainTab = Window:MakeTab({
- Name = "Main",
- Icon = "rbxassetid://4483345998",
- PremiumOnly = false
- })
- -- Create a new "Misc" tab
- local MiscTab = Window:MakeTab({
- Name = "Misc",
- Icon = "rbxassetid://4483345998", -- Replace this with any suitable icon
- PremiumOnly = false
- })
- -- Create a Teleport Tab in the GUI
- local TeleportTab = Window:MakeTab({
- Name = "Teleport",
- Icon = "rbxassetid://4483345998", -- Replace with any suitable icon
- PremiumOnly = false
- })
- -- Speed Slider in Orion GUI
- MainTab:AddSlider({
- Name = "Walk Speed",
- Min = 16,
- Max = 100,
- Default = defaultWalkSpeed,
- Color = Color3.fromRGB(255, 255, 255),
- Increment = 1,
- ValueName = "Speed",
- Callback = function(value)
- customWalkSpeed = value -- Update the walk speed
- setWalkSpeed(customWalkSpeed) -- Apply the new speed
- end
- })
- -- Add Buttons for Each Location Telport
- for _, location in ipairs(locations) do
- TeleportTab:AddButton({
- Name = location.Name,
- Callback = function()
- local nearestPart = findNearestLocation(location.PartName, location.ParentModel)
- if nearestPart then
- teleportTo(nearestPart, location.Offset)
- else
- print(location.Name .. " not found!")
- end
- end
- })
- end
- -- Toggles for Aimbot and ESP
- MainTab:AddToggle({
- Name = "Enable ESP",
- Default = _G.ESPEnabled,
- Callback = function(value)
- _G.ESPEnabled = value
- if not value then
- -- Cleanup ESP when toggled off
- for _, instance in pairs(ESPInstances) do
- if instance and instance.Parent then
- instance:Destroy()
- end
- end
- ESPInstances = {}
- end
- end
- })
- MainTab:AddToggle({
- Name = "Enable Aimbot",
- Default = _G.AimbotEnabled,
- Callback = function(value)
- _G.AimbotEnabled = value
- end
- })
- -- Sliders for Aimbot FOV and Smoothness
- MainTab:AddSlider({
- Name = "Aimbot FOV",
- Min = 50,
- Max = 200,
- Default = FOV,
- Color = Color3.fromRGB(255, 255, 255),
- Increment = 1,
- ValueName = "FOV",
- Callback = function(value)
- FOV = value -- Update the global FOV setting
- updateFOVCircle() -- Update the circle size
- end
- })
- MainTab:AddSlider({
- Name = "Aimbot Smoothness",
- Min = 0.1,
- Max = 1,
- Default = Smoothness,
- Color = Color3.fromRGB(255, 255, 255),
- Increment = 0.05,
- ValueName = "Smoothness",
- Callback = function(value)
- Smoothness = value -- Update the global Smoothness setting
- end
- })
- -- Dropdown for Aimbot Target Part
- MainTab:AddDropdown({
- Name = "Aimbot Target Part",
- Default = AimPart,
- Options = {"Head", "Torso"},
- Callback = function(value)
- AimPart = value
- end
- })
- -- Button to execute a kill switch for ESP
- MainTab:AddButton({
- Name = "Kill ESP Highlights",
- Callback = function()
- for _, instance in pairs(ESPInstances) do
- if instance and instance.Parent then
- instance:Destroy()
- end
- end
- ESPInstances = {}
- print("ESP highlights killed.")
- end
- })
- -- Initialize Orion
- OrionLib:Init()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement