SHOW:
|
|
- or go back to the newest paste.
1 | --Original script quuisiYT or quu | |
2 | -- This script has been converted to FE by iPxter | |
3 | ||
4 | ||
5 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end | |
6 | local Player,Mouse,mouse,UserInputService,ContextActionService = owner | |
7 | do | |
8 | print("FE Compatibility code by Mokiros | Translated to FE by iPxter") | |
9 | script.Parent = Player.Character | |
10 | ||
11 | --RemoteEvent for communicating | |
12 | local Event = Instance.new("RemoteEvent") | |
13 | Event.Name = "UserInput_Event" | |
14 | ||
15 | --Fake event to make stuff like Mouse.KeyDown work | |
16 | local function fakeEvent() | |
17 | local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end} | |
18 | t.connect = t.Connect | |
19 | return t | |
20 | end | |
21 | ||
22 | --Creating fake input objects with fake variables | |
23 | local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()} | |
24 | local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()} | |
25 | local CAS = {Actions={},BindAction=function(self,name,fun,touch,...) | |
26 | CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil | |
27 | end} | |
28 | --Merged 2 functions into one by checking amount of arguments | |
29 | CAS.UnbindAction = CAS.BindAction | |
30 | ||
31 | --This function will trigger the events that have been :Connect()'ed | |
32 | local function te(self,ev,...) | |
33 | local t = m[ev] | |
34 | if t and t._fakeEvent and t.Function then | |
35 | t.Function(...) | |
36 | end | |
37 | end | |
38 | m.TrigEvent = te | |
39 | UIS.TrigEvent = te | |
40 | ||
41 | Event.OnServerEvent:Connect(function(plr,io) | |
42 | if plr~=Player then return end | |
43 | if io.isMouse then | |
44 | m.Target = io.Target | |
45 | m.Hit = io.Hit | |
46 | else | |
47 | local b = io.UserInputState == Enum.UserInputState.Begin | |
48 | if io.UserInputType == Enum.UserInputType.MouseButton1 then | |
49 | return m:TrigEvent(b and "Button1Down" or "Button1Up") | |
50 | end | |
51 | for _,t in pairs(CAS.Actions) do | |
52 | for _,k in pairs(t.Keys) do | |
53 | if k==io.KeyCode then | |
54 | t.Function(t.Name,io.UserInputState,io) | |
55 | end | |
56 | end | |
57 | end | |
58 | m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) | |
59 | UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false) | |
60 | end | |
61 | end) | |
62 | Event.Parent = NLS([==[ | |
63 | local Player = game:GetService("Players").LocalPlayer | |
64 | local Event = script:WaitForChild("UserInput_Event") | |
65 | ||
66 | local UIS = game:GetService("UserInputService") | |
67 | local input = function(io,a) | |
68 | if a then return end | |
69 | --Since InputObject is a client-side instance, we create and pass table instead | |
70 | Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState}) | |
71 | end | |
72 | UIS.InputBegan:Connect(input) | |
73 | UIS.InputEnded:Connect(input) | |
74 | ||
75 | local Mouse = Player:GetMouse() | |
76 | local h,t | |
77 | --Give the server mouse data 30 times every second, but only if the values changed | |
78 | --If player is not moving their mouse, client won't fire events | |
79 | while wait(1/30) do | |
80 | if h~=Mouse.Hit or t~=Mouse.Target then | |
81 | h,t=Mouse.Hit,Mouse.Target | |
82 | Event:FireServer({isMouse=true,Target=t,Hit=h}) | |
83 | end | |
84 | end]==],Player.Character) | |
85 | Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS | |
86 | end | |
87 | local moving_anthro_npc = Instance.new("Model") | |
88 | local body_colors = Instance.new("BodyColors", moving_anthro_npc) | |
89 | local humanoidrootpart = Instance.new("Part") | |
90 | local rootrigattachment = Instance.new("Attachment") | |
91 | local humanoid = Instance.new("Humanoid") | |
92 | local animator = Instance.new("Animator", humanoid) | |
93 | local head = Instance.new("Part") | |
94 | local neckrigattachment = Instance.new("Attachment") | |
95 | local originalpivot = Instance.new("Vector3Value") | |
96 | local hatattachment = Instance.new("Attachment") | |
97 | local originalpivot_2 = Instance.new("Vector3Value") | |
98 | local hairattachment = Instance.new("Attachment") | |
99 | local originalpivot_3 = Instance.new("Vector3Value") | |
100 | local facefrontattachment = Instance.new("Attachment") | |
101 | local originalpivot_4 = Instance.new("Vector3Value") | |
102 | local facecenterattachment = Instance.new("Attachment") | |
103 | local originalpivot_5 = Instance.new("Vector3Value") | |
104 | local originalsize = Instance.new("Vector3Value") | |
105 | local neck = Instance.new("Motor6D") | |
106 | local mesh = Instance.new("SpecialMesh") | |
107 | local lefthand = Instance.new("Part") | |
108 | local leftwristrigattachment = Instance.new("Attachment") | |
109 | local originalpivot_6 = Instance.new("Vector3Value") | |
110 | local leftgripattachment = Instance.new("Attachment") | |
111 | local originalpivot_7 = Instance.new("Vector3Value") | |
112 | local originalsize_2 = Instance.new("Vector3Value") | |
113 | local leftwrist = Instance.new("Motor6D") | |
114 | local mesh_2 = Instance.new("SpecialMesh") | |
115 | local leftlowerarm = Instance.new("Part") | |
116 | local leftelbowrigattachment = Instance.new("Attachment") | |
117 | local originalpivot_8 = Instance.new("Vector3Value") | |
118 | local leftwristrigattachment_2 = Instance.new("Attachment") | |
119 | local originalpivot_9 = Instance.new("Vector3Value") | |
120 | local originalsize_3 = Instance.new("Vector3Value") | |
121 | local leftelbow = Instance.new("Motor6D") | |
122 | local mesh_3 = Instance.new("SpecialMesh") | |
123 | local leftupperarm = Instance.new("Part") | |
124 | local leftshoulderrigattachment = Instance.new("Attachment") | |
125 | local originalpivot_10 = Instance.new("Vector3Value") | |
126 | local leftelbowrigattachment_2 = Instance.new("Attachment") | |
127 | local originalpivot_11 = Instance.new("Vector3Value") | |
128 | local leftshoulderattachment = Instance.new("Attachment") | |
129 | local originalpivot_12 = Instance.new("Vector3Value") | |
130 | local originalsize_4 = Instance.new("Vector3Value") | |
131 | local leftshoulder = Instance.new("Motor6D") | |
132 | local mesh_4 = Instance.new("SpecialMesh") | |
133 | local righthand = Instance.new("Part") | |
134 | local rightwristrigattachment = Instance.new("Attachment") | |
135 | local originalpivot_13 = Instance.new("Vector3Value") | |
136 | local rightgripattachment = Instance.new("Attachment") | |
137 | local originalpivot_14 = Instance.new("Vector3Value") | |
138 | local originalsize_5 = Instance.new("Vector3Value") | |
139 | local rightwrist = Instance.new("Motor6D") | |
140 | local mesh_5 = Instance.new("SpecialMesh") | |
141 | local rightlowerarm = Instance.new("Part") | |
142 | local rightelbowrigattachment = Instance.new("Attachment") | |
143 | local originalpivot_15 = Instance.new("Vector3Value") | |
144 | local rightwristrigattachment_2 = Instance.new("Attachment") | |
145 | local originalpivot_16 = Instance.new("Vector3Value") | |
146 | local originalsize_6 = Instance.new("Vector3Value") | |
147 | local rightelbow = Instance.new("Motor6D") | |
148 | local mesh_6 = Instance.new("SpecialMesh") | |
149 | local rightupperarm = Instance.new("Part") | |
150 | local rightshoulderrigattachment = Instance.new("Attachment") | |
151 | local originalpivot_17 = Instance.new("Vector3Value") | |
152 | local rightelbowrigattachment_2 = Instance.new("Attachment") | |
153 | local originalpivot_18 = Instance.new("Vector3Value") | |
154 | local rightshoulderattachment = Instance.new("Attachment") | |
155 | local originalpivot_19 = Instance.new("Vector3Value") | |
156 | local originalsize_7 = Instance.new("Vector3Value") | |
157 | local rightshoulder = Instance.new("Motor6D") | |
158 | local mesh_7 = Instance.new("SpecialMesh") | |
159 | local uppertorso = Instance.new("Part") | |
160 | local waistrigattachment = Instance.new("Attachment") | |
161 | local originalpivot_20 = Instance.new("Vector3Value") | |
162 | local neckrigattachment_2 = Instance.new("Attachment") | |
163 | local originalpivot_21 = Instance.new("Vector3Value") | |
164 | local leftshoulderrigattachment_2 = Instance.new("Attachment") | |
165 | local originalpivot_22 = Instance.new("Vector3Value") | |
166 | local rightshoulderrigattachment_2 = Instance.new("Attachment") | |
167 | local originalpivot_23 = Instance.new("Vector3Value") | |
168 | local bodyfrontattachment = Instance.new("Attachment") | |
169 | local originalpivot_24 = Instance.new("Vector3Value") | |
170 | local bodybackattachment = Instance.new("Attachment") | |
171 | local originalpivot_25 = Instance.new("Vector3Value") | |
172 | local neckattachment = Instance.new("Attachment") | |
173 | local originalpivot_26 = Instance.new("Vector3Value") | |
174 | local rightcollarattachment = Instance.new("Attachment") | |
175 | local originalpivot_27 = Instance.new("Vector3Value") | |
176 | local leftcollarattachment = Instance.new("Attachment") | |
177 | local originalpivot_28 = Instance.new("Vector3Value") | |
178 | local originalsize_8 = Instance.new("Vector3Value") | |
179 | local waist = Instance.new("Motor6D") | |
180 | local mesh_8 = Instance.new("SpecialMesh") | |
181 | local leftfoot = Instance.new("Part") | |
182 | local leftanklerigattachment = Instance.new("Attachment") | |
183 | local originalpivot_29 = Instance.new("Vector3Value") | |
184 | local originalsize_9 = Instance.new("Vector3Value") | |
185 | local leftankle = Instance.new("Motor6D") | |
186 | local mesh_9 = Instance.new("SpecialMesh") | |
187 | local leftlowerleg = Instance.new("Part") | |
188 | local leftkneerigattachment = Instance.new("Attachment") | |
189 | local originalpivot_30 = Instance.new("Vector3Value") | |
190 | local leftanklerigattachment_2 = Instance.new("Attachment") | |
191 | local originalpivot_31 = Instance.new("Vector3Value") | |
192 | local originalsize_10 = Instance.new("Vector3Value") | |
193 | local leftknee = Instance.new("Motor6D") | |
194 | local mesh_10 = Instance.new("SpecialMesh") | |
195 | local leftupperleg = Instance.new("Part") | |
196 | local lefthiprigattachment = Instance.new("Attachment") | |
197 | local originalpivot_32 = Instance.new("Vector3Value") | |
198 | local leftkneerigattachment_2 = Instance.new("Attachment") | |
199 | local originalpivot_33 = Instance.new("Vector3Value") | |
200 | local originalsize_11 = Instance.new("Vector3Value") | |
201 | local lefthip = Instance.new("Motor6D") | |
202 | local mesh_11 = Instance.new("SpecialMesh") | |
203 | local rightfoot = Instance.new("Part") | |
204 | local rightanklerigattachment = Instance.new("Attachment") | |
205 | local originalpivot_34 = Instance.new("Vector3Value") | |
206 | local originalsize_12 = Instance.new("Vector3Value") | |
207 | local rightankle = Instance.new("Motor6D") | |
208 | local mesh_12 = Instance.new("SpecialMesh") | |
209 | local rightlowerleg = Instance.new("Part") | |
210 | local rightkneerigattachment = Instance.new("Attachment") | |
211 | local originalpivot_35 = Instance.new("Vector3Value") | |
212 | local rightanklerigattachment_2 = Instance.new("Attachment") | |
213 | local originalpivot_36 = Instance.new("Vector3Value") | |
214 | local originalsize_13 = Instance.new("Vector3Value") | |
215 | local rightknee = Instance.new("Motor6D") | |
216 | local mesh_13 = Instance.new("SpecialMesh") | |
217 | local rightupperleg = Instance.new("Part") | |
218 | local righthiprigattachment = Instance.new("Attachment") | |
219 | local originalpivot_37 = Instance.new("Vector3Value") | |
220 | local rightkneerigattachment_2 = Instance.new("Attachment") | |
221 | local originalpivot_38 = Instance.new("Vector3Value") | |
222 | local originalsize_14 = Instance.new("Vector3Value") | |
223 | local righthip = Instance.new("Motor6D") | |
224 | local mesh_14 = Instance.new("SpecialMesh") | |
225 | local lowertorso = Instance.new("Part") | |
226 | local rootrigattachment_2 = Instance.new("Attachment") | |
227 | local originalpivot_39 = Instance.new("Vector3Value") | |
228 | local waistrigattachment_2 = Instance.new("Attachment") | |
229 | local originalpivot_40 = Instance.new("Vector3Value") | |
230 | local lefthiprigattachment_2 = Instance.new("Attachment") | |
231 | local originalpivot_41 = Instance.new("Vector3Value") | |
232 | local righthiprigattachment_2 = Instance.new("Attachment") | |
233 | local originalpivot_42 = Instance.new("Vector3Value") | |
234 | local waistcenterattachment = Instance.new("Attachment") | |
235 | local originalpivot_43 = Instance.new("Vector3Value") | |
236 | local waistfrontattachment = Instance.new("Attachment") | |
237 | local originalpivot_44 = Instance.new("Vector3Value") | |
238 | local waistbackattachment = Instance.new("Attachment") | |
239 | local originalpivot_45 = Instance.new("Vector3Value") | |
240 | local originalsize_15 = Instance.new("Vector3Value") | |
241 | local root = Instance.new("Motor6D") | |
242 | local mesh_15 = Instance.new("SpecialMesh") | |
243 | ||
244 | moving_anthro_npc.Name = "Moving Anthro [NPC]" | |
245 | moving_anthro_npc.Parent = workspace | |
246 | humanoidrootpart.Size = Vector3.new(2, 2, 1) | |
247 | humanoidrootpart.Material = Enum.Material.SmoothPlastic | |
248 | humanoidrootpart.Orientation = Vector3.new(0, -166.02, 0) | |
249 | humanoidrootpart.Name = "HumanoidRootPart" | |
250 | humanoidrootpart.Transparency = 1 | |
251 | humanoidrootpart.Parent = moving_anthro_npc | |
252 | humanoidrootpart.CFrame = CFrame.new(-8.268, 3.443, -57.903) * CFrame.Angles(3.142, -0.244, 3.142) | |
253 | rootrigattachment.Name = "RootRigAttachment" | |
254 | rootrigattachment.Parent = humanoidrootpart | |
255 | humanoid.HipHeight = 2.5 | |
256 | humanoid.RigType = Enum.HumanoidRigType.R15 | |
257 | humanoid.Parent = moving_anthro_npc | |
258 | head.Size = Vector3.new(0.693, 1.001, 0.93) | |
259 | head.Color = Color3.new(0.992157, 0.917647, 0.552941) | |
260 | head.Name = "Head" | |
261 | head.Material = Enum.Material.SmoothPlastic | |
262 | head.BrickColor = BrickColor.new("Cool yellow") | |
263 | head.Orientation = Vector3.new(0, -166.02, 0) | |
264 | head.Parent = moving_anthro_npc | |
265 | head.CFrame = CFrame.new(-8.26, 6.045, -57.87) * CFrame.Angles(3.142, -0.244, 3.142) | |
266 | neckrigattachment.Position = Vector3.new(0, -0.384, -0.057) | |
267 | neckrigattachment.Name = "NeckRigAttachment" | |
268 | neckrigattachment.CFrame = CFrame.new(0, -0.384, -0.057) | |
269 | neckrigattachment.Parent = head | |
270 | originalpivot.Value = Vector3.new(0, -0.307, -0.045) | |
271 | originalpivot.Name = "OriginalPivot" | |
272 | originalpivot.Parent = neckrigattachment | |
273 | hatattachment.Position = Vector3.new(0, 0.25, 0.034) | |
274 | hatattachment.Name = "HatAttachment" | |
275 | hatattachment.CFrame = CFrame.new(0, 0.25, 0.034) | |
276 | hatattachment.Parent = head | |
277 | originalpivot_2.Value = Vector3.new(0, 0.2, 0.027) | |
278 | originalpivot_2.Name = "OriginalPivot" | |
279 | originalpivot_2.Parent = hatattachment | |
280 | hairattachment.Position = Vector3.new(0, 0.25, 0.034) | |
281 | hairattachment.Name = "HairAttachment" | |
282 | hairattachment.CFrame = CFrame.new(0, 0.25, 0.034) | |
283 | hairattachment.Parent = head | |
284 | originalpivot_3.Value = Vector3.new(0, 0.2, 0.027) | |
285 | originalpivot_3.Name = "OriginalPivot" | |
286 | originalpivot_3.Parent = hairattachment | |
287 | facefrontattachment.Position = Vector3.new(0, -0.239, -0.36) | |
288 | facefrontattachment.Name = "FaceFrontAttachment" | |
289 | facefrontattachment.CFrame = CFrame.new(0, -0.239, -0.36) | |
290 | facefrontattachment.Parent = head | |
291 | originalpivot_4.Value = Vector3.new(0, -0.191, -0.288) | |
292 | originalpivot_4.Name = "OriginalPivot" | |
293 | originalpivot_4.Parent = facefrontattachment | |
294 | facecenterattachment.Position = Vector3.new(0, -0.103, 0.034) | |
295 | facecenterattachment.Name = "FaceCenterAttachment" | |
296 | facecenterattachment.CFrame = CFrame.new(0, -0.103, 0.034) | |
297 | facecenterattachment.Parent = head | |
298 | originalpivot_5.Value = Vector3.new(0, -0.082, 0.027) | |
299 | originalpivot_5.Name = "OriginalPivot" | |
300 | originalpivot_5.Parent = facecenterattachment | |
301 | originalsize.Value = Vector3.new(0.554, 0.801, 0.744) | |
302 | originalsize.Name = "OriginalSize" | |
303 | originalsize.Parent = head | |
304 | neck.Part1 = head | |
305 | neck.C0 = CFrame.new(0, 0.981, -0.046) | |
306 | neck.Part0 = uppertorso | |
307 | neck.C1 = CFrame.new(0, -0.384, -0.057) | |
308 | neck.Name = "Neck" | |
309 | neck.Parent = head | |
310 | mesh.MeshType = Enum.MeshType.FileMesh | |
311 | mesh.Scale = Vector3.new(1.2, 1.2, 1.2) | |
312 | mesh.MeshId = "rbxassetid://875229544" | |
313 | mesh.TextureId = "rbxassetid://853067666" | |
314 | mesh.Parent = head | |
315 | lefthand.CanCollide = false | |
316 | lefthand.Size = Vector3.new(0.369, 0.777, 0.423) | |
317 | lefthand.BrickColor = BrickColor.new("Cool yellow") | |
318 | lefthand.Material = Enum.Material.SmoothPlastic | |
319 | lefthand.Color = Color3.new(0.992157, 0.917647, 0.552941) | |
320 | lefthand.Orientation = Vector3.new(0, -166.02, 0) | |
321 | lefthand.Name = "LeftHand" | |
322 | lefthand.Parent = moving_anthro_npc | |
323 | lefthand.CFrame = CFrame.new(-7.428, 2.811, -57.824) * CFrame.Angles(3.142, -0.244, 3.142) | |
324 | leftwristrigattachment.Position = Vector3.new(-0.104, 0.272, 0.043) | |
325 | leftwristrigattachment.Name = "LeftWristRigAttachment" | |
326 | leftwristrigattachment.CFrame = CFrame.new(-0.104, 0.272, 0.043) | |
327 | leftwristrigattachment.Parent = lefthand | |
328 | originalpivot_6.Value = Vector3.new(-0.083, 0.218, 0.034) | |
329 | originalpivot_6.Name = "OriginalPivot" | |
330 | originalpivot_6.Parent = leftwristrigattachment | |
331 | leftgripattachment.Rotation = Vector3.new(-90, 0, 0) | |
332 | leftgripattachment.CFrame = CFrame.new(0.033, 0.006, 0.279) * CFrame.Angles(-1.571, 0, 0) | |
333 | leftgripattachment.Orientation = Vector3.new(-90, 0, 0) | |
334 | leftgripattachment.Name = "LeftGripAttachment" | |
335 | leftgripattachment.SecondaryAxis = Vector3.new(0, 0, -1) | |
336 | leftgripattachment.Position = Vector3.new(0.033, 0.006, 0.279) | |
337 | leftgripattachment.Parent = lefthand | |
338 | originalpivot_7.Value = Vector3.new(0.027, 0.005, 0.224) | |
339 | originalpivot_7.Name = "OriginalPivot" | |
340 | originalpivot_7.Parent = leftgripattachment | |
341 | originalsize_2.Value = Vector3.new(0.295, 0.621, 0.339) | |
342 | originalsize_2.Name = "OriginalSize" | |
343 | originalsize_2.Parent = lefthand | |
344 | leftwrist.Part1 = lefthand | |
345 | leftwrist.C0 = CFrame.new(-0.019, -0.508, -0.166) | |
346 | leftwrist.Part0 = leftlowerarm | |
347 | leftwrist.C1 = CFrame.new(-0.104, 0.272, 0.043) | |
348 | leftwrist.Name = "LeftWrist" | |
349 | leftwrist.Parent = lefthand | |
350 | mesh_2.MeshType = Enum.MeshType.FileMesh | |
351 | mesh_2.Scale = Vector3.new(1.6, 1.6, 1.6) | |
352 | mesh_2.MeshId = "rbxassetid://875229553" | |
353 | mesh_2.TextureId = "rbxassetid://853067666" | |
354 | mesh_2.Parent = lefthand | |
355 | leftlowerarm.CanCollide = false | |
356 | leftlowerarm.Size = Vector3.new(0.353, 1.149, 0.587) | |
357 | leftlowerarm.BrickColor = BrickColor.new("Cool yellow") | |
358 | leftlowerarm.Material = Enum.Material.SmoothPlastic | |
359 | leftlowerarm.Color = Color3.new(0.992157, 0.917647, 0.552941) | |
360 | leftlowerarm.Orientation = Vector3.new(0, -166.02, 0) | |
361 | leftlowerarm.Name = "LeftLowerArm" | |
362 | leftlowerarm.Parent = moving_anthro_npc | |
363 | leftlowerarm.CFrame = CFrame.new(-7.396, 3.591, -58.047) * CFrame.Angles(3.142, -0.244, 3.142) | |
364 | leftelbowrigattachment.Position = Vector3.new(-0.019, 0.498, 0.169) | |
365 | leftelbowrigattachment.Name = "LeftElbowRigAttachment" | |
366 | leftelbowrigattachment.CFrame = CFrame.new(-0.019, 0.498, 0.169) | |
367 | leftelbowrigattachment.Parent = leftlowerarm | |
368 | originalpivot_8.Value = Vector3.new(-0.015, 0.398, 0.135) | |
369 | originalpivot_8.Name = "OriginalPivot" | |
370 | originalpivot_8.Parent = leftelbowrigattachment | |
371 | leftwristrigattachment_2.Position = Vector3.new(-0.019, -0.508, -0.166) | |
372 | leftwristrigattachment_2.Name = "LeftWristRigAttachment" | |
373 | leftwristrigattachment_2.CFrame = CFrame.new(-0.019, -0.508, -0.166) | |
374 | leftwristrigattachment_2.Parent = leftlowerarm | |
375 | originalpivot_9.Value = Vector3.new(-0.015, -0.406, -0.133) | |
376 | originalpivot_9.Name = "OriginalPivot" | |
377 | originalpivot_9.Parent = leftwristrigattachment_2 | |
378 | originalsize_3.Value = Vector3.new(0.282, 0.919, 0.469) | |
379 | originalsize_3.Name = "OriginalSize" | |
380 | originalsize_3.Parent = leftlowerarm | |
381 | leftelbow.Part1 = leftlowerarm | |
382 | leftelbow.C0 = CFrame.new(-0.116, -0.543, 0.05) | |
383 | leftelbow.Part0 = leftupperarm | |
384 | leftelbow.C1 = CFrame.new(-0.019, 0.498, 0.169) | |
385 | leftelbow.Name = "LeftElbow" | |
386 | leftelbow.Parent = leftlowerarm | |
387 | mesh_3.MeshType = Enum.MeshType.FileMesh | |
388 | mesh_3.Scale = Vector3.new(1.6, 1.6, 1.6) | |
389 | mesh_3.MeshId = "rbxassetid://875229562" | |
390 | mesh_3.TextureId = "rbxassetid://853067666" | |
391 | mesh_3.Parent = leftlowerarm | |
392 | leftupperarm.CanCollide = false | |
393 | leftupperarm.Size = Vector3.new(0.494, 1.347, 0.643) | |
394 | leftupperarm.BrickColor = BrickColor.new("Cool yellow") | |
395 | leftupperarm.Material = Enum.Material.SmoothPlastic | |
396 | leftupperarm.Color = Color3.new(0.992157, 0.917647, 0.552941) | |
397 | leftupperarm.Orientation = Vector3.new(0, -166.02, 0) | |
398 | leftupperarm.Name = "LeftUpperArm" | |
399 | leftupperarm.Parent = moving_anthro_npc | |
400 | leftupperarm.CFrame = CFrame.new(-7.519, 4.632, -58.139) * CFrame.Angles(3.142, -0.244, 3.142) | |
401 | leftshoulderrigattachment.Position = Vector3.new(0.165, 0.367, 0.036) | |
402 | leftshoulderrigattachment.Name = "LeftShoulderRigAttachment" | |
403 | leftshoulderrigattachment.CFrame = CFrame.new(0.165, 0.367, 0.036) | |
404 | leftshoulderrigattachment.Parent = leftupperarm | |
405 | originalpivot_10.Value = Vector3.new(0.132, 0.294, 0.029) | |
406 | originalpivot_10.Name = "OriginalPivot" | |
407 | originalpivot_10.Parent = leftshoulderrigattachment | |
408 | leftelbowrigattachment_2.Position = Vector3.new(-0.116, -0.543, 0.05) | |
409 | leftelbowrigattachment_2.Name = "LeftElbowRigAttachment" | |
410 | leftelbowrigattachment_2.CFrame = CFrame.new(-0.116, -0.543, 0.05) | |
411 | leftelbowrigattachment_2.Parent = leftupperarm | |
412 | originalpivot_11.Value = Vector3.new(-0.093, -0.434, 0.04) | |
413 | originalpivot_11.Name = "OriginalPivot" | |
414 | originalpivot_11.Parent = leftelbowrigattachment_2 | |
415 | leftshoulderattachment.Position = Vector3.new(0.109, 0.698, -0.048) | |
416 | leftshoulderattachment.Name = "LeftShoulderAttachment" | |
417 | leftshoulderattachment.CFrame = CFrame.new(0.109, 0.698, -0.048) | |
418 | leftshoulderattachment.Parent = leftupperarm | |
419 | originalpivot_12.Value = Vector3.new(0.087, 0.559, -0.039) | |
420 | originalpivot_12.Name = "OriginalPivot" | |
421 | originalpivot_12.Parent = leftshoulderattachment | |
422 | originalsize_4.Value = Vector3.new(0.395, 1.078, 0.514) | |
423 | originalsize_4.Name = "OriginalSize" | |
424 | originalsize_4.Parent = leftupperarm | |
425 | leftshoulder.Part1 = leftupperarm | |
426 | leftshoulder.C0 = CFrame.new(-0.619, 0.319, 0.129) | |
427 | leftshoulder.Part0 = uppertorso | |
428 | leftshoulder.C1 = CFrame.new(0.165, 0.367, 0.036) | |
429 | leftshoulder.Name = "LeftShoulder" | |
430 | leftshoulder.Parent = leftupperarm | |
431 | mesh_4.MeshType = Enum.MeshType.FileMesh | |
432 | mesh_4.Scale = Vector3.new(1.6, 1.6, 1.6) | |
433 | mesh_4.MeshId = "rbxassetid://875229564" | |
434 | mesh_4.TextureId = "rbxassetid://853067666" | |
435 | mesh_4.Parent = leftupperarm | |
436 | righthand.CanCollide = false | |
437 | righthand.Size = Vector3.new(0.369, 0.777, 0.423) | |
438 | righthand.BrickColor = BrickColor.new("Cool yellow") | |
439 | righthand.Material = Enum.Material.SmoothPlastic | |
440 | righthand.Color = Color3.new(0.992157, 0.917647, 0.552941) | |
441 | righthand.Orientation = Vector3.new(0, -166.02, 0) | |
442 | righthand.Name = "RightHand" | |
443 | righthand.Parent = moving_anthro_npc | |
444 | righthand.CFrame = CFrame.new(-8.973, 2.811, -57.439) * CFrame.Angles(3.142, -0.244, 3.142) | |
445 | rightwristrigattachment.Position = Vector3.new(0.104, 0.272, 0.043) | |
446 | rightwristrigattachment.Name = "RightWristRigAttachment" | |
447 | rightwristrigattachment.CFrame = CFrame.new(0.104, 0.272, 0.043) | |
448 | rightwristrigattachment.Parent = righthand | |
449 | originalpivot_13.Value = Vector3.new(0.083, 0.218, 0.034) | |
450 | originalpivot_13.Name = "OriginalPivot" | |
451 | originalpivot_13.Parent = rightwristrigattachment | |
452 | rightgripattachment.Rotation = Vector3.new(-90, 0, 0) | |
453 | rightgripattachment.CFrame = CFrame.new(-0.033, 0.006, 0.279) * CFrame.Angles(-1.571, 0, 0) | |
454 | rightgripattachment.Orientation = Vector3.new(-90, 0, 0) | |
455 | rightgripattachment.Name = "RightGripAttachment" | |
456 | rightgripattachment.SecondaryAxis = Vector3.new(0, 0, -1) | |
457 | rightgripattachment.Position = Vector3.new(-0.033, 0.006, 0.279) | |
458 | rightgripattachment.Parent = righthand | |
459 | originalpivot_14.Value = Vector3.new(-0.027, 0.005, 0.224) | |
460 | originalpivot_14.Name = "OriginalPivot" | |
461 | originalpivot_14.Parent = rightgripattachment | |
462 | originalsize_5.Value = Vector3.new(0.295, 0.621, 0.339) | |
463 | originalsize_5.Name = "OriginalSize" | |
464 | originalsize_5.Parent = righthand | |
465 | rightwrist.Part1 = righthand | |
466 | rightwrist.C0 = CFrame.new(0.019, -0.508, -0.166) | |
467 | rightwrist.Part0 = rightlowerarm | |
468 | rightwrist.C1 = CFrame.new(0.104, 0.272, 0.043) | |
469 | rightwrist.Name = "RightWrist" | |
470 | rightwrist.Parent = righthand | |
471 | mesh_5.MeshType = Enum.MeshType.FileMesh | |
472 | mesh_5.Scale = Vector3.new(1.6, 1.6, 1.6) | |
473 | mesh_5.MeshId = "rbxassetid://875229570" | |
474 | mesh_5.TextureId = "rbxassetid://853067666" | |
475 | mesh_5.Parent = righthand | |
476 | rightlowerarm.CanCollide = false | |
477 | rightlowerarm.Size = Vector3.new(0.353, 1.149, 0.587) | |
478 | rightlowerarm.BrickColor = BrickColor.new("Cool yellow") | |
479 | rightlowerarm.Material = Enum.Material.SmoothPlastic | |
480 | rightlowerarm.Color = Color3.new(0.992157, 0.917647, 0.552941) | |
481 | rightlowerarm.Orientation = Vector3.new(0, -166.02, 0) | |
482 | rightlowerarm.Name = "RightLowerArm" | |
483 | rightlowerarm.Parent = moving_anthro_npc | |
484 | rightlowerarm.CFrame = CFrame.new(-9.106, 3.591, -57.621) * CFrame.Angles(3.142, -0.244, 3.142) | |
485 | rightelbowrigattachment.Position = Vector3.new(0.019, 0.498, 0.169) | |
486 | rightelbowrigattachment.Name = "RightElbowRigAttachment" | |
487 | rightelbowrigattachment.CFrame = CFrame.new(0.019, 0.498, 0.169) | |
488 | rightelbowrigattachment.Parent = rightlowerarm | |
489 | originalpivot_15.Value = Vector3.new(0.015, 0.398, 0.135) | |
490 | originalpivot_15.Name = "OriginalPivot" | |
491 | originalpivot_15.Parent = rightelbowrigattachment | |
492 | rightwristrigattachment_2.Position = Vector3.new(0.019, -0.508, -0.166) | |
493 | rightwristrigattachment_2.Name = "RightWristRigAttachment" | |
494 | rightwristrigattachment_2.CFrame = CFrame.new(0.019, -0.508, -0.166) | |
495 | rightwristrigattachment_2.Parent = rightlowerarm | |
496 | originalpivot_16.Value = Vector3.new(0.015, -0.406, -0.133) | |
497 | originalpivot_16.Name = "OriginalPivot" | |
498 | originalpivot_16.Parent = rightwristrigattachment_2 | |
499 | originalsize_6.Value = Vector3.new(0.282, 0.919, 0.469) | |
500 | originalsize_6.Name = "OriginalSize" | |
501 | originalsize_6.Parent = rightlowerarm | |
502 | rightelbow.Part1 = rightlowerarm | |
503 | rightelbow.C0 = CFrame.new(0.116, -0.543, 0.05) | |
504 | rightelbow.Part0 = rightupperarm | |
505 | rightelbow.C1 = CFrame.new(0.019, 0.498, 0.169) | |
506 | rightelbow.Name = "RightElbow" | |
507 | rightelbow.Parent = rightlowerarm | |
508 | mesh_6.MeshType = Enum.MeshType.FileMesh | |
509 | mesh_6.Scale = Vector3.new(1.6, 1.6, 1.6) | |
510 | mesh_6.MeshId = "rbxassetid://875229578" | |
511 | mesh_6.TextureId = "rbxassetid://853067666" | |
512 | mesh_6.Parent = rightlowerarm | |
513 | rightupperarm.CanCollide = false | |
514 | rightupperarm.Size = Vector3.new(0.494, 1.347, 0.643) | |
515 | rightupperarm.BrickColor = BrickColor.new("Cool yellow") | |
516 | rightupperarm.Material = Enum.Material.SmoothPlastic | |
517 | rightupperarm.Color = Color3.new(0.992157, 0.917647, 0.552941) | |
518 | rightupperarm.Orientation = Vector3.new(0, -166.02, 0) | |
519 | rightupperarm.Name = "RightUpperArm" | |
520 | rightupperarm.Parent = moving_anthro_npc | |
521 | rightupperarm.CFrame = CFrame.new(-9.04, 4.632, -57.76) * CFrame.Angles(3.142, -0.244, 3.142) | |
522 | rightshoulderrigattachment.Position = Vector3.new(-0.165, 0.367, 0.036) | |
523 | rightshoulderrigattachment.Name = "RightShoulderRigAttachment" | |
524 | rightshoulderrigattachment.CFrame = CFrame.new(-0.165, 0.367, 0.036) | |
525 | rightshoulderrigattachment.Parent = rightupperarm | |
526 | originalpivot_17.Value = Vector3.new(-0.132, 0.294, 0.029) | |
527 | originalpivot_17.Name = "OriginalPivot" | |
528 | originalpivot_17.Parent = rightshoulderrigattachment | |
529 | rightelbowrigattachment_2.Position = Vector3.new(0.116, -0.543, 0.05) | |
530 | rightelbowrigattachment_2.Name = "RightElbowRigAttachment" | |
531 | rightelbowrigattachment_2.CFrame = CFrame.new(0.116, -0.543, 0.05) | |
532 | rightelbowrigattachment_2.Parent = rightupperarm | |
533 | originalpivot_18.Value = Vector3.new(0.093, -0.434, 0.04) | |
534 | originalpivot_18.Name = "OriginalPivot" | |
535 | originalpivot_18.Parent = rightelbowrigattachment_2 | |
536 | rightshoulderattachment.Position = Vector3.new(-0.109, 0.669, -0.048) | |
537 | rightshoulderattachment.Name = "RightShoulderAttachment" | |
538 | rightshoulderattachment.CFrame = CFrame.new(-0.109, 0.669, -0.048) | |
539 | rightshoulderattachment.Parent = rightupperarm | |
540 | originalpivot_19.Value = Vector3.new(-0.087, 0.535, -0.039) | |
541 | originalpivot_19.Name = "OriginalPivot" | |
542 | originalpivot_19.Parent = rightshoulderattachment | |
543 | originalsize_7.Value = Vector3.new(0.395, 1.078, 0.514) | |
544 | originalsize_7.Name = "OriginalSize" | |
545 | originalsize_7.Parent = rightupperarm | |
546 | rightshoulder.Part1 = rightupperarm | |
547 | rightshoulder.C0 = CFrame.new(0.619, 0.319, 0.129) | |
548 | rightshoulder.Part0 = uppertorso | |
549 | rightshoulder.C1 = CFrame.new(-0.165, 0.367, 0.036) | |
550 | rightshoulder.Name = "RightShoulder" | |
551 | rightshoulder.Parent = rightupperarm | |
552 | mesh_7.MeshType = Enum.MeshType.FileMesh | |
553 | mesh_7.Scale = Vector3.new(1.6, 1.6, 1.6) | |
554 | mesh_7.MeshId = "rbxassetid://875229582" | |
555 | mesh_7.TextureId = "rbxassetid://853067666" | |
556 | mesh_7.Parent = rightupperarm | |
557 | uppertorso.Size = Vector3.new(1.488, 2.231, 1.006) | |
558 | uppertorso.Color = Color3.new(0.156863, 0.498039, 0.278431) | |
559 | uppertorso.Name = "UpperTorso" | |
560 | uppertorso.Material = Enum.Material.SmoothPlastic | |
561 | uppertorso.BrickColor = BrickColor.new("Dark green") | |
562 | uppertorso.Orientation = Vector3.new(0, -166.02, 0) | |
563 | uppertorso.Parent = moving_anthro_npc | |
564 | uppertorso.CFrame = CFrame.new(-8.257, 4.68, -57.859) * CFrame.Angles(3.142, -0.244, 3.142) | |
565 | waistrigattachment.Position = Vector3.new(0, -0.843, 0.045) | |
566 | waistrigattachment.Name = "WaistRigAttachment" | |
567 | waistrigattachment.CFrame = CFrame.new(0, -0.843, 0.045) | |
568 | waistrigattachment.Parent = uppertorso | |
569 | originalpivot_20.Value = Vector3.new(0, -0.674, 0.036) | |
570 | originalpivot_20.Name = "OriginalPivot" | |
571 | originalpivot_20.Parent = waistrigattachment | |
572 | neckrigattachment_2.Position = Vector3.new(0, 0.981, -0.046) | |
573 | neckrigattachment_2.Name = "NeckRigAttachment" | |
574 | neckrigattachment_2.CFrame = CFrame.new(0, 0.981, -0.046) | |
575 | neckrigattachment_2.Parent = uppertorso | |
576 | originalpivot_21.Value = Vector3.new(0, 0.785, -0.037) | |
577 | originalpivot_21.Name = "OriginalPivot" | |
578 | originalpivot_21.Parent = neckrigattachment_2 | |
579 | leftshoulderrigattachment_2.Position = Vector3.new(-0.619, 0.319, 0.129) | |
580 | leftshoulderrigattachment_2.Name = "LeftShoulderRigAttachment" | |
581 | leftshoulderrigattachment_2.CFrame = CFrame.new(-0.619, 0.319, 0.129) | |
582 | leftshoulderrigattachment_2.Parent = uppertorso | |
583 | originalpivot_22.Value = Vector3.new(-0.495, 0.255, 0.103) | |
584 | originalpivot_22.Name = "OriginalPivot" | |
585 | originalpivot_22.Parent = leftshoulderrigattachment_2 | |
586 | rightshoulderrigattachment_2.Position = Vector3.new(0.619, 0.319, 0.129) | |
587 | rightshoulderrigattachment_2.Name = "RightShoulderRigAttachment" | |
588 | rightshoulderrigattachment_2.CFrame = CFrame.new(0.619, 0.319, 0.129) | |
589 | rightshoulderrigattachment_2.Parent = uppertorso | |
590 | originalpivot_23.Value = Vector3.new(0.495, 0.255, 0.103) | |
591 | originalpivot_23.Name = "OriginalPivot" | |
592 | originalpivot_23.Parent = rightshoulderrigattachment_2 | |
593 | bodyfrontattachment.Position = Vector3.new(0, -0.425, -0.48) | |
594 | bodyfrontattachment.Name = "BodyFrontAttachment" | |
595 | bodyfrontattachment.CFrame = CFrame.new(0, -0.425, -0.48) | |
596 | bodyfrontattachment.Parent = uppertorso | |
597 | originalpivot_24.Value = Vector3.new(0, -0.34, -0.384) | |
598 | originalpivot_24.Name = "OriginalPivot" | |
599 | originalpivot_24.Parent = bodyfrontattachment | |
600 | bodybackattachment.Position = Vector3.new(0, -0.425, 0.32) | |
601 | bodybackattachment.Name = "BodyBackAttachment" | |
602 | bodybackattachment.CFrame = CFrame.new(0, -0.425, 0.32) | |
603 | bodybackattachment.Parent = uppertorso | |
604 | originalpivot_25.Value = Vector3.new(0, -0.34, 0.256) | |
605 | originalpivot_25.Name = "OriginalPivot" | |
606 | originalpivot_25.Parent = bodybackattachment | |
607 | neckattachment.Position = Vector3.new(0, 0.825, 0.045) | |
608 | neckattachment.Name = "NeckAttachment" | |
609 | neckattachment.CFrame = CFrame.new(0, 0.825, 0.045) | |
610 | neckattachment.Parent = uppertorso | |
611 | originalpivot_26.Value = Vector3.new(0, 0.66, 0.036) | |
612 | originalpivot_26.Name = "OriginalPivot" | |
613 | originalpivot_26.Parent = neckattachment | |
614 | rightcollarattachment.Position = Vector3.new(0.438, 0.688, 0.045) | |
615 | rightcollarattachment.Name = "RightCollarAttachment" | |
616 | rightcollarattachment.CFrame = CFrame.new(0.438, 0.688, 0.045) | |
617 | rightcollarattachment.Parent = uppertorso | |
618 | originalpivot_27.Value = Vector3.new(0.35, 0.55, 0.036) | |
619 | originalpivot_27.Name = "OriginalPivot" | |
620 | originalpivot_27.Parent = rightcollarattachment | |
621 | leftcollarattachment.Position = Vector3.new(-0.437, 0.688, 0.045) | |
622 | leftcollarattachment.Name = "LeftCollarAttachment" | |
623 | leftcollarattachment.CFrame = CFrame.new(-0.437, 0.688, 0.045) | |
624 | leftcollarattachment.Parent = uppertorso | |
625 | originalpivot_28.Value = Vector3.new(-0.35, 0.55, 0.036) | |
626 | originalpivot_28.Name = "OriginalPivot" | |
627 | originalpivot_28.Parent = leftcollarattachment | |
628 | originalsize_8.Value = Vector3.new(1.19, 1.785, 0.805) | |
629 | originalsize_8.Name = "OriginalSize" | |
630 | originalsize_8.Parent = uppertorso | |
631 | waist.Part1 = uppertorso | |
632 | waist.C0 = CFrame.new(0, 0.45, 0.091) | |
633 | waist.Part0 = lowertorso | |
634 | waist.C1 = CFrame.new(0, -0.843, 0.045) | |
635 | waist.Name = "Waist" | |
636 | waist.Parent = uppertorso | |
637 | mesh_8.Offset = Vector3.new(0, 0.09, 0) | |
638 | mesh_8.MeshId = "rbxassetid://875229590" | |
639 | mesh_8.Scale = Vector3.new(1.4, 1.4, 1.4) | |
640 | mesh_8.TextureId = "rbxassetid://853067666" | |
641 | mesh_8.MeshType = Enum.MeshType.FileMesh | |
642 | mesh_8.Parent = uppertorso | |
643 | leftfoot.CanCollide = false | |
644 | leftfoot.Size = Vector3.new(0.433, 0.504, 1.064) | |
645 | leftfoot.BrickColor = BrickColor.new("Bright blue") | |
646 | leftfoot.Material = Enum.Material.SmoothPlastic | |
647 | leftfoot.Color = Color3.new(0.0509804, 0.411765, 0.67451) | |
648 | leftfoot.Orientation = Vector3.new(0, -166.02, 0) | |
649 | leftfoot.Name = "LeftFoot" | |
650 | leftfoot.Parent = moving_anthro_npc | |
651 | leftfoot.CFrame = CFrame.new(-7.941, 0.253, -57.772) * CFrame.Angles(3.142, -0.244, 3.142) | |
652 | leftanklerigattachment.Position = Vector3.new(-0.033, 0.003, 0.225) | |
653 | leftanklerigattachment.Name = "LeftAnkleRigAttachment" | |
654 | leftanklerigattachment.CFrame = CFrame.new(-0.033, 0.003, 0.225) | |
655 | leftanklerigattachment.Parent = leftfoot | |
656 | originalpivot_29.Value = Vector3.new(-0.027, 0.002, 0.18) | |
657 | originalpivot_29.Name = "OriginalPivot" | |
658 | originalpivot_29.Parent = leftanklerigattachment | |
659 | originalsize_9.Value = Vector3.new(0.346, 0.403, 0.851) | |
660 | originalsize_9.Name = "OriginalSize" | |
661 | originalsize_9.Parent = leftfoot | |
662 | leftankle.Part1 = leftfoot | |
663 | leftankle.C0 = CFrame.new(-0.021, -0.907, -0.018) | |
664 | leftankle.Part0 = leftlowerleg | |
665 | leftankle.C1 = CFrame.new(-0.033, 0.003, 0.225) | |
666 | leftankle.Name = "LeftAnkle" | |
667 | leftankle.Parent = leftfoot | |
668 | mesh_9.MeshType = Enum.MeshType.FileMesh | |
669 | mesh_9.Scale = Vector3.new(1.6, 1.6, 1.6) | |
670 | mesh_9.MeshId = "rbxassetid://875229596" | |
671 | mesh_9.TextureId = "rbxassetid://853067666" | |
672 | mesh_9.Parent = leftfoot | |
673 | leftlowerleg.CanCollide = false | |
674 | leftlowerleg.Size = Vector3.new(0.567, 1.823, 0.723) | |
675 | leftlowerleg.BrickColor = BrickColor.new("Bright blue") | |
676 | leftlowerleg.Material = Enum.Material.SmoothPlastic | |
677 | leftlowerleg.Color = Color3.new(0.0509804, 0.411765, 0.67451) | |
678 | leftlowerleg.Orientation = Vector3.new(0, -166.02, 0) | |
679 | leftlowerleg.Name = "LeftLowerLeg" | |
680 | leftlowerleg.Parent = moving_anthro_npc | |
681 | leftlowerleg.CFrame = CFrame.new(-7.988, 1.163, -58.011) * CFrame.Angles(3.142, -0.244, 3.142) | |
682 | leftkneerigattachment.Position = Vector3.new(-0.021, 0.825, -0.037) | |
683 | leftkneerigattachment.Name = "LeftKneeRigAttachment" | |
684 | leftkneerigattachment.CFrame = CFrame.new(-0.021, 0.825, -0.037) | |
685 | leftkneerigattachment.Parent = leftlowerleg | |
686 | originalpivot_30.Value = Vector3.new(-0.017, 0.66, -0.029) | |
687 | originalpivot_30.Name = "OriginalPivot" | |
688 | originalpivot_30.Parent = leftkneerigattachment | |
689 | leftanklerigattachment_2.Position = Vector3.new(-0.021, -0.907, -0.018) | |
690 | leftanklerigattachment_2.Name = "LeftAnkleRigAttachment" | |
691 | leftanklerigattachment_2.CFrame = CFrame.new(-0.021, -0.907, -0.018) | |
692 | leftanklerigattachment_2.Parent = leftlowerleg | |
693 | originalpivot_31.Value = Vector3.new(-0.017, -0.726, -0.014) | |
694 | originalpivot_31.Name = "OriginalPivot" | |
695 | originalpivot_31.Parent = leftanklerigattachment_2 | |
696 | originalsize_10.Value = Vector3.new(0.454, 1.459, 0.578) | |
697 | originalsize_10.Name = "OriginalSize" | |
698 | originalsize_10.Parent = leftlowerleg | |
699 | leftknee.Part1 = leftlowerleg | |
700 | leftknee.C0 = CFrame.new(0.008, -0.594, 0.093) | |
701 | leftknee.Part0 = leftupperleg | |
702 | leftknee.C1 = CFrame.new(-0.021, 0.825, -0.037) | |
703 | leftknee.Name = "LeftKnee" | |
704 | leftknee.Parent = leftlowerleg | |
705 | mesh_10.Offset = Vector3.new(0, 0.2, 0) | |
706 | mesh_10.MeshId = "rbxassetid://875229599" | |
707 | mesh_10.Scale = Vector3.new(1.6, 1.6, 1.6) | |
708 | mesh_10.TextureId = "rbxassetid://853067666" | |
709 | mesh_10.MeshType = Enum.MeshType.FileMesh | |
710 | mesh_10.Parent = leftlowerleg | |
711 | leftupperleg.CanCollide = false | |
712 | leftupperleg.Size = Vector3.new(0.617, 1.891, 0.802) | |
713 | leftupperleg.BrickColor = BrickColor.new("Bright blue") | |
714 | leftupperleg.Material = Enum.Material.SmoothPlastic | |
715 | leftupperleg.Color = Color3.new(0.0509804, 0.411765, 0.67451) | |
716 | leftupperleg.Orientation = Vector3.new(0, -166.02, 0) | |
717 | leftupperleg.Name = "LeftUpperLeg" | |
718 | leftupperleg.Parent = moving_anthro_npc | |
719 | leftupperleg.CFrame = CFrame.new(-7.928, 2.582, -57.892) * CFrame.Angles(3.142, -0.244, 3.142) | |
720 | lefthiprigattachment.Position = Vector3.new(0.008, 0.846, -0.019) | |
721 | lefthiprigattachment.Name = "LeftHipRigAttachment" | |
722 | lefthiprigattachment.CFrame = CFrame.new(0.008, 0.846, -0.019) | |
723 | lefthiprigattachment.Parent = leftupperleg | |
724 | originalpivot_32.Value = Vector3.new(0.006, 0.677, -0.015) | |
725 | originalpivot_32.Name = "OriginalPivot" | |
726 | originalpivot_32.Parent = lefthiprigattachment | |
727 | leftkneerigattachment_2.Position = Vector3.new(0.008, -0.594, 0.093) | |
728 | leftkneerigattachment_2.Name = "LeftKneeRigAttachment" | |
729 | leftkneerigattachment_2.CFrame = CFrame.new(0.008, -0.594, 0.093) | |
730 | leftkneerigattachment_2.Parent = leftupperleg | |
731 | originalpivot_33.Value = Vector3.new(0.006, -0.476, 0.075) | |
732 | originalpivot_33.Name = "OriginalPivot" | |
733 | originalpivot_33.Parent = leftkneerigattachment_2 | |
734 | originalsize_11.Value = Vector3.new(0.494, 1.513, 0.642) | |
735 | originalsize_11.Name = "OriginalSize" | |
736 | originalsize_11.Parent = leftupperleg | |
737 | lefthip.Part1 = leftupperleg | |
738 | lefthip.C0 = CFrame.new(-0.319, 0.041, -0.021) | |
739 | lefthip.Part0 = lowertorso | |
740 | lefthip.C1 = CFrame.new(0.008, 0.846, -0.019) | |
741 | lefthip.Name = "LeftHip" | |
742 | lefthip.Parent = leftupperleg | |
743 | mesh_11.Offset = Vector3.new(0, 0.1, 0) | |
744 | mesh_11.MeshId = "rbxassetid://875229605" | |
745 | mesh_11.Scale = Vector3.new(1.5, 1, 1.5) | |
746 | mesh_11.TextureId = "rbxassetid://853067666" | |
747 | mesh_11.MeshType = Enum.MeshType.FileMesh | |
748 | mesh_11.Parent = leftupperleg | |
749 | rightfoot.CanCollide = false | |
750 | rightfoot.Size = Vector3.new(0.433, 0.504, 1.064) | |
751 | rightfoot.BrickColor = BrickColor.new("Bright blue") | |
752 | rightfoot.Material = Enum.Material.SmoothPlastic | |
753 | rightfoot.Color = Color3.new(0.0509804, 0.411765, 0.67451) | |
754 | rightfoot.Orientation = Vector3.new(0, -166.02, 0) | |
755 | rightfoot.Name = "RightFoot" | |
756 | rightfoot.Parent = moving_anthro_npc | |
757 | rightfoot.CFrame = CFrame.new(-8.496, 0.252, -57.633) * CFrame.Angles(3.142, -0.244, 3.142) | |
758 | rightanklerigattachment.Position = Vector3.new(0.034, 0.002, 0.225) | |
759 | rightanklerigattachment.Name = "RightAnkleRigAttachment" | |
760 | rightanklerigattachment.CFrame = CFrame.new(0.034, 0.002, 0.225) | |
761 | rightanklerigattachment.Parent = rightfoot | |
762 | originalpivot_34.Value = Vector3.new(0.027, 0.002, 0.18) | |
763 | originalpivot_34.Name = "OriginalPivot" | |
764 | originalpivot_34.Parent = rightanklerigattachment | |
765 | originalsize_12.Value = Vector3.new(0.346, 0.403, 0.851) | |
766 | originalsize_12.Name = "OriginalSize" | |
767 | originalsize_12.Parent = rightfoot | |
768 | rightankle.Part1 = rightfoot | |
769 | rightankle.C0 = CFrame.new(0.021, -0.908, -0.018) | |
770 | rightankle.Part0 = rightlowerleg | |
771 | rightankle.C1 = CFrame.new(0.034, 0.002, 0.225) | |
772 | rightankle.Name = "RightAnkle" | |
773 | rightankle.Parent = rightfoot | |
774 | mesh_12.MeshType = Enum.MeshType.FileMesh | |
775 | mesh_12.Scale = Vector3.new(1.6, 1.6, 1.6) | |
776 | mesh_12.MeshId = "rbxassetid://875229610" | |
777 | mesh_12.TextureId = "rbxassetid://853067666" | |
778 | mesh_12.Parent = rightfoot | |
779 | rightlowerleg.CanCollide = false | |
780 | rightlowerleg.Size = Vector3.new(0.567, 1.823, 0.723) | |
781 | rightlowerleg.BrickColor = BrickColor.new("Bright blue") | |
782 | rightlowerleg.Material = Enum.Material.SmoothPlastic | |
783 | rightlowerleg.Color = Color3.new(0.0509804, 0.411765, 0.67451) | |
784 | rightlowerleg.Orientation = Vector3.new(0, -166.02, 0) | |
785 | rightlowerleg.Name = "RightLowerLeg" | |
786 | rightlowerleg.Parent = moving_anthro_npc | |
787 | rightlowerleg.CFrame = CFrame.new(-8.567, 1.162, -57.866) * CFrame.Angles(3.142, -0.244, 3.142) | |
788 | rightkneerigattachment.Position = Vector3.new(0.021, 0.825, -0.036) | |
789 | rightkneerigattachment.Name = "RightKneeRigAttachment" | |
790 | rightkneerigattachment.CFrame = CFrame.new(0.021, 0.825, -0.036) | |
791 | rightkneerigattachment.Parent = rightlowerleg | |
792 | originalpivot_35.Value = Vector3.new(0.017, 0.66, -0.029) | |
793 | originalpivot_35.Name = "OriginalPivot" | |
794 | originalpivot_35.Parent = rightkneerigattachment | |
795 | rightanklerigattachment_2.Position = Vector3.new(0.021, -0.908, -0.018) | |
796 | rightanklerigattachment_2.Name = "RightAnkleRigAttachment" | |
797 | rightanklerigattachment_2.CFrame = CFrame.new(0.021, -0.908, -0.018) | |
798 | rightanklerigattachment_2.Parent = rightlowerleg | |
799 | originalpivot_36.Value = Vector3.new(0.017, -0.726, -0.014) | |
800 | originalpivot_36.Name = "OriginalPivot" | |
801 | originalpivot_36.Parent = rightanklerigattachment_2 | |
802 | originalsize_13.Value = Vector3.new(0.454, 1.459, 0.578) | |
803 | originalsize_13.Name = "OriginalSize" | |
804 | originalsize_13.Parent = rightlowerleg | |
805 | rightknee.Part1 = rightlowerleg | |
806 | rightknee.C0 = CFrame.new(-0.007, -0.595, 0.093) | |
807 | rightknee.Part0 = rightupperleg | |
808 | rightknee.C1 = CFrame.new(0.021, 0.825, -0.036) | |
809 | rightknee.Name = "RightKnee" | |
810 | rightknee.Parent = rightlowerleg | |
811 | mesh_13.Offset = Vector3.new(0, 0.2, 0) | |
812 | mesh_13.MeshId = "rbxassetid://875229614" | |
813 | mesh_13.Scale = Vector3.new(1.6, 1.6, 1.6) | |
814 | mesh_13.TextureId = "rbxassetid://853067666" | |
815 | mesh_13.MeshType = Enum.MeshType.FileMesh | |
816 | mesh_13.Parent = rightlowerleg | |
817 | rightupperleg.CanCollide = false | |
818 | rightupperleg.Size = Vector3.new(0.617, 1.891, 0.802) | |
819 | rightupperleg.BrickColor = BrickColor.new("Bright blue") | |
820 | rightupperleg.Material = Enum.Material.SmoothPlastic | |
821 | rightupperleg.Color = Color3.new(0.0509804, 0.411765, 0.67451) | |
822 | rightupperleg.Orientation = Vector3.new(0, -166.02, 0) | |
823 | rightupperleg.Name = "RightUpperLeg" | |
824 | rightupperleg.Parent = moving_anthro_npc | |
825 | rightupperleg.CFrame = CFrame.new(-8.563, 2.582, -57.734) * CFrame.Angles(3.142, -0.244, 3.142) | |
826 | righthiprigattachment.Position = Vector3.new(-0.007, 0.846, -0.019) | |
827 | righthiprigattachment.Name = "RightHipRigAttachment" | |
828 | righthiprigattachment.CFrame = CFrame.new(-0.007, 0.846, -0.019) | |
829 | righthiprigattachment.Parent = rightupperleg | |
830 | originalpivot_37.Value = Vector3.new(-0.006, 0.677, -0.015) | |
831 | originalpivot_37.Name = "OriginalPivot" | |
832 | originalpivot_37.Parent = righthiprigattachment | |
833 | rightkneerigattachment_2.Position = Vector3.new(-0.007, -0.595, 0.093) | |
834 | rightkneerigattachment_2.Name = "RightKneeRigAttachment" | |
835 | rightkneerigattachment_2.CFrame = CFrame.new(-0.007, -0.595, 0.093) | |
836 | rightkneerigattachment_2.Parent = rightupperleg | |
837 | originalpivot_38.Value = Vector3.new(-0.006, -0.476, 0.075) | |
838 | originalpivot_38.Name = "OriginalPivot" | |
839 | originalpivot_38.Parent = rightkneerigattachment_2 | |
840 | originalsize_14.Value = Vector3.new(0.494, 1.513, 0.642) | |
841 | originalsize_14.Name = "OriginalSize" | |
842 | originalsize_14.Parent = rightupperleg | |
843 | righthip.Part1 = rightupperleg | |
844 | righthip.C0 = CFrame.new(0.32, 0.041, -0.021) | |
845 | righthip.Part0 = lowertorso | |
846 | righthip.C1 = CFrame.new(-0.007, 0.846, -0.019) | |
847 | righthip.Name = "RightHip" | |
848 | righthip.Parent = rightupperleg | |
849 | mesh_14.Offset = Vector3.new(0, 0.1, 0) | |
850 | mesh_14.MeshId = "rbxassetid://875229618" | |
851 | mesh_14.Scale = Vector3.new(1.5, 1, 1.5) | |
852 | mesh_14.TextureId = "rbxassetid://853067666" | |
853 | mesh_14.MeshType = Enum.MeshType.FileMesh | |
854 | mesh_14.Parent = rightupperleg | |
855 | lowertorso.Size = Vector3.new(1.198, 0.868, 0.902) | |
856 | lowertorso.Color = Color3.new(0.156863, 0.498039, 0.278431) | |
857 | lowertorso.Name = "LowerTorso" | |
858 | lowertorso.Material = Enum.Material.SmoothPlastic | |
859 | lowertorso.BrickColor = BrickColor.new("Dark green") | |
860 | lowertorso.Orientation = Vector3.new(0, -166.02, 0) | |
861 | lowertorso.Parent = moving_anthro_npc | |
862 | lowertorso.CFrame = CFrame.new(-8.246, 3.387, -57.815) * CFrame.Angles(3.142, -0.244, 3.142) | |
863 | rootrigattachment_2.Position = Vector3.new(0, 0.056, 0.091) | |
864 | rootrigattachment_2.Name = "RootRigAttachment" | |
865 | rootrigattachment_2.CFrame = CFrame.new(0, 0.056, 0.091) | |
866 | rootrigattachment_2.Parent = lowertorso | |
867 | originalpivot_39.Value = Vector3.new(0, 0.045, 0.073) | |
868 | originalpivot_39.Name = "OriginalPivot" | |
869 | originalpivot_39.Parent = rootrigattachment_2 | |
870 | waistrigattachment_2.Position = Vector3.new(0, 0.45, 0.091) | |
871 | waistrigattachment_2.Name = "WaistRigAttachment" | |
872 | waistrigattachment_2.CFrame = CFrame.new(0, 0.45, 0.091) | |
873 | waistrigattachment_2.Parent = lowertorso | |
874 | originalpivot_40.Value = Vector3.new(0, 0.36, 0.073) | |
875 | originalpivot_40.Name = "OriginalPivot" | |
876 | originalpivot_40.Parent = waistrigattachment_2 | |
877 | lefthiprigattachment_2.Position = Vector3.new(-0.319, 0.041, -0.021) | |
878 | lefthiprigattachment_2.Name = "LeftHipRigAttachment" | |
879 | lefthiprigattachment_2.CFrame = CFrame.new(-0.319, 0.041, -0.021) | |
880 | lefthiprigattachment_2.Parent = lowertorso | |
881 | originalpivot_41.Value = Vector3.new(-0.256, 0.033, -0.017) | |
882 | originalpivot_41.Name = "OriginalPivot" | |
883 | originalpivot_41.Parent = lefthiprigattachment_2 | |
884 | righthiprigattachment_2.Position = Vector3.new(0.32, 0.041, -0.021) | |
885 | righthiprigattachment_2.Name = "RightHipRigAttachment" | |
886 | righthiprigattachment_2.CFrame = CFrame.new(0.32, 0.041, -0.021) | |
887 | righthiprigattachment_2.Parent = lowertorso | |
888 | originalpivot_42.Value = Vector3.new(0.256, 0.033, -0.017) | |
889 | originalpivot_42.Name = "OriginalPivot" | |
890 | originalpivot_42.Parent = righthiprigattachment_2 | |
891 | waistcenterattachment.Position = Vector3.new(0, -0.102, 0.091) | |
892 | waistcenterattachment.Name = "WaistCenterAttachment" | |
893 | waistcenterattachment.CFrame = CFrame.new(0, -0.102, 0.091) | |
894 | waistcenterattachment.Parent = lowertorso | |
895 | originalpivot_43.Value = Vector3.new(0, -0.081, 0.073) | |
896 | originalpivot_43.Name = "OriginalPivot" | |
897 | originalpivot_43.Parent = waistcenterattachment | |
898 | waistfrontattachment.Position = Vector3.new(0, -0.102, -0.221) | |
899 | waistfrontattachment.Name = "WaistFrontAttachment" | |
900 | waistfrontattachment.CFrame = CFrame.new(0, -0.102, -0.221) | |
901 | waistfrontattachment.Parent = lowertorso | |
902 | originalpivot_44.Value = Vector3.new(0, -0.081, -0.177) | |
903 | originalpivot_44.Name = "OriginalPivot" | |
904 | originalpivot_44.Parent = waistfrontattachment | |
905 | waistbackattachment.Position = Vector3.new(0, -0.102, 0.448) | |
906 | waistbackattachment.Name = "WaistBackAttachment" | |
907 | waistbackattachment.CFrame = CFrame.new(0, -0.102, 0.448) | |
908 | waistbackattachment.Parent = lowertorso | |
909 | originalpivot_45.Value = Vector3.new(0, -0.081, 0.358) | |
910 | originalpivot_45.Name = "OriginalPivot" | |
911 | originalpivot_45.Parent = waistbackattachment | |
912 | originalsize_15.Value = Vector3.new(0.958, 0.694, 0.722) | |
913 | originalsize_15.Name = "OriginalSize" | |
914 | originalsize_15.Parent = lowertorso | |
915 | root.Part1 = lowertorso | |
916 | root.Part0 = humanoidrootpart | |
917 | root.C1 = CFrame.new(0, 0.056, 0.091) | |
918 | root.Name = "Root" | |
919 | root.Parent = lowertorso | |
920 | mesh_15.MeshType = Enum.MeshType.FileMesh | |
921 | mesh_15.Scale = Vector3.new(1.4, 1.4, 1.4) | |
922 | mesh_15.MeshId = "rbxassetid://875229629" | |
923 | mesh_15.TextureId = "rbxassetid://853067666" | |
924 | mesh_15.Parent = lowertorso | |
925 | moving_anthro_npc.PrimaryPart = humanoidrootpart | |
926 | moving_anthro_npc.Name = game.Players.LocalPlayer.Name | |
927 | local plr = game.Players.LocalPlayer | |
928 | repeat wait(.2) until plr.Character | |
929 | plr.Character = moving_anthro_npc | |
930 | workspace.CurrentCamera.CameraSubject = humanoid | |
931 | workspace.CurrentCamera.CameraType = Enum.CameraType.Custom | |
932 | ||
933 | game:GetService("RunService").RenderStepped:Connect(function() | |
934 | ||
935 | humanoid:RemoveAccessories() | |
936 | humanoid.MaxHealth = 1e4556464 | |
937 | humanoid.Health = 1e4556464 | |
938 | ||
939 | end) | |
940 | ||
941 | ||
942 | ||
943 | ||
944 | ||
945 | ||
946 | ||
947 | ||
948 | ||
949 | ||
950 | ||
951 | ||
952 | ||
953 | ||
954 | ||
955 | ||
956 | ||
957 | local Figure = plr.Character | |
958 | local pose = "Standing" | |
959 | ||
960 | local currentAnim = "" | |
961 | local currentAnimInstance = nil | |
962 | local currentAnimTrack = nil | |
963 | local currentAnimKeyframeHandler = nil | |
964 | local currentAnimSpeed = 1.0 | |
965 | local animTable = {} | |
966 | local animNames = { | |
967 | idle = { | |
968 | { id = "http://www.roblox.com/asset/?id=507766666", weight = 1 }, | |
969 | { id = "http://www.roblox.com/asset/?id=507766951", weight = 1 }, | |
970 | { id = "http://www.roblox.com/asset/?id=507766388", weight = 9 } | |
971 | }, | |
972 | walk = { | |
973 | { id = "http://www.roblox.com/asset/?id=507777826", weight = 10 } | |
974 | }, | |
975 | run = { | |
976 | { id = "http://www.roblox.com/asset/?id=507767714", weight = 10 } | |
977 | }, | |
978 | swim = { | |
979 | { id = "http://www.roblox.com/asset/?id=507784897", weight = 10 } | |
980 | }, | |
981 | swimidle = { | |
982 | { id = "http://www.roblox.com/asset/?id=507785072", weight = 10 } | |
983 | }, | |
984 | jump = { | |
985 | { id = "http://www.roblox.com/asset/?id=507765000", weight = 10 } | |
986 | }, | |
987 | fall = { | |
988 | { id = "http://www.roblox.com/asset/?id=507767968", weight = 10 } | |
989 | }, | |
990 | climb = { | |
991 | { id = "http://www.roblox.com/asset/?id=507765644", weight = 10 } | |
992 | }, | |
993 | sit = { | |
994 | { id = "http://www.roblox.com/asset/?id=507768133", weight = 10 } | |
995 | }, | |
996 | toolnone = { | |
997 | { id = "http://www.roblox.com/asset/?id=507768375", weight = 10 } | |
998 | }, | |
999 | toolslash = { | |
1000 | { id = "http://www.roblox.com/asset/?id=507768375", weight = 10 } | |
1001 | -- { id = "slash.xml", weight = 10 } | |
1002 | }, | |
1003 | toollunge = { | |
1004 | { id = "http://www.roblox.com/asset/?id=507768375", weight = 10 } | |
1005 | }, | |
1006 | wave = { | |
1007 | { id = "http://www.roblox.com/asset/?id=507770239", weight = 10 } | |
1008 | }, | |
1009 | point = { | |
1010 | { id = "http://www.roblox.com/asset/?id=507770453", weight = 10 } | |
1011 | }, | |
1012 | dance = { | |
1013 | { id = "http://www.roblox.com/asset/?id=507771019", weight = 10 }, | |
1014 | { id = "http://www.roblox.com/asset/?id=507771955", weight = 10 }, | |
1015 | { id = "http://www.roblox.com/asset/?id=507772104", weight = 10 } | |
1016 | }, | |
1017 | dance2 = { | |
1018 | { id = "http://www.roblox.com/asset/?id=507776043", weight = 10 }, | |
1019 | { id = "http://www.roblox.com/asset/?id=507776720", weight = 10 }, | |
1020 | { id = "http://www.roblox.com/asset/?id=507776879", weight = 10 } | |
1021 | }, | |
1022 | dance3 = { | |
1023 | { id = "http://www.roblox.com/asset/?id=507777268", weight = 10 }, | |
1024 | { id = "http://www.roblox.com/asset/?id=507777451", weight = 10 }, | |
1025 | { id = "http://www.roblox.com/asset/?id=507777623", weight = 10 } | |
1026 | }, | |
1027 | laugh = { | |
1028 | { id = "http://www.roblox.com/asset/?id=507770818", weight = 10 } | |
1029 | }, | |
1030 | cheer = { | |
1031 | { id = "http://www.roblox.com/asset/?id=507770677", weight = 10 } | |
1032 | }, | |
1033 | } | |
1034 | ||
1035 | -- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote | |
1036 | local emoteNames = { wave = false, point = false, dance = true, dance2 = true, dance3 = true, laugh = false, cheer = false} | |
1037 | ||
1038 | math.randomseed(tick()) | |
1039 | ||
1040 | function configureAnimationSet(name, fileList) | |
1041 | if (animTable[name] ~= nil) then | |
1042 | for _, connection in pairs(animTable[name].connections) do | |
1043 | connection:disconnect() | |
1044 | end | |
1045 | end | |
1046 | animTable[name] = {} | |
1047 | animTable[name].count = 0 | |
1048 | animTable[name].totalWeight = 0 | |
1049 | animTable[name].connections = {} | |
1050 | ||
1051 | -- check for config values | |
1052 | local config = script:FindFirstChild(name) | |
1053 | if (config ~= nil) then | |
1054 | -- print("Loading anims " .. name) | |
1055 | table.insert(animTable[name].connections, config.ChildAdded:connect(function(child) configureAnimationSet(name, fileList) end)) | |
1056 | table.insert(animTable[name].connections, config.ChildRemoved:connect(function(child) configureAnimationSet(name, fileList) end)) | |
1057 | local idx = 1 | |
1058 | for _, childPart in pairs(config:GetChildren()) do | |
1059 | if (childPart:IsA("Animation")) then | |
1060 | table.insert(animTable[name].connections, childPart.Changed:connect(function(property) configureAnimationSet(name, fileList) end)) | |
1061 | animTable[name][idx] = {} | |
1062 | animTable[name][idx].anim = childPart | |
1063 | local weightObject = childPart:FindFirstChild("Weight") | |
1064 | if (weightObject == nil) then | |
1065 | animTable[name][idx].weight = 1 | |
1066 | else | |
1067 | animTable[name][idx].weight = weightObject.Value | |
1068 | end | |
1069 | animTable[name].count = animTable[name].count + 1 | |
1070 | animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight | |
1071 | -- print(name .. " [" .. idx .. "] " .. animTable[name][idx].anim.AnimationId .. " (" .. animTable[name][idx].weight .. ")") | |
1072 | idx = idx + 1 | |
1073 | end | |
1074 | end | |
1075 | end | |
1076 | ||
1077 | -- fallback to defaults | |
1078 | if (animTable[name].count <= 0) then | |
1079 | for idx, anim in pairs(fileList) do | |
1080 | animTable[name][idx] = {} | |
1081 | animTable[name][idx].anim = Instance.new("Animation") | |
1082 | animTable[name][idx].anim.Name = name | |
1083 | animTable[name][idx].anim.AnimationId = anim.id | |
1084 | animTable[name][idx].weight = anim.weight | |
1085 | animTable[name].count = animTable[name].count + 1 | |
1086 | animTable[name].totalWeight = animTable[name].totalWeight + anim.weight | |
1087 | -- print(name .. " [" .. idx .. "] " .. anim.id .. " (" .. anim.weight .. ")") | |
1088 | end | |
1089 | end | |
1090 | end | |
1091 | ||
1092 | -- Setup animation objects | |
1093 | function scriptChildModified(child) | |
1094 | local fileList = animNames[child.Name] | |
1095 | if (fileList ~= nil) then | |
1096 | configureAnimationSet(child.Name, fileList) | |
1097 | end | |
1098 | end | |
1099 | ||
1100 | script.ChildAdded:connect(scriptChildModified) | |
1101 | script.ChildRemoved:connect(scriptChildModified) | |
1102 | ||
1103 | ||
1104 | for name, fileList in pairs(animNames) do | |
1105 | configureAnimationSet(name, fileList) | |
1106 | end | |
1107 | ||
1108 | -- ANIMATION | |
1109 | ||
1110 | -- declarations | |
1111 | local toolAnim = "None" | |
1112 | local toolAnimTime = 0 | |
1113 | ||
1114 | local jumpAnimTime = 0 | |
1115 | local jumpAnimDuration = 0.31 | |
1116 | ||
1117 | local toolTransitionTime = 0.1 | |
1118 | local fallTransitionTime = 0.2 | |
1119 | ||
1120 | -- functions | |
1121 | ||
1122 | function stopAllAnimations() | |
1123 | local oldAnim = currentAnim | |
1124 | ||
1125 | -- return to idle if finishing an emote | |
1126 | if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then | |
1127 | oldAnim = "idle" | |
1128 | end | |
1129 | ||
1130 | currentAnim = "" | |
1131 | currentAnimInstance = nil | |
1132 | if (currentAnimKeyframeHandler ~= nil) then | |
1133 | currentAnimKeyframeHandler:disconnect() | |
1134 | end | |
1135 | ||
1136 | if (currentAnimTrack ~= nil) then | |
1137 | currentAnimTrack:Stop() | |
1138 | currentAnimTrack:Destroy() | |
1139 | currentAnimTrack = nil | |
1140 | end | |
1141 | return oldAnim | |
1142 | end | |
1143 | ||
1144 | function setAnimationSpeed(speed) | |
1145 | if speed ~= currentAnimSpeed then | |
1146 | currentAnimSpeed = speed | |
1147 | currentAnimTrack:AdjustSpeed(currentAnimSpeed) | |
1148 | end | |
1149 | end | |
1150 | ||
1151 | function keyFrameReachedFunc(frameName) | |
1152 | if (frameName == "End") then | |
1153 | -- print("Keyframe : ".. frameName) | |
1154 | ||
1155 | local repeatAnim = currentAnim | |
1156 | -- return to idle if finishing an emote | |
1157 | if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then | |
1158 | repeatAnim = "idle" | |
1159 | end | |
1160 | ||
1161 | local animSpeed = currentAnimSpeed | |
1162 | playAnimation(repeatAnim, 0.15, humanoid) | |
1163 | setAnimationSpeed(animSpeed) | |
1164 | end | |
1165 | end | |
1166 | ||
1167 | -- Preload animations | |
1168 | function playAnimation(animName, transitionTime, humanoid) | |
1169 | ||
1170 | local roll = math.random(1, animTable[animName].totalWeight) | |
1171 | local origRoll = roll | |
1172 | local idx = 1 | |
1173 | while (roll > animTable[animName][idx].weight) do | |
1174 | roll = roll - animTable[animName][idx].weight | |
1175 | idx = idx + 1 | |
1176 | end | |
1177 | ||
1178 | -- print(animName .. " " .. idx .. " [" .. origRoll .. "]") | |
1179 | ||
1180 | local anim = animTable[animName][idx].anim | |
1181 | ||
1182 | -- switch animation | |
1183 | if (anim ~= currentAnimInstance) then | |
1184 | ||
1185 | if (currentAnimTrack ~= nil) then | |
1186 | currentAnimTrack:Stop(transitionTime) | |
1187 | currentAnimTrack:Destroy() | |
1188 | end | |
1189 | ||
1190 | currentAnimSpeed = 1.0 | |
1191 | ||
1192 | -- load it to the humanoid; get AnimationTrack | |
1193 | currentAnimTrack = humanoid:LoadAnimation(anim) | |
1194 | ||
1195 | -- play the animation | |
1196 | currentAnimTrack:Play(transitionTime) | |
1197 | currentAnim = animName | |
1198 | currentAnimInstance = anim | |
1199 | ||
1200 | -- set up keyframe name triggers | |
1201 | if (currentAnimKeyframeHandler ~= nil) then | |
1202 | currentAnimKeyframeHandler:disconnect() | |
1203 | end | |
1204 | currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc) | |
1205 | ||
1206 | end | |
1207 | ||
1208 | end | |
1209 | ||
1210 | ------------------------------------------------------------------------------------------- | |
1211 | ------------------------------------------------------------------------------------------- | |
1212 | ||
1213 | local toolAnimName = "" | |
1214 | local toolAnimTrack = nil | |
1215 | local toolAnimInstance = nil | |
1216 | local currentToolAnimKeyframeHandler = nil | |
1217 | ||
1218 | function toolKeyFrameReachedFunc(frameName) | |
1219 | if (frameName == "End") then | |
1220 | -- print("Keyframe : ".. frameName) | |
1221 | playToolAnimation(toolAnimName, 0.0, humanoid) | |
1222 | end | |
1223 | end | |
1224 | ||
1225 | ||
1226 | function playToolAnimation(animName, transitionTime, humanoid) | |
1227 | ||
1228 | local roll = math.random(1, animTable[animName].totalWeight) | |
1229 | local origRoll = roll | |
1230 | local idx = 1 | |
1231 | while (roll > animTable[animName][idx].weight) do | |
1232 | roll = roll - animTable[animName][idx].weight | |
1233 | idx = idx + 1 | |
1234 | end | |
1235 | -- print(animName .. " * " .. idx .. " [" .. origRoll .. "]") | |
1236 | local anim = animTable[animName][idx].anim | |
1237 | ||
1238 | if (toolAnimInstance ~= anim) then | |
1239 | ||
1240 | if (toolAnimTrack ~= nil) then | |
1241 | toolAnimTrack:Stop() | |
1242 | toolAnimTrack:Destroy() | |
1243 | transitionTime = 0 | |
1244 | end | |
1245 | ||
1246 | -- load it to the humanoid; get AnimationTrack | |
1247 | toolAnimTrack = humanoid:LoadAnimation(anim) | |
1248 | ||
1249 | -- play the animation | |
1250 | toolAnimTrack:Play(transitionTime) | |
1251 | toolAnimName = animName | |
1252 | toolAnimInstance = anim | |
1253 | ||
1254 | currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc) | |
1255 | end | |
1256 | end | |
1257 | ||
1258 | function stopToolAnimations() | |
1259 | local oldAnim = toolAnimName | |
1260 | ||
1261 | if (currentToolAnimKeyframeHandler ~= nil) then | |
1262 | currentToolAnimKeyframeHandler:disconnect() | |
1263 | end | |
1264 | ||
1265 | toolAnimName = "" | |
1266 | toolAnimInstance = nil | |
1267 | if (toolAnimTrack ~= nil) then | |
1268 | toolAnimTrack:Stop() | |
1269 | toolAnimTrack:Destroy() | |
1270 | toolAnimTrack = nil | |
1271 | end | |
1272 | ||
1273 | ||
1274 | return oldAnim | |
1275 | end | |
1276 | ||
1277 | ------------------------------------------------------------------------------------------- | |
1278 | ------------------------------------------------------------------------------------------- | |
1279 | ||
1280 | ||
1281 | function onRunning(speed) | |
1282 | if speed > 0.01 then | |
1283 | local scale = 15.0 | |
1284 | playAnimation("walk", 0.1, humanoid) | |
1285 | setAnimationSpeed(speed / scale) | |
1286 | pose = "Running" | |
1287 | else | |
1288 | playAnimation("idle", 0.1, humanoid) | |
1289 | pose = "Standing" | |
1290 | end | |
1291 | end | |
1292 | ||
1293 | function onDied() | |
1294 | pose = "Dead" | |
1295 | end | |
1296 | ||
1297 | function onJumping() | |
1298 | playAnimation("jump", 0.1, humanoid) | |
1299 | jumpAnimTime = jumpAnimDuration | |
1300 | pose = "Jumping" | |
1301 | end | |
1302 | ||
1303 | function onClimbing(speed) | |
1304 | local scale = 5.0 | |
1305 | playAnimation("climb", 0.1, humanoid) | |
1306 | setAnimationSpeed(speed / scale) | |
1307 | pose = "Climbing" | |
1308 | end | |
1309 | ||
1310 | function onGettingUp() | |
1311 | pose = "GettingUp" | |
1312 | end | |
1313 | ||
1314 | function onFreeFall() | |
1315 | if (jumpAnimTime <= 0) then | |
1316 | playAnimation("fall", fallTransitionTime, humanoid) | |
1317 | end | |
1318 | pose = "FreeFall" | |
1319 | end | |
1320 | ||
1321 | function onFallingDown() | |
1322 | pose = "FallingDown" | |
1323 | end | |
1324 | ||
1325 | function onSeated() | |
1326 | pose = "Seated" | |
1327 | end | |
1328 | ||
1329 | function onPlatformStanding() | |
1330 | pose = "PlatformStanding" | |
1331 | end | |
1332 | ||
1333 | function onSwimming(speed) | |
1334 | if speed > 1.00 then | |
1335 | local scale = 10.0 | |
1336 | playAnimation("swim", 0.4, humanoid) | |
1337 | setAnimationSpeed(speed / scale) | |
1338 | pose = "Swimming" | |
1339 | else | |
1340 | playAnimation("swimidle", 0.4, humanoid) | |
1341 | pose = "Standing" | |
1342 | end | |
1343 | end | |
1344 | ||
1345 | function getTool() | |
1346 | for _, kid in ipairs(Figure:GetChildren()) do | |
1347 | if kid.className == "Tool" then return kid end | |
1348 | end | |
1349 | return nil | |
1350 | end | |
1351 | ||
1352 | function getToolAnim(tool) | |
1353 | for _, c in ipairs(tool:GetChildren()) do | |
1354 | if c.Name == "toolanim" and c.className == "StringValue" then | |
1355 | return c | |
1356 | end | |
1357 | end | |
1358 | return nil | |
1359 | end | |
1360 | ||
1361 | function animateTool() | |
1362 | ||
1363 | if (toolAnim == "None") then | |
1364 | playToolAnimation("toolnone", toolTransitionTime, humanoid) | |
1365 | return | |
1366 | end | |
1367 | ||
1368 | if (toolAnim == "Slash") then | |
1369 | playToolAnimation("toolslash", 0, humanoid) | |
1370 | return | |
1371 | end | |
1372 | ||
1373 | if (toolAnim == "Lunge") then | |
1374 | playToolAnimation("toollunge", 0, humanoid) | |
1375 | return | |
1376 | end | |
1377 | end | |
1378 | ||
1379 | function moveSit() | |
1380 | end | |
1381 | ||
1382 | local lastTick = 0 | |
1383 | ||
1384 | function move(time) | |
1385 | local amplitude = 1 | |
1386 | local frequency = 1 | |
1387 | local deltaTime = time - lastTick | |
1388 | lastTick = time | |
1389 | ||
1390 | local climbFudge = 0 | |
1391 | local setAngles = false | |
1392 | ||
1393 | if (jumpAnimTime > 0) then | |
1394 | jumpAnimTime = jumpAnimTime - deltaTime | |
1395 | end | |
1396 | ||
1397 | if (pose == "FreeFall" and jumpAnimTime <= 0) then | |
1398 | playAnimation("fall", fallTransitionTime, humanoid) | |
1399 | elseif (pose == "Seated") then | |
1400 | playAnimation("sit", 0.5, humanoid) | |
1401 | return | |
1402 | elseif (pose == "Running") then | |
1403 | playAnimation("walk", 0.1, humanoid) | |
1404 | elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then | |
1405 | stopAllAnimations() | |
1406 | amplitude = 0.1 | |
1407 | frequency = 1 | |
1408 | setAngles = true | |
1409 | end | |
1410 | ||
1411 | -- Tool Animation handling | |
1412 | local tool = getTool() | |
1413 | if tool then | |
1414 | ||
1415 | animStringValueObject = getToolAnim(tool) | |
1416 | ||
1417 | if animStringValueObject then | |
1418 | toolAnim = animStringValueObject.Value | |
1419 | -- message recieved, delete StringValue | |
1420 | animStringValueObject.Parent = nil | |
1421 | toolAnimTime = time + .3 | |
1422 | end | |
1423 | ||
1424 | if time > toolAnimTime then | |
1425 | toolAnimTime = 0 | |
1426 | toolAnim = "None" | |
1427 | end | |
1428 | ||
1429 | animateTool() | |
1430 | else | |
1431 | stopToolAnimations() | |
1432 | toolAnim = "None" | |
1433 | toolAnimInstance = nil | |
1434 | toolAnimTime = 0 | |
1435 | end | |
1436 | end | |
1437 | ||
1438 | -- connect events | |
1439 | humanoid.Died:connect(onDied) | |
1440 | humanoid.Running:connect(onRunning) | |
1441 | humanoid.Jumping:connect(onJumping) | |
1442 | humanoid.Climbing:connect(onClimbing) | |
1443 | humanoid.GettingUp:connect(onGettingUp) | |
1444 | humanoid.FreeFalling:connect(onFreeFall) | |
1445 | humanoid.FallingDown:connect(onFallingDown) | |
1446 | humanoid.Seated:connect(onSeated) | |
1447 | humanoid.PlatformStanding:connect(onPlatformStanding) | |
1448 | humanoid.Swimming:connect(onSwimming) | |
1449 | ||
1450 | Game.Players.LocalPlayer.Chatted:connect(function(msg) | |
1451 | local emote = "" | |
1452 | if (string.sub(msg, 1, 3) == "/e ") then | |
1453 | emote = string.sub(msg, 4) | |
1454 | elseif (string.sub(msg, 1, 7) == "/emote ") then | |
1455 | emote = string.sub(msg, 8) | |
1456 | end | |
1457 | ||
1458 | if (pose == "Standing" and emoteNames[emote] ~= nil) then | |
1459 | playAnimation(emote, 0.1, humanoid) | |
1460 | end | |
1461 | print("===> " .. string.sub(msg, 1, 3) .. "(" .. emote .. ")") | |
1462 | end) | |
1463 | ||
1464 | ||
1465 | -- main program | |
1466 | ||
1467 | local runService = game:service("RunService"); | |
1468 | ||
1469 | -- print("bottom") | |
1470 | ||
1471 | -- initialize to idle | |
1472 | playAnimation("idle", 0.1, humanoid) | |
1473 | pose = "Standing" | |
1474 | game:GetService("RunService").RenderStepped:Connect(function(step) | |
1475 | move(step) | |
1476 | end) |