0% found this document useful (0 votes)
7 views

message (1)

The document is a Lua script for a Roblox game that creates a user interface with a loading screen and various gameplay enhancements. It includes features like an aimbot, customizable player attributes (walk speed, jump power), and toggles for infinite jump and noclip. The script also allows for dynamic adjustments to the player's field of view and provides a notification upon loading completion.

Uploaded by

rataratalol1
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

message (1)

The document is a Lua script for a Roblox game that creates a user interface with a loading screen and various gameplay enhancements. It includes features like an aimbot, customizable player attributes (walk speed, jump power), and toggles for infinite jump and noclip. The script also allows for dynamic adjustments to the player's field of view and provides a notification upon loading completion.

Uploaded by

rataratalol1
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 22

-- Create ScreenGui

local screenGui = Instance.new("ScreenGui")


screenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
screenGui.IgnoreGuiInset = true

-- Create Squircle Frame


local frame = Instance.new("ImageLabel")
frame.Size = UDim2.new(0, 200, 0, 100)
frame.Position = UDim2.new(0.5, -100, 0.5, -50)
frame.BackgroundTransparency = 1
frame.Image = "rbxassetid://89973542420407" -- Squircle shape (adjust if needed)
frame.Parent = screenGui

-- Create Moving Rainbow Background


local rainbow = Instance.new("ImageLabel")
rainbow.Size = UDim2.new(1.2, 0, 1.2, 0)
rainbow.Position = UDim2.new(-0.1, 0, -0.1, 0)
rainbow.BackgroundTransparency = 1
rainbow.Image = "rbxassetid://6424968174" -- Rainbow texture
rainbow.Parent = frame

-- Animate Background Movement


game:GetService("RunService").RenderStepped:Connect(function()
rainbow.Position = rainbow.Position + UDim2.new(0.005, 0, 0.005, 0)
end)

-- Create Text Label


local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundTransparency = 1
textLabel.Text = "Loading."
textLabel.Font = Enum.Font.GothamBold
textLabel.TextSize = 20
textLabel.TextColor3 = Color3.new(1, 1, 1)
textLabel.Parent = frame

-- Fade In Effect
frame.ImageTransparency = 1
textLabel.TextTransparency = 1
for i = 1, 10 do
frame.ImageTransparency = frame.ImageTransparency - 0.1
textLabel.TextTransparency = textLabel.TextTransparency - 0.1
wait(0.1)
end

-- Animate Loading Dots


spawn(function()
while task.wait(1) do
if not screenGui then return end
textLabel.Text = "Loading."
task.wait(1)
textLabel.Text = "Loading.."
task.wait(1)
textLabel.Text = "Loading..."
end
end)

-- Fade Out After 10 Seconds


task.wait(10)
for i = 1, 10 do
frame.ImageTransparency = frame.ImageTransparency + 0.1
textLabel.TextTransparency = textLabel.TextTransparency + 0.1
wait(0.1)
end

-- Destroy GUI & Send Notification


screenGui:Destroy()
game.StarterGui:SetCore("SendNotification", {
Title = "Loaded",
Text = "Thanks for using!",
Icon = "rbxassetid://89973542420407",
Duration = 7
})

local Fluent =
loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/
download/main.lua"))()
local SaveManager =
loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/
master/Addons/SaveManager.lua"))()
local InterfaceManager =
loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/
master/Addons/InterfaceManager.lua"))()

local Window = Fluent:CreateWindow({


Title = "Sendox Hub - MM2 ",
SubTitle = "by sendox",
TabWidth = 160,
Size = UDim2.fromOffset(580, 460),
Acrylic = true,
Theme = "Darker",
MinimizeKey = Enum.KeyCode.LeftControl
})

local Tabs = {
Players = Window:AddTab({ Title = "Ingame Players", Icon = "users" }),
AutoFarm = Window:AddTab({ Title = "Autofarm", Icon = "cross" }),
Combat = Window:AddTab({ Title = "Combat", Icon = "crosshair" }),
Main = Window:AddTab({ Title = "Main", Icon = "home" }),
Visuals = Window:AddTab({ Title = "Visuals", Icon = "eye" }),
Misc = Window:AddTab({ Title = "Misc", Icon = "flame" }),
Settings = Window:AddTab({ Title = "Settings", Icon = "settings" })
}

-- Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

-- Aimbot Settings
local AIMBOT_ENABLED = false
local TEAM_CHECK = false
local WALL_CHECK = false
local SMOOTHNESS_ENABLED = true
local FOV_RADIUS = 90
local SMOOTHNESS = 0.1
local LOCK_PART = "Head"
local DRAW_FOV = false -- Toggle for drawing FOV circle

