SHOW:
|
|
- or go back to the newest paste.
1 | r2 = "Really Black" | |
2 | ||
3 | --declarations | |
4 | PI=math.pi | |
5 | TAU=PI*2 | |
6 | FLOATFORCE=196.25 | |
7 | DEBRIS=game:service'Debris' | |
8 | mr,md=math.random,math.rad | |
9 | cfn,v3n=CFrame.new,Vector3.new | |
10 | _A=nils | |
11 | ang=function(x,y,z)local a=CFrame.Angles(x or 0,y or 0,z or 0)_A=a return a end | |
12 | RS=game:service'RunService' | |
13 | numkp=NumberSequenceKeypoint.new | |
14 | colkp=ColorSequenceKeypoint.new | |
15 | bcol=BrickColor.new | |
16 | ||
17 | RS:UnbindFromRenderStep('Anim') | |
18 | ||
19 | --player specific... | |
20 | player = game:service'Players'.LocalPlayer | |
21 | character = player.Character | |
22 | torso = character.Torso | |
23 | head = character.Head | |
24 | rarm = character['Right Arm'] | |
25 | larm = character['Left Arm'] | |
26 | rleg = character['Right Leg'] | |
27 | lleg = character['Left Leg'] | |
28 | human = character.Humanoid | |
29 | root_j=character.HumanoidRootPart.RootJoint | |
30 | ||
31 | --Utilities... who needs them? | |
32 | ||
33 | function recurseHum(what) | |
34 | local res | |
35 | local p=what | |
36 | if what:IsA'Humanoid'then | |
37 | res=what | |
38 | else | |
39 | repeat | |
40 | p=p.Parent | |
41 | if p then | |
42 | local hum=p:FindFirstChild'Humanoid' | |
43 | if hum then | |
44 | res=hum | |
45 | break | |
46 | end | |
47 | end | |
48 | until p==nil | |
49 | end | |
50 | return res | |
51 | end | |
52 | function findHum(pos,rad,hum2) | |
53 | local hums={} | |
54 | function check(a) | |
55 | local res=false | |
56 | for i,ho in pairs(hums)do | |
57 | if a==ho then res=true end | |
58 | end | |
59 | return res | |
60 | end | |
61 | for i,v in pairs(Workspace:children())do | |
62 | if v:IsA'Model'and v~=Char and v~=(hum2 or Char) then | |
63 | for i,q in pairs(v:children())do | |
64 | if q:IsA'Humanoid' and q.Parent:FindFirstChild'Torso'and(q.Torso.Position-pos).magnitude < rad then | |
65 | if not check(q)then | |
66 | table.insert(hums,q) | |
67 | end | |
68 | end | |
69 | end | |
70 | end | |
71 | end | |
72 | return hums | |
73 | end | |
74 | ||
75 | function checkY(p1,p2,range,range2) | |
76 | local function checko() | |
77 | return ( (l(p1).X>l(p2).X-range2 and l(p1).X<l(p2).X+range2) and (l(p1).Z>l(p2).Z-range2 and l(p1).Z<l(p2).Z+range2) ) | |
78 | end | |
79 | if range2 then | |
80 | return (l(p1).Y > l(p2).Y-range and l(p2).Y < l(p2).Y+range) and checko() | |
81 | else | |
82 | return (l(p1).Y > l(p2).Y-range and l(p2).Y < l(p2).Y+range) | |
83 | end | |
84 | end | |
85 | ||
86 | udim=function(a,b,c,d) | |
87 | if type(a)=='string'then | |
88 | x,y=tostring(a):match('([%+%d%.%-%/%*]+),([%+%d%.%-%/%*]+)') | |
89 | return UDim2.new(x or 0,x2 or 0,y or 0,y2 or 0) | |
90 | else | |
91 | return UDim2.new(a or 0,c or 0,b or 0,d or 0) | |
92 | end end | |
93 | ||
94 | function l(a1,x,y,z,rx,ry,rz) | |
95 | local cf | |
96 | if tostring(a1):find(',') == nil then | |
97 | cf=a1.CFrame | |
98 | else cf=a1 end | |
99 | return cf*CFrame.new(x or 0,y or 0,z or 0)*CFrame.Angles( | |
100 | rx or 0,ry or 0,yz or 0) | |
101 | end | |
102 | function f(a) --turns thigns in to function returning the thing... f(l)(torso,0,2,0) | |
103 | return function(...) | |
104 | local args={...} | |
105 | return function() return a(unpack(args)) end | |
106 | end | |
107 | end | |
108 | ||
109 | function isIn(what,tab) --returns true if what is in tab. isIn("Troll", {"Tomato", "Troll", "Strawberry") --> true | |
110 | local res=false | |
111 | for i,v in next,tab do | |
112 | if v==what then | |
113 | res = true | |
114 | break | |
115 | end | |
116 | end | |
117 | return res | |
118 | end | |
119 | ||
120 | Weld = function(part0,part1,c0,c1,...) --over-engineered welding function which accepts many things | |
121 | local ar = {...} | |
122 | local cframe0,cframe1 | |
123 | local function checkf()local res=true | |
124 | for i,v in pairs(ar)do | |
125 | if type(v) ~= 'number' then | |
126 | res=false | |
127 | end | |
128 | end | |
129 | return res | |
130 | end | |
131 | if type(c0) == 'table' then | |
132 | cframe0 = CFrame.new(c0[1] or 0, c0[2] or 0, c0[3] or 0) * CFrame.Angles( | |
133 | c0[4] or 0, c0[5] or 0, c0[6] or 0) | |
134 | elseif type(c0) == 'userdata' then | |
135 | cframe0 = c0 | |
136 | elseif type(c0) == 'number' and checkf() then | |
137 | cframe0 = CFrame.new(c0 or 0,c1 or 0,ar[1] or 0) * CFrame.Angles(ar[2] or 0, ar[3] or 0, ar[4] or 0) | |
138 | end | |
139 | if type(c1) == 'table' then | |
140 | cframe1 = CFrame.new(c1[1] or 0, c1[2] or 0, c1[3] or 0) * CFrame.Angles( | |
141 | c1[4] or 0, c1[5] or 0, c1[6] or 0) | |
142 | elseif type(c1) == 'userdata' then | |
143 | cframe1 = c1 | |
144 | elseif type(c1) == 'number' and (not c0 or (c0 and type(c0) == 'table')) then | |
145 | cframe1 = CFrame.new(c1 or 0, ar[1] or 0, ar[2] or 0) * CFrame.Angles(ar[3] or 0, ar[4] or 0, ar[5] or 0) | |
146 | end | |
147 | for i,v in pairs(ar)do | |
148 | if type(v) == 'table' then | |
149 | cframe1 = CFrame.new(v[1] or 0, v[2] or 0, v[3] or 0) * CFrame.new(v[4] or 0, v[5] or 0, v[6] or 0) | |
150 | elseif type(v) == 'userdata' then | |
151 | cframe1 = v | |
152 | end | |
153 | end | |
154 | ||
155 | cframe0,cframe1 = cframe1,cframe0 | |
156 | part0.Position=part1.Position | |
157 | local weld = Instance.new("Weld") | |
158 | weld.Part0 = part0 | |
159 | weld.Part1 = part1 | |
160 | weld.C0 = cframe0 or CFrame.new() | |
161 | weld.C1 = cframe1 or CFrame.new() | |
162 | if weld:IsA'Motor'then weld.MaxVelocity = set_maxvel or .1 end | |
163 | weld.Parent = part0 | |
164 | _2=weld | |
165 | return weld | |
166 | end | |
167 | ||
168 | mesh_ids = { | |
169 | spikeball = "rbxassetid://24388358"; | |
170 | spike = "rbxassetid://1033714"; | |
171 | ring = "rbxassetid://3270017"; | |
172 | coil = 'rbxassetid://16606212'; | |
173 | diamond = 'rbxassetid://9756362'; | |
174 | rock = 'rbxassetid://1290033'; | |
175 | gear = 'rbxassetid://156292343'; | |
176 | crown = 'rbxassetid://20329976'; | |
177 | orb = 'rbxassetid://34795798'; | |
178 | heart = 'rbxassetid://431221914'; | |
179 | dragon = 'rbxassetid://24478215'; | |
180 | half_sphere = 'rbxassetid://475668276'; | |
181 | star = 'rbxassetid://45428961'; | |
182 | } | |
183 | mesh_texs = { | |
184 | rock = 'rbxassetid://1290030'; | |
185 | dragon = 'rbxassetid://25665033'; | |
186 | } | |
187 | mesh_scales={ | |
188 | diamond = v3n(0.75, 0.75, 0.75); | |
189 | spikeball = v3n(1.05, 1.05, 1.05); | |
190 | spike = v3n(0.5, 1.5, 0.5); | |
191 | gear = v3n(1.25,1.25,18); | |
192 | ring = v3n(1, 1, 6); | |
193 | coil = v3n(0.5, 0.5, 0.3); | |
194 | crown = v3n(0.6, 0.6, 0.6); | |
195 | orb = v3n(1, 1, 1); | |
196 | heart = v3n(0.25, 0.25, 0.4); | |
197 | dragon = v3n(0.4, 0.5, 0.4); | |
198 | half_sphere= v3n(0.005, 0.01, 0.005); | |
199 | star= v3n(4, 1, 4); | |
200 | } | |
201 | mesh_offsets={ | |
202 | crown = v3n(0,.15,0); | |
203 | } | |
204 | ||
205 | function bindMesh(mesh,Size) | |
206 | local mesh_name | |
207 | local size=Size or mesh.Parent.Size | |
208 | for name,id in next,mesh_ids do | |
209 | if mesh.MeshId==id then | |
210 | mesh_name=name | |
211 | end | |
212 | end | |
213 | ||
214 | if not mesh_name then return end | |
215 | local mesh=mesh | |
216 | local con | |
217 | con=mesh.Parent.Changed:connect(function() | |
218 | local siz=mesh.Parent.Size | |
219 | mesh.Scale=siz*mesh_scales[mesh_name] | |
220 | if mesh_offsets[mesh_name] then | |
221 | mesh.Offset=siz*mesh_offsets[mesh_name] | |
222 | end | |
223 | end) | |
224 | return con | |
225 | end | |
226 | Mesh = function(parent,id,sx,sy,sz) | |
227 | local name = ( (id == 'cyl' and 'CylinderMesh') or (id == 'bl' and 'BlockMesh') or 'SpecialMesh') | |
228 | local mesh = Instance.new(name) | |
229 | if id == 's' then | |
230 | mesh.MeshType = Enum.MeshType.Sphere | |
231 | elseif id == 'w' then | |
232 | mesh.MeshType = Enum.MeshType.Wedge | |
233 | elseif id == 'h' then | |
234 | mesh.MeshType = Enum.MeshType.Head | |
235 | elseif string.find(id,"://") ~= nil then | |
236 | mesh.MeshId = id | |
237 | end | |
238 | mesh.Scale = Vector3.new(sx or 1, sy or 1, sz or 1) | |
239 | mesh.Parent = parent | |
240 | _3=mesh | |
241 | return mesh | |
242 | end | |
243 | ||
244 | Edit = function(what) | |
245 | return function(args) | |
246 | for ind,obj in next,what do | |
247 | for arg,val in next,args do | |
248 | local child,argu = arg:match"(.+)%.(.+)" | |
249 | if child and argu then | |
250 | if pcall(function()return obj[child][argu] end) then | |
251 | obj[child][argu]=val | |
252 | end | |
253 | else | |
254 | if arg=='_F'then | |
255 | val(ind,obj) | |
256 | elseif pcall(function()return obj[arg]end) then | |
257 | obj[arg]=val | |
258 | end | |
259 | end | |
260 | end | |
261 | end | |
262 | end | |
263 | end | |
264 | New = function(what) --Synthetic caffeine for Instance.new | |
265 | local obj | |
266 | if type(what) ~= 'string' then | |
267 | obj=what:Clone() | |
268 | else | |
269 | obj=Instance.new(what) | |
270 | end | |
271 | if what=='Weld' then obj.Name='mujoint'end | |
272 | return function(bar) | |
273 | for arg,val in pairs(bar) do | |
274 | if arg == "_P" then | |
275 | obj.Parent = val | |
276 | elseif arg=="_PP" then | |
277 | obj.Part0=val[1] | |
278 | obj.Part1=val[2] | |
279 | elseif arg=='_F'then | |
280 | val(obj) | |
281 | else | |
282 | if pcall(function()return obj[arg] end) then | |
283 | obj[arg]=val | |
284 | end | |
285 | end | |
286 | end _4=obj | |
287 | return obj | |
288 | end | |
289 | end | |
290 | ||
291 | set_parent,set_material=nil,nil | |
292 | set_maxvel,set_anchor=nil,nil | |
293 | set_collide=false | |
294 | ||
295 | pcall(function() character['Knight']:Destroy() end) --removes old model. | |
296 | Main = New"Model"{_P=character;Name = 'Knight'} | |
297 | ||
298 | _1,_2,_3,_4,_5,_6,_7,_8 = nil,nil,nil,nil,nil,nil,nil | |
299 | Part = function(x,y,z,col,tr) | |
300 | local p = New"Part"{ | |
301 | _P=set_parent or ears or Main; | |
302 | BrickColor = BrickColor.new(col or set_color or "White"); | |
303 | CanCollide = set_collide; | |
304 | Transparency = tr or 0; | |
305 | Size = Vector3.new(x or 0,y or 0,z or 0); | |
306 | Material = set_material or 'SmoothPlastic'; | |
307 | Anchored = (set_anchor~=nil and set_anchor or false) | |
308 | } | |
309 | for _,sur in next,Enum.NormalId:GetEnumItems() do | |
310 | p[sur.Name..'Surface'] = 10 | |
311 | end | |
312 | _1 = p | |
313 | return p | |
314 | end | |
315 | ||
316 | function platefy(part) | |
317 | local x,z=part.Size.x,part.Size.z | |
318 | local y=part.Size.y | |
319 | local list={} | |
320 | --Cylinders... | |
321 | local p2=Part(y,x,y)Mesh(_1,'cyl') table.insert(list,_1) | |
322 | Weld(p2,p,0,0,-z/2,PI/2,0,PI/2) | |
323 | ||
324 | local p2=Part(y,x,y)Mesh(_1,'cyl') table.insert(list,_1) | |
325 | Weld(p2,p,0,0,z/2,PI/2,0,PI/2) | |
326 | ||
327 | local p2=Part(y,z,y)Mesh(_1,'cyl') table.insert(list,_1) | |
328 | Weld(p2,p,x/2,0,0,PI/2) | |
329 | ||
330 | local p2=Part(y,z,y)Mesh(_1,'cyl') table.insert(list,_1) | |
331 | Weld(p2,p,-x/2,0,0,PI/2) | |
332 | ||
333 | --Balls... | |
334 | local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1) | |
335 | Weld(p2,p,-x/2,0,-z/2) | |
336 | ||
337 | local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1) | |
338 | Weld(p2,p,-x/2,0,z/2) | |
339 | ||
340 | local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1) | |
341 | Weld(p2,p,x/2,0,-z/2) | |
342 | ||
343 | local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1) | |
344 | Weld(p2,p,x/2,0,z/2) | |
345 | ||
346 | part.Changed:connect(function(prop) | |
347 | Edit(list){Material=part.Material;Color=part.Color} | |
348 | end) | |
349 | end | |
350 | ||
351 | ||
352 | function findAllParts(pos,radius) | |
353 | local min,max = math.min,math.max | |
354 | local list={} | |
355 | local pos1,pos2=l(cfn(pos),-radius*3,-radius*3,-radius*3).p,l(cfn(pos),radius*3,radius*3,radius*3).p | |
356 | local reg=Region3.new(v3n(min(pos1.x,pos2.x),min(pos1.y,pos2.y),min(pos1.z,pos2.z)), | |
357 | v3n(max(pos1.x,pos2.x),max(pos1.y,pos2.y),max(pos1.z,pos2.z))) | |
358 | for i,v in pairs(Workspace:FindPartsInRegion3WithIgnoreList(reg,{character})) do | |
359 | if (v.Position-pos).magnitude<radius and v.Name~='Base' then | |
360 | table.insert(list,v) | |
361 | end | |
362 | end | |
363 | return list | |
364 | end | |
365 | ||
366 | --BL_EXPORT | |
367 | letters={ | |
368 | A='[{"p": [0.001, -0.05, -0.09], "r": [0.0, 0.0, 0.0], "s": [0.34, 0.1, 0.102]}, {"p": [0.289, 0.05, 0.036], "r": [0.0, -0.262, -0.0], "s": [0.1, 0.1, 1.051]}, {"p": [-0.268, 0.05, 0.011], "r": [0.0, 0.262, 0.0], "s": [0.1, 0.1, 1.031]}]'; | |
369 | B='[{"p": [0.283, 0.0, -0.822], "r": [-0.0, -1.931, 0.0], "s": [0.1, 0.1, 0.389]}, {"p": [0.226, 0.0, -0.292], "r": [0.0, -0.7, -0.0], "s": [0.1, 0.1, 0.48]}, {"p": [0.375, 0.0, 0.245], "r": [-0.0, -2.094, 0.0], "s": [0.1, 0.1, 0.48]}, {"p": [0.293, -0.0, 0.762], "r": [0.0, -0.96, -0.0], "s": [0.1, 0.1, 0.48]}, {"p": [-0.142, -0.0, 0.033], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.087]}]'; | |
370 | C='[{"p": [0.121, 0.006, 0.939], "r": [-0.0, 1.571, 0.0], "s": [0.133, 0.103, 0.411]}, {"p": [-0.512, 0.006, 0.732], "r": [-0.0, 0.913, 0.0], "s": [0.133, 0.103, 0.385]}, {"p": [-0.765, 0.006, 0.103], "r": [-0.0, 0.0, 0.0], "s": [0.133, 0.103, 0.499]}, {"p": [-0.411, 0.006, -0.569], "r": [-0.0, -0.966, -0.0], "s": [0.133, 0.103, 0.499]}, {"p": [0.241, 0.006, -0.777], "r": [0.0, 1.419, 0.0], "s": [0.133, 0.103, 0.349]}]'; | |
371 | D='[{"p": [0.06, 0.0, 0.617], "r": [-0.0, -1.047, 0.0], "s": [0.1, 0.1, 0.586]}, {"p": [0.518, -0.0, -0.027], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 0.437]}, {"p": [-0.497, -0.0, -0.027], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.024]}, {"p": [0.06, -0.0, -0.671], "r": [-0.0, 1.047, -0.0], "s": [0.1, 0.1, 0.586]}]'; | |
372 | E='[{"p": [0.011, 0.0, -0.927], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.5]}, {"p": [0.011, 0.0, -0.027], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.5]}, {"p": [-0.533, 0.0, -0.027], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.0]}, {"p": [0.011, 0.0, 0.873], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.5]}]'; | |
373 | F='[{"p": [0.011, 0.0, 0.877], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.5]}, {"p": [-0.533, -0.0, -0.022], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.0]}, {"p": [0.011, 0.0, 0.177], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.5]}]'; | |
374 | G='[{"p": [0.386, 0.006, -0.755], "r": [0.0, 1.419, 0.0], "s": [0.133, 0.103, 0.499]}, {"p": [0.121, 0.006, 0.939], "r": [-0.0, 1.571, 0.0], "s": [0.133, 0.103, 0.411]}, {"p": [0.4, 0.006, 0.053], "r": [-0.0, -1.571, 0.0], "s": [0.133, 0.103, 0.238]}, {"p": [-0.512, 0.006, 0.732], "r": [-0.0, 0.913, 0.0], "s": [0.133, 0.103, 0.385]}, {"p": [-0.765, 0.006, 0.103], "r": [-0.0, 0.0, 0.0], "s": [0.133, 0.103, 0.499]}, {"p": [-0.411, 0.006, -0.569], "r": [-0.0, -0.966, -0.0], "s": [0.133, 0.103, 0.499]}, {"p": [0.765, 0.006, -0.313], "r": [0.0, 0.0, 0.0], "s": [0.133, 0.103, 0.499]}]'; | |
375 | H='[{"p": [-0.002, 0.0, -0.023], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.547]}, {"p": [0.599, -0.0, -0.022], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.0]}, {"p": [-0.601, -0.0, -0.022], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.0]}]'; | |
376 | I='[{"p": [0.01, 0.0, -0.027], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.0]}]'; | |
377 | J='[{"p": [0.308, -0.0, -0.686], "r": [0.0, 0.607, 0.0], "s": [0.1, 0.1, 0.247]}, {"p": [-0.431, 0.0, -0.46], "r": [-0.0, 0.009, -0.0], "s": [0.1, 0.1, 0.221]}, {"p": [-0.297, 0.0, -0.733], "r": [-0.0, -0.929, -0.0], "s": [0.1, 0.1, 0.221]}, {"p": [0.036, 0.0, -0.846], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.216]}, {"p": [0.431, -0.0, 0.246], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 0.786]}]'; | |
378 | K='[{"p": [0.298, 0.0, -0.486], "r": [-0.0, -0.785, -0.0], "s": [0.104, 0.104, 0.707]}, {"p": [0.25, -0.0, 0.486], "r": [0.0, 0.785, 0.0], "s": [0.104, 0.104, 0.679]}, {"p": [-0.298, -0.0, 0.003], "r": [0.0, 0.0, 0.0], "s": [0.104, 0.104, 1.04]}]'; | |
379 | L='[{"p": [-0.242, -0.0, -0.033], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.023]}, {"p": [0.244, 0.0, -0.956], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.586]}]'; | |
380 | M='[{"p": [0.182, 0.0, -0.029], "r": [0.0, 0.175, 0.0], "s": [0.106, 0.169, 1.014]}, {"p": [0.515, 0.0, -0.025], "r": [0.0, -0.175, -0.0], "s": [0.106, 0.169, 1.014]}, {"p": [-0.161, 0.0, -0.025], "r": [0.0, -0.175, -0.0], "s": [0.106, 0.169, 1.014]}, {"p": [-0.494, 0.0, -0.029], "r": [0.0, 0.175, 0.0], "s": [0.106, 0.169, 1.014]}]'; | |
381 | N='[{"p": [-0.365, 0.0, 0.011], "r": [0.0, 0.0, 0.0], "s": [0.106, 0.169, 1.014]}, {"p": [0.179, 0.0, 0.004], "r": [0.0, -0.501, -0.0], "s": [0.106, 0.169, 1.105]}, {"p": [0.723, 0.0, -0.003], "r": [0.0, 0.0, 0.0], "s": [0.106, 0.169, 1.014]}]'; | |
382 | O='[{"p": [0.323, 0.0, 0.67], "r": [-0.0, -0.611, 0.0], "s": [0.15, 0.15, 0.276]}, {"p": [-0.302, 0.0, 0.67], "r": [-0.0, 0.611, 0.0], "s": [0.15, 0.15, 0.276]}, {"p": [0.01, 0.0, 0.833], "r": [-0.0, 4.712, 0.0], "s": [0.15, 0.15, 0.277]}, {"p": [0.454, -0.0, -0.022], "r": [0.0, 0.0, 0.0], "s": [0.15, 0.15, 0.553]}, {"p": [0.323, 0.0, -0.716], "r": [-0.0, 0.611, -0.0], "s": [0.15, 0.15, 0.276]}, {"p": [0.011, 0.0, -0.878], "r": [-0.0, 4.712, 0.0], "s": [0.15, 0.15, 0.276]}, {"p": [-0.302, 0.0, -0.715], "r": [-0.0, -0.611, -0.0], "s": [0.15, 0.15, 0.276]}, {"p": [-0.433, -0.0, -0.022], "r": [0.0, 0.0, 0.0], "s": [0.15, 0.15, 0.553]}]'; | |
383 | P='[{"p": [0.412, 0.0, 0.421], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 0.547]}, {"p": [0.011, 0.0, -0.027], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.5]}, {"p": [-0.533, 0.0, -0.027], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.0]}, {"p": [0.011, 0.0, 0.873], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.5]}]'; | |
384 | R='[{"p": [0.238, -0.002, 0.29], "r": [-0.0, 3.235, 0.0], "s": [0.1, 0.1, 0.402]}, {"p": [-0.012, 0.002, -0.5], "r": [-0.0, 2.1, -0.0], "s": [0.104, 0.104, 0.774]}, {"p": [-0.16, -0.002, -0.05], "r": [0.0, 1.506, 0.0], "s": [0.1, 0.1, 0.454]}, {"p": [-0.142, -0.002, 0.738], "r": [0.0, -1.301, -0.0], "s": [0.1, 0.1, 0.5]}, {"p": [-0.687, -0.002, -0.028], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.0]}]'; | |
385 | S='[{"p": [-0.469, -0.022, -0.91], "r": [-0.0, -0.776, -0.0], "s": [0.095, 0.095, 0.205]}, {"p": [-0.082, -0.022, -1.028], "r": [-0.0, 1.571, -0.0], "s": [0.095, 0.095, 0.311]}, {"p": [0.321, -0.022, -0.852], "r": [-0.0, 0.664, 0.0], "s": [0.095, 0.095, 0.27]}, {"p": [0.381, -0.022, -0.475], "r": [-0.0, -0.349, -0.0], "s": [0.095, 0.095, 0.27]}, {"p": [0.109, -0.022, -0.09], "r": [-0.0, -0.881, 0.0], "s": [0.095, 0.095, 0.27]}, {"p": [-0.189, -0.022, 0.294], "r": [-0.0, -0.436, 0.0], "s": [0.095, 0.095, 0.27]}, {"p": [-0.189, -0.022, 0.704], "r": [-0.0, 0.436, 0.0], "s": [0.095, 0.095, 0.27]}, {"p": [0.11, -0.022, 0.894], "r": [-0.0, 1.571, 0.0], "s": [0.095, 0.095, 0.27]}, {"p": [0.505, -0.022, 0.731], "r": [-0.0, -0.785, 0.0], "s": [0.095, 0.095, 0.27]}]'; | |
386 | T='[{"p": [-0.001, -0.0, -0.022], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.0]}, {"p": [-0.006, 0.0, 0.877], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.911]}]'; | |
387 | U='[{"p": [0.415, 0.0, -0.704], "r": [-3.142, 2.313, 3.142], "s": [0.1, 0.175, -0.38]}, {"p": [0.662, 0.0, 0.23], "r": [-3.142, -3.142, 3.142], "s": [0.1, 0.175, -0.75]}, {"p": [0.026, 0.0, -0.935], "r": [-3.141, -1.573, 3.141], "s": [0.1, 0.175, -0.179]}, {"p": [-0.614, 0.0, 0.232], "r": [-3.142, -3.142, 3.142], "s": [0.1, 0.175, -0.75]}, {"p": [-0.367, 0.0, -0.702], "r": [-3.142, -2.313, 3.142], "s": [0.1, 0.175, -0.38]}]'; | |
388 | V='[{"p": [0.313, 0.0, -0.067], "r": [0.0, 0.364, 0.0], "s": [0.106, 0.169, 1.014]}, {"p": [-0.344, 0.0, -0.074], "r": [0.0, -0.364, 0.0], "s": [0.106, 0.169, 1.014]}]'; | |
389 | W='[{"p": [0.515, 0.0, -0.025], "r": [0.0, 0.175, -0.0], "s": [0.106, 0.169, 1.014]}, {"p": [0.182, 0.0, -0.029], "r": [0.0, -0.175, 0.0], "s": [0.106, 0.169, 1.014]}, {"p": [-0.494, 0.0, -0.029], "r": [0.0, -0.175, 0.0], "s": [0.106, 0.169, 1.014]}, {"p": [-0.161, 0.0, -0.025], "r": [0.0, 0.175, -0.0], "s": [0.106, 0.169, 1.014]}]'; | |
390 | X='[{"p": [0.007, -0.0, -0.03], "r": [0.0, -0.785, 0.0], "s": [0.15, 0.15, -1.323]}, {"p": [0.007, -0.0, -0.03], "r": [0.0, 0.785, 0.0], "s": [0.15, 0.15, -1.323]}]'; | |
391 | Y='[{"p": [0.324, 0.01, 0.421], "r": [0.0, 0.611, 0.0], "s": [0.11, 0.11, 0.55]}, {"p": [-0.264, 0.01, 0.453], "r": [0.0, -0.524, -0.0], "s": [0.11, 0.11, 0.55]}, {"p": [0.011, 0.01, -0.576], "r": [0.0, 0.0, 0.0], "s": [0.11, 0.11, 0.55]}]'; | |
392 | Z='[{"p": [0.269, 0.0, 0.915], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.586]}, {"p": [0.257, -0.0, -0.021], "r": [0.0, 0.524, 0.0], "s": [0.1, 0.1, 1.023]}, {"p": [0.244, 0.0, -0.956], "r": [-0.0, 1.571, 0.0], "s": [0.1, 0.1, 0.586]}]'; | |
393 | } | |
394 | --/BL_EXPORT | |
395 | ||
396 | scale=10 | |
397 | ||
398 | function doLetter(letter,pos,scale,color) | |
399 | local letter_mod = New"Model"{_P=Main} | |
400 | local list2={} | |
401 | local list=game:service'HttpService':JSONDecode(letters[letter]) | |
402 | local cnt=0 | |
403 | for i,v in pairs(list)do | |
404 | cnt=cnt+1 | |
405 | Part(1,1,1,color or 'Royal purple')_1.Anchored=true Mesh(_1,'bl',unpack(v.s))_1.Parent=letter_mod | |
406 | _3.Scale=_3.Scale*scale+v3n(0,0.001*cnt,0) | |
407 | _1.CFrame=l(pos,v.p[1]*scale/2,v.p[2]*scale/2,v.p[3]*scale/2)*ang(unpack(v.r)) | |
408 | _1.Material='Slate' | |
409 | list2[_1]={Scale=_3.Scale,CFrame=_1.CFrame} | |
410 | _1.CFrame=pos _3.Scale=v3n(0,0,0) | |
411 | end | |
412 | Spawn(function() | |
413 | for i=0,1.5,.1 do | |
414 | for o,v in pairs(list2)do | |
415 | o.CFrame=pos:lerp(v.CFrame,i) | |
416 | o.Mesh.Scale = v3n(0,0,0):lerp(v.Scale,i) | |
417 | end | |
418 | wait() | |
419 | end | |
420 | for i=1.5,1,-.1 do | |
421 | for o,v in pairs(list2)do | |
422 | o.CFrame=pos:lerp(v.CFrame,i) | |
423 | o.Mesh.Scale = v3n(0,0,0):lerp(v.Scale,i) | |
424 | end | |
425 | wait() | |
426 | end | |
427 | for o,v in pairs(list2)do | |
428 | o.CFrame=v.CFrame | |
429 | o.Mesh.Scale = v.Scale,i | |
430 | end | |
431 | end) | |
432 | ||
433 | return letter_mod | |
434 | end | |
435 | ||
436 | function doWord(word,pos,scale,col) | |
437 | stpos=pos | |
438 | local prev=0 | |
439 | local modls={} | |
440 | for w in word:gmatch('%w') do | |
441 | local p=doLetter(w,stpos*cfn(prev,0,0),scale,(col=='r' and BrickColor.random().Name or (col or 'Cyan'))) | |
442 | prev=prev+scale | |
443 | table.insert(modls,p) | |
444 | wait() | |
445 | end | |
446 | return function() | |
447 | for i,v in pairs(modls) do | |
448 | -- New"Explosion"{_P=Workspace;Position=pos.p;DestroyJointRadiusPercent=0}DEBRIS:AddItem(_4,0.001) | |
449 | for _,v2 in pairs(v:children())do v2.Anchored=false v2.CanCollide=true | |
450 | v2.Velocity = cfn(pos.p,l(v2).p).lookVector*30 | |
451 | New"BodyForce"{_P=v2;force=v3n(0,(v2:GetMass()*FLOATFORCE)*.75,0)} | |
452 | end | |
453 | Delay(1,function() | |
454 | for i=0,1,.1 do | |
455 | ||
456 | for _,v2 in pairs(v:children())do v2.Transparency=i end | |
457 | ||
458 | wait() | |
459 | end | |
460 | v:Destroy() | |
461 | end) | |
462 | ||
463 | end | |
464 | end | |
465 | end | |
466 | ||
467 | sc=4 | |
468 | -- local br=doWord('HELLOVOIDSB',l(torso,0,sc/2,-3,PI/2,PI),sc,'Cyan') | |
469 | while wait()do | |
470 | - | for text in string.gmatch("OMG HOLY FUCKING SHIT ITS THE SHOWCASER THE BEST SCRIPT SHOWCASER IN THE WHOLE PLANET OMG HE LOOK SO GOOD HE MAKES THE BEST VIDEOS THERE IS","%w+") do |
470 | + | for text in string.gmatch("HOLY FUCKING SHIT IT'S AN ODER WANT TO HAVE SEX? PLEASE YOU JUICY LITTLE BITCH","%w+") do |
471 | local br=doWord(text,l(torso,0,sc/2,-3,PI/2,PI),sc,col or 'Cyan',{[3]='White'}) | |
472 | wait(1) | |
473 | br()wait'.5' | |
474 | end | |
475 | end | |
476 | ||
477 | ||
478 | -- part=Part(4,4,4,'Cyan',.5)Weld(_1,torso) |