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)
Code du script
--[[
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)
Description
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
Commentaires (0)
Connectez-vous pour participer à la conversation
- Soyez le premier à commenter.
Questions fréquentes
- Comment utiliser le script BodyMounter - Fling players/ Mount players/ Fling aura + more trolling commands [Open Source] ?
- Copiez le code ci-dessus, ouvrez votre exécuteur Roblox, collez le code et appuyez sur exécuter pendant que vous êtes dans le jeu. Les fonctionnalités s'activent instantanément une fois le script lancé.
- Le script BodyMounter - Fling players/ Mount players/ Fling aura + more trolling commands [Open Source] est-il gratuit ?
- Oui. Ce script est gratuit à copier et utiliser. S'il utilise un système de clé, suivez le lien « Obtenir la clé » pour le débloquer gratuitement.
- Le script BodyMounter - Fling players/ Mount players/ Fling aura + more trolling commands [Open Source] est-il sûr à utiliser ?
- Le code source complet est affiché sur cette page pour que vous puissiez lire exactement ce qu'il fait avant de l'exécuter. Utilisez toujours un exécuteur de confiance, et n'oubliez pas que l'utilisation de scripts est contraire aux conditions d'utilisation de Roblox — utilisez-les à vos propres risques.
- Quel exécuteur fonctionne avec BodyMounter - Fling players/ Mount players/ Fling aura + more trolling commands [Open Source] ?
- Ce script fonctionne avec la plupart des exécuteurs Roblox populaires. Consultez notre page d'exécuteurs pour trouver un exécuteur gratuit ou payant fiable pour votre appareil.