-- Create FOV Circle


local FOVCircle = Drawing.new("Circle")
FOVCircle.Radius = FOV_RADIUS
FOVCircle.Thickness = 2
FOVCircle.Color = Color3.fromRGB(255, 0, 0)
FOVCircle.Filled = false
FOVCircle.Visible = false

-- Update FOV Circle Position


RunService.RenderStepped:Connect(function()
local screenCenter = workspace.CurrentCamera.ViewportSize / 2
FOVCircle.Position = Vector2.new(screenCenter.X, screenCenter.Y)
FOVCircle.Visible = DRAW_FOV -- Toggle visibility
end)

-- Function to check if a target is valid


local function IsValidTarget(player)
if TEAM_CHECK and player.Team == LocalPlayer.Team then
return false
end

if WALL_CHECK then
local character = player.Character
local head = character and character:FindFirstChild(LOCK_PART)
if head then
local origin = workspace.CurrentCamera.CFrame.Position
local ray = Ray.new(origin, (head.Position - origin).Unit *
(head.Position - origin).Magnitude)
local hitPart = workspace:FindPartOnRay(ray, LocalPlayer.Character,
true)
return hitPart == head
end
end

return true
end

-- Function to find the closest player


local function GetClosestPlayer()
local closestPlayer = nil
local shortestDistance = FOV_RADIUS

for _, player in ipairs(Players:GetPlayers()) do


if player ~= LocalPlayer and player.Character and
player.Character:FindFirstChild(LOCK_PART) and IsValidTarget(player) then
local head = player.Character:FindFirstChild(LOCK_PART)
local headScreenPos, onScreen =
workspace.CurrentCamera:WorldToViewportPoint(head.Position)

if onScreen then
local screenCenter =
Vector2.new(workspace.CurrentCamera.ViewportSize.X / 2,
workspace.CurrentCamera.ViewportSize.Y / 2)
local distance = (Vector2.new(headScreenPos.X, headScreenPos.Y) -
screenCenter).Magnitude

if distance < shortestDistance then


shortestDistance = distance
closestPlayer = player
end
end
end
end

return closestPlayer
end

-- Aimbot Logic
RunService.RenderStepped:Connect(function()
if AIMBOT_ENABLED then
local target = GetClosestPlayer()

if target and target.Character and


target.Character:FindFirstChild(LOCK_PART) then
local head = target.Character:FindFirstChild(LOCK_PART)
local currentCameraCFrame = workspace.CurrentCamera.CFrame
local targetCameraCFrame = CFrame.new(currentCameraCFrame.Position,
head.Position)

-- Apply smoothness if enabled


if SMOOTHNESS_ENABLED then
workspace.CurrentCamera.CFrame =
currentCameraCFrame:Lerp(targetCameraCFrame, SMOOTHNESS)
else
workspace.CurrentCamera.CFrame = targetCameraCFrame
end
end
end
end)

-- Toggles
local Toggle = Tabs.Combat:AddToggle("AimbotToggle", {
Title = "Aimbot",
Description = "Enable or disable the aimbot",
Default = false,
Callback = function(state)
AIMBOT_ENABLED = state
print("Aimbot Enabled:", state)
end
})

local Toggle = Tabs.Combat:AddToggle("TeamCheckToggle", {


Title = "Team Check",
Description = "Toggle team check functionality",
Default = false,
Callback = function(state)
TEAM_CHECK = state
print("Team Check Enabled:", state)
end
})

local Toggle = Tabs.Combat:AddToggle("WallCheckToggle", {


Title = "Wall Check",
Description = "Toggle wall check functionality",
Default = false,
Callback = function(state)
WALL_CHECK = state
print("Wall Check Enabled:", state)
end
})

local Toggle = Tabs.Combat:AddToggle("SmoothnessToggle", {


Title = "Smoothness",
Description = "Enable or disable smoothness",
Default = true,
Callback = function(state)
SMOOTHNESS_ENABLED = state
print("Smoothness Enabled:", state)
end
})

local Toggle = Tabs.Combat:AddToggle("FOVToggle", {


Title = "Draw FOV",
Description = "Toggle FOV circle visibility",
Default = false,
Callback = function(state)
DRAW_FOV = state
print("Draw FOV Enabled:", state)
end
})

