BodyMounter - Fling players/ Mount players/ Fling aura + more trolling commands [Open Source]
![BodyMounter - Fling players/ Mount players/ Fling aura + more trolling commands [Open Source]](https://cdn.bloxscripter.com/uploads/2026-07-26/a3007978.png)
腳本程式碼
--[[
Type CMDS for a list of commands. The command bar is positioned at the bottom left.
On your screen it looks like nothing is happening, but on the server/players screen it looks as if you are "welded" to players
Fling command is "fling PlayerName"
Chatting commands WILL NOT WORK! please use the command bar
- HSTf04233
--]]
local BM_getgenv = getgenv or function() return _G end
local BM_cloneref = cloneref or function(a) return a end
-- Check if script is already running.
local ScriptIdentifier = "BODY_MOUNTER_SCRIPT1"
if BM_getgenv()[ScriptIdentifier] then
print("THIS SCRIPT IS ALREADY RUNNING! [BodyMounter]. Exit the old script before re running.")
return
end
BM_getgenv()[ScriptIdentifier] = true
-- Must be a KeyCode enum. Set to nil/false to disable keybind.
local KEYBIND_FocusCommandBar = Enum.KeyCode.T
local KEYBIND_ExecuteStopCommand = Enum.KeyCode.Y
-- If false, all messages will be printed to the Roblox console instead.
local GUI_NotificationsEnabled = true
local CommandsList = {
{"stop", "Stops any commands that are running."},
{"fling", "PlayerNames", "Attempts to fling the player(s), input 'all' to fling everyone. *PLAYER COLLISIONS ONLY!!*"},
{"loopfling", "PlayerNames", "Repeatedly flings the player (or players) until the \"stop\" command is used. *PLAYER COLLISIONS ONLY!!*"},
{"flingaura", "Radius(optional)", "Flings anyone in the radius or anyone you touch. *PLAYER COLLISIONS ONLY!!*"},
{"headsit", "PlayerName", "Sit on the player's head."},
{"facesit", "PlayerName", "Sit on the player's face."},
{"backsit", "PlayerName", "Sit on the player's back."},
{"armsit", "PlayerName", "Sit on the player's arm"},
{"handsit", "PlayerName", "Sit on the player's hand"},
{"rootsit", "PlayerName", "Sit on the player's HumanoidRootPart"},
{"standon", "PlayerName", "Stand on the player's head."},
{"orbit", "PlayerName", "Spins around the player."},
{"sphereorbit", "PlayerName", "Orbit around the player in a sphere"},
{"floor", "PlayerName", "Become a floor under a player. If player collisions are enabled, this *might* make the player fly."},
{"fan", "PlayerName", "Spin above the player's head."},
{"merge", "PlayerName", "Merges with the player's body."},
{"playerwalk", "PlayerName", "BodyPartName(optional)", "Allows you to walk around a player while attached to them.\n The blue box is a guess of where you are on the server."},
{"antifling", "true/false", "*BUGGY, MAYBE DON'T USE* enables/ disables anti fling"},
{}, -- padding
{"exit", "Completely unload this gui/ script."},
{},
if KEYBIND_FocusCommandBar then {"hidecmdbar", "Hide the command bar. Use the focus keybind to use command bar."} else 0,
if KEYBIND_FocusCommandBar then {"showcmdbar", "Show the command bar."} else 0,
{},
{"The PlayerName input searches through player names and display names.\nUse the @ prefix to only search player names and not display names.\n Example: \"fling @Hyper\" will only fling players with the name \"Hyper\" and will ignore display names."},
{},
if KEYBIND_FocusCommandBar then {"KEYBIND: Pressing '" .. KEYBIND_FocusCommandBar.Name .. "' focuses the command bar."} else 0,
if KEYBIND_ExecuteStopCommand then {"KEYBIND: Pressing '" .. KEYBIND_ExecuteStopCommand.Name .. "' stops any commands that are running."} else 0,
{},
"- HSTf04233"
}
local SCRIPT_CONNECTIONS = {}
local SCRIPT_IS_EXITED = false
-- 16384 (2^14) is the network limit for velocity.
local FlingVelocity = Vector3.new(16384, -16384, 16384)
local CMDBar_IsFocused = false
local RNG = Random.new()
local Sprintf = string.format
local CurrentCharacterModelMountedWith = nil
local MyCurrentMountedObject = nil
local RunService = BM_cloneref(game:GetService("RunService"))
local Players = BM_cloneref(game:GetService("Players"))
local UserInputService = BM_cloneref(game:GetService("UserInputService"))
local Heartbeat = RunService.Heartbeat
local Stepped = RunService.Stepped
local LocalPlayer = Players.LocalPlayer
local AmIAPoorPerson = true
pcall(function () -- Check if we have access to the CoreGui.
game:GetService("CoreGui"):FindFirstChild(".")
AmIAPoorPerson = false
end)
local Animations = {
Sit = {
R6 = "rbxassetid://178130996",
R15 = "rbxassetid://2506281703",
}
}
local GuiParent
if AmIAPoorPerson then
GuiParent = LocalPlayer:FindFirstChildWhichIsA("PlayerGui") -- BROKE NIGGA ALERT
else
GuiParent = BM_cloneref(game:GetService("CoreGui"))
end
if gethui then
GuiParent = gethui()
end
local MainScreenGui = Instance.new("ScreenGui")
MainScreenGui.ResetOnSpawn = false
MainScreenGui.DisplayOrder = 5
MainScreenGui.ClipToDeviceSafeArea = false
MainScreenGui.Parent = GuiParent
local NotifyAreaFrame = Instance.new("Frame")
NotifyAreaFrame.AnchorPoint = Vector2.new(0, 1)
NotifyAreaFrame.Position = UDim2.new(0, 20, 1, -60)
NotifyAreaFrame.BackgroundTransparency = 1
NotifyAreaFrame.Size = UDim2.fromOffset(400, 300)
local UIList = Instance.new("UIListLayout")
UIList.Padding = UDim.new(0, 0)
UIList.VerticalAlignment = Enum.VerticalAlignment.Bottom
UIList.Parent = NotifyAreaFrame
if GUI_NotificationsEnabled then
NotifyAreaFrame.Parent = MainScreenGui
end
local MaxNotifications = 12
local NotificationUIs = {}
local NOTIFICATION_ID = 0
function Notify(Msg: string, TimeAlive: number?)
if SCRIPT_IS_EXITED then return end
-- Change GUI_NotificationsEnabled (at the top of the script) to false to disable UI notifications
if not GUI_NotificationsEnabled then
print(Msg)
return
end
if #Msg > 3000 then
Msg = string.sub(Msg, 1, 3000) .. "[..]"
end
NOTIFICATION_ID += 1
local NTextLabel = Instance.new("TextLabel")
NTextLabel.Text = Msg
NTextLabel.BorderSizePixel = 0
NTextLabel.BackgroundTransparency = 0.75
NTextLabel.BackgroundColor3 = Color3.new(0, 0, 0)
NTextLabel.TextColor3 = Color3.new(1, 1, 1)
NTextLabel.Size = UDim2.new(1, 0, 0, 10)
if #Msg > 220 then
NTextLabel.TextSize = 8
elseif #Msg > 80 then
NTextLabel.TextSize = 14
else
NTextLabel.TextSize = 16
end
NTextLabel.TextXAlignment = Enum.TextXAlignment.Left
NTextLabel.AutomaticSize = Enum.AutomaticSize.XY
NTextLabel.LayoutOrder = NOTIFICATION_ID
if string.sub(Msg, 1, 1) == ">" then
NTextLabel.TextColor3 = Color3.new(0.9, 0.9, 1)
NTextLabel.FontFace = Font.fromEnum(Enum.Font.Code)
NTextLabel.TextSize *= 1.5
end
local UIPadding = Instance.new("UIPadding")
UIPadding.PaddingLeft = UDim.new(0, 4)
UIPadding.PaddingRight = UDim.new(0, 4)
UIPadding.PaddingTop = UDim.new(0, 2)
UIPadding.PaddingBottom = UDim.new(0, 2)
UIPadding.Parent = NTextLabel
NTextLabel.Parent = NotifyAreaFrame
task.delay(TimeAlive or 7, function ()
table.insert(NotificationUIs, NTextLabel)
if #NotificationUIs > MaxNotifications then
local First = NotificationUIs[1]
if First then
First:Destroy()
table.remove(NotificationUIs, 1)
end
end
if not CMDBar_IsFocused then
NTextLabel.Visible = false
end
end)
end
--[[
PlayerSearchMode = 0 is actual name and DisplayName.
PlayerSearchMode = 1 is actual name.
PlayerSearchMode = 2 is DisplayName.
Regardless of any mode, the @ prefix will always search with actual names. Example: "@Hyper" will only choose the players with the name "Hyper" and will never search display names.
]]
local PlayerSearchMode = 0
function GetPlayersFromString(PlayerString, OverrideSearchMode): {Player}
if not PlayerString or PlayerString == "" then
return {}
end
local PlayerSearchMode = OverrideSearchMode or PlayerSearchMode
local SearchByNameAllowed = PlayerSearchMode == 0 or PlayerSearchMode == 1
local SearchByDisplayNameAllowed = PlayerSearchMode == 0 or PlayerSearchMode == 2
local CheckAll = true
if string.sub(PlayerString, 1, 1) == "@" then
SearchByNameAllowed = true
SearchByDisplayNameAllowed = false
PlayerString = string.sub(PlayerString, 2)
CheckAll = false
end
local PlayerStringLower = string.lower(PlayerString)
local PlayerStringLength = #PlayerString
local PlayersFound = {}
local CurrentPlayers = Players:GetPlayers()
if CheckAll and PlayerStringLower == "all" or PlayerStringLower == "others" then
table.remove(CurrentPlayers, table.find(CurrentPlayers, LocalPlayer))
return CurrentPlayers
end
for _, Player in pairs(CurrentPlayers) do
if Player == LocalPlayer then continue end
local PlayerName = Player.Name
local PlayerNameLower = string.lower(PlayerName)
local PlayerDisplayName = string.lower(Player.DisplayName)
if PlayerName == PlayerString and SearchByNameAllowed then
-- This player has the exact name we are searching for! Only choose him
return {Player}
end
if PlayerDisplayName == PlayerString and SearchByDisplayNameAllowed then
return {Player}
end
if SearchByNameAllowed and string.sub(PlayerNameLower, 1, PlayerStringLength) == PlayerStringLower then
table.insert(PlayersFound, Player)
continue
end
if SearchByDisplayNameAllowed and string.sub(PlayerDisplayName, 1, PlayerStringLength) == PlayerStringLower then
table.insert(PlayersFound, Player)
continue
end
end
return PlayersFound
end
local GetPlayerFromString = function(PlayerString)
-- Find the first player from string
return GetPlayersFromString(PlayerString)[1]
end
function StopAnimations(Humanoid)
local Animator: Animator = Humanoid:FindFirstChildWhichIsA("Animator")
if Animator then
for _, a in Animator:GetPlayingAnimationTracks() do
a:Stop(0.0001)
end
end
end
type MountObject = {
Part: BasePart,
Size: Vector3,
Offset: CFrame,
OscillateSpeed: number,
OscillateOffsetY: NumberRange,
SetVelocity: Vector3,
RootVelocity: Vector3,
RootRotVelocity: Vector3,
ForceStopAnimations: boolean,
NoHipHeight: boolean,
RespectRotation: boolean,
RespectPhysicsVelocity: boolean,
AntiSleep: boolean,
IsActive: boolean
}
function MountWithPart(Part: BasePart, Offset: CFrame?, SetVelocity: Vector3?): MountObject?
local MyCharacter = LocalPlayer.Character
if not MyCharacter then
Notify("Mount failed due to no LocalPlayer.Character...")
return nil
end
local MyHumanoid = MyCharacter:FindFirstChildWhichIsA("Humanoid")
if not MyHumanoid then
Notify("Mount failed due to no Local Humanoid...")
return nil
end
local MyCharacterRootPart: BasePart = (MyHumanoid.RootPart or MyCharacter:FindFirstChild("HumanoidRootPart")):: BasePart
if not MyCharacterRootPart or not MyCharacterRootPart:IsA("BasePart") then
MyCharacterRootPart = MyHumanoid.RootPart:: BasePart
end
if not MyCharacterRootPart then
Notify("Mount failed due to no Local HumanoidRootPart...")
return nil
end
local IsMyHumanoidR6 = MyHumanoid.RigType == Enum.HumanoidRigType.R6
local MyCurrentRootPartCFrame = MyCharacterRootPart.CFrame
-- Yeah I'm not using metatables, cry about it.
local self: MountObject = {
Part = Part,
Size = Part.Size,
Offset = Offset or CFrame.identity,
OscillateSpeed = 10,
OscillateOffsetY = NumberRange.new(0, 0),
SetVelocity = SetVelocity or Vector3.zero,
RootVelocity = Vector3.zero,
RootRotVelocity = Vector3.zero,
ForceStopAnimations = false,
NoHipHeight = false,
RespectRotation = false,
RespectPhysicsVelocity = false,
AntiSleep = true,
IsActive = true
}
local RootPart = Part.AssemblyRootPart or Part
local UseOriginalRootPartPosition = RootPart == Part or Part:IsDescendantOf(MyCharacter)
local OriginalRootPartCFrame = RootPart.CFrame
local OriginalPartParent = Part.Parent
local PrimaryPart = OriginalPartParent
if OriginalPartParent and PrimaryPart:IsA("Model") then
PrimaryPart = PrimaryPart.PrimaryPart
else
PrimaryPart = nil
end
local OriginalPartCollisionGroup = Part.CollisionGroup
Part.CollisionGroup = "Default"
Part.LocalTransparencyModifier = 1
Part.Parent = workspace.Terrain
Part.CanQuery = false
Part.CanCollide = false
Part.Massless = false
Part.CustomPhysicalProperties = PhysicalProperties.new(100, 0.5, 0.5)
local PlatformPart = Instance.new("Part")
PlatformPart.Size = Vector3.new(10, 1, 10)
PlatformPart.CFrame = Part.CFrame
PlatformPart.RootPriority = Part.RootPriority-1
PlatformPart.CustomPhysicalProperties = PhysicalProperties.new(100, 0.5, 0.5)
PlatformPart.Transparency = 1
PlatformPart.LocalTransparencyModifier = 0.5
PlatformPart.Parent = workspace.Terrain
MyCurrentMountedObject = self
local NoCollisionConstraints = {}
local SavedJoints = {}
for _, Joint in pairs(Part:GetJoints()) do
table.insert(SavedJoints, {
Joint = Joint,
OriginalParent = Joint.Parent
})
Joint.Parent = nil
end
local PlatformWeld = Instance.new("Weld")
PlatformWeld.Part0 = Part
PlatformWeld.Part1 = PlatformPart
PlatformWeld.Parent = PlatformPart
local MyLastRootVelocity = MyCharacterRootPart.Velocity
local SetCFrame = Part.CFrame
local StandPartCFrameTo = CFrame.identity
local OverlapColParams = OverlapParams.new()
OverlapColParams.CollisionGroup = MyCharacterRootPart.CollisionGroup
OverlapColParams.RespectCanCollide = false
OverlapColParams.FilterDescendantsInstances = {MyCharacter}
OverlapColParams.FilterType = Enum.RaycastFilterType.Blacklist
local SteppedConnection = Stepped:Connect(function ()
local MyHipHeight = MyHumanoid.HipHeight-0.05
if IsMyHumanoidR6 then
MyHipHeight = MyHipHeight + MyCharacterRootPart.Size.Y/2
end
MyHipHeight += (MyCharacterRootPart.Size.Y/2)+0.5
if MyHumanoid then
-- Don't allow our humanoid to "fall"
MyHumanoid:ChangeState(Enum.HumanoidStateType.Running)
-- This shoudn't trigger any anti-cheats? surely...
end
local OscillateSpeed = math.pi*self.OscillateSpeed
local OffsetCF = self.Offset
local OscillateYDelta = self.OscillateOffsetY.Max-self.OscillateOffsetY.Min
local OscillateY = self.OscillateOffsetY.Min + (math.sin(os.clock()*OscillateSpeed)+1)*0.5*OscillateYDelta
OffsetCF *= CFrame.new(0, OscillateY, 0)
PlatformWeld.C0 = OffsetCF
if self.NoHipHeight then
PlatformWeld.C0 *= CFrame.new(0, -MyHipHeight, 0)
end
local UseOriginalRootPartPosition = UseOriginalRootPartPosition or not self.AntiSleep
StandPartCFrameTo = CFrame.new(not UseOriginalRootPartPosition and RootPart.Position or OriginalRootPartCFrame.Position)
local FallDestroyHeight = if workspace.FallHeightEnabled then workspace.FallenPartsDestroyHeight+30 else -math.huge
if StandPartCFrameTo.Y <= FallDestroyHeight then
StandPartCFrameTo = CFrame.new(StandPartCFrameTo.Position*Vector3.new(1, 0, 1))+Vector3.new(0, FallDestroyHeight, 0)
end
if StandPartCFrameTo.Position.Magnitude >= 200000 then
-- Raycasts don't work this far out... (Humanoids use raycasts for the floor checks)... Clamp the position so they'll work
StandPartCFrameTo = CFrame.new(StandPartCFrameTo.Position.Unit*200000)
end
-- Disable collisions around the player.
-- We do this because we want to the humanoid to only stand on the platform part
local PartsFind = workspace:GetPartBoundsInRadius(PlatformPart.Position, 30, OverlapColParams)
for _, OtherPart in pairs(PartsFind) do
if OtherPart == PlatformPart then continue end
if NoCollisionConstraints[OtherPart] then continue end
OverlapColParams:AddToFilter(OtherPart)
local NCC = Instance.new("NoCollisionConstraint")
NCC.Part0 = OtherPart
NCC.Part1 = MyCharacterRootPart
NCC.Parent = OtherPart
NoCollisionConstraints[OtherPart] = NCC
end
local Rotation = CFrame.identity
if self.RespectRotation then
Rotation = OffsetCF.Rotation
else
StandPartCFrameTo = StandPartCFrameTo * PlatformWeld.C0:Inverse() * Rotation * CFrame.new(0, 2, 0)
end
Part.CFrame = StandPartCFrameTo
Part.Anchored = false
SetCFrame = CFrame.new(PlatformPart.Position) * Rotation * CFrame.new(0, MyHipHeight, 0)
MyCharacterRootPart.CFrame = SetCFrame
Part.AssemblyLinearVelocity = Vector3.zero
Part.AssemblyAngularVelocity = Vector3.zero
MyCharacterRootPart.Velocity = Vector3.zero
if self.RespectPhysicsVelocity then
MyCharacterRootPart.Velocity = MyLastRootVelocity
end
MyCharacterRootPart.AssemblyAngularVelocity = Vector3.zero
end)
local HeartbeatConnection = Heartbeat:Connect(function ()
if MyCharacter ~= LocalPlayer.Character or (OriginalPartParent and OriginalPartParent.Parent == nil) then
self.IsActive = false
self:Destroy()
if (OriginalPartParent and OriginalPartParent.Parent == nil) then
self.IsActive = true
end
return
end
MyLastRootVelocity = MyCharacterRootPart.Velocity
self.RootVelocity = MyLastRootVelocity
self.RootRotVelocity = MyCharacterRootPart.RotVelocity
local SetVelocity = self.SetVelocity
if self.AntiSleep then
-- Add a bit of noise to the velocity to prevent the humanoid from sleeping on the server.
-- (Annoying things might happen if we don't do this)
SetVelocity += (RNG:NextUnitVector()*0.1)
end
MyCharacterRootPart.Velocity = SetVelocity
MyCharacterRootPart.CFrame = SetCFrame
Part.CFrame = StandPartCFrameTo
Part.AssemblyLinearVelocity = Vector3.zero
Part.AssemblyAngularVelocity = Vector3.zero
if self.ForceStopAnimations then
StopAnimations(MyHumanoid)
end
end)
function self:PlayAnimation(Anim)
local AnimationId = typeof(Anim) == "string" and Anim
if not AnimationId then
-- Anim is a table (should contain .R6 and .R15)
AnimationId = IsMyHumanoidR6 and Anim.R6 or Anim.R15
if not AnimationId then
-- Can't play animation...
return
end
end
if self.AnimationTrack then
self.AnimationTrack:Stop()
self.AnimationTrack = nil
end
local AnimationObject = Instance.new("Animation")
AnimationObject.AnimationId = AnimationId
local Animator = MyHumanoid:FindFirstChildWhichIsA("Animator")
if Animator then
local AnimationTrack = Animator:LoadAnimation(AnimationObject)
AnimationTrack.Priority = Enum.AnimationPriority.Action
AnimationTrack.Looped = true
AnimationTrack:Play()
self.AnimationTrack = AnimationTrack
end
end
function self:Destroy()
-- Clean up
Part.Size = self.Size
pcall(function ()
Part.Parent = OriginalPartParent
end)
Part.CollisionGroup = OriginalPartCollisionGroup
Part.CustomPhysicalProperties = PhysicalProperties.new(Part.Material)
Part.LocalTransparencyModifier = 0
PlatformPart:Destroy()
if SteppedConnection then
SteppedConnection:Disconnect()
SteppedConnection = nil
end
if HeartbeatConnection then
HeartbeatConnection:Disconnect()
HeartbeatConnection = nil
end
self.IsActive = false
if self.AnimationTrack then
self.AnimationTrack:Stop()
self.AnimationTrack = nil
end
for _, JI in pairs(SavedJoints) do
pcall(function ()
-- Joint might have been destroyed... This is wrapped inside pcall incase .Parent is locked
JI.Joint.Parent = JI.OriginalParent
end)
end
for _, NCC in pairs(NoCollisionConstraints) do
NCC:Destroy()
end
if MyCurrentMountedObject == self then
MyCurrentMountedObject = nil
end
MyCharacterRootPart.CFrame = MyCurrentRootPartCFrame
MyCharacterRootPart.Velocity = Vector3.zero
MyCharacterRootPart.RotVelocity = Vector3.zero
if PrimaryPart and PrimaryPart.Parent and OriginalPartParent:IsA("Model") and OriginalPartParent.Parent then
OriginalPartParent.PrimaryPart = PrimaryPart
end
end
return self
end
local LOOPFLING_ID = 0
function UnmountWithCharacterModel()
if not CurrentCharacterModelMountedWith then
return
end
if MyCurrentMountedObject then
MyCurrentMountedObject:Destroy()
end
local Humanoid: Humanoid = CurrentCharacterModelMountedWith:FindFirstChildWhichIsA("Humanoid"):: Humanoid
if Humanoid then
-- Rebuild the humanoid
pcall(function () Humanoid:BuildRigFromAttachments() end)
end
end
function MountWithCharacterModel(Model, BodyPart: {string} | string, Offset, SetVelocity): MountObject?
UnmountWithCharacterModel()
if MyCurrentMountedObject then
MyCurrentMountedObject:Destroy()
end
CurrentCharacterModelMountedWith = Model
local Humanoid = Model:FindFirstChildWhichIsA("Humanoid")
if not Humanoid then
Notify("Character model doesn't have a Humanoid! :" .. Model.Name)
return nil
end
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
Humanoid.BreakJointsOnDeath = false
local BodyPartFind = nil
if typeof(BodyPart) == "string" then
BodyPartFind = Model:FindFirstChild(BodyPart)
elseif typeof(BodyPart) == "table" then
for _, BodyPartCheck in pairs(BodyPart) do
BodyPartFind = Model:FindFirstChild(BodyPartCheck)
if BodyPartFind then
break
end
end
else
BodyPartFind = BodyPart
end
if not BodyPartFind then
return nil
end
return MountWithPart(BodyPartFind, Offset, SetVelocity)
end
function DoesPlayerAndCharacterExist(Player, PlayerName)
if not Player then
if not PlayerName or string.lower(PlayerName) == "all" or string.lower(PlayerName) == "others" then
Notify("No player found.")
else
Notify("Could not find player \"" .. PlayerName .. "\".")
end
return false
end
if not Player.Character then
if not PlayerName then
Notify("Player doesn't have a character.")
else
Notify("Player \"" .. PlayerName .. "\" doesn't have a character.")
end
return false
end
return true
end
local CurrentCommandsGui = nil
function OpenCommandsMenu()
if CurrentCommandsGui then
CurrentCommandsGui:Destroy()
CurrentCommandsGui = nil
end
local ViewportSize = workspace.CurrentCamera.ViewportSize
local CommandsGui = Instance.new("Frame")
CommandsGui.AnchorPoint = Vector2.new(0.5, 0)
CommandsGui.Position = UDim2.new(0.5, 0, 0.5, -ViewportSize.Y/3)
CommandsGui.Size = UDim2.new(0.6, 200, 0.6, 100)
CommandsGui.Active = true
CommandsGui.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
CommandsGui.BackgroundTransparency = 0.5
CommandsGui.BorderSizePixel = 0
local DragFrame = Instance.new("Frame")
DragFrame.BackgroundTransparency = 1
DragFrame.BorderSizePixel = 0
DragFrame.Size = UDim2.new(1, 0, 1, 0)
DragFrame.Parent = CommandsGui
local IsDragging = false
-- Draggable help menu
DragFrame.InputBegan:Connect(function (InputObject)
if IsDragging then
return
end
-- Support them mobile niggas
local IsMobileDrag = InputObject.UserInputType == Enum.UserInputType.Touch
if InputObject.UserInputType == Enum.UserInputType.MouseButton1 or IsMobileDrag then
IsDragging = true
local MousePos = IsMobileDrag and Vector2.new(InputObject.Position.X, InputObject.Position.Y)
or UserInputService:GetMouseLocation()
local MouseToMenuOffset = Vector2.new(MousePos.X, MousePos.Y)
- Vector2.new(CommandsGui.Position.X.Offset, CommandsGui.Position.Y.Offset)
local InputEndedEvent; InputEndedEvent = UserInputService.InputEnded:Connect(function (EndedInputObject)
if EndedInputObject == InputObject then
InputEndedEvent:Disconnect()
InputEndedEvent = nil
end
end)
while InputEndedEvent and CommandsGui.Parent do
if InputEndedEvent and not InputEndedEvent.Connected then break end
if SCRIPT_IS_EXITED then break end
local NewMousePos = IsMobileDrag and InputObject.Position or UserInputService:GetMouseLocation()
local MoveDelta = Vector2.new(NewMousePos.X-MousePos.X, NewMousePos.Y-MousePos.Y)
CommandsGui.Position = CommandsGui.Position + UDim2.fromOffset(MoveDelta.X, MoveDelta.Y)
MousePos += Vector2.new(
math.floor(math.abs(MoveDelta.X))*math.sign(MoveDelta.X),
math.floor(math.abs(MoveDelta.Y))*math.sign(MoveDelta.Y),
0
)
task.wait()
end
if InputEndedEvent then
InputEndedEvent:Disconnect()
InputEndedEvent = nil
end
IsDragging = false
end
end)
CurrentCommandsGui = CommandsGui
local ExitButton = Instance.new("TextButton")
ExitButton.Text = "X"
ExitButton.TextSize = 17
ExitButton.BorderSizePixel = 0
ExitButton.TextColor3 = Color3.new(1, 1, 1)
ExitButton.BackgroundColor3 = Color3.fromRGB(156, 0, 0)
ExitButton.Size = UDim2.new(0, 40, 0, 20)
ExitButton.AnchorPoint = Vector2.new(1, 0)
ExitButton.Position = UDim2.new(1, 0, 0, 0)
ExitButton.Activated:Connect(function ()
CurrentCommandsGui:Destroy()
CurrentCommandsGui = nil
end)
ExitButton.Parent = CommandsGui
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Text = "Commands"
TitleLabel.AutomaticSize = Enum.AutomaticSize.X
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.TextSize = 15
TitleLabel.BorderSizePixel = 0
TitleLabel.TextColor3 = Color3.new(1, 1, 1)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Size = UDim2.new(0, 30, 0, 35)
TitleLabel.AnchorPoint = Vector2.new(0, 0)
TitleLabel.Position = UDim2.new(0, 10, 0, 0)
TitleLabel.Parent = CommandsGui
local ScrollingFrame = Instance.new("ScrollingFrame")
ScrollingFrame.ElasticBehavior = Enum.ElasticBehavior.Never
ScrollingFrame.AutomaticCanvasSize = Enum.AutomaticSize.XY
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0 , 0)
ScrollingFrame.Position = UDim2.new(0, 15, 0, 35)
ScrollingFrame.BackgroundTransparency = 0.5
ScrollingFrame.BackgroundColor3 = Color3.new(0, 0, 0)
ScrollingFrame.Size = UDim2.new(1, -30, 1, -50)
ScrollingFrame.Parent = CommandsGui
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Parent = ScrollingFrame
for i, StringCommand in pairs(CommandsList) do
if StringCommand == 0 then
continue
end
local CmdString_T = {}
local CSI = 1
local TextSize = 20
local FontFace = Font.fromEnum(Enum.Font.RobotoMono)
if typeof(StringCommand) == "table" then
for j, String in pairs(StringCommand) do
if j == 1 then
CmdString_T[CSI] = String
elseif j == #StringCommand then
CmdString_T[CSI] = " - " .. String
else
CmdString_T[CSI] = " " .. String
end
CSI += 1
end
elseif typeof(StringCommand) == "string" then
table.insert(CmdString_T, StringCommand)
FontFace = Font.fromEnum(Enum.Font.Code)
FontFace.Weight = Enum.FontWeight.Bold
TextSize = 22
end
local CmdString = table.concat(CmdString_T)
local CommandLabel = Instance.new("TextLabel")
CommandLabel.Name = "cmd." .. i
CommandLabel.LayoutOrder = i
CommandLabel.Text = CmdString
CommandLabel.FontFace = FontFace
CommandLabel.TextSize = TextSize
CommandLabel.TextXAlignment = Enum.TextXAlignment.Left
CommandLabel.TextColor3 = Color3.new(1, 1, 1)
CommandLabel.BackgroundTransparency = 1
CommandLabel.Size = UDim2.new(0, 10, 0, 10)
CommandLabel.AutomaticSize = Enum.AutomaticSize.XY
CommandLabel.Parent = ScrollingFrame
local UIPadding = Instance.new("UIPadding")
UIPadding.PaddingLeft = UDim.new(0, 5)
UIPadding.Parent = CommandLabel
end
CommandsGui.Parent = MainScreenGui
end
function IsCharacterAlive(Character)
if not Character then
return false
end
local Hum: Humanoid = Character:FindFirstChildWhichIsA("Humanoid")
if not Hum or not Hum:IsA("Humanoid") then
return false
end
if Hum.Health <= 0 or Hum:GetState() == Enum.HumanoidStateType.Dead then
return false
end
local FirstBasePart = Character:FindFirstChildWhichIsA("BasePart")
if not FirstBasePart then
-- The player might have fallen out of the world?
-- For some reason, falling out of the world makes the humanoid to think its not dead? and it starts regening health???
-- To counteract this, just check to see if there are any parts left in the character model.
return false
end
-- ALIVE!
return true
end
function GetNearestPlayerFromPosition(Position, MaxDistance)
local Distance = MaxDistance or 10000
local Player = nil
for _, PlayerFind in pairs(Players:GetPlayers()) do
local Character = PlayerFind.Character
if not Character or PlayerFind == LocalPlayer then
continue
end
if not IsCharacterAlive(Character) then
continue
end
local PlayerPosition = Character:GetPivot().Position
if not Character.PrimaryPart then
local RootPart = Character:FindFirstChild("HumanoidRootPart") or
Character:FindFirstChild("Head") or
Character:FindFirstChild("Torso") or
Character:FindFirstChild("UpperTorso")
if not RootPart then
-- Wth can't find RootPart?? skip this tweaker
continue
end
if RootPart:IsA("BasePart") then
PlayerPosition = RootPart.Position
end
end
local PlayerDistance = (Position-PlayerPosition).Magnitude
if Distance > PlayerDistance then
Distance = PlayerDistance
Player = PlayerFind
end
end
return Player
end
function CheckIsPartAndCanCollide(Part: BasePart?)
if not Part or not Part:IsA("BasePart") or not Part.CanCollide then
return false
end
return true
end
function GetCharacterCollisionPart(Character: Model)
local ColPart: BasePart = Character:FindFirstChild("HumanoidRootPart")
if not CheckIsPartAndCanCollide(ColPart) then
ColPart = Character:FindFirstChild("PlayerCollision") or Character:FindFirstChild("Collision")
if not CheckIsPartAndCanCollide(ColPart) then
ColPart = Character:FindFirstChild("Torso") or Character:FindFirstChild("UpperTorso") or Character:FindFirstChild("LowerTorso")
end
end
if not CheckIsPartAndCanCollide(ColPart) then
ColPart = Character:FindFirstChildWhichIsA("BasePart")
if not CheckIsPartAndCanCollide(ColPart) then
return nil
end
end
return ColPart
end
function CheckCollisionsEnabled(PlayersFound: {Player})
local LocalCharacter = LocalPlayer.Character
if not LocalCharacter then return end
local MyRootPart: BasePart = GetCharacterCollisionPart(LocalCharacter)
if not MyRootPart then return end
--local CollisionsAreEnabled = true
for _, Player in pairs(PlayersFound) do
local Character = Player.Character
if not Character then continue end
local RootPart = GetCharacterCollisionPart(Character)
if RootPart then
local CanCollide = MyRootPart:CanCollideWith(RootPart)
if not CanCollide then
Notify("Collisions may not be enabled for this game. This action might not work!")
return false
end
end
end
return true
end
function GetLocalHipHeight()
local LocalCharacter = LocalPlayer.Character
if not LocalCharacter then return 0 end
local Humanoid = LocalCharacter:FindFirstChildWhichIsA("Humanoid")
if not Humanoid then return 0 end
local HipHeight = Humanoid.HipHeight
if Humanoid.RigType == Enum.HumanoidRigType.R6 and Humanoid.RootPart then
HipHeight += Humanoid.RootPart.Size.Y
end
return HipHeight
end
local GFlingDirectionPart
local AntiFlingEnabled = false
function CheckBooleanString(BooleanString: string?, CurrentFlag: boolean?)
local BooleanString = string.lower(tostring(BooleanString or ""))
local IsToggle = (not BooleanString or
(BooleanString ~= "true" and BooleanString ~= "false" and
BooleanString ~= "on" and BooleanString ~= "off"))
if IsToggle then
if CurrentFlag == true then
return false
else
return true
end
else
if BooleanString == "true" or BooleanString == "on" then
return true
else
return false
end
end
return true
end
-- This is used for the PlayerWalk command because R6 body part names have spaces in them.
local R6BodyPartNames = {
RightArm = "Right Arm",
RightLeg = "Right Leg",
LeftArm = "Left Arm",
LeftLeg = "Left Leg",
}
local HideCommandBarUntilFocus = false
local CommandLineTextBox = nil
function Command_Stop(NoNotification: boolean?)
local AnythingStopped = false
if MyCurrentMountedObject then
MyCurrentMountedObject.ActuallyStopped = true
if not NoNotification then
Notify("Command stopped.")
end
AnythingStopped = true
end
UnmountWithCharacterModel()
if MyCurrentMountedObject then
MyCurrentMountedObject.ActuallyStopped = true
MyCurrentMountedObject:Destroy()
end
if LOOPFLING_ID ~= 0 then
LOOPFLING_ID = 0
if not NoNotification then
Notify("LoopFling stopped.")
end
AnythingStopped = true
end
LOOPFLING_ID = 0
if GFlingDirectionPart then
GFlingDirectionPart:Destroy()
GFlingDirectionPart = nil
if not NoNotification then
Notify("FlingAura stopped.")
end
AnythingStopped = true
end
if not AnythingStopped and not NoNotification then
if not AntiFlingEnabled then
Notify("Nothing stopped.")
else
Notify("Nothing stopped, although antifling is enabled! Disable it by typing >\"antifling false\"")
end
end
end
local CommandFunctions; CommandFunctions = {
cmds = OpenCommandsMenu,
commands = OpenCommandsMenu,
help = OpenCommandsMenu,
h = OpenCommandsMenu,
stop = Command_Stop,
s = Command_Stop,
hidecmdbar = function()
if not KEYBIND_FocusCommandBar then
Notify("Cannot hide command bar without a keybind!")
return
end
if not UserInputService.KeyboardEnabled then
Notify("Cannot hide command bar without a keyboard...")
return
end
HideCommandBarUntilFocus = true
if CommandLineTextBox then
CommandLineTextBox.Visible = false
end
Notify("Command bar hidden, press '" .. KEYBIND_FocusCommandBar.Name .. "' to use the command bar.")
end,
showcmdbar = function()
HideCommandBarUntilFocus = false
if CommandLineTextBox then
CommandLineTextBox.Visible = true
end
end,
fling = function(PlayerName, FlingDuration)
local FlingDuration = tonumber(FlingDuration or 0.6)
local PlayersFound = GetPlayersFromString(PlayerName)
if #PlayersFound <= 0 then
if not PlayerName or PlayerName == "" then
PlayerName = " "
end
if string.lower(PlayerName) == "aura" then
-- Bruh
Notify("Could not find player \"aura\"... Did you mean to type the command \"flingaura\"?")
else
if string.lower(PlayerName) == "all" or string.lower(PlayerName) == "others" then
Notify("No other players exist in the server to fling")
else
Notify("Could not find player \"" ..PlayerName.. "\"")
end
end
return
end
CheckCollisionsEnabled(PlayersFound)
for _, Player in pairs(PlayersFound) do
if not Player.Character then continue end
local Mount = MountWithCharacterModel(
Player.Character,
{"Torso", "UpperTorso", "HumanoidRootPart"},
CFrame.Angles(math.pi, 0, 0) * CFrame.new(0, 2, 0),
FlingVelocity
)
if not Mount then
-- No mount object created... can't fling this player
continue
end
Mount.NoHipHeight = true
Mount.ForceStopAnimations = true
Mount.OscillateSpeed = 40
Mount.OscillateOffsetY = NumberRange.new(-2, 0)
task.wait(FlingDuration)
if Mount.ActuallyStopped then
-- WE STOPPED!
return
end
UnmountWithCharacterModel()
end
end,
loopfling = function(PlayerName, FlingDuration)
local FlingDuration = tonumber(FlingDuration or 0.6)
local PlayersFound = GetPlayersFromString(PlayerName)
local PlayerFound = PlayersFound[1]
if not PlayerFound then
Notify("Player not found")
return
end
Command_Stop(true)
local IsSearchingEveryone = string.lower(PlayerName) == "all" or string.lower(PlayerName) == "others"
local NextPlayerCycleTime = math.max(1, FlingDuration)
local PlayerAt = 1
CheckCollisionsEnabled(PlayersFound)
LOOPFLING_ID = RNG:NextInteger(-(2^53), (2^53))
local MyId = LOOPFLING_ID
local PlrNames = {}
for _, Plr in pairs(PlayersFound) do
table.insert(PlrNames, Plr.Name)
end
table.sort(PlrNames) -- Sort a-z
Notify("Loop flinging {" .. table.concat(PlrNames, ", ") .. "}")
local Mount = nil
local CurrentPlayerChar = PlayerFound.Character
while (not Mount or not Mount.ActuallyStopped) and MyId == LOOPFLING_ID do
if SCRIPT_IS_EXITED then break end
if PlayerAt > #PlayersFound then
PlayerAt = 1
if IsSearchingEveryone then
PlayersFound = GetPlayersFromString(PlayerName)
if not PlayersFound[1] then
task.wait(0.1)
continue
end
end
end
if #PlayersFound <= 0 or (Mount and Mount.ActuallyStopped) then
Notify("Loop fling has stopped due to all the player(s) leaving.")
break
end
local PlayerFound = PlayersFound[PlayerAt]
if not PlayerFound then
-- Huh?
break
end
if not PlayerFound.Parent then
-- Player has left... so sad
table.remove(PlayersFound, table.find(PlayersFound, PlayerFound))
PlayerAt += 1
NextPlayerCycleTime = FlingDuration
continue
end
if not Mount or not Mount.IsActive or (PlayerFound.Character ~= CurrentPlayerChar) then
CurrentPlayerChar = PlayerFound.Character
if CurrentPlayerChar and IsCharacterAlive(CurrentPlayerChar) then
Mount = MountWithCharacterModel(
PlayerFound.Character,
{"Torso", "UpperTorso", "HumanoidRootPart"},
CFrame.Angles(math.pi, 0, 0) * CFrame.new(0, 2, 0),
FlingVelocity
)
LOOPFLING_ID = MyId
if Mount then
Mount.NoHipHeight = true
--Mount.AntiSleep = false
Mount.ForceStopAnimations = true
Mount.OscillateSpeed = 40
Mount.OscillateOffsetY = NumberRange.new(-2, 0)
else
PlayerAt += 1
task.wait(0.1)
continue
end
else
CurrentPlayerChar = nil
end
end
if CurrentPlayerChar then
if not IsCharacterAlive(CurrentPlayerChar) then
PlayerAt += 1
NextPlayerCycleTime = FlingDuration
UnmountWithCharacterModel()
CurrentPlayerChar = nil
end
end
if not Mount then
break
end
local DT = task.wait(1/30)
if MyId ~= LOOPFLING_ID then break end
NextPlayerCycleTime -= DT
if Mount.ActuallyStopped then
break
end
if NextPlayerCycleTime <= 0 then
PlayerAt += 1
NextPlayerCycleTime = FlingDuration
end
end
if MyId == LOOPFLING_ID then
LOOPFLING_ID = 0
end
end,
headsit = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
local Mount = MountWithCharacterModel(PlayerFound.Character, {"Head", "Torso"}, CFrame.new(0, -GetLocalHipHeight()+0.5, 0))
Mount:PlayAnimation(Animations.Sit)
end,
facesit = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
local Mount = MountWithCharacterModel(PlayerFound.Character, {"Head"},
CFrame.Angles(-math.pi/2, 0, 0) * CFrame.new(0, -GetLocalHipHeight()+0.5, 0))
Mount:PlayAnimation(Animations.Sit)
end,
backsit = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
local Mount = MountWithCharacterModel(PlayerFound.Character, {"UpperTorso", "Torso"},
CFrame.Angles(math.pi/2, 0, 0) * CFrame.new(0, -GetLocalHipHeight()+0.5, 0), nil)
Mount:PlayAnimation(Animations.Sit)
end,
armsit = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
local Mount = MountWithCharacterModel(PlayerFound.Character, {
"Right Arm", "RightUpperArm", "RightHand",
"Left Arm", "LeftUpperArm", "LeftHand"
}, CFrame.Angles(0, 0, -math.pi/2) * CFrame.new(0, -GetLocalHipHeight()+0.5, 0))
Mount:PlayAnimation(Animations.Sit)
end,
handsit = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
local Offset = CFrame.new(0, -GetLocalHipHeight(), 0)*CFrame.Angles(0, math.pi/2, 0)
local Mount = MountWithCharacterModel(PlayerFound.Character, {"RightHand", "Right Arm"},
CFrame.Angles(math.pi, 0, 0) * Offset)
Mount:PlayAnimation(Animations.Sit)
end,
rootsit = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
MountWithCharacterModel(PlayerFound.Character, {"HumanoidRootPart", "UpperTorso", "Torso"},
CFrame.Angles(-math.pi/2, 0, 0) * CFrame.new(0, -1, -0.5))
end,
standon = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
MountWithCharacterModel(PlayerFound.Character, {"Head"}, CFrame.new(0, 0.5, 0))
end,
floor = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
UnmountWithCharacterModel()
local OtherCharacter = PlayerFound.Character
local OtherHumanoid = OtherCharacter:FindFirstChildWhichIsA("Humanoid")
local HumanoidRootPart = OtherCharacter:FindFirstChild("HumanoidRootPart")
if not OtherHumanoid then return end
local LocalCharacter = LocalPlayer.Character
local Mount = MountWithCharacterModel(OtherCharacter, {"HumanoidRootPart"}, CFrame.identity, nil)
if not Mount then return end
Mount.NoHipHeight = true
Mount.ForceStopAnimations = true
while Mount.IsActive do
local HipHeight = OtherHumanoid.HipHeight
if HumanoidRootPart and HumanoidRootPart:IsA("BasePart") then
HipHeight += HumanoidRootPart.Size.Y*0.5
if OtherHumanoid.RigType == Enum.HumanoidRigType.R6 then
HipHeight += HumanoidRootPart.Size.Y*0.5
end
end
Mount.Offset = CFrame.new(0, -HipHeight, 0) * CFrame.Angles(math.pi*0.5, 0, 0)
if LocalCharacter then
local lHumanoidRootPart = LocalCharacter:FindFirstChild("HumanoidRootPart")
if lHumanoidRootPart then
Mount.Offset *= CFrame.new(0, 0, (lHumanoidRootPart.Size.Z*0.5) + 0.1)
end
end
Mount.Offset *= CFrame.Angles(0, 0, (os.clock()*math.pi*20))
task.wait()
end
end,
fan = function(PlayerName, Speed)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
UnmountWithCharacterModel()
local LocalCharacter = LocalPlayer.Character
local Mount = MountWithCharacterModel(PlayerFound.Character, {"Head"}, CFrame.identity, nil)
if not Mount then return end
Mount.NoHipHeight = true
local DefaultSpeed = 3
local Speed = tonumber(Speed) or DefaultSpeed
if Speed ~= Speed then
Speed = DefaultSpeed
end
while Mount.IsActive do
Mount.Offset = CFrame.new(0, 3, 0) * CFrame.Angles(-math.pi*0.5, 0, 0)
Mount.Offset *= CFrame.Angles(0, 0, (os.clock()*math.pi*Speed))
task.wait()
end
end,
playerwalk = function(PlayerName, BodyPartName, Floor, Direction)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
BodyPartName = R6BodyPartNames[BodyPartName] or BodyPartName or "n"
local MyCharacter = LocalPlayer.Character
local MyHumanoid = MyCharacter:FindFirstChildWhichIsA("Humanoid")
local MyRootPart = MyCharacter:FindFirstChild("HumanoidRootPart")
local PlayerCharacter = PlayerFound.Character
local PlayerCharacterRoot = PlayerCharacter:FindFirstChild("HumanoidRootPart") or PlayerCharacter.PrimaryPart
if MyCurrentMountedObject then
MyCurrentMountedObject:Destroy()
end
local Last = PlayerCharacter.Archivable
PlayerCharacter.Archivable = true
local PlayerClone = PlayerCharacter:Clone()
PlayerCharacter.Archivable = Last
local AttachPart = PlayerClone:FindFirstChild(BodyPartName) or
PlayerClone:FindFirstChild("LowerTorso") or
PlayerClone:FindFirstChild("Torso")
if not AttachPart or not PlayerCharacterRoot then
Notify("BodyParts {" .. BodyPartName .. ", LowerTorso, Torso} not found.")
return
end
AttachPart.Anchored = true
AttachPart.Velocity = Vector3.zero
AttachPart.RotVelocity = Vector3.zero
local Highlight = Instance.new("Highlight")
Highlight.Adornee = PlayerClone
Highlight.FillTransparency = 0.64
Highlight.Parent = MainScreenGui
PlayerClone.Parent = workspace.Terrain
local IsMergingActualRootPart = AttachPart == PlayerCharacterRoot
local Offset = CFrame.new(0, -4, 4)
local Mount = MountWithCharacterModel(PlayerFound.Character, {BodyPartName, "LowerTorso", "Torso"}, Offset, nil)
if not Mount then return end
Mount.RespectRotation = true
Mount.RespectPhysicsVelocity = true
local WhereIActuallyAm = Instance.new("Part")
WhereIActuallyAm.Anchored = true
WhereIActuallyAm.CanCollide = false
WhereIActuallyAm.CanQuery = false
WhereIActuallyAm.Size = Vector3.new(3, 4, 1)
WhereIActuallyAm.Material = Enum.Material.Neon
WhereIActuallyAm.Transparency = 0.5
WhereIActuallyAm.Color = Color3.new(0, 0.25, 1)
local BoxHandleAdornee = Instance.new("BoxHandleAdornment")
BoxHandleAdornee.Adornee = WhereIActuallyAm
BoxHandleAdornee.Transparency = 0.8
BoxHandleAdornee.Size = WhereIActuallyAm.Size
BoxHandleAdornee.Color3 = Color3.new(0, 1, 1)
BoxHandleAdornee.ZIndex = 1
BoxHandleAdornee.AlwaysOnTop = true
BoxHandleAdornee.Parent = MainScreenGui
WhereIActuallyAm.Parent = workspace
local Direction = tonumber(Direction or 1) or 1
local RotOffset = CFrame.identity
if Direction == 1 then
RotOffset = CFrame.identity
elseif Direction == 2 then
RotOffset = CFrame.Angles(math.pi*0.5, 0, 0)
elseif Direction == 3 then
RotOffset = CFrame.Angles(math.pi, 0, 0)
elseif Direction == 4 then
RotOffset = CFrame.Angles(0, 0, math.pi*0.5)
end
local DefaultFloor = -2.5
local Floor = tonumber(Floor or DefaultFloor) or DefaultFloor
if Floor ~= Floor then
Floor = DefaultFloor
end
Notify(Sprintf("[PlayerWalk] BodyPart=\"%s\", Floor=%0.2f", AttachPart.Name, Floor))
if IsMergingActualRootPart then
Notify("[PlayerWalk] Mounting to HumanoidRootPart is buggy and is NOT RECOMMENDED!")
end
local Gravity = 0
local Jump = false
local JumpConnection = MyHumanoid.Jumping:Connect(function ()
Jump = true
end)
local NROffset = Mount.Offset
while Mount.IsActive do
local DT = task.wait()
if SCRIPT_IS_EXITED then break end
local MyRootVelocity = Mount.RootVelocity*Vector3.new(1, 0, 1)
if Jump then
Gravity = 30
Jump = false
end
if Mount.Offset.Y <= Floor then
MyRootVelocity += Vector3.new(0, ((Floor-Mount.Offset.Y)/DT)+Gravity, 0)
if Gravity < 0 then
Gravity = 0
end
else
Gravity -= DT*math.max(workspace.Gravity, 50)
MyRootVelocity += Vector3.new(0, Gravity, 0)
end
local MyRotationVelocity = Mount.RootRotVelocity*DT
Mount.SetVelocity = MyRootVelocity
NROffset = (NROffset * CFrame.Angles(0, (MyRotationVelocity.Y), 0)) + MyRootVelocity*DT
Mount.Offset = RotOffset * NROffset
AttachPart.CFrame = Mount.Part.CFrame
WhereIActuallyAm.CFrame = PlayerCharacterRoot.CFrame * Mount.Offset * CFrame.new(0, 3, 0)
end
if JumpConnection then
JumpConnection:Disconnect()
JumpConnection = nil
end
WhereIActuallyAm:Destroy()
Highlight:Destroy()
BoxHandleAdornee:Destroy()
PlayerClone:Destroy()
end,
orbit = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
local Mount = MountWithCharacterModel(PlayerFound.Character, {"UpperTorso", "Torso", "Head"}, CFrame.new(0, -2, 1))
Mount.NoHipHeight = true
local Speed = 0.75
local RandomOffset = RNG:NextNumber(0, 10)
while Mount.IsActive do
task.wait(0.02)
local SpinTick = ((os.clock()+RandomOffset)*Speed*360*0.75)%360
local SpinTick2 = ((os.clock()+RandomOffset)*Speed*360*0.5)%360
Mount.Offset = CFrame.Angles(0, math.rad(SpinTick), 0) * CFrame.new(0, 0, 4) * CFrame.Angles(0, math.rad(SpinTick2), 0)
end
end,
sphereorbit = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
local Mount = MountWithCharacterModel(PlayerFound.Character, {"UpperTorso", "Torso", "Head"}, CFrame.new(0, -2, 1))
local RandomVector = RNG:NextUnitVector()
local CFrameOrbitAngle = CFrame.Angles(RandomVector.X, RandomVector.Y, RandomVector.Z)
local NoiseVector = RandomVector*1000
while Mount.IsActive do
local DeltaTime = task.wait(0.02)
local Noise = math.noise(NoiseVector.X, NoiseVector.Y, NoiseVector.Z)
local Noise2 = math.noise(NoiseVector.X, NoiseVector.Y, -NoiseVector.Z)
NoiseVector += Vector3.new(DeltaTime, DeltaTime, DeltaTime)*0.2
CFrameOrbitAngle *= CFrame.Angles(DeltaTime*Noise2*5, DeltaTime*3, DeltaTime*Noise*5)
Mount.Offset = CFrameOrbitAngle * CFrame.new(0, -4, 5)
end
end,
merge = function(PlayerName)
local PlayerFound = GetPlayerFromString(PlayerName)
if not DoesPlayerAndCharacterExist(PlayerFound, PlayerName) then return end
local Mount = MountWithCharacterModel(PlayerFound.Character, {"UpperTorso", "Torso", "Head"}, nil, nil)
Mount.NoHipHeight = true
end,
antifling = function(EnabledString)
-- This attempts to stop your character from being flinged WITHOUT disabling collisions on every player
-- ... Although this implementation is really buggy, you shoudn't use this command seriously :)
local WasEnabled = AntiFlingEnabled
AntiFlingEnabled = CheckBooleanString(EnabledString, AntiFlingEnabled)
if AntiFlingEnabled then
Notify("AntiFling Enabled ")
else
Notify("AntiFling Disabled ")
end
if AntiFlingEnabled and WasEnabled then
-- Already enabled!
return
end
local LocalCharacter = LocalPlayer.Character
local LastVelocity = Vector3.zero
local LastPosition = Vector3.zero
local NextNotifyFling = os.clock()
while AntiFlingEnabled do
RunService.Stepped:Wait() -- Before physics
if SCRIPT_IS_EXITED then break end
if GFlingDirectionPart then
-- FlingAura has it's own anti fling
continue
end
if LocalPlayer ~= LocalPlayer.Character then
LocalCharacter = LocalPlayer.Character
if not LocalCharacter then
continue
end
local HumanoidRootPart = LocalCharacter:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart or not HumanoidRootPart:IsA("BasePart") then
LocalCharacter = nil
end
if HumanoidRootPart then
LastVelocity = HumanoidRootPart.Velocity
LastPosition = HumanoidRootPart.Position
end
end
local MyRootPart = nil
if LocalCharacter and IsCharacterAlive(LocalCharacter) then
MyRootPart = LocalCharacter:FindFirstChild("HumanoidRootPart")
if not MyRootPart or not MyRootPart:IsA("BasePart") then
continue
end
end
RunService.Heartbeat:Wait() -- After physics
if MyRootPart then
local Humanoid = LocalCharacter:FindFirstChildWhichIsA("Humanoid")
local Vel = MyRootPart.Velocity
if MyRootPart.RotVelocity.Magnitude > 100 then
MyRootPart.RotVelocity = MyRootPart.RotVelocity.Unit*100
end
if Humanoid and Humanoid:GetState() == Enum.HumanoidStateType.FallingDown then
if Humanoid:GetStateEnabled(Enum.HumanoidStateType.GettingUp) then
Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
else
Humanoid:ChangeState(Enum.HumanoidStateType.Running)
end
end
if Vel.Magnitude > 100 then
local DistMag = (LastVelocity-Vel).Magnitude
if DistMag > 110 then
-- Possibly flinged?
LastVelocity = LastVelocity:Lerp(Vector3.zero, 0.1)
MyRootPart.Velocity = LastVelocity
MyRootPart.CFrame = CFrame.new(LastPosition) * MyRootPart.CFrame.Rotation
if os.clock() > NextNotifyFling then
NextNotifyFling = os.clock()+2
Notify("\"AntiFling\" canceled attempted fling?")
end
else
LastVelocity = Vel
LastPosition = MyRootPart.Position
end
else
LastVelocity = Vel
LastPosition = MyRootPart.Position
end
end
end
end,
flingaura = function(Radius)
-- TODO: Camera focus is messed up with shift lock (Roblox bug :/)
local Radius = tonumber(Radius) or 10
local FLING_UNANCHORED_PARTS = false
local MyCharacter = LocalPlayer.Character
if not MyCharacter then
Notify("Local Character not found")
return
end
Notify(Sprintf("FlingAura enabled, Radius=%0.1f", Radius))
local Humanoid = MyCharacter:FindFirstChildWhichIsA("Humanoid")
if not Humanoid then
Notify("Local Humanoid not found")
return
end
local MyRootPart: BasePart = MyCharacter.PrimaryPart:: BasePart
if Humanoid.RigType == Enum.HumanoidRigType.R6 then
MyRootPart = (
MyCharacter:FindFirstChild("HumanoidRootPart") or
Humanoid.RootPart or
MyRootPart:WaitForChild("HumanoidRootPart", 0.1))
:: BasePart
end
if not MyRootPart then
Notify("Local HumanoidRootPart not found")
return
end
local LastVelocity = MyRootPart.Velocity
local LastRotVelocity = MyRootPart.RotVelocity
if GFlingDirectionPart then
LastVelocity = Vector3.zero
LastRotVelocity = Vector3.zero
end
local RadiusPart: Part = Instance.new("Part")
RadiusPart.Shape = Enum.PartType.Cylinder
RadiusPart.Size = Vector3.new(0.1, math.min(Radius*2, 2048), math.min(Radius*2, 2048))
RadiusPart.Anchored = true
RadiusPart.CanCollide = false
RadiusPart.CanQuery = false
RadiusPart.CanTouch = false
RadiusPart.Material = Enum.Material.ForceField
RadiusPart.Color = Color3.new(1, 0, 0)
RadiusPart.CastShadow = false
RadiusPart.CFrame = CFrame.new(MyRootPart.Position) * CFrame.Angles(0, 0, math.pi/2)
if Radius <= 0 then
RadiusPart.Transparency = 1
else
RadiusPart.Transparency = 0.5
RadiusPart.Parent = workspace
end
GFlingDirectionPart = RadiusPart
local NextDirectionTick = os.clock()
local CurrentRandomDirection = Vector3.new(0, 1, 0)
local OldHipHeight = Humanoid.HipHeight
local LastRootPartCFrame = MyRootPart.CFrame
local RenderStepCON = RunService.RenderStepped:Connect(function () -- RenderStepped runs after network
-- This fixes humanoid running/ jumping states
MyRootPart.Velocity = LastVelocity
end)
local AntiFlicker_PosY = 0
local AntiSleepTick = 0
while MyCharacter:IsDescendantOf(workspace) and GFlingDirectionPart == RadiusPart do
Heartbeat:Wait()
if SCRIPT_IS_EXITED then break end
if MyCurrentMountedObject then continue end
if GFlingDirectionPart ~= RadiusPart then
MyRootPart.Velocity = LastVelocity
MyRootPart.CFrame = LastRootPartCFrame
break
end
-- Prevent flinging ourselves!
local MagDist = (MyRootPart.Velocity-LastVelocity).Magnitude
if MagDist <= 90 then
-- We weren't "flinged" this frame
LastVelocity = MyRootPart.Velocity
LastRotVelocity = MyRootPart.RotVelocity
else
LastVelocity = LastVelocity:Lerp(Vector3.zero, 0.1)
end
if Humanoid:GetState() == Enum.HumanoidStateType.FallingDown then
if Humanoid:GetStateEnabled(Enum.HumanoidStateType.GettingUp) then
Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
else
Humanoid:ChangeState(Enum.HumanoidStateType.Running)
end
end
LastRootPartCFrame = MyRootPart.CFrame
if LastVelocity.Magnitude >= 500 then
LastVelocity = LastVelocity.Unit*500
end
if LastRotVelocity.Magnitude >= 200 then
LastRotVelocity = LastRotVelocity.Unit*200
end
local MyPosition = MyRootPart.Position
local NearestPlayer = GetNearestPlayerFromPosition(MyPosition, 1+(Radius))
local DoingRandomDirection = not NearestPlayer
if LastVelocity.Magnitude > 5 then
CurrentRandomDirection = LastVelocity.Unit
end
local Direction = CurrentRandomDirection
if not DoingRandomDirection then
local Dir = (NearestPlayer.Character:GetPivot().Position-MyPosition).Unit
Direction = (Dir+Vector3.new(0, 0.25, 0)).Unit
end
local NearestUnanchoredPart = nil
if not NearestPlayer and FLING_UNANCHORED_PARTS then
local CheckRadius = math.min(Radius, 400)
local CheckerParams = OverlapParams.new()
CheckerParams.MaxParts = math.huge
CheckerParams.CollisionGroup = MyRootPart.CollisionGroup
CheckerParams.RespectCanCollide = true
CheckerParams.FilterType = Enum.RaycastFilterType.Blacklist
CheckerParams.FilterDescendantsInstances = {MyCharacter}
local PartChecker = Instance.new("Part")
PartChecker.Position = MyPosition
PartChecker.Size = Vector3.one*CheckRadius*2
local Parts = workspace:GetPartsInPart(PartChecker, CheckerParams)
local NDist = math.huge
for _, Part: BasePart in pairs(Parts) do
if Part:IsGrounded() then continue end
local Dist = (MyPosition-Part.Position).Magnitude
if Dist < NDist or math.random(1, 90) == 1 then
NearestUnanchoredPart = Part
NDist = Dist
end
end
if NearestUnanchoredPart then
DoingRandomDirection = false
end
end
if NextDirectionTick < os.clock() then
CurrentRandomDirection = RNG:NextUnitVector()
NextDirectionTick = os.clock()+0.2
end
local PositionOffset = Humanoid.MoveDirection*0.5
if LastVelocity.Magnitude > 5 then
PositionOffset += LastVelocity.Unit*Vector3.new(0.5, 1, 0.5)
end
local RandomAngle = CFrame.Angles(0, 0, 0)
if DoingRandomDirection then
RadiusPart.Color = Color3.new(1, 0, 0)
PositionOffset = PositionOffset
elseif Radius >= 0.5 then
if NearestUnanchoredPart then
RadiusPart.Color = Color3.new(1, 1, 0)
NearestUnanchoredPart.AssemblyLinearVelocity = -FlingVelocity
local GoDir = -(MyPosition-NearestUnanchoredPart.Position)
PositionOffset = GoDir + (RNG:NextUnitVector()*Vector3.new(1, 0, 1)*2.5)
end
if NearestPlayer and NearestPlayer.Character:FindFirstChild("HumanoidRootPart") then
RadiusPart.Color = Color3.new(0, 1, 0)
local NCharacter = NearestPlayer.Character
local NearestPlayerRootPart = NCharacter:FindFirstChild("HumanoidRootPart")
local NPlrVelocity = NearestPlayerRootPart.Velocity
local Humanoid = NCharacter:FindFirstChildWhichIsA("Humanoid")
if Humanoid then
-- Adjusting the velocity to MoveDirection improves latency
local MoveDir = Humanoid.MoveDirection
if MoveDir.Magnitude > 0.1 then
MoveDir = MoveDir.Unit
NPlrVelocity = (MoveDir * (NPlrVelocity*Vector3.new(1, 0, 1)).Magnitude) + Vector3.new(0, NPlrVelocity.Y, 0)
end
end
if NPlrVelocity.Magnitude >= 100 then
-- Don't try to predict people going super speed...
NPlrVelocity = Vector3.zero
end
local PredictStrength = 0.4 + (math.sin(os.clock()*math.pi*3)+1)*0.1
-- Try to predict where the player is going
local PredictPosition = NearestPlayerRootPart.Position+((NPlrVelocity*PredictStrength)*Vector3.new(1, 0.25, 1))
local PlayerDirection = -(MyPosition-PredictPosition)
PositionOffset = PlayerDirection + (RNG:NextUnitVector()*Vector3.new(1, 0, 1)*2.5)
if UserSettings():GetService("UserGameSettings").RotationType ~= Enum.RotationType.CameraRelative then
-- Intense camera flickering happens when shift lock is on (Roblox issue :/)
RandomAngle = CFrame.Angles(0, math.random()*math.pi*2, 0)
end
end
end
if LastVelocity.Magnitude <= 4 then
-- This prevents flickering on the server when standing still.
-- Although it still might flicker when Enum.RotationType.CameraRelative (aka ShiftLock/Firstperson) is active...
PositionOffset += Vector3.new(0, AntiFlicker_PosY*0.003, 0)
AntiFlicker_PosY += 1
if AntiFlicker_PosY > 10 then
AntiFlicker_PosY = -10
end
end
Humanoid.CameraOffset = -(MyRootPart.CFrame * RandomAngle):ToObjectSpace(CFrame.new(MyPosition+PositionOffset)).Position
if RadiusPart then
RadiusPart.CFrame = CFrame.new(MyRootPart.Position+Vector3.new(0, -MyRootPart.Size.Y*0.5, 0)) * CFrame.Angles(0, 0, math.pi/2)
end
MyRootPart.CFrame = (MyRootPart.CFrame + PositionOffset) * RandomAngle
MyRootPart.Velocity = (Direction*28377)+LastVelocity + RNG:NextUnitVector()*2
MyRootPart.RotVelocity = Vector3.zero
Stepped:Wait()
MyRootPart.Velocity = LastVelocity
MyRootPart.RotVelocity = LastRotVelocity
AntiSleepTick += 1
if AntiSleepTick > 1 then
AntiSleepTick = 0
end
-- This fixes a bug with NextGenerationReplication enabled
MyRootPart.CFrame = LastRootPartCFrame + Vector3.new(0, if AntiSleepTick == 0 then 0.05 else -0.05, 0)
end
if GFlingDirectionPart == RadiusPart then
GFlingDirectionPart = nil
end
RadiusPart:Destroy()
RenderStepCON:Disconnect()
Humanoid.CameraOffset = Vector3.zero
end,
exit = function()
-- Completely remove the gui and all script connections
if MyCurrentMountedObject then
MyCurrentMountedObject.ActuallyStopped = true
end
UnmountWithCharacterModel()
if MyCurrentMountedObject then
MyCurrentMountedObject.ActuallyStopped = true
MyCurrentMountedObject:Destroy()
MyCurrentMountedObject = nil
end
if GFlingDirectionPart then
GFlingDirectionPart:Destroy()
GFlingDirectionPart = nil
end
MainScreenGui:Destroy()
for _, Connection in pairs(SCRIPT_CONNECTIONS) do
if Connection.Connected then
Connection:Disconnect()
end
end
table.clear(SCRIPT_CONNECTIONS)
table.clear(CommandFunctions)
BM_getgenv()[ScriptIdentifier] = nil
end,
}
CommandFunctions.flingloop = CommandFunctions.loopfling
CommandFunctions.repeatfling = CommandFunctions.loopfling
CommandFunctions.flingrepeat = CommandFunctions.loopfling
function FixupArgs(Args: {string}): {string}
local NewArgs = {}
for i=1, #Args do
if Args[i] == "" then continue end
local ArgStr = Args[i]
while string.sub(ArgStr, 1, 1) == "\n" or string.sub(ArgStr, 1, 1) == "\r" do
ArgStr = string.sub(ArgStr, 2)
end
if ArgStr ~= "" then
table.insert(NewArgs, ArgStr)
end
end
return NewArgs
end
function ExecuteCommand(CommandString)
if CommandString == "" then return end
local CommandArgs = string.split(CommandString, " ")
CommandArgs = FixupArgs(CommandArgs)
local CommandName = CommandArgs[1] or ""
local CommandNameLower = string.lower(CommandName)
if CommandName == "" then return end
Notify(">" .. table.concat(CommandArgs, " "))
local F_Command = CommandFunctions[CommandNameLower]
if F_Command then
local COPY_CommandArgs = table.clone(CommandArgs)
table.remove(COPY_CommandArgs, 1)
F_Command(table.unpack(COPY_CommandArgs))
else
Notify("Command \"" .. CommandName .. "\" doesn't exist, type cmds for help!")
end
end
CommandLineTextBox = Instance.new("TextBox")
CommandLineTextBox.Size = UDim2.new(0, 400, 0, 30)
CommandLineTextBox.AutomaticSize = Enum.AutomaticSize.XY
CommandLineTextBox.BackgroundColor3 = Color3.new(0.25, 0.25, 0.25)
CommandLineTextBox.BackgroundTransparency = 0.4
CommandLineTextBox.BorderSizePixel = 4
CommandLineTextBox.BorderColor3 = Color3.new(0.75, 0.75, 0.75)
CommandLineTextBox.TextColor3 = Color3.new(1, 1, 1)
CommandLineTextBox.PlaceholderColor3 = Color3.new(0.75, 0.75, 0.75)
CommandLineTextBox.PlaceholderText = "[BodyMounter]"
if KEYBIND_FocusCommandBar then
CommandLineTextBox.PlaceholderText ..= " Press \"" .. KEYBIND_FocusCommandBar.Name .. "\" to focus."
end
CommandLineTextBox.Text = ""
CommandLineTextBox.ClearTextOnFocus = false
CommandLineTextBox.AnchorPoint = Vector2.new(0, 1)
CommandLineTextBox.Position = UDim2.new(0, 20, 1, -20) -- Bottom left
CommandLineTextBox.TextXAlignment = Enum.TextXAlignment.Left
CommandLineTextBox.TextSize = 18
local UIPadding = Instance.new("UIPadding")
UIPadding.PaddingLeft = UDim.new(0, 4)
UIPadding.PaddingRight = UDim.new(0, 4)
UIPadding.Parent = CommandLineTextBox
local UISizeConstraint = Instance.new("UISizeConstraint")
UISizeConstraint.MaxSize = Vector2.new(600, 100)
UISizeConstraint.Parent = CommandLineTextBox
CommandLineTextBox.Parent = MainScreenGui
local TextFocusedConnection = CommandLineTextBox.Focused:Connect(function ()
CMDBar_IsFocused = true
for _, TextUI in pairs(NotificationUIs) do
TextUI.Visible = true
end
if HideCommandBarUntilFocus then
CommandLineTextBox.Visible = true
end
CommandLineTextBox.BorderColor3 = Color3.new(0.2, 1, 1)
end)
local TextFocusLostConnection = CommandLineTextBox.FocusLost:Connect(function (WasEnter)
CMDBar_IsFocused = false
for _, TextUI in pairs(NotificationUIs) do
TextUI.Visible = false
end
if HideCommandBarUntilFocus then
CommandLineTextBox.Visible = false
end
CommandLineTextBox.BorderColor3 = Color3.new(0.75, 0.75, 0.75)
if WasEnter then
task.spawn(ExecuteCommand, CommandLineTextBox.Text)
CommandLineTextBox.Text = ""
end
end)
local InputBeganConnection = UserInputService.InputBegan:Connect(function (InputObject, Prs)
if Prs then return end
if InputObject.KeyCode == KEYBIND_FocusCommandBar then
task.wait()
CommandLineTextBox:CaptureFocus()
end
if InputObject.KeyCode == KEYBIND_ExecuteStopCommand then
ExecuteCommand("stop")
end
end)
table.insert(SCRIPT_CONNECTIONS, TextFocusedConnection)
table.insert(SCRIPT_CONNECTIONS, TextFocusLostConnection)
table.insert(SCRIPT_CONNECTIONS, InputBeganConnection)
描述
This is a command based script (similar to IY). This script is great for trolling streamers or flinging an entire server! **WORKS WITH R6 & R15!** Example commands: - fling all **Will fling everyone in the server if collisions are enabled!** - loopfling all **Will fling everyone continuously until the 'stop' command is typed** - loopfling Hyper **Will continuously fling anyone with the name 'Hyper' until the 'stop' command is typed** - flingaura 20 **Will fling anyone within a 20 stud radius of your character** - headsit Hyper **Will sit on the head of the first player named 'Hyper'** - backsit @Hyper **Will sit on the back of the first player named 'Hyper'; Ignores display names** I made this script a long while ago for private use. But now since other people have discovered the "mounting" method, I have decided to fix up the script and release it. (This script does not use raknet. I have no idea if other scripts use raknet or not... I haven't exploited since Synapse left 💀) Unedited video showing the playerwalk + fling command: [https://youtu.be/KB1lfVh-aMQ](https://youtu.be/KB1lfVh-aMQ) (ignore the audio...) List of commands ***(More details for each command is included in the script!)***: - fling - loopfling - flingaura - - headsit, facesit, backsit, armsit, handsit. rootsit - standon - orbit, sphereorbit - floor - fan - merge - playerwalk - antifling \*BUGGY, DON'T USE!\* - - stop - exit
評論 (0)
- 成為第一個評論的人。
常見問題
- 如何使用 BodyMounter - Fling players/ Mount players/ Fling aura + more trolling commands [Open Source] 腳本?
- 複製上方的腳本程式碼,開啟你的 Roblox 執行器,貼上程式碼,然後在遊戲中點擊執行。腳本執行後功能會立即啟用。
- BodyMounter - Fling players/ Mount players/ Fling aura + more trolling commands [Open Source] 腳本免費嗎?
- 是的。此腳本免費複製和使用。如果使用金鑰系統,請透過「獲取金鑰」連結免費解鎖。
- 使用 BodyMounter - Fling players/ Mount players/ Fling aura + more trolling commands [Open Source] 腳本安全嗎?
- 完整原始碼顯示在此頁面上,讓你在執行前準確了解其功能。請始終使用可信的執行器,並記住使用腳本違反 Roblox 服務條款,風險自負。
- 哪個執行器相容 BodyMounter - Fling players/ Mount players/ Fling aura + more trolling commands [Open Source]?
- 此腳本相容大多數熱門 Roblox 執行器。查看我們的執行器頁面,為你的裝置找到可信的免費或付費執行器。