View difference between Paste ID: kbHf2Tkp and e6TbSG4m
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)