-- Inputs
local Input = Tabs.Combat:AddInput("FOVInput", {
Title = "Adjust FOV",
Description = "Set the aimbot FOV radius",
Default = tostring(FOV_RADIUS),
Placeholder = "Enter FOV Radius",
Numeric = true,
Callback = function(Value)
FOV_RADIUS = tonumber(Value) or FOV_RADIUS
FOVCircle.Radius = FOV_RADIUS
print("FOV Radius Updated:", FOV_RADIUS)
end
})

local Input = Tabs.Combat:AddInput("SmoothnessInput", {


Title = "Adjust Smoothness",
Description = "Set the aimbot smoothness",
Default = tostring(SMOOTHNESS),
Placeholder = "Enter Smoothness Value",
Numeric = true,
Callback = function(Value)
SMOOTHNESS = tonumber(Value) or SMOOTHNESS
print("Smoothness Updated:", SMOOTHNESS)
end
})

-- Dropdown
local Dropdown = Tabs.Combat:AddDropdown("TargetPartDropdown", {
Title = "Target Part",
Description = "Choose the body part to aim at",
Values = {"Head", "Torso"},
Default = 1,
Callback = function(Value)
LOCK_PART = Value
print("Target Part Updated:", LOCK_PART)
end
})

local Players = game:GetService("Players")


local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera

local WalkspeedSlider = Tabs.Main:AddSlider("Walkspeed", {


Title = "Walkspeed",
Description = "Adjust your player's walkspeed.",
Default = 16,
Min = 16,
Max = 100,
Rounding = 1,
Callback = function(Value)
if LocalPlayer.Character and
LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then
LocalPlayer.Character:FindFirstChildOfClass("Humanoid").WalkSpeed =
Value
end
end
})

local JumpPowerSlider = Tabs.Main:AddSlider("JumpPower", {


Title = "Jump Power",
Description = "Adjust your player's jump power.",
Default = 50,
Min = 50,
Max = 200,
Rounding = 1,
Callback = function(Value)
if LocalPlayer.Character and
LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then
LocalPlayer.Character:FindFirstChildOfClass("Humanoid").JumpPower =
Value
end
end
})

local GravitySlider = Tabs.Main:AddSlider("Gravity", {


Title = "Gravity",
Description = "Adjust the game gravity.",
Default = workspace.Gravity,
Min = 0,
Max = 300,
Rounding = 1,
Callback = function(Value)
workspace.Gravity = Value
end
})

local FOVSlider = Tabs.Main:AddSlider("FOV", {


Title = "Field of View",
Description = "Adjust the camera's field of view.",
Default = Camera.FieldOfView,
Min = 20,
Max = 120,
Rounding = 1,
Callback = function(Value)
Camera.FieldOfView = Value
end
})

local InfJumpToggle = Tabs.Main:AddToggle("InfJump", {


Title = "Infinite Jump",
Default = false,
Description = "Enable infinite jump."
})

local InfJumpEnabled = false


local InfJumpConnection

InfJumpToggle:OnChanged(function()
InfJumpEnabled = InfJumpToggle.Value
if InfJumpEnabled then
InfJumpConnection = UserInputService.JumpRequest:Connect(function()
if LocalPlayer.Character and
LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then

LocalPlayer.Character:FindFirstChildOfClass("Humanoid"):ChangeState(Enum.HumanoidSt
ateType.Jumping)
end
end)
else
if InfJumpConnection then
InfJumpConnection:Disconnect()
end
end
end)

local NoclipToggle = Tabs.Main:AddToggle("Noclip", {


Title = "Noclip",
Default = false,
Description = "Enable noclip (walk through walls)."
})

local NoclipEnabled = false


NoclipToggle:OnChanged(function()
NoclipEnabled = NoclipToggle.Value
end)

