SHOW:
|
|
- or go back to the newest paste.
1 | --[[ | |
2 | _ | |
3 | | | | |
4 | __ ___ __ __ _ _ __ _ ___ _| |__ ___ _ __ ___ | |
5 | \ \ / / '__| / _` | '_ \| | | \ \ /\ / / '_ \ / _ \ '__/ _ \ | |
6 | \ V /| | | (_| | | | | |_| |\ V V /| | | | __/ | | __/ | |
7 | \_/ |_| \__,_|_| |_|\__, | \_/\_/ |_| |_|\___|_| \___| | |
8 | __/ | | |
9 | |___/ | |
10 | ||
11 | _ _ _ | |
12 | | | | | | | | |
13 | | |__ _ _ ___| | _____ __| | | |
14 | | '_ \| | | | / __| |/ / _ \/ _` | | |
15 | | |_) | |_| | \__ \ < __/ (_| | | |
16 | |_.__/ \__, | |___/_|\_\___|\__,_| | |
17 | __/ | | |
18 | |___/ | |
19 | ||
20 | ]] | |
21 | ||
22 | local options = {} | |
23 | ||
24 | -- OPTIONS: | |
25 | ||
26 | - | options.headhat = "MediHood" -- name of the accessory which you are using as a head |
26 | + | options.headhat = "OverseerGuardia" -- name of the accessory which you are using as a head |
27 | options.headscale = 3 -- how big you are in vr, 1 is default, 3 is recommended for max comfort in vr | |
28 | options.forcebubblechat = true -- decide if to force bubblechat so you can see peoples messages | |
29 | ||
30 | - | options.righthandhat = "Pal Hair" |
30 | + | options.righthandhat = "PurpleHair" |
31 | - | options.lefthandhat = "LavanderHair" |
31 | + | options.lefthandhat = "Ultra-Fabulous Hair" |
32 | ||
33 | options.righthandrotoffset = Vector3.new(0,0,0) | |
34 | options.lefthandrotoffset = Vector3.new(0,0,0) | |
35 | ||
36 | -- | |
37 | ||
38 | local plr = game:GetService("Players").LocalPlayer | |
39 | local char = plr.Character | |
40 | local backpack = plr.Backpack | |
41 | ||
42 | local VR = game:GetService("VRService") | |
43 | local input = game:GetService("UserInputService") | |
44 | ||
45 | local cam = workspace.CurrentCamera | |
46 | ||
47 | cam.CameraType = "Scriptable" | |
48 | ||
49 | cam.HeadScale = options.headscale | |
50 | ||
51 | game:GetService("StarterGui"):SetCore("VRLaserPointerMode", 0) | |
52 | game:GetService("StarterGui"):SetCore("VREnableControllerModels", false) | |
53 | ||
54 | local handL | |
55 | local handR | |
56 | local head | |
57 | local R1down = false | |
58 | ||
59 | --local copy = game:GetObjects('rbxassetid://4469710589')[1] | |
60 | --local copy = game:GetService("InsertService"):LoadAsset(4469710589):GetChildren()[1] | |
61 | --local copy = game.ReplicatedStorage.Dummy:Clone() | |
62 | ||
63 | local function loadhat(hat) | |
64 | local tool = Instance.new("Tool") | |
65 | local handle = hat.Handle | |
66 | ||
67 | handle:FindFirstChildOfClass("Weld"):Destroy() | |
68 | handle.Massless = true | |
69 | handle.CanCollide = true | |
70 | handle.Parent = tool | |
71 | ||
72 | tool.Name = hat.Name | |
73 | tool.Parent = backpack | |
74 | tool.Parent = char | |
75 | ||
76 | return tool | |
77 | end | |
78 | ||
79 | for i,v in pairs(char.Humanoid:GetAccessories()) do | |
80 | if v:FindFirstChild("Handle") then | |
81 | --local tool = Instance.new("Tool") | |
82 | --tool.Name = v.Name..i | |
83 | local handle = v.Handle | |
84 | ||
85 | if v.Name == options.righthandhat and not handR then | |
86 | handle:FindFirstChildOfClass("SpecialMesh"):Destroy() | |
87 | handR = loadhat(v) | |
88 | elseif v.Name == options.lefthandhat and not handL then | |
89 | handle:FindFirstChildOfClass("SpecialMesh"):Destroy() | |
90 | handL = loadhat(v) | |
91 | elseif v.Name == options.headhat and not head then | |
92 | handle.Transparency = 1 | |
93 | head = loadhat(v) | |
94 | end | |
95 | end | |
96 | end | |
97 | ||
98 | --[[ | |
99 | local an = Instance.new("Animation",workspace) | |
100 | an.AnimationId = "rbxassetid://31319431" | |
101 | char.Humanoid:LoadAnimation(an):Play() | |
102 | an:Remove() | |
103 | ]] | |
104 | ||
105 | char.Humanoid.AnimationPlayed:connect(function(anim) | |
106 | anim:Stop() | |
107 | end) | |
108 | ||
109 | for i,v in pairs(char.Humanoid:GetPlayingAnimationTracks()) do | |
110 | v:AdjustSpeed(0) | |
111 | end | |
112 | ||
113 | local torso = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") | |
114 | torso.Anchored = true | |
115 | char.HumanoidRootPart.Anchored = true | |
116 | ||
117 | --[[ | |
118 | local function move(tool,pos) | |
119 | local armcframe = char['Right Arm'].CFrame * CFrame.new(0, -1, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0) | |
120 | local cf = armcframe:toObjectSpace(pos):inverse() | |
121 | tool.Parent = backpack | |
122 | tool.Grip = cf | |
123 | tool.Parent = char | |
124 | end | |
125 | ]] | |
126 | ||
127 | --[[ | |
128 | copy.Parent = workspace | |
129 | copy.HumanoidRootPart.CFrame = char.HumanoidRootPart.CFrame | |
130 | --game.Players.LocalPlayer.Character = copy | |
131 | cam.CameraSubject = copy.Humanoid | |
132 | copy.Humanoid.CameraOffset = Vector3.new(0, 5.4, 0) | |
133 | ]] | |
134 | ||
135 | workspace.CurrentCamera.CFrame = CFrame.new(workspace.CurrentCamera.CFrame.Position) | |
136 | ||
137 | input.UserCFrameChanged:connect(function(part,move) | |
138 | if part == Enum.UserCFrame.Head then | |
139 | --move(head,cam.CFrame*move) | |
140 | local rArm = char:FindFirstChild("Right Arm") or char:FindFirstChild("RightLowerArm") | |
141 | local armcframe = rArm.CFrame * CFrame.new(0, -1, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0) | |
142 | local cf = armcframe:toObjectSpace(cam.CFrame*(CFrame.new(move.p*(cam.HeadScale-1))*move)):inverse() | |
143 | head.Parent = backpack | |
144 | head.Grip = cf | |
145 | head.Parent = char | |
146 | elseif part == Enum.UserCFrame.LeftHand then | |
147 | --move(handL,cam.CFrame*move) | |
148 | local rArm = char:FindFirstChild("Right Arm") or char:FindFirstChild("RightLowerArm") | |
149 | local armcframe = rArm.CFrame * CFrame.new(0, -1, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0) | |
150 | local cf = armcframe:toObjectSpace(cam.CFrame*(CFrame.new(move.p*(cam.HeadScale-1))*move*CFrame.Angles(math.rad(options.righthandrotoffset.X),math.rad(options.righthandrotoffset.Y),math.rad(options.righthandrotoffset.Z)))):inverse() | |
151 | handL.Parent = backpack | |
152 | handL.Grip = cf | |
153 | handL.Parent = char | |
154 | elseif part == Enum.UserCFrame.RightHand then | |
155 | --move(handR,cam.CFrame*move) | |
156 | local rArm = char:FindFirstChild("Right Arm") or char:FindFirstChild("RightLowerArm") | |
157 | local armcframe = rArm.CFrame * CFrame.new(0, -1, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0) | |
158 | local cf = armcframe:toObjectSpace(cam.CFrame*(CFrame.new(move.p*(cam.HeadScale-1))*move*CFrame.Angles(math.rad(options.righthandrotoffset.X),math.rad(options.righthandrotoffset.Y),math.rad(options.righthandrotoffset.Z)))):inverse() | |
159 | handR.Parent = backpack | |
160 | handR.Grip = cf | |
161 | handR.Parent = char | |
162 | end | |
163 | end) | |
164 | ||
165 | input.InputChanged:connect(function(key) | |
166 | if key.KeyCode == Enum.KeyCode.ButtonR1 then | |
167 | if key.Position.Z > 0.9 then | |
168 | R1down = true | |
169 | else | |
170 | R1down = false | |
171 | end | |
172 | end | |
173 | end) | |
174 | ||
175 | input.InputBegan:connect(function(key) | |
176 | if key.KeyCode == Enum.KeyCode.ButtonR1 then | |
177 | R1down = true | |
178 | end | |
179 | end) | |
180 | ||
181 | input.InputEnded:connect(function(key) | |
182 | if key.KeyCode == Enum.KeyCode.ButtonR1 then | |
183 | R1down = false | |
184 | end | |
185 | end) | |
186 | ||
187 | game:GetService("RunService").RenderStepped:connect(function() | |
188 | if R1down then | |
189 | cam.CFrame = cam.CFrame:Lerp(cam.CoordinateFrame + (handR.Handle.CFrame*CFrame.Angles(-math.rad(options.righthandrotoffset.X),-math.rad(options.righthandrotoffset.Y),math.rad(180-options.righthandrotoffset.X))).LookVector * cam.HeadScale/2, 0.5) | |
190 | end | |
191 | end) | |
192 | ||
193 | --[[ | |
194 | game:GetService("RunService").RenderStepped:connect(function(step) | |
195 | copy.Humanoid:MoveTo(copy.HumanoidRootPart.Position + char.Humanoid.MoveDirection * 6) | |
196 | end) | |
197 | ]] | |
198 | ||
199 | local function bubble(plr,msg) | |
200 | game:GetService("Chat"):Chat(plr.Character.Head,msg,Enum.ChatColor.White) | |
201 | end | |
202 | ||
203 | if options.forcebubblechat == true then | |
204 | game.Players.PlayerAdded:connect(function(plr) | |
205 | plr.Chatted:connect(function(msg) | |
206 | game:GetService("Chat"):Chat(plr.Character.Head,msg,Enum.ChatColor.White) | |
207 | end) | |
208 | end) | |
209 | ||
210 | for i,v in pairs(game.Players:GetPlayers()) do | |
211 | v.Chatted:connect(function(msg) | |
212 | game:GetService("Chat"):Chat(v.Character.Head,msg,Enum.ChatColor.White) | |
213 | end) | |
214 | end | |
215 | end |