Run it
Copy the script and paste it into your executor.
options.Hands =
options.RightHand =
options.LeftHand =
Players = :();
Lighting = :();
ReplicatedStorage = :();
ScriptContext = :();
VRService = :();
VirtualUser = :();
RunService = :();
HttpService = :();
HapticService = :();
UserInputService = :();
CurrentCamera = .CurrentCamera
sethiddenprop = (sethiddenproperty set_hidden_property sethiddenprop set_hidden_prop);
setsimulationrad = setsimulationradius set_simulation_radius (Radius) (PlayerInstance, , Radius)
LocalPlayer = Players.LocalPlayer;
Mouse = LocalPlayer:()
Character = LocalPlayer.Character LocalPlayer.CharacterAdded:();
hum = Character:();
root = hum.RootPart;
startCF = root.CFrame
VRReady = UserInputService.VREnabled;
R15 = hum.RigType == .HumanoidRigType.R15
oldCF = Character.HumanoidRootPart.CFrame
i,v (Character:())
_, connection ((v.ChildAdded))
connection:()
i,tool (LocalPlayer.Backpack:())
tool:() tool.Parent = Character
OldNamecall
OldNamecall = (, , (Self, ...)
args = {...}
() ==
(Self, (args))
)
().Physics.AllowSleep =
().Physics.PhysicsEnvironmentalThrottle = .EnviromentalPhysicsThrottle.Disabled
LocalPlayer.OnTeleport:((State)
State == .TeleportState.InProgress
.()
)
(module)
((module) == , )
path =
module = (:(path.. module.. ))()
module
Utils = ()
(part0, part1, c0, c1, name)
part1.Transparency = ;
part1.Massless =
motor = .(, part1); motor.Name = name; motor.Part0 = part0; motor.Part1 = part1; motor.C0 = c0; motor.C1 = c1;
motor, motor.C0
(a, b, t)
a + (b - a) * t
(originCF, targetPos, l1, l2)
localized = originCF:(targetPos)
localizedUnit = localized.unit
l3 = localized.magnitude
axis = .(, , -):(localizedUnit)
angle = .(-localizedUnit.Z)
planeCF = originCF * .(axis, angle)
l3 < .(l2, l1) - .(l2, l1)
planeCF * .(, , .(l2, l1) - .(l2, l1) - l3), -.pi/, .pi
l3 > l1 + l2
planeCF, .pi/,
a1 = -.((-(l2 * l2) + (l1 * l1) + (l3 * l3)) / ( * l1 * l3))
a2 = .(((l2 * l2) - (l1 * l1) + (l3 * l3)) / ( * l2 * l3))
planeCF, a1 + .pi/, a2 - a1
(Limb)
_, Motor , Character:()
Motor:() Motor.Part1 == Limb
Motor
(a, b, pos)
Motor = (a); Motor Motor:()
RunService.Stepped:(()
a.CFrame = pos b.CFrame * pos b.CFrame
)
(a, b, pos, rot, options)
(options) ~=
options = { = , resp = , length = , reactiontorque = , reactionforce = }
a1
att0, att1
att0 = a:() .(, a.Handle) .(, a)
att1 = .(, b);
att1.Position = pos .(,,); att1.Orientation = rot .(,,);
Handle = a:() a.Handle a;
Handle.Massless = ;
Handle.CanCollide = ;
a:() Handle.AccessoryWeld:() Handle:():()
Motor = (a); Motor Motor:()
options.type ==
att0.Position = rot
al = .(, Handle);
al.Attachment0 = att0; al.Attachment1 = att1;
al.Length = options.length
options.type ==
att0.Position = rot
al = .(, Handle)
al.Attachment0 = att0
al.Attachment1 = att1
al.Restitution =
al.LimitsEnabled =
al.MaxFrictionTorque =
al.TwistLimitsEnabled =
al.UpperAngle =
al.TwistLowerAngle =
al.TwistUpperAngle = -
==
att0.Position = rot
al = .(, Handle)
al.Attachment0 = att0
al.Attachment1 = att1
al = .(, Handle);
al.Attachment0 = att0; al.Attachment1 = att1;
al.RigidityEnabled = ;
al.ReactionForceEnabled = options.reactionforce ;
al.ApplyAtCenterOfMass = ;
al.MaxForce = ;
al.MaxVelocity = .huge/;
al.Responsiveness = options.resp ;
ao = .(, Handle);
ao.Attachment0 = att0; ao.Attachment1 = att1;
ao.RigidityEnabled = ;
ao.ReactionTorqueEnabled = options.reactiontorque ;
ao.PrimaryAxisOnly = ;
ao.MaxTorque = ;
ao.MaxAngularVelocity = .huge/;
ao.Responsiveness = ;
att1, a1
(hand, pospart, rotpart, pos, rot)
Motor = (hand); Motor Motor:()
handatt = .(, hand)
posatt = .(, pospart)
posatt.Position = pos .(,,)
rotatt = .(, rotpart)
rotatt.Orientation = rot .(,,)
al = .(, hand);
al.RigidityEnabled = ;
al.ReactionForceEnabled = ;
al.ApplyAtCenterOfMass = ;
al.MaxForce = ;
al.MaxVelocity = .huge/;
al.Responsiveness = resp ;
ao = .(, hand);
ao.RigidityEnabled = ;
ao.ReactionTorqueEnabled = ;
ao.PrimaryAxisOnly = ;
ao.MaxTorque = ;
ao.MaxAngularVelocity = .huge/;
ao.Responsiveness = ;
al.Attachment0 = handatt
al.Attachment1 = posatt
ao.Attachment0 = handatt
ao.Attachment1 = rotatt
(v, grabAtt, drop)
v:() v.Anchored ==
_, x , v:()
x:() x:() x:() x:() x:() x:() x:() x:() x:() x:()
x:()
drop
Utils:(grabAtt.Parent, v, v)
grabAtt.WorldPosition = v.Position
att0 = .(, v)
AlignPosition = .(, v)
AlignPosition.ReactionForceEnabled =
AlignPosition.MaxForce =
AlignPosition.MaxVelocity = .huge
AlignPosition.Responsiveness =
AlignPosition.RigidityEnabled =
AlignPosition.Attachment0 = att0
AlignPosition.Attachment1 = grabAtt
vrparts, rhand, lhand, header, ToolTrack, HeadTrack, ratt, latt
vrparts = .(, ); vrparts.Name =
rhand = .(, vrparts); rhand.Anchored = ; rhand.CanCollide = ; rhand.Transparency = ;
ratt = .(, rhand);
lhand = .(, vrparts); lhand.Anchored = ; lhand.CanCollide = ; lhand.Transparency = ;
latt = .(, lhand);
header = .(, vrparts); header.Anchored = ; header.CanCollide = ; header.Transparency = ;
ToolTrack = .(, vrparts); ToolTrack.Anchored = ; ToolTrack.CanCollide = ; ToolTrack.Transparency = ;
HeadTrack = .(, vrparts); HeadTrack.Anchored = ; HeadTrack.CanCollide = ; HeadTrack.Transparency = ;
VRReady
VRService.UserCFrameChanged:(()
LeftHandCFrame = VRService:(.UserCFrame.LeftHand)
RightHandCFrame = VRService:(.UserCFrame.RightHand)
HeadCFrame = VRService:(.UserCFrame.Head)
rhand.CFrame = (CurrentCamera.CFrame*.(RightHandCFrame.p*options.HeadScale))*.(RightHandCFrame:())*.(.(), .(), .())
lhand.CFrame = (CurrentCamera.CFrame*.(LeftHandCFrame.p*options.HeadScale))*.(LeftHandCFrame:())*.(.(), .(), .())
header.CFrame = (CurrentCamera.CFrame*.(HeadCFrame.p*options.HeadScale)) *.(HeadCFrame:())
ToolTrack.CFrame = (CurrentCamera.CFrame*.(RightHandCFrame.p*options.HeadScale))*.(RightHandCFrame:())*.(.(), .(), .()) * .(,,)
)
RunService.RenderStepped:(()
header.CFrame = CurrentCamera.CFrame
)
options.BubbleChat
Players.PlayerAdded:((User)
User.Chatted:((Chat)
:():(User.Character.Head,Chat,.ChatColor.White)
)
)
i,v (Players:())
v.Chatted:((Chat)
:():(v.Character.Head,Chat,.ChatColor.White)
)
VRReady
VRService:();
CurrentCamera.CameraType = ;
CurrentCamera.HeadScale = options.HeadScale;
CurrentCamera.HeadLocked =
:():(, );
:():(, );
hum.PlatformStand =
()
torso = R15 Character[] Character[]
rightarm = R15 Character[] Character[]
leftarm = R15 Character[] Character[]
rightleg = R15 Character[] Character:()
leftleg = R15 Character[] Character:()
motor = Character:() Character.UpperTorso:() (root) motor motor:()
RUA, RLA, LUA, LLA, RH, LH = .(, Character), .(, Character), .(, Character), .(, Character), .(, Character), .(, Character)
RUA.Name = ; RUA.Size = .(, , ); RUA.CanCollide = ;
RLA.Name = ; RLA.Size = .(, , ); RLA.CanCollide = ;
LUA.Name = ; LUA.Size = .(, , ); LUA.CanCollide = ;
LLA.Name = ; LLA.Size = .(, , ); RUA.CanCollide = ;
RH.Name = ; RH.Size = .(,,); RH.CanCollide = ;
LH.Name = ; LH.Size = .(,,); LH.CanCollide = ;
rightShoulder, RSHOULDER_C0_CACHE = (torso, RUA, .(,,), .(,,), );
rightElbow, RELBOW_C0_CACHE = (RUA, RLA, .(,-,), .(,,), );
rightWrist = (RLA, RH, .(,-,), .(,,), );
leftShoulder, LSHOULDER_C0_CACHE = (torso, LUA, .(-,,), .(,,), );
leftElbow, LELBOW_C0_CACHE = (LUA, LLA, .(,-,), .(,,), );
leftWrist = (LLA, LH, .(,-,), .(,,), );
RUPPER_LENGTH = .(rightShoulder.C1.Y) + .(rightElbow.C0.Y)
RLOWER_LENGTH = .(rightElbow.C1.Y) + .(rightWrist.C0.Y) + .(rightWrist.C1.Y)
LUPPER_LENGTH = .(leftShoulder.C1.Y) + .(leftElbow.C0.Y)
LLOWER_LENGTH = .(leftElbow.C1.Y) + .(leftWrist.C0.Y) + .(leftWrist.C1.Y)
fakerightarm, fakeleftarm, RHA, LHA, RgrabWeld, LgrabWeld, RgrabAtt, LgrabAtt
fakeleftarm, fakerightarm = .(, Character), .(, Character)
fakeleftarm.CFrame = lhand.CFrame
fakeleftarm.Name =
fakeleftarm.Size = .(,,)
fakeleftarm.Transparency = options.FakeHandsTransparency
fakerightarm.CFrame = rhand.CFrame
fakerightarm.Name =
fakerightarm.Size = .(,,)
fakerightarm.Transparency = options.FakeHandsTransparency
nocol = Utils:(fakeleftarm, fakerightarm)
Rap = .(, fakerightarm);
Rap.RigidityEnabled = ; Rap.ReactionForceEnabled = ; Rap.ApplyAtCenterOfMass = ; Rap.MaxForce = ; Rap.MaxVelocity = .huge/; Rap.Responsiveness = ;
Rao = .(, fakerightarm);
Rao.RigidityEnabled = ; Rao.ReactionTorqueEnabled = ; Rao.PrimaryAxisOnly = ; Rao.MaxTorque = ; Rao.MaxAngularVelocity = .huge/; Rao.Responsiveness = ;
Lap = .(, fakeleftarm);
Lap.RigidityEnabled = ; Lap.ReactionForceEnabled = ; Lap.ApplyAtCenterOfMass = ; Lap.MaxForce = ; Lap.MaxVelocity = .huge/; Lap.Responsiveness = ;
Lao = .(, fakeleftarm);
Lao.RigidityEnabled = ; Lao.ReactionTorqueEnabled = ; Lao.PrimaryAxisOnly = ; Lao.MaxTorque = ; Lao.MaxAngularVelocity = .huge/; Lao.Responsiveness = ;
Ratt = .(, fakerightarm)
RHA = .(, root)
Latt = .(, fakeleftarm)
LHA = .(, root)
Rap.Attachment0 = Ratt; Rap.Attachment1 = RHA
Rao.Attachment0 = Ratt; Rao.Attachment1 = RHA
Lap.Attachment0 = Latt; Lap.Attachment1 = LHA
Lao.Attachment0 = Latt; Lao.Attachment1 = LHA
RgrabWeld = .(, fakerightarm); RgrabWeld.Part0 = fakerightarm
LgrabWeld = .(, fakeleftarm); LgrabWeld.Part0 = fakeleftarm
RgrabAtt = .(, fakerightarm)
LgrabAtt = .(, fakeleftarm)
fakerightarm.Touched:((part)
part.CanCollide == part:(Character) part.Parent ~= vrparts
HapticService:(.UserInputType.Gamepad1, .VibrationMotor.RightHand, (fakerightarm.Velocity - part.Velocity).Magnitude / )
()
HapticService:(.UserInputType.Gamepad1, .VibrationMotor.RightHand, )
)
fakeleftarm.Touched:((part)
part.CanCollide == part:(Character) part.Parent ~= vrparts
HapticService:(.UserInputType.Gamepad1, .VibrationMotor.LeftHand, (fakeleftarm.Velocity - part.Velocity).Magnitude / )
()
HapticService:(.UserInputType.Gamepad1, .VibrationMotor.LeftHand, )
)
_,part (Character:())
part:()
part ~= root part ~= fakeleftarm part ~= fakerightarm
bv = .()
bv.Velocity = .(,,)
bv.MaxForce = .(.huge,.huge,.huge)
bv.P =
bv.Parent = part
RunService.Heartbeat:(()
part.AssemblyLinearVelocity = .(,,)
)
i,v (Character:())
v:()
Utils:(part, v)
part.Name:() part.Name:() part.Name:() part.Name:()
part.Transparency =
RunService.Stepped:(()
part.CanCollide =
)
part == RH part == LH part == RLA part == LLA part == RUA part == LUA
part.Transparency =
part.Parent:()
part.Parent.Name == options.RightHand part.Parent.Name == options.LeftHand
part.Transparency =
part.Transparency =
part.Parent:()
part.Parent.Parent = LocalPlayer.Backpack
part.Transparency =
part == fakeleftarm part == fakerightarm
part.Transparency = options.FakeHandsTransparency
part.CustomPhysicalProperties = PhysicalProperties.(, , -, ,)
part.Massless =
part.CustomPhysicalProperties = PhysicalProperties.(, , , ,)
:().Stepped:(()
part.CanCollide =
)
part == torso part.Name ==
:().Stepped:(()
part.CanCollide =
)
part.Name == part.Name:()
part:()
CurrentCamera.CFrame = .((root.Position - VRService:(.UserCFrame.Head).Position * options.HeadScale))
()
(torso, header, .(,-,))
R15
(Character[],RUA, .(,,), .(,,))
(Character[],RUA, .(,-,), .(,,))
(Character[],RLA, .(,,), .(,,))
(Character[],RLA, .(,-,), .(,,))
(Character[],LUA, .(,,), .(,,))
(Character[],LUA, .(,-,), .(,,))
(Character[],LLA, .(,,), .(,,))
(Character[],LLA, .(,-,), .(,,))
(Character[], RH, fakerightarm, .(,-,), .(,-,))
(Character[], LH, fakeleftarm, .(,-,), .(,-,))
(rightleg,RUA, .(,,), .(,,))
(rightarm,RLA, .(,,), .(,-,))
(leftleg,LUA, .(,,), .(,,))
(leftarm,LLA, .(,,), .(,-,))
options.Hands
(Character[options.RightHand], RH)
(Character[options.LeftHand], LH)
fakeleftarm.CFrame = root.CFrame
fakerightarm.CFrame = root.CFrame
bg = .(, root); bg.MaxTorque = .(,,); bg.P =
Twist =
Height =
SelectionBox = .(, )
SelectedPart
LgrabPart
RgrabPart
Lholding
Rholding
RunService.Heartbeat:(()
RshoulderCFrame = torso.CFrame * RSHOULDER_C0_CACHE
RplaneCF, RshoulderAngle, RelbowAngle = (RshoulderCFrame, fakerightarm.Position, RUPPER_LENGTH, RLOWER_LENGTH)
LshoulderCFrame = torso.CFrame * LSHOULDER_C0_CACHE
LplaneCF, LshoulderAngle, LelbowAngle = (LshoulderCFrame, fakeleftarm.Position, LUPPER_LENGTH, LLOWER_LENGTH)
rightShoulder.C0 = torso.CFrame:(RplaneCF) * .(RshoulderAngle, , )
rightElbow.C0 = RELBOW_C0_CACHE * .(RelbowAngle, , )
leftShoulder.C0 = torso.CFrame:(LplaneCF) * .(LshoulderAngle, , )
leftElbow.C0 = LELBOW_C0_CACHE * .(LelbowAngle, , )
)
RunService.Stepped:(()
rightShoulder.Transform = .()
rightElbow.Transform = .()
rightWrist.Transform = .()
leftShoulder.Transform = .()
leftElbow.Transform = .()
leftWrist.Transform = .()
)
RunService.RenderStepped:(()
RHA.WorldCFrame = rhand.CFrame
LHA.WorldCFrame = lhand.CFrame
hum.PlatformStand =
.Gravity =
root.Position.Y <= -
root.CFrame = oldCF
VRReady
HeadCF = VRService:(.UserCFrame.Head);
u1 = .((root.Position - HeadCF.Position * options.HeadScale) + .(,,)) * .(, .(Twist), );
CurrentCamera.CFrame = (u1 * .(, , ) * .(.(HeadCF.p * options.HeadScale):()))
_,hat (Character:())
hat:() hat:() hat.Handle.Transparency =
selectRay = Ray.(rhand.Position, -rhand.CFrame.upVector.Unit * options.PointerRange)
hit, position, normal = Workspace:(selectRay, {vrparts, Character})
hit (hit:() hit:())
SelectionBox.Adornee = hit
SelectedPart = hit
SelectionBox.Adornee =
RgrabRay = Ray.(rhand.Position, -rhand.CFrame.upVector.Unit * )
Rpart, Rposition, Rnormal = Workspace:(RgrabRay, {vrparts, Character})
LgrabRay = Ray.(lhand.Position, -lhand.CFrame.upVector.Unit * )
Lpart, Rposition, Rnormal = Workspace:(LgrabRay, {vrparts, Character})
Rpart RgrabPart = Rpart RgrabPart =
Lpart LgrabPart = Lpart LgrabPart =
CurrentCamera.CameraType =
)
root:():((pos)
root.Velocity = .(,,)
fakeleftarm.Velocity = .(,,)
fakerightarm.Velocity = .(,,)
root.Anchored =
RgrabWeld.Part1 =
LgrabWeld.Part1 =
torso.CFrame = root.CFrame
fakeleftarm.CFrame = root.CFrame
fakerightarm.CFrame = root.CFrame
()
root.Anchored =
i = ,
root.Velocity = .(,,)
fakeleftarm.Velocity = .(,,)
fakerightarm.Velocity = .(,,)
)
hum.Died:(()
#Players:() <=
Players.LocalPlayer:()
()
:():(.PlaceId, LocalPlayer)
:():(.PlaceId, .JobId, LocalPlayer)
)
toolrot = .(,,)
(tool)
tool:() tool:() tool:()
realhandle = tool:()
realhandle.Massless =
RunService.Heartbeat:(()
realhandle.Velocity = .(,,)
)
tag = .(, tool); tag.Name =
R15
realhandle.Name =
bv = .(, realhandle)
bv.Velocity = .(,,); bv.MaxForce = .(.huge,.huge,.huge); bv.P = ; bv.Name =
fakehandle = realhandle:(); fakehandle.Parent = tool; fakehandle.Name =
fakehandle.Transparency =
RunService.Stepped:(()
realhandle.CanCollide =
realhandle.CFrame = fakehandle.CFrame
)
fakehandle = realhandle:(); fakehandle.Parent = tool; fakehandle.Name = ; fakehandle.Transparency = ; fakehandle.CanCollide =
fakegrip = .(, rhand); fakegrip.C0 = .(, -, , , , -, , , , , -, -); fakegrip.C1 = tool.Grip; fakegrip.Part1 = fakehandle; fakegrip.Part0 = ToolTrack
toolAtt = (realhandle, ToolTrack, .(), .(), {reactiontorque = , resp = })
toolAtt.WorldCFrame = fakehandle.CFrame
RunService.Stepped:(()
realhandle.CanCollide =
)
()
tool.Parent = LocalPlayer.Backpack
R15 rightarm:() rightarm.RightGrip:()
i,tool (Character:())
.(doTool, tool)
Character.ChildAdded:(doTool)
Keyboard = :()[]; Keyboard.Parent =
Preview = Keyboard.Preview.Display.Input
KeyboardActive =
Caps =
_,key (Keyboard:())
key.Name ==
display = key:();
display display:()
display.Key.TextScaled =
key.Touched:((part)
KeyboardActive
part == leftarm part == rightarm
key.Name:()
Caps
display:()
Preview.Text = Preview.Text.. display.Cap.Text
Preview.Text = Preview.Text.. display.Key.Text:()
Preview.Text = Preview.Text.. display.Key.Text:()
key.Name ==
Preview.Text = Preview.Text..
key.Name ==
Preview.Text ~=
Players:(Preview.Text)
ReplicatedStorage:():():(Preview.Text,)
Preview.Text =
key.Name ==
Preview.Text = Preview.Text:(, #Preview.Text-)
key.Name ==
Preview.Text =
key.Name ==
Caps = Caps
key.Material = Caps
i,v (Keyboard:())
v.Name:()
v.Display.Key.Text = Caps v.Display.Key.Text:() v.Display.Key.Text:()
key.Name ==
KeyboardActive =
)
()
(root.Position - Keyboard.PrimaryPart.Position).Magnitude >
KeyboardActive =
KeyboardActive
Keyboard.Parent =
Keyboard:(Keyboard.PrimaryPart.CFrame:(.(Keyboard.PrimaryPart.Position, header.Position) * .(,.(),), ))
Keyboard.Parent = ReplicatedStorage
RunService.RenderStepped:(handleKeyboard)
turnDB =
keyboardDB =
UserInputService.InputChanged:((key)
key.KeyCode == .KeyCode.Thumbstick2
key.Position.Y >
Height = Height +
key.Position.Y < -
Height = Height -
key.Position.X > turnDB
turnDB =
Twist = Twist - options.TurnAngle
(options.TurnDelay)
turnDB =
key.Position.X < - turnDB
turnDB =
Twist = Twist + options.TurnAngle
(options.TurnDelay)
turnDB =
)
UserInputService.InputChanged:((key)
key.KeyCode == .KeyCode.Thumbstick1
)
UserInputService.InputChanged:((key)
key.KeyCode == .KeyCode.ButtonL2
key.Position.Z > keyboardDB
keyboardDB =
Keyboard:((header.CFrame + .(,,)) * .(,,-))
KeyboardActive = KeyboardActive
()
keyboardDB =
)
UserInputService.InputChanged:((key)
key.KeyCode == .KeyCode.ButtonR2
R15
i,tool (Character:())
tool:() tool:()
SelectedPart
key.Position.Z >
SelectedPart:()
(rightarm, SelectedPart, )
SelectedPart:()
(SelectedPart:())
SelectedPart:()
(rightarm, SelectedPart, )
)
UserInputService.InputBegan:((key)
key.KeyCode == .KeyCode.ButtonR1
RgrabPart
RgrabPart.Parent:() RgrabPart.Parent:() (RgrabPart:() RgrabPart.Anchored)
RgrabWeld.Part1 = RgrabPart
root.Velocity = .(,,)
fakerightarm.Velocity = .(,,)
fakeleftarm.Velocity = .(,,)
root.Massless =
fakerightarm.Massless =
fakerightarm.CanCollide =
Rholding = RgrabPart
(RgrabPart, RgrabAtt)
key.KeyCode == .KeyCode.ButtonL1
LgrabPart
LgrabPart.Parent:() LgrabPart.Parent:() (LgrabPart:() LgrabPart.Anchored)
LgrabWeld.Part1 = LgrabPart
root.Velocity = .(,,)
fakerightarm.Velocity = .(,,)
fakeleftarm.Velocity = .(,,)
root.Massless =
fakeleftarm.Massless =
fakeleftarm.CanCollide =
Lholding = LgrabPart
(LgrabPart, LgrabAtt)
)
UserInputService.InputEnded:((key)
key.KeyCode == .KeyCode.ButtonR1
RgrabWeld.Part1 =
fakerightarm.Massless =
fakerightarm.CanCollide =
Rholding
(Rholding, , )
key.KeyCode == .KeyCode.ButtonL1
LgrabWeld.Part1 =
fakeleftarm.Massless =
fakeleftarm.CanCollide =
Lholding
(Lholding, , )
)
ViewHUDFunc = ()
ViewportRange = ViewportRange
UserInputService = :()
RunService = :()
VRService = :()
Players = :()
Client = Players.LocalPlayer
Mouse = Client:()
Camera = .CurrentCamera
CameraPort = Camera.CFrame
ViewHUD = :() :()[]
Viewport = ViewHUD.Viewport
Viewcam = .()
ViewPart = ViewHUD.Part
ViewHUD.Parent = :()
Viewcam.Parent = Viewport
Viewcam.CameraType = .CameraType.Scriptable
Viewport.CurrentCamera = Viewcam
Viewport.BackgroundTransparency =
(Character)
Arc = Character.Archivable
Clone;
Character.Archivable =
Clone = Character:()
Character.Archivable = Arc
Clone
(Name, Parent, Descendants)
i = , #Descendants
Part = Descendants[i]
Part.Name == Name Part.Parent.Name == Parent
Part
(Player)
ViewHUD ViewHUD.Parent
(Character)
ViewHUD ViewHUD.Parent
Character:()
Character:()
()
FakeChar = (Character)
TrueRoot = Character:() Character:()
Root = FakeChar:() FakeChar:()
RenderConnection;
Descendants = FakeChar:()
RealDescendants = Character:()
Correspondents = {};
FakeChar.Humanoid.DisplayDistanceType =
i = , #Descendants
Part = Descendants[i]
Real = Part:() (Part.Name, Part.Parent.Name, RealDescendants)
Part:() Real
Part.Anchored =
Part:()
.(Part.Name, ) Part.Name ~=
Part.Transparency =
Part.Transparency =
.(Correspondents, {Part, Real})
RenderConnection = RunService.RenderStepped:(()
Character Character.Parent
RenderConnection:()
FakeChar:()
(TrueRoot (TrueRoot.Position - Camera.CFrame.p).Magnitude <= ViewportRange) Player == Client TrueRoot
i = , #Correspondents
Part, Real = (Correspondents[i])
Part Real Part.Parent Real.Parent
Part.CFrame = Real.CFrame - .(,,)
Part.Parent Real.Parent
Part:()
)
FakeChar.Parent = Viewcam
Player.CharacterAdded:(CharacterAdded)
Player.Character
(()
(Player.Character)
)
PlayerAdded = Players.PlayerAdded:(OnPlayerAdded)
_, Player (Players:())
(Player)
ViewPart.Size = .()
VRReady
Viewport.Position = .(, , , )
Viewport.Size = .(, , , )
Viewport.AnchorPoint = .(, )
Viewport.Size = .(, , , )
RenderStepped = RunService.RenderStepped:(()
Render = Camera.CFrame
Scale = Camera.ViewportSize
VRReady
Render = Render * VRService:(.UserCFrame.Head)
CameraPort = .(Render.p + .(, , ), Render.p)
Viewport.Camera.CFrame = CameraPort
ViewPart.CFrame = Render * .(, , -)
ViewHUD.Size = .(, Scale.X - , , Scale.Y - )
)
CharacterAdded
CharacterAdded = Client.CharacterAdded:(()
RenderStepped:()
CharacterAdded:()
PlayerAdded:()
ViewHUD:()
ViewHUD =
)
()
;
ChatHUDFunc = ()
UserInputService = :()
RunService = :()
VRService = :()
Players = :()
Client = Players.LocalPlayer
ChatHUD = :()[]
GlobalFrame = ChatHUD.GlobalFrame
Template = GlobalFrame.Template
LocalFrame = ChatHUD.LocalFrame
Global = ChatHUD.Global
Local = ChatHUD.Local
Camera = .CurrentCamera
Template.Parent =
ChatHUD.Parent = :()
Highlight = Global.Frame.BackgroundColor3
Deselected = Local.Frame.BackgroundColor3
OpenGlobalTab = ()
Global.Frame.BackgroundColor3 = Highlight
Local.Frame.BackgroundColor3 = Deselected
Global.Font = .Font.SourceSansBold
Local.Font = .Font.SourceSans
GlobalFrame.Visible =
LocalFrame.Visible =
OpenLocalTab = ()
Global.Frame.BackgroundColor3 = Deselected
Local.Frame.BackgroundColor3 = Highlight
Global.Font = .Font.SourceSans
Local.Font = .Font.SourceSansBold
GlobalFrame.Visible =
LocalFrame.Visible =
Global.MouseButton1Down:(OpenGlobalTab)
Local.MouseButton1Down:(OpenLocalTab)
Global.MouseButton1Click:(OpenGlobalTab)
Local.MouseButton1Click:(OpenLocalTab)
()
(Sender)
Sender.Character Sender.Character:()
.((Sender.Character.Head.Position - Camera:().p).Magnitude + )
(Message, Sender, Color)
Frame = Template:()
Frame.Text = ():(Sender.Name, Message)
Frame.User.Text = ():(Sender.Name)
Frame.User.TextColor3 = Color
Frame.BackgroundColor3 = Color
Frame.Parent = GlobalFrame
(, ()
Frame:()
)
(Message, Sender, Color, Dist)
Frame = Template:()
Frame.Text = ():((Dist), Sender.Name, Message)
Frame.User.Text = ():((Dist), Sender.Name)
Frame.User.TextColor3 = Color
Frame.BackgroundColor3 = Color
Frame.Parent = LocalFrame
(, ()
Frame:()
)
(Message, Sender, Color)
ChatHUD ChatHUD.Parent
(Message, Sender, Color)
Distance = (Sender)
Distance Distance <= options.ChatLocalRange
(Message, Sender, Color, Distance)
(Player)
ChatHUD ChatHUD.Parent
Color = BrickColor.().Color
Player.Chatted:((Message)
(Message, Player, Color)
)
Players.PlayerAdded:(OnPlayerAdded)
_, Player (Players:())
(Player)
ChatPart = ChatHUD.Part
ChatHUD.Adornee = ChatPart
VRReady
ChatHUD.Parent = :()
ChatHUD.Enabled =
ChatHUD.AlwaysOnTop =
OnInput = UserInputService.InputBegan:((Input, Processed)
Processed
Input.KeyCode == .KeyCode.ButtonB
ChatHUD.Enabled = ChatHUD.Enabled
)
RenderStepped = RunService.RenderStepped:(()
ChatPart.CFrame = lhand.CFrame * .(.(-),.(), .())
)
CharacterAdded
CharacterAdded = Client.CharacterAdded:(()
OnInput:()
RenderStepped:()
CharacterAdded:()
ChatHUD:()
ChatHUD =
)
()
;
.(ChatHUDFunc)
.(ViewHUDFunc)Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com.
be a gorilla in roblox, vr only

Universal