RunService.Stepped:Connect(function()
if NoclipEnabled and LocalPlayer.Character then
for _, part in ipairs(LocalPlayer.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end)

local FlyToggle = Tabs.Main:AddToggle("Fly", {


Title = "Fly",
Default = false,
Description = "Enable flying mode."
})

local FlySpeedSlider = Tabs.Main:AddSlider("FlySpeed", {


Title = "Fly Speed",
Description = "Adjust your fly speed.",
Default = 50,
Min = 10,
Max = 200,
Rounding = 1,
Callback = function(Value)

end
})

local FlyEnabled = false


local FlyBodyVelocity, FlyBodyGyro
local FlyConnection

FlyToggle:OnChanged(function()
FlyEnabled = FlyToggle.Value
local character = LocalPlayer.Character
if not character or not character:FindFirstChild("HumanoidRootPart") then
return end
local hrp = character:FindFirstChild("HumanoidRootPart")

if FlyEnabled then

FlyBodyVelocity = Instance.new("BodyVelocity")
FlyBodyVelocity.MaxForce = Vector3.new(1e5, 1e5, 1e5)
FlyBodyVelocity.Velocity = Vector3.new(0, 0, 0)
FlyBodyVelocity.Parent = hrp

FlyBodyGyro = Instance.new("BodyGyro")
FlyBodyGyro.MaxTorque = Vector3.new(1e5, 1e5, 1e5)
FlyBodyGyro.CFrame = hrp.CFrame
FlyBodyGyro.Parent = hrp

FlyConnection = RunService.RenderStepped:Connect(function()
local direction = Vector3.new()
if UserInputService:IsKeyDown(Enum.KeyCode.W) then
direction = direction + (Camera.CFrame.LookVector)
end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then
direction = direction - (Camera.CFrame.LookVector)
end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then
direction = direction - (Camera.CFrame.RightVector)
end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then
direction = direction + (Camera.CFrame.RightVector)
end
if UserInputService:IsKeyDown(Enum.KeyCode.E) then
direction = direction + Vector3.new(0, 1, 0)
end
if UserInputService:IsKeyDown(Enum.KeyCode.Q) then
direction = direction - Vector3.new(0, 1, 0)
end
FlyBodyVelocity.Velocity = direction * FlySpeedSlider.Value
if direction.Magnitude > 0 then
FlyBodyGyro.CFrame = CFrame.new(hrp.Position, hrp.Position +
direction)
else
FlyBodyGyro.CFrame = hrp.CFrame
end
end)
else
if FlyConnection then
FlyConnection:Disconnect()
end
if FlyBodyVelocity then
FlyBodyVelocity:Destroy()
end
if FlyBodyGyro then
FlyBodyGyro:Destroy()
end
end
end)

Tabs.Main:AddButton({
Title = "Reset Player",
Description = "Reset WalkSpeed and JumpPower to default values.",
Callback = function()
if LocalPlayer.Character and
LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then
LocalPlayer.Character:FindFirstChildOfClass("Humanoid").WalkSpeed = 16
LocalPlayer.Character:FindFirstChildOfClass("Humanoid").JumpPower = 50
WalkspeedSlider:SetValue(16)
JumpPowerSlider:SetValue(50)
end
end
})

local ESPSection = Tabs.Visuals:AddSection("ESP")

local murdererESPToggle = ESPSection:AddToggle("MurdererESP", {


Title = "Murderer ESP",
Description = "Murderer ESP",
Default = false
})

local sheriffESPToggle = ESPSection:AddToggle("SheriffESP", {


Title = "Sheriff ESP",
Description = "Sheriff ESP",
Default = false
})

local innocentESPToggle = ESPSection:AddToggle("InnocentESP", {


Title = "Innocent ESP",
Description = "Innocent ESP",
Default = False
})

local coinESPToggle = ESPSection:AddToggle("CoinESP", {


Title = "Coin ESP",
Description = "Coin ESP",
Default = true
})

local Players = game:GetService("Players")


local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local playerHighlights = {}
local coinHighlights = {}

local function updateESPForPlayer(player)


if not player.Character then

if playerHighlights[player] then
playerHighlights[player]:Destroy()
playerHighlights[player] = nil
end
return
end

local character = player.Character

local function hasTool(toolName)


local found = false
if player:FindFirstChild("Backpack") then
for _, tool in ipairs(player.Backpack:GetChildren()) do
if tool:IsA("Tool") and tool.Name == toolName then
found = true
break
end
end
end
if not found then
for _, item in ipairs(character:GetChildren()) do
if item:IsA("Tool") and item.Name == toolName then
found = true
break
end
end
end
return found
end

local isMurderer = hasTool("Knife")


local isSheriff = (not isMurderer) and hasTool("Gun")
local isInnocent = (not isMurderer and not isSheriff)

local desiredColor
if isMurderer and murdererESPToggle.Value then
desiredColor = Color3.new(1, 0, 0)
elseif isSheriff and sheriffESPToggle.Value then
desiredColor = Color3.new(0, 0, 1)
elseif isInnocent and innocentESPToggle.Value then
desiredColor = Color3.new(0, 1, 0)
end

if desiredColor then
if not playerHighlights[player] then
local h = Instance.new("Highlight")
h.Name = "ESPHighlight"
h.FillTransparency = 0.5
h.OutlineTransparency = 1
h.Adornee = character
h.FillColor = desiredColor

h.Parent = character
playerHighlights[player] = h
else
playerHighlights[player].FillColor = desiredColor
if playerHighlights[player].Adornee ~= character then
playerHighlights[player].Adornee = character
end
end
else

if playerHighlights[player] then
playerHighlights[player]:Destroy()
playerHighlights[player] = nil
end
end
end

spawn(function()
while wait(1) do
for _, player in ipairs(Players:GetPlayers()) do

if player ~= LocalPlayer then


updateESPForPlayer(player)
end
end
end
end)

local function refreshAllPlayerESP()


for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
updateESPForPlayer(player)
end
end
end

murdererESPToggle:OnChanged(refreshAllPlayerESP)
sheriffESPToggle:OnChanged(refreshAllPlayerESP)
innocentESPToggle:OnChanged(refreshAllPlayerESP)

Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
wait(0.5)
updateESPForPlayer(player)
end)
end)

