Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local gui = Instance.new('ScreenGui', game.Players.LocalPlayer.PlayerGui)
- local ViewPort = Instance.new('ViewportFrame', gui)
- ViewPort.Size = UDim2.new(0.2,0,0.2,0)
- ViewPort.Position = UDim2.new(-0.05,0,0,0)
- ViewPort.BackgroundTransparency = 1
- NLS([[
- --Boatbomber
- local noise = Instance.new('Sound', game.Players.LocalPlayer.PlayerGui)
- noise.Name = 'Noise1'
- noise.SoundId = 'rbxassetid://535716488'
- --Services
- local RunService = game:GetService('RunService')
- local UserInputService = game:GetService("UserInputService")
- --Localize
- local instance,newRay = Instance.new,Ray.new
- local v2,v3,cf,udim2 = Vector2.new,Vector3.new,CFrame.new,UDim2.new
- local insert,random,abs = table.insert,math.random,math.abs
- local Player = owner
- local Character = Player.Character or Player.CharacterAdded:Wait()
- local inv = false
- --Basic setup
- --Settings
- local Offset = cf(0,1,-6)
- --Create the viewport camera
- local Camera = instance("Camera")
- ViewPort.CurrentCamera = Camera
- local ValidClasses = {
- ["MeshPart"] = true; ["Part"] = true; ["Accoutrement"] = true;
- ["Pants"] = true; ["Shirt"] = true;
- ["Humanoid"] = true;
- }
- local function RenderHumanoid(Model, Parent, MainModel)
- local ModelParts = Model:GetDescendants()
- for i=1, #ModelParts do
- local Part = ModelParts[i]
- if ValidClasses[Part.ClassName] then
- local a = Part.Archivable
- Part.Archivable = true
- local RenderClone = Part:Clone()
- Part.Archivable = a
- if Part.ClassName == "MeshPart" or Part.ClassName == "Part" then
- PartUpdater = RunService.Heartbeat:Connect(function()
- if Part then
- RenderClone.CFrame = Part.CFrame
- else
- RenderClone:Destroy()
- PartUpdater:Disconnect()
- end
- end)
- elseif Part:IsA("Accoutrement") then
- PartUpdater = RunService.Heartbeat:Connect(function()
- if Part then
- if RenderClone.Handle then
- RenderClone.Handle.CFrame = Part.Handle.CFrame
- end
- else
- RenderClone:Destroy()
- PartUpdater:Disconnect()
- end
- end)
- elseif Part.ClassName == "Humanoid" then
- --Disable all states. We only want it for clothing wrapping, not for stupid performance issues
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Running, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.RunningNoPhysics, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Climbing, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.StrafingNoPhysics, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.GettingUp, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Landed, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Flying, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Freefall, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Seated, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.PlatformStanding, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Swimming, false)
- RenderClone:SetStateEnabled(Enum.HumanoidStateType.Physics, false)
- end
- RenderClone.Parent = Parent
- end
- end
- end
- --Let the world load before starting
- wait(1)
- local function Render(v)
- if v then v:ClearAllChildren() else ViewPort:ClearAllChildren() end
- --Render the character
- local Char = instance("Model")
- Char.Name = ""
- if v then Char.Parent = v else Char.Parent = ViewPort end
- RenderHumanoid(Character,Char)
- end
- --Handle changes
- Character.DescendantAdded:Connect(Render)
- Character.DescendantRemoving:Connect(Render)
- --Initialize
- Render()
- local gui = Instance.new('ScreenGui', game.Players.LocalPlayer.PlayerGui)
- local inventory = Instance.new('ImageLabel', gui)
- inventory.Size = UDim2.new(0.75,0,1.25,0)
- inventory.Position = UDim2.new(0.25,0,0.1,0)
- inventory.BackgroundTransparency = 1
- inventory.Image = 'rbxassetid://60414743'
- inventory.Visible = false
- local v = Instance.new('ViewportFrame')
- v.Parent = inventory
- v.Size = UDim2.new(0.2,0,0.27,0)
- v.Position = UDim2.new(0.102,0,0.031,0)
- v.BackgroundTransparency = 1
- v.CurrentCamera = Camera
- local mouse = Player:GetMouse()
- mouse.KeyDown:Connect(function(key)
- if key == 'e' then
- noise:Play()
- if not inv then
- inv = true
- inventory.Visible = true
- ViewPort.Visible = false
- else
- inv = false
- inventory.Visible = false
- ViewPort.Visible = true
- end
- end
- end)
- Render(v)
- CameraUpdater = RunService.Heartbeat:Connect(function()
- if Character.HumanoidRootPart then
- Camera.CFrame = cf(Character.HumanoidRootPart.CFrame:toWorldSpace(Offset).p, Character.HumanoidRootPart.CFrame.p)
- end
- end)
- ]], owner.Character)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement