M
Description
loadstring(game:HttpGet("https://raw.githubusercontent.com/orialdev/VisionHub/refs/heads/main/main.lua"))()
GAMEMMV
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
-- Vision Hub/main.lua
-- sexy script by github.com/orialdev
-- please give credit if you use anything from my code
local CoreGui = game:GetService("CoreGui")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local Modules = {}
local WindUI = loadstring(game:HttpGet("https://raw.githubusercontent.com/KevinScripts2024/Gkfkfkdlwsk/refs/heads/main/wind%20(1).txt"))()
local queue_on_teleport = queue_on_teleport or (syn and syn.queue_on_teleport) or (fluxus and fluxus.queue_on_teleport) or function(...) end
if getgenv().VisionHub_Connections then
for i, conn in pairs(getgenv().VisionHub_Connections) do
if conn then
pcall(function() conn:Disconnect() end)
end
getgenv().VisionHub_Connections[i] = nil
end
end
getgenv().VisionHub_Connections = {}
for _, gui in ipairs(CoreGui:GetChildren()) do
if gui.Name == "Vision Hub" or gui.Name == "VisionESP" or string.match(gui.Name, "^VisionBtn_") or gui.Name == "VisionTimerGUI" then
gui:Destroy()
end
end
for _, player in ipairs(Players:GetPlayers()) do
if player.Character then
local artifacts = {
player.Character:FindFirstChild("VisionHighlight"),
player.Character:FindFirstChild("Head") and player.Character.Head:FindFirstChild("NameESP")
}
for _, artifact in ipairs(artifacts) do
if artifact then artifact:Destroy() end
end
end
end
for _, obj in ipairs(Workspace:GetDescendants()) do
if obj.Name == "VisionGunHighlight" or obj.Name == "VisionGunLabel" then
obj:Destroy()
end
end
if Modules and Modules.RootPart then
local v = Modules.RootPart:FindFirstChild("EpixVel")
if v then v:Destroy() end
end
if getgenv().FPDH then
Workspace.FallenPartsDestroyHeight = getgenv().FPDH
end
local function AddConnection(conn)
local connections = getgenv().VisionHub_Connections
for i = #connections, 1, -1 do
local c = connections[i]
if not c or not c.Connected then
table.remove(connections, i)
end
end
table.insert(connections, conn)
return conn
end
local RunService = game:GetService("RunService")
local TeleportService = game:GetService("TeleportService")
local StarterGui = game:GetService("StarterGui")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local HttpService = game:GetService("HttpService")
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local SoundService = game:GetService("SoundService")
local TextChatService = game:GetService("TextChatService")
local Player = Players.LocalPlayer
local GetMouse = Player:GetMouse()
local PlayerGui = Player:FindFirstChildWhichIsA("PlayerGui")
local PlaceId, JobId = game.PlaceId, game.JobId
local writefile = writefile or nil
local readfile = readfile or nil
local firetouchinterest = firetouchinterest or nil
Modules.Player = Player
Modules.GetMouse = GetMouse
Modules.PlayerGui = PlayerGui
Modules.PlaceId = PlaceId
Modules.JobId = JobId
Modules.RunService = RunService
Modules.UserInputService = UserInputService
Modules.Lighting = Lighting
Modules.SoundService = SoundService
Modules.Workspace = Workspace
Modules.ReplicatedStorage = ReplicatedStorage
Modules.HttpService = HttpService
Modules.StarterGui = StarterGui
Modules.TextChatService = TextChatService
Modules.Config = {
GodMode = false,
AntiFling = false,
AntiAfk = false,
EnableWalkSpeed = false,
WalkSpeed = 16,
EnableJumpPower = false,
JumpPower = 50,
Noclip = false,
InfiniteJump = false,
AutoGrabGun = false,
AutoKill = false,
KnifeAura = false,
AuraRadius = 10,
EspPlayers = false,
ShowNames = false,
EspDroppedGun = false,
EspTrap = false,
RemoveTraps = false,
SilentThrow = false,
AutoShootMurderer = false,
AutoQueue = true,
QueueUrl = 'loadstring(game:HttpGet("https://raw.githubusercontent.com/orialdev/Vision-Hub/refs/heads/main/main.lua"))()',
NotifyMurderer = false,
NotifySheriff = false,
NotifyGunDropped = false,
ButtonsLocked = false
}
Modules.PlayerData = {}
Modules.MobileButtons = {}
local function updateCharacterRefs(character)
Modules.Character = character
if character then
local hum = character:FindFirstChildOfClass("Humanoid")
if not hum then
hum = character:WaitForChild("Humanoid", 5)
end
Modules.Humanoid = hum
Modules.Backpack = Modules.Player:FindFirstChild("Backpack")
Modules.RootPart = character:FindFirstChild("HumanoidRootPart") or character.PrimaryPart
Modules.Camera = Workspace.CurrentCamera
else
Modules.Humanoid = nil
Modules.RootPart = nil
end
end
if Modules.Player then
if Modules.Player.Character then
updateCharacterRefs(Modules.Player.Character)
end
AddConnection(Modules.Player.CharacterAdded:Connect(function(character)
updateCharacterRefs(character)
end))
AddConnection(Modules.Player.CharacterRemoving:Connect(function()
updateCharacterRefs(nil)
end))
AddConnection(Players.PlayerRemoving:Connect(function(p)
if p and p.Name and Modules.PlayerData[p.Name] then
Modules.PlayerData[p.Name] = nil
end
end))
end
function Modules.GetService(name)
local ok, s = pcall(function()
return game:GetService(name)
end)
return ok and s or nil
end
do
local antiFlingConn = nil
function Modules.ToggleAntiFling(enable)
Modules.Config.AntiFling = enable
if antiFlingConn then
antiFlingConn:Disconnect()
antiFlingConn = nil
end
if enable then
antiFlingConn = AddConnection(RunService.Stepped:Connect(function()
if not Modules.Character then return end
for _, otherPlayer in ipairs(Players:GetPlayers()) do
if otherPlayer ~= Modules.Player and otherPlayer.Character then
for _, part in ipairs(otherPlayer.Character:GetChildren()) do
if part:IsA("BasePart") and part.CanCollide then
part.CanCollide = false
if part.Name == "HumanoidRootPart" then
part.Velocity = Vector3.new(0, 0, 0)
part.RotVelocity = Vector3.new(0, 0, 0)
end
end
end
end
end
end))
end
end
end
function Modules.HandleQueueTeleport()
if Modules.Config.AutoQueue and Modules.Config.QueueUrl and Modules.Config.QueueUrl ~= "" then
if queue_on_teleport then
queue_on_teleport(Modules.Config.QueueUrl)
end
end
end
function Modules.Rejoin()
if not TeleportService then return end
if not Modules.Player then return end
Modules.HandleQueueTeleport()
pcall(function()
TeleportService:TeleportToPlaceInstance(
game.PlaceId,
game.JobId,
Modules.Player
)
end)
end
function Modules.ServerHop()
if not TeleportService or not Modules.Player then return end
Modules.HandleQueueTeleport()
local url = "https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100"
local success, result = pcall(function()
return HttpService:JSONDecode(game:HttpGet(url))
end)
if success and result and result.data then
for _, server in ipairs(result.data) do
if server.id ~= game.JobId and server.playing < server.maxPlayers then
TeleportService:TeleportToPlaceInstance(
game.PlaceId,
server.id,
Modules.Player
)
return
end
end
end
TeleportService:Teleport(game.PlaceId, Modules.Player)
end
function getMap()
for _, o in ipairs(workspace:GetChildren()) do
if o:FindFirstChild("CoinContainer") and o:FindFirstChild("Spawns") then
return o
end
end
return nil
end
function Modules.TeleportToMap()
local character = Modules.Character or (Modules.RootPart and Modules.RootPart.Parent)
if not character then return end
local map = getMap()
if not map then return end
local spawns = map:FindFirstChild("Spawns")
if not spawns then return end
local spawnList = {}
for _, v in ipairs(spawns:GetChildren()) do
if v:IsA("BasePart") then
table.insert(spawnList, v)
end
end
local spawn
if #spawnList > 0 then
spawn = spawnList[math.random(1, #spawnList)]
end
if not spawn then
spawn = spawns:FindFirstChild("Spawn") or spawns:FindFirstChild("PlayerSpawn")
end
if spawn and spawn:IsA("BasePart") then
character:PivotTo(spawn.CFrame * CFrame.new(0, 5, 0))
else
end
end
function getLobby()
for _, obj in ipairs(workspace:GetChildren()) do
if obj:FindFirstChild("Lobby") then
return obj.Lobby
end
if obj.Name:lower() == "lobby" then
return obj
end
end
return nil
end
function Modules.TeleportToLobby()
local character = Modules.Character or (Modules.RootPart and Modules.RootPart.Parent)
if not character then return end
local lobby = getLobby()
if not lobby then return end
local spawns = lobby:FindFirstChild("Spawns")
if not spawns then return end
local spawnList = {}
for _, v in ipairs(spawns:GetChildren()) do
if v:IsA("BasePart") then
table.insert(spawnList, v)
end
end
local spawn
if #spawnList > 0 then
spawn = spawnList[math.random(1, #spawnList)]
end
if not spawn then
spawn = spawns:FindFirstChild("SpawnLocation")
end
if spawn and spawn:IsA("BasePart") then
character:PivotTo(spawn.CFrame * CFrame.new(0, 5, 0))
end
end
function getCoinContainer()
local map = getMap()
if map then return map:FindFirstChild("CoinContainer") end
return nil
end
function Modules.GetPlayerByName(name)
if not name then return nil end
for _, p in ipairs(Players:GetPlayers()) do
if p.Name:lower() == name:lower() then
return p
end
end
return nil
end
function Modules.FindMurderer()
for _, plr in ipairs(Players:GetPlayers()) do
if plr:FindFirstChild("Backpack") and plr.Backpack:FindFirstChild("Knife") then
return plr
end
end
for _, plr in ipairs(Players:GetPlayers()) do
if plr.Character and plr.Character:FindFirstChild("Knife") then
return plr
end
end
if Modules.PlayerData then
for playerName, data in pairs(Modules.PlayerData) do
if data and (data.Role == "Murderer" or data.role == "Murderer") then
local found = Players:FindFirstChild(playerName)
if found then return found end
end
end
end
return nil
end
function Modules.FindSheriff()
for _, plr in ipairs(Players:GetPlayers()) do
if plr:FindFirstChild("Backpack") and plr.Backpack:FindFirstChild("Gun") then
return plr
end
end
for _, plr in ipairs(Players:GetPlayers()) do
if plr.Character and plr.Character:FindFirstChild("Gun") then
return plr
end
end
if Modules.PlayerData then
for playerName, data in pairs(Modules.PlayerData) do
if data and (data.Role == "Sheriff" or data.role == "Sheriff") then
local found = Players:FindFirstChild(playerName)
if found then return found end
end
end
end
return nil
end
function Modules.FindSheriffThatsNotMe()
local localplayer = Players.LocalPlayer
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= localplayer and plr:FindFirstChild("Backpack") and plr.Backpack:FindFirstChild("Gun") then
return plr
end
end
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= localplayer and plr.Character and plr.Character:FindFirstChild("Gun") then
return plr
end
end
if Modules.PlayerData then
for playerName, data in pairs(Modules.PlayerData) do
if data and (data.Role == "Sheriff" or data.role == "Sheriff") then
local found = Players:FindFirstChild(playerName)
if found and found ~= localplayer then
return found
end
end
end
end
return nil
end
do
local success, remotes = pcall(function()
return Modules.ReplicatedStorage and Modules.ReplicatedStorage:WaitForChild("Remotes", 5)
end)
if success and remotes then
local gameplay = remotes:FindFirstChild("Gameplay") or remotes:FindFirstChild("Gameplay", true)
if gameplay then
local pdEvent = gameplay:FindFirstChild("PlayerDataChanged")
if pdEvent and pdEvent:IsA("RemoteEvent") then
AddConnection(pdEvent.OnClientEvent:Connect(function(data)
if type(data) == "table" then
Modules.PlayerData = data
end
end))
end
end
end
local getPD = nil
if Modules.ReplicatedStorage then
getPD = Modules.ReplicatedStorage:FindFirstChild("GetPlayerData", true)
end
if getPD and typeof(getPD.InvokeServer) == "function" then
pcall(function()
local ok, res = pcall(function() return getPD:InvokeServer() end)
if ok and type(res) == "table" then
Modules.PlayerData = res
end
end)
end
end
local SkidFling = function(TargetPlayer)
if not TargetPlayer or not TargetPlayer.Character then return end
local Character = Player and Player.Character
local Humanoid = Character and (Character:FindFirstChildOfClass("Humanoid") or Character:FindFirstChild("Humanoid"))
local RootPart = Character and (Character:FindFirstChild("HumanoidRootPart") or Character.PrimaryPart)
local TCharacter = TargetPlayer and TargetPlayer.Character
local THumanoid
local TRootPart
local THead
local Accessory
local Handle
if TCharacter and TCharacter:FindFirstChildOfClass("Humanoid") then
THumanoid = TCharacter:FindFirstChildOfClass("Humanoid")
end
if THumanoid then
TRootPart = TCharacter:FindFirstChild("HumanoidRootPart") or TCharacter.PrimaryPart or THumanoid.RootPart
end
if TCharacter and TCharacter:FindFirstChild("Head") then
THead = TCharacter.Head
end
if TCharacter and TCharacter:FindFirstChildOfClass("Accessory") then
Accessory = TCharacter:FindFirstChildOfClass("Accessory")
end
if Accessory and Accessory:FindFirstChild("Handle") then
Handle = Accessory.Handle
end
if Character and Humanoid and RootPart then
if RootPart.Velocity.Magnitude < 50 then
getgenv().OldPos = RootPart.CFrame
end
local CurrentCam = workspace.CurrentCamera
if THead then
CurrentCam.CameraSubject = THead
elseif not THead and Handle then
CurrentCam.CameraSubject = Handle
elseif THumanoid and TRootPart then
CurrentCam.CameraSubject = THumanoid
end
if not (TCharacter and TCharacter:FindFirstChildWhichIsA("BasePart")) then
return
end
local FPos = function(BasePart, Pos, Ang)
RootPart.CFrame = CFrame.new(BasePart.Position) * Pos * Ang
pcall(function()
if Character and Character.PrimaryPart then
Character:SetPrimaryPartCFrame(CFrame.new(BasePart.Position) * Pos * Ang)
end
end)
RootPart.Velocity = Vector3.new(9e7, 9e7 * 10, 9e7)
RootPart.RotVelocity = Vector3.new(9e8, 9e8, 9e8)
end
local SFBasePart = function(BasePart)
local TimeToWait = 2
local Time = tick()
local Angle = 0
repeat
if RootPart and THumanoid then
if BasePart.Velocity.Magnitude < 50 then
Angle = Angle + 100
FPos(BasePart, CFrame.new(0, 1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle),0 ,0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(2.25, 1.5, -2.25) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(-2.25, -1.5, 2.25) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, 1.5, 0) + THumanoid.MoveDirection,CFrame.Angles(math.rad(Angle), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0) + THumanoid.MoveDirection,CFrame.Angles(math.rad(Angle), 0, 0))
task.wait()
else
FPos(BasePart, CFrame.new(0, 1.5, THumanoid.WalkSpeed), CFrame.Angles(math.rad(90), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, -THumanoid.WalkSpeed), CFrame.Angles(0, 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, 1.5, THumanoid.WalkSpeed), CFrame.Angles(math.rad(90), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, 1.5, TRootPart and TRootPart.Velocity.Magnitude / 1.25 or 0), CFrame.Angles(math.rad(90), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, -(TRootPart and TRootPart.Velocity.Magnitude / 1.25 or 0)), CFrame.Angles(0, 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, 1.5, TRootPart and TRootPart.Velocity.Magnitude / 1.25 or 0), CFrame.Angles(math.rad(90), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(math.rad(90), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(0, 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5 ,0), CFrame.Angles(math.rad(-90), 0, 0))
task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(0, 0, 0))
task.wait()
end
else
break
end
until BasePart.Velocity.Magnitude > 500 or BasePart.Parent ~= TargetPlayer.Character or TargetPlayer.Parent ~= Players or TargetPlayer.Character ~= TCharacter or (THumanoid and THumanoid.Sit) or (Humanoid and Humanoid.Health <= 0) or tick() > Time + TimeToWait
end
if not getgenv().FPDH then
getgenv().FPDH = workspace.FallenPartsDestroyHeight
end
workspace.FallenPartsDestroyHeight = 0/0
local BV = Instance.new("BodyVelocity")
BV.Name = "EpixVel"
BV.Parent Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place