local coinHighlights = coinHighlights or {}

spawn(function()
while wait(0.1) do
if coinESPToggle.Value then
for _, container in ipairs(workspace:GetDescendants()) do
if container:IsA("Model") and container.Name == "CoinContainer"
then

for _, coinServer in ipairs(container:GetChildren()) do


if coinServer.Name == "Coin_Server" then
local coinVisual =
coinServer:FindFirstChild("CoinVisual")
if coinVisual then
local mainCoin =
coinVisual:FindFirstChild("MainCoin")
if mainCoin and mainCoin:IsA("MeshPart") then

if not coinHighlights[mainCoin] then


local h = Instance.new("Highlight")
h.Name = "CoinESPHighlight"
h.FillColor = Color3.fromRGB(0, 255, 255)
h.FillTransparency = 0.5
h.OutlineTransparency = 1
h.Adornee = mainCoin
h.Parent = mainCoin
coinHighlights[mainCoin] = h
end
end
end
end
end
end
end
else

for coinObj, h in pairs(coinHighlights) do


if h then
h:Destroy()
end
end
coinHighlights = {}
end
end
end)

local utilitiesSection = Tabs.Misc:AddSection("Utilities")

utilitiesSection:AddButton({
Title = "Rejoin",
Description = "Rejoin the current server.",
Callback = function()
local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
TeleportService:Teleport(game.PlaceId, LocalPlayer)
end
})

utilitiesSection:AddButton({
Title = "Serverhop",
Description = "Hop to a different server instance.",
Callback = function()
local TeleportService = game:GetService("TeleportService")
local HttpService = game:GetService("HttpService")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local PlaceId = game.PlaceId

local req = syn and syn.request or http_request or request


if not req then
warn("HTTP request function not available.")
return
end

local url = "https://games.roblox.com/v1/games/" .. PlaceId ..


"/servers/Public?sortOrder=Asc&limit=100"
local response = req({
Url = url,
Method = "GET"
})
if response and response.Body then
local data = HttpService:JSONDecode(response.Body)
local servers = {}
for i, v in ipairs(data.data) do
if v.playing < v.maxPlayers then
table.insert(servers, v.id)
end
end
if #servers > 0 then
local randomServer = servers[math.random(1, #servers)]
TeleportService:TeleportToPlaceInstance(PlaceId, randomServer,
LocalPlayer)
else
warn("No available servers found!")
end
end
end
})

local executorName, executorVersion = "Unknown", "Unknown"


if identifyexecutor and type(identifyexecutor) == "function" then
local result1, result2 = identifyexecutor()
if type(result1) == "string" and type(result2) == "string" then
executorName = result1
executorVersion = result2
end
end

utilitiesSection:AddParagraph({
Title = "Executor Type",
Content = "Executor: " .. executorName .. " (v" .. executorVersion .. ")"
})

utilitiesSection:AddButton({
Title = "Set FPS Cap",
Description = "Set your FPS cap.",
Callback = function()
if setfpscap then
setfpscap(999)
else
warn("setfpscap function not available on your executor.")
end
end
})

-- Services
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera

-- Variables
local selectedPlayer = nil
local teleportToggle = false
local bringPlayerToggle = false
local massTeleportToggle = false
local massTeleportLoop = nil
local orbitToggle = false
local orbitSpeed = 1 -- Default orbit speed
local orbitDistance = 10 -- Default orbit distance
local viewPlayerToggle = false -- Track if viewing is enabled

-- Function to Get All Players


local function getPlayers()
local playerNames = {}
for _, player in ipairs(Players:GetPlayers()) do
table.insert(playerNames, player.Name)
end
return playerNames
end

-- Dropdown to Select Player (Auto-updates)


local Dropdown = Tabs.Players:AddDropdown("PlayerDropdown", {
Title = "Select Player",
Description = "Select a player",
Values = getPlayers(),
Multi = false,
Default = 1,
Callback = function(value)
selectedPlayer = value
print("Selected Player:", selectedPlayer)
end
})

-- Auto-Update Dropdown on Player Join/Leave


local function updateDropdown()
Dropdown:SetValues(getPlayers())
end

Players.PlayerAdded:Connect(updateDropdown)
Players.PlayerRemoving:Connect(updateDropdown)

-- Toggle for Viewing the Player


Tabs.Players:AddToggle("ToggleViewPlayer", {
Title = "Toggle View Player",
Description = "Toggle viewing the selected player",
Default = false,
Callback = function(state)
viewPlayerToggle = state
if viewPlayerToggle and selectedPlayer then
local target = Players:FindFirstChild(selectedPlayer)
if target and target.Character and
target.Character:FindFirstChild("Humanoid") then
Camera.CameraSubject = target.Character.Humanoid
print("Viewing", selectedPlayer)
else
print("Selected player not found or not loaded yet.")
end
else
Camera.CameraSubject = LocalPlayer.Character and
LocalPlayer.Character:FindFirstChild("Humanoid") or Camera
print("Stopped Viewing", selectedPlayer)
end
end
})

-- Toggle for Teleporting to the Player


Tabs.Players:AddToggle("ToggleTeleport", {
Title = "Teleport to Player",
Description = "Teleport to the selected player",
Default = false,
Callback = function(state)
if state and selectedPlayer then
local target = Players:FindFirstChild(selectedPlayer)
if target and target.Character and
target.Character:FindFirstChild("HumanoidRootPart") then
LocalPlayer.Character.HumanoidRootPart.CFrame =
target.Character.HumanoidRootPart.CFrame
end
end
end
})

-- Toggle for Bringing the Selected Player


Tabs.Players:AddToggle("ToggleBring", {
Title = "Bring Player",
Description = "Bring the selected player (client-sided)",
Default = false,
Callback = function(state)
if state and selectedPlayer then
local target = Players:FindFirstChild(selectedPlayer)
if target and target.Character and
target.Character:FindFirstChild("HumanoidRootPart") then
target.Character.HumanoidRootPart.CFrame =
LocalPlayer.Character.HumanoidRootPart.CFrame
end
end
end
})

-- Toggle for Mass Teleport to Player


Tabs.Players:AddToggle("MassTeleport", {
Title = "Mass Teleport",
Description = "Continuously teleport to the selected player",
Default = false,
Callback = function(state)
massTeleportToggle = state
if massTeleportToggle then
massTeleportLoop = RunService.Stepped:Connect(function()
if selectedPlayer then
local target = Players:FindFirstChild(selectedPlayer)
if target and target.Character and
target.Character:FindFirstChild("HumanoidRootPart") then
LocalPlayer.Character.HumanoidRootPart.CFrame =
target.Character.HumanoidRootPart.CFrame
end
end
end)
else
if massTeleportLoop then
massTeleportLoop:Disconnect()
massTeleportLoop = nil
end
end
end
})

-- Toggle for Removing Selected Player from DataModel


Tabs.Players:AddToggle("ToggleRemovePlayer", {
Title = "Remove Player from DataModel",
Description = "Remove the selected player from the game (client-sided)",
Default = false,
Callback = function(state)
if state and selectedPlayer then
local target = Players:FindFirstChild(selectedPlayer)
if target then
print("Removing Player from DataModel:", target.Name)
target:Destroy() -- Remove the player from the client’s data model
else
print("Selected player not found.")
end
else
print("Toggle off or no player selected.")
end
end
})

-- Toggle for Orbiting the Selected Player


Tabs.Players:AddToggle("ToggleOrbit", {
Title = "Toggle Orbit Around Player",
Description = "Orbit around the selected player",
Default = false,
Callback = function(state)
orbitToggle = state
if orbitToggle and selectedPlayer then
local target = Players:FindFirstChild(selectedPlayer)
if target and target.Character then
local offset = Vector3.new(orbitDistance, 0, 0)
RunService.Heartbeat:Connect(function()
if orbitToggle and target and target.Character then
local targetPos =
target.Character.HumanoidRootPart.Position
-- Orbiting Logic (simple circular movement)
local newPos = targetPos + offset
newPos = newPos + Vector3.new(math.sin(tick() * orbitSpeed)
* orbitDistance, 0, math.cos(tick() * orbitSpeed) * orbitDistance)
LocalPlayer.Character.HumanoidRootPart.CFrame =
CFrame.new(newPos)
end
end)
end
end
end
})

-- Input for Orbit Speed


Tabs.Players:AddInput("OrbitSpeedInput", {
Title = "Orbit Speed",
Description = "Adjust the speed of the orbit",
Default = "1",
Placeholder = "Enter Speed",
Numeric = true,
Finished = true, -- Call callback when user presses enter
Callback = function(Value)
orbitSpeed = tonumber(Value) or 1 -- Update orbit speed
print("Orbit Speed changed to:", orbitSpeed)
end
})

-- Input for Orbit Distance


Tabs.Players:AddInput("OrbitDistanceInput", {
Title = "Orbit Distance",
Description = "Adjust the distance of the orbit",
Default = "10",
Placeholder = "Enter Distance",
Numeric = true,
Finished = true, -- Call callback when user presses enter
Callback = function(Value)
orbitDistance = tonumber(Value) or 10 -- Update orbit distance
print("Orbit Distance changed to:", orbitDistance)
end
})

-- Services
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

-- Variables
local autoFarmToggle = false
local farmDelay = 2 -- Default delay
local lastCoin = nil -- Track last teleported coin
local autoFarmLoop = nil
local teleportMode = "Teleport to coin" -- Default mode
local teleportOffset = 8 -- Default teleport offset

-- Function to get all coins


local function getCoins()
local coins = {}
for _, container in ipairs(workspace:GetDescendants()) do
if container:IsA("Model") and container.Name == "CoinContainer" then
for _, coinServer in ipairs(container:GetChildren()) do
if coinServer.Name == "Coin_Server" then
local coinVisual = coinServer:FindFirstChild("CoinVisual")
if coinVisual then
local mainCoin = coinVisual:FindFirstChild("MainCoin")
if mainCoin and mainCoin:IsA("MeshPart") then
table.insert(coins, mainCoin)
end
end
end
end
end
end
return coins
end

-- Function to freeze the character


local function freezeCharacter(freeze)
local character = LocalPlayer.Character
if character and character:FindFirstChild("Humanoid") then
local humanoid = character.Humanoid
if freeze then
humanoid.PlatformStand = true -- Freeze the character
humanoid:ChangeState(Enum.HumanoidStateType.Physics)
else
humanoid.PlatformStand = false -- Unfreeze the character
humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
end
end
end

-- Function to teleport to a coin


local function teleportToCoin()
local coins = getCoins()

if #coins > 0 then


local randomIndex = math.random(1, #coins)
local targetCoin = coins[randomIndex]

-- Avoid teleporting to the same coin twice


if targetCoin == lastCoin then
randomIndex = (randomIndex % #coins) + 1 -- Get next coin in list
targetCoin = coins[randomIndex]
end

lastCoin = targetCoin

-- Teleport the player based on the selected mode


if LocalPlayer.Character and
LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
local rootPart = LocalPlayer.Character.HumanoidRootPart
if teleportMode == "Teleport above" then
rootPart.CFrame = targetCoin.CFrame + Vector3.new(0,
teleportOffset, 0)
elseif teleportMode == "Teleport under" then
rootPart.CFrame = targetCoin.CFrame - Vector3.new(0,
teleportOffset, 0)
else
rootPart.CFrame = targetCoin.CFrame + Vector3.new(0, 3, 0) --
Default method
end
end

-- Freeze the character after teleporting


freezeCharacter(true)
task.wait(farmDelay) -- Stay frozen for the delay time
freezeCharacter(false) -- Unfreeze the character
end
end

-- AutoFarm Toggle
local Toggle = Tabs.AutoFarm:AddToggle("AutoFarmToggle", {
Title = "AutoFarm Coins",
Description = "Toggles AutoFarm for coins",
Default = false,
Callback = function(state)
autoFarmToggle = state
if autoFarmToggle then
print("AutoFarm Enabled")
autoFarmLoop = task.spawn(function()
while autoFarmToggle do
teleportToCoin()
task.wait(farmDelay) -- Wait for the user-defined delay
end
end)
else
print("AutoFarm Disabled")
autoFarmToggle = false
end
end
})

-- Dropdown for Teleport Mode


local Dropdown = Tabs.AutoFarm:AddDropdown("TeleportModeDropdown", {
Title = "Teleport Mode",
Description = "Select the teleportation mode",
Values = {"Teleport above", "Teleport to coin", "Teleport under"},
Multi = false,
Default = 2,
Callback = function(value)
teleportMode = value
print("Teleport mode set to:", teleportMode)
end
})

-- Slider for Teleport Offset


local Slider = Tabs.AutoFarm:AddSlider("TeleportOffsetSlider", {
Title = "Teleport Offset",
Description = "Adjust teleport height (above/under mode)",
Default = 8,
Min = 1,
Max = 20,
Rounding = 1,
Callback = function(Value)
teleportOffset = Value
print("Teleport offset set to:", teleportOffset)
end
})

-- Slider for AutoFarm Delay


local Slider = Tabs.AutoFarm:AddSlider("AutoFarmDelay", {
Title = "AutoFarm Delay",
Description = "Adjust the time delay before teleporting to a coin",
Default = 2,
Min = 0,
Max = 5,
Rounding = 1,
Callback = function(Value)
farmDelay = Value
print("AutoFarm delay set to:", farmDelay)
end
})

-- Informational Paragraphs
Tabs.AutoFarm:AddParagraph({
Title = "Kicked",
Content = "If you had been kicked from the experience, rejoin and stay inside
the game for about 2 mins and then activate the autofarm."
})

Tabs.AutoFarm:AddParagraph({
Title = "To Avoid Detection: ",
Content = "Set the autofarm delay larger than 0.9"
})

local Section = Tabs.Main:AddSection("Murd and sheriff functions")

local TextChatService = game:GetService("TextChatService")


local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

local murdererName = nil


local sheriffName = nil

local function findRoles()


murdererName = nil
sheriffName = nil

for _, player in ipairs(Players:GetPlayers()) do


if player == LocalPlayer then continue end
if not player.Character then continue end

local function hasTool(toolName)


if player:FindFirstChild("Backpack") then
for _, tool in ipairs(player.Backpack:GetChildren()) do
if tool:IsA("Tool") and tool.Name == toolName then
return true
end
end
end
for _, item in ipairs(player.Character:GetChildren()) do
if item:IsA("Tool") and item.Name == toolName then
return true
end
end
return false
end

if hasTool("Knife") then
murdererName = player.Name
elseif hasTool("Gun") then
sheriffName = player.Name
end
end
end

local function sendChatMessage()


if murdererName and sheriffName then
local message = string.format("%s is the Murderer, and %s is the Sheriff!",
murdererName, sheriffName)
TextChatService.TextChannels.RBXGeneral:SendAsync(message)
end
end

Tabs.Main:AddButton({
Title = "Reveal Roles",
Description = "Detect Murderer & Sheriff and send to chat",
Callback = function()
findRoles()
sendChatMessage()
end
})

local Players = game:GetService("Players")


local StarterGui = game:GetService("StarterGui")

local function getAvatarHeadshot(userId)


return string.format("https://www.roblox.com/headshot-thumbnail/image?userId=
%d&width=420&height=420&format=png", userId)
end

local function findRoles()


local murderer = nil
local sheriff = nil

for _, player in ipairs(Players:GetPlayers()) do


if not player.Character then continue end

local function hasTool(toolName)


if player:FindFirstChild("Backpack") then
for _, tool in ipairs(player.Backpack:GetChildren()) do
if tool:IsA("Tool") and tool.Name == toolName then
return true
end
end
end
for _, item in ipairs(player.Character:GetChildren()) do
if item:IsA("Tool") and item.Name == toolName then
return true
end
end
return false
end

if hasTool("Knife") then
murderer = player
elseif hasTool("Gun") then
sheriff = player
end
end

return murderer, sheriff


end

local function sendRobloxNotification(title, text, imageUrl)


StarterGui:SetCore("SendNotification", {
Title = title,
Text = text,
Duration = 5,
Icon = imageUrl
})
end

local function sendRoleNotifications()


local murderer, sheriff = findRoles()

if sheriff then
sendRobloxNotification("Sheriff Found!", sheriff.Name .. " is the
Sheriff!", getAvatarHeadshot(sheriff.UserId))
end
if murderer then
sendRobloxNotification("Murderer Found!", murderer.Name .. " is the
Murderer!", getAvatarHeadshot(murderer.UserId))
end
end

-- Button to trigger the notifications


Tabs.Main:AddButton({
Title = "Detect Roles ( notification)",
Description = "Find Murderer & Sheriff and notify",
Callback = function()
sendRoleNotifications()
end
})

local Section = Tabs.Main:AddSection("Murd functions")

SaveManager:SetLibrary(Fluent)
InterfaceManager:SetLibrary(Fluent)

SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({})

InterfaceManager:SetFolder("SendoxHub")
SaveManager:SetFolder("SendoxHub/MM2")

InterfaceManager:BuildInterfaceSection(Tabs.Settings)
SaveManager:BuildConfigSection(Tabs.Settings)

Window:SelectTab(1)

SaveManager:LoadAutoloadConfig()

You might also like