Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.97 KB | None | 0 0
  1. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  2. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  3. do
  4. print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
  5. script.Parent = Player.Character
  6.  
  7. --RemoteEvent for communicating
  8. local Event = Instance.new("RemoteEvent")
  9. Event.Name = "UserInput_Event"
  10.  
  11. --Fake event to make stuff like Mouse.KeyDown work
  12. local function fakeEvent()
  13. local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
  14. t.connect = t.Connect
  15. return t
  16. end
  17.  
  18. --Creating fake input objects with fake variables
  19. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  20. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  21. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  22. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  23. end}
  24. --Merged 2 functions into one by checking amount of arguments
  25. CAS.UnbindAction = CAS.BindAction
  26.  
  27. --This function will trigger the events that have been :Connect()'ed
  28. local function te(self,ev,...)
  29. local t = m[ev]
  30. if t and t._fakeEvent and t.Function then
  31. t.Function(...)
  32. end
  33. end
  34. m.TrigEvent = te
  35. UIS.TrigEvent = te
  36.  
  37. Event.OnServerEvent:Connect(function(plr,io)
  38. if plr~=Player then return end
  39. if io.isMouse then
  40. m.Target = io.Target
  41. m.Hit = io.Hit
  42. else
  43. local b = io.UserInputState == Enum.UserInputState.Begin
  44. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  45. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  46. end
  47. for _,t in pairs(CAS.Actions) do
  48. for _,k in pairs(t.Keys) do
  49. if k==io.KeyCode then
  50. t.Function(t.Name,io.UserInputState,io)
  51. end
  52. end
  53. end
  54. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  55. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  56. end
  57. end)
  58. Event.Parent = NLS([==[
  59. local Player = game:GetService("Players").LocalPlayer
  60. local Event = script:WaitForChild("UserInput_Event")
  61.  
  62. local UIS = game:GetService("UserInputService")
  63. local input = function(io,a)
  64. if a then return end
  65. --Since InputObject is a client-side instance, we create and pass table instead
  66. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
  67. end
  68. UIS.InputBegan:Connect(input)
  69. UIS.InputEnded:Connect(input)
  70.  
  71. local Mouse = Player:GetMouse()
  72. local h,t
  73. --Give the server mouse data 30 times every second, but only if the values changed
  74. --If player is not moving their mouse, client won't fire events
  75. while wait(1/30) do
  76. if h~=Mouse.Hit or t~=Mouse.Target then
  77. h,t=Mouse.Hit,Mouse.Target
  78. Event:FireServer({isMouse=true,Target=t,Hit=h})
  79. end
  80. end]==],Player.Character)
  81. Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  82. end
  83. r2 = "Really Black"
  84.  
  85. --declarations
  86. PI=math.pi
  87. TAU=PI*2
  88. FLOATFORCE=196.25
  89. DEBRIS=game:service'Debris'
  90. mr,md=math.random,math.rad
  91. cfn,v3n=CFrame.new,Vector3.new
  92. _A=nils
  93. ang=function(x,y,z)local a=CFrame.Angles(x or 0,y or 0,z or 0)_A=a return a end
  94. RS=game:service'RunService'
  95. numkp=NumberSequenceKeypoint.new
  96. colkp=ColorSequenceKeypoint.new
  97. bcol=BrickColor.new
  98.  
  99. RS:UnbindFromRenderStep('Anim')
  100.  
  101. --player specific...
  102. player = owner
  103. character = player.Character
  104. torso = character.Torso
  105. head = character.Head
  106. rarm = character['Right Arm']
  107. larm = character['Left Arm']
  108. rleg = character['Right Leg']
  109. lleg = character['Left Leg']
  110. human = character.Humanoid
  111. root_j=character.HumanoidRootPart.RootJoint
  112.  
  113. --Utilities... who needs them?
  114.  
  115. function recurseHum(what)
  116. local res
  117. local p=what
  118. if what:IsA'Humanoid'then
  119. res=what
  120. else
  121. repeat
  122. p=p.Parent
  123. if p then
  124. local hum=p:FindFirstChild'Humanoid'
  125. if hum then
  126. res=hum
  127. break
  128. end
  129. end
  130. until p==nil
  131. end
  132. return res
  133. end
  134. function findHum(pos,rad,hum2)
  135. local hums={}
  136. function check(a)
  137. local res=false
  138. for i,ho in pairs(hums)do
  139. if a==ho then res=true end
  140. end
  141. return res
  142. end
  143. for i,v in pairs(Workspace:children())do
  144. if v:IsA'Model'and v~=Char and v~=(hum2 or Char) then
  145. for i,q in pairs(v:children())do
  146. if q:IsA'Humanoid' and q.Parent:FindFirstChild'Torso'and(q.Torso.Position-pos).magnitude < rad then
  147. if not check(q)then
  148. table.insert(hums,q)
  149. end
  150. end
  151. end
  152. end
  153. end
  154. return hums
  155. end
  156.  
  157. function checkY(p1,p2,range,range2)
  158. local function checko()
  159. 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) )
  160. end
  161. if range2 then
  162. return (l(p1).Y > l(p2).Y-range and l(p2).Y < l(p2).Y+range) and checko()
  163. else
  164. return (l(p1).Y > l(p2).Y-range and l(p2).Y < l(p2).Y+range)
  165. end
  166. end
  167.  
  168. udim=function(a,b,c,d)
  169. if type(a)=='string'then
  170. x,y=tostring(a):match('([%+%d%.%-%/%*]+),([%+%d%.%-%/%*]+)')
  171. return UDim2.new(x or 0,x2 or 0,y or 0,y2 or 0)
  172. else
  173. return UDim2.new(a or 0,c or 0,b or 0,d or 0)
  174. end end
  175.  
  176. function l(a1,x,y,z,rx,ry,rz)
  177. local cf
  178. if tostring(a1):find(',') == nil then
  179. cf=a1.CFrame
  180. else cf=a1 end
  181. return cf*CFrame.new(x or 0,y or 0,z or 0)*CFrame.Angles(
  182. rx or 0,ry or 0,yz or 0)
  183. end
  184. function f(a) --turns thigns in to function returning the thing... f(l)(torso,0,2,0)
  185. return function(...)
  186. local args={...}
  187. return function() return a(unpack(args)) end
  188. end
  189. end
  190.  
  191. function isIn(what,tab) --returns true if what is in tab. isIn("Troll", {"Tomato", "Troll", "Strawberry") --> true
  192. local res=false
  193. for i,v in next,tab do
  194. if v==what then
  195. res = true
  196. break
  197. end
  198. end
  199. return res
  200. end
  201.  
  202. Weld = function(part0,part1,c0,c1,...) --over-engineered welding function which accepts many things
  203. local ar = {...}
  204. local cframe0,cframe1
  205. local function checkf()local res=true
  206. for i,v in pairs(ar)do
  207. if type(v) ~= 'number' then
  208. res=false
  209. end
  210. end
  211. return res
  212. end
  213. if type(c0) == 'table' then
  214. cframe0 = CFrame.new(c0[1] or 0, c0[2] or 0, c0[3] or 0) * CFrame.Angles(
  215. c0[4] or 0, c0[5] or 0, c0[6] or 0)
  216. elseif type(c0) == 'userdata' then
  217. cframe0 = c0
  218. elseif type(c0) == 'number' and checkf() then
  219. 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)
  220. end
  221. if type(c1) == 'table' then
  222. cframe1 = CFrame.new(c1[1] or 0, c1[2] or 0, c1[3] or 0) * CFrame.Angles(
  223. c1[4] or 0, c1[5] or 0, c1[6] or 0)
  224. elseif type(c1) == 'userdata' then
  225. cframe1 = c1
  226. elseif type(c1) == 'number' and (not c0 or (c0 and type(c0) == 'table')) then
  227. 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)
  228. end
  229. for i,v in pairs(ar)do
  230. if type(v) == 'table' then
  231. 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)
  232. elseif type(v) == 'userdata' then
  233. cframe1 = v
  234. end
  235. end
  236.  
  237. cframe0,cframe1 = cframe1,cframe0
  238. part0.Position=part1.Position
  239. local weld = Instance.new("Weld")
  240. weld.Part0 = part0
  241. weld.Part1 = part1
  242. weld.C0 = cframe0 or CFrame.new()
  243. weld.C1 = cframe1 or CFrame.new()
  244. if weld:IsA'Motor'then weld.MaxVelocity = set_maxvel or .1 end
  245. weld.Parent = part0
  246. _2=weld
  247. return weld
  248. end
  249.  
  250. mesh_ids = {
  251. spikeball = "rbxassetid://24388358";
  252. spike = "rbxassetid://1033714";
  253. ring = "rbxassetid://3270017";
  254. coil = 'rbxassetid://16606212';
  255. diamond = 'rbxassetid://9756362';
  256. rock = 'rbxassetid://1290033';
  257. gear = 'rbxassetid://156292343';
  258. crown = 'rbxassetid://20329976';
  259. orb = 'rbxassetid://34795798';
  260. heart = 'rbxassetid://431221914';
  261. dragon = 'rbxassetid://24478215';
  262. half_sphere = 'rbxassetid://475668276';
  263. star = 'rbxassetid://45428961';
  264. }
  265. mesh_texs = {
  266. rock = 'rbxassetid://1290030';
  267. dragon = 'rbxassetid://25665033';
  268. }
  269. mesh_scales={
  270. diamond = v3n(0.75, 0.75, 0.75);
  271. spikeball = v3n(1.05, 1.05, 1.05);
  272. spike = v3n(0.5, 1.5, 0.5);
  273. gear = v3n(1.25,1.25,18);
  274. ring = v3n(1, 1, 6);
  275. coil = v3n(0.5, 0.5, 0.3);
  276. crown = v3n(0.6, 0.6, 0.6);
  277. orb = v3n(1, 1, 1);
  278. heart = v3n(0.25, 0.25, 0.4);
  279. dragon = v3n(0.4, 0.5, 0.4);
  280. half_sphere= v3n(0.005, 0.01, 0.005);
  281. star= v3n(4, 1, 4);
  282. }
  283. mesh_offsets={
  284. crown = v3n(0,.15,0);
  285. }
  286.  
  287. function bindMesh(mesh,Size)
  288. local mesh_name
  289. local size=Size or mesh.Parent.Size
  290. for name,id in next,mesh_ids do
  291. if mesh.MeshId==id then
  292. mesh_name=name
  293. end
  294. end
  295.  
  296. if not mesh_name then return end
  297. local mesh=mesh
  298. local con
  299. con=mesh.Parent.Changed:connect(function()
  300. local siz=mesh.Parent.Size
  301. mesh.Scale=siz*mesh_scales[mesh_name]
  302. if mesh_offsets[mesh_name] then
  303. mesh.Offset=siz*mesh_offsets[mesh_name]
  304. end
  305. end)
  306. return con
  307. end
  308. Mesh = function(parent,id,sx,sy,sz)
  309. local name = ( (id == 'cyl' and 'CylinderMesh') or (id == 'bl' and 'BlockMesh') or 'SpecialMesh')
  310. local mesh = Instance.new(name)
  311. if id == 's' then
  312. mesh.MeshType = Enum.MeshType.Sphere
  313. elseif id == 'w' then
  314. mesh.MeshType = Enum.MeshType.Wedge
  315. elseif id == 'h' then
  316. mesh.MeshType = Enum.MeshType.Head
  317. elseif string.find(id,"://") ~= nil then
  318. mesh.MeshId = id
  319. end
  320. mesh.Scale = Vector3.new(sx or 1, sy or 1, sz or 1)
  321. mesh.Parent = parent
  322. _3=mesh
  323. return mesh
  324. end
  325.  
  326. Edit = function(what)
  327. return function(args)
  328. for ind,obj in next,what do
  329. for arg,val in next,args do
  330. local child,argu = arg:match"(.+)%.(.+)"
  331. if child and argu then
  332. if pcall(function()return obj[child][argu] end) then
  333. obj[child][argu]=val
  334. end
  335. else
  336. if arg=='_F'then
  337. val(ind,obj)
  338. elseif pcall(function()return obj[arg]end) then
  339. obj[arg]=val
  340. end
  341. end
  342. end
  343. end
  344. end
  345. end
  346. New = function(what) --Synthetic caffeine for Instance.new
  347. local obj
  348. if type(what) ~= 'string' then
  349. obj=what:Clone()
  350. else
  351. obj=Instance.new(what)
  352. end
  353. if what=='Weld' then obj.Name='mujoint'end
  354. return function(bar)
  355. for arg,val in pairs(bar) do
  356. if arg == "_P" then
  357. obj.Parent = val
  358. elseif arg=="_PP" then
  359. obj.Part0=val[1]
  360. obj.Part1=val[2]
  361. elseif arg=='_F'then
  362. val(obj)
  363. else
  364. if pcall(function()return obj[arg] end) then
  365. obj[arg]=val
  366. end
  367. end
  368. end _4=obj
  369. return obj
  370. end
  371. end
  372.  
  373. set_parent,set_material=nil,nil
  374. set_maxvel,set_anchor=nil,nil
  375. set_collide=false
  376.  
  377. pcall(function() character['Knight']:Destroy() end) --removes old model.
  378. Main = New"Model"{_P=character;Name = 'Knight'}
  379.  
  380. _1,_2,_3,_4,_5,_6,_7,_8 = nil,nil,nil,nil,nil,nil,nil
  381. Part = function(x,y,z,col,tr)
  382. local p = New"Part"{
  383. _P=set_parent or ears or Main;
  384. BrickColor = BrickColor.new(col or set_color or "White");
  385. CanCollide = set_collide;
  386. Transparency = tr or 0;
  387. Size = Vector3.new(x or 0,y or 0,z or 0);
  388. Material = set_material or 'SmoothPlastic';
  389. Anchored = (set_anchor~=nil and set_anchor or false)
  390. }
  391. for _,sur in next,Enum.NormalId:GetEnumItems() do
  392. p[sur.Name..'Surface'] = 10
  393. end
  394. _1 = p
  395. return p
  396. end
  397.  
  398. function platefy(part)
  399. local x,z=part.Size.x,part.Size.z
  400. local y=part.Size.y
  401. local list={}
  402. --Cylinders...
  403. local p2=Part(y,x,y)Mesh(_1,'cyl') table.insert(list,_1)
  404. Weld(p2,p,0,0,-z/2,PI/2,0,PI/2)
  405.  
  406. local p2=Part(y,x,y)Mesh(_1,'cyl') table.insert(list,_1)
  407. Weld(p2,p,0,0,z/2,PI/2,0,PI/2)
  408.  
  409. local p2=Part(y,z,y)Mesh(_1,'cyl') table.insert(list,_1)
  410. Weld(p2,p,x/2,0,0,PI/2)
  411.  
  412. local p2=Part(y,z,y)Mesh(_1,'cyl') table.insert(list,_1)
  413. Weld(p2,p,-x/2,0,0,PI/2)
  414.  
  415. --Balls...
  416. local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1)
  417. Weld(p2,p,-x/2,0,-z/2)
  418.  
  419. local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1)
  420. Weld(p2,p,-x/2,0,z/2)
  421.  
  422. local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1)
  423. Weld(p2,p,x/2,0,-z/2)
  424.  
  425. local p2=Part(y,y,y)Mesh(p2,'s') table.insert(list,_1)
  426. Weld(p2,p,x/2,0,z/2)
  427.  
  428. part.Changed:connect(function(prop)
  429. Edit(list){Material=part.Material;Color=part.Color}
  430. end)
  431. end
  432.  
  433.  
  434. function findAllParts(pos,radius)
  435. local min,max = math.min,math.max
  436. local list={}
  437. local pos1,pos2=l(cfn(pos),-radius*3,-radius*3,-radius*3).p,l(cfn(pos),radius*3,radius*3,radius*3).p
  438. local reg=Region3.new(v3n(min(pos1.x,pos2.x),min(pos1.y,pos2.y),min(pos1.z,pos2.z)),
  439. v3n(max(pos1.x,pos2.x),max(pos1.y,pos2.y),max(pos1.z,pos2.z)))
  440. for i,v in pairs(Workspace:FindPartsInRegion3WithIgnoreList(reg,{character})) do
  441. if (v.Position-pos).magnitude<radius and v.Name~='Base' then
  442. table.insert(list,v)
  443. end
  444. end
  445. return list
  446. end
  447.  
  448. --BL_EXPORT
  449. letters={
  450. 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]}]';
  451. 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]}]';
  452. 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]}]';
  453. 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]}]';
  454. 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]}]';
  455. 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]}]';
  456. 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]}]';
  457. 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]}]';
  458. I='[{"p": [0.01, 0.0, -0.027], "r": [0.0, 0.0, 0.0], "s": [0.1, 0.1, 1.0]}]';
  459. 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]}]';
  460. 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]}]';
  461. 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]}]';
  462. 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]}]';
  463. 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]}]';
  464. 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]}]';
  465. 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]}]';
  466. 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]}]';
  467. 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]}]';
  468. 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]}]';
  469. 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]}]';
  470. 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]}]';
  471. 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]}]';
  472. 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]}]';
  473. 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]}]';
  474. 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]}]';
  475. }
  476. --/BL_EXPORT
  477.  
  478. scale=10
  479.  
  480. function doLetter(letter,pos,scale,color)
  481. local letter_mod = New"Model"{_P=Main}
  482. local list2={}
  483. local list=game:service'HttpService':JSONDecode(letters[letter])
  484. local cnt=0
  485. for i,v in pairs(list)do
  486. cnt=cnt+1
  487. Part(1,1,1,color or 'Royal purple')_1.Anchored=true Mesh(_1,'bl',unpack(v.s))_1.Parent=letter_mod
  488. _3.Scale=_3.Scale*scale+v3n(0,0.001*cnt,0)
  489. _1.CFrame=l(pos,v.p[1]*scale/2,v.p[2]*scale/2,v.p[3]*scale/2)*ang(unpack(v.r))
  490. _1.Material='Slate'
  491. list2[_1]={Scale=_3.Scale,CFrame=_1.CFrame}
  492. _1.CFrame=pos _3.Scale=v3n(0,0,0)
  493. end
  494. Spawn(function()
  495. for i=0,1.5,.1 do
  496. for o,v in pairs(list2)do
  497. o.CFrame=pos:lerp(v.CFrame,i)
  498. o.Mesh.Scale = v3n(0,0,0):lerp(v.Scale,i)
  499. end
  500. wait()
  501. end
  502. for i=1.5,1,-.1 do
  503. for o,v in pairs(list2)do
  504. o.CFrame=pos:lerp(v.CFrame,i)
  505. o.Mesh.Scale = v3n(0,0,0):lerp(v.Scale,i)
  506. end
  507. wait()
  508. end
  509. for o,v in pairs(list2)do
  510. o.CFrame=v.CFrame
  511. o.Mesh.Scale = v.Scale,i
  512. end
  513. end)
  514.  
  515. return letter_mod
  516. end
  517.  
  518. function doWord(word,pos,scale,col)
  519. stpos=pos
  520. local prev=0
  521. local modls={}
  522. for w in word:gmatch('%w') do
  523. local p=doLetter(w,stpos*cfn(prev,0,0),scale,(col=='r' and BrickColor.random().Name or (col or 'Cyan')))
  524. prev=prev+scale
  525. table.insert(modls,p)
  526. wait()
  527. end
  528. return function()
  529. for i,v in pairs(modls) do
  530. -- New"Explosion"{_P=Workspace;Position=pos.p;DestroyJointRadiusPercent=0}DEBRIS:AddItem(_4,0.001)
  531. for _,v2 in pairs(v:children())do v2.Anchored=false v2.CanCollide=true
  532. v2.Velocity = cfn(pos.p,l(v2).p).lookVector*30
  533. New"BodyForce"{_P=v2;force=v3n(0,(v2:GetMass()*FLOATFORCE)*.75,0)}
  534. end
  535. Delay(1,function()
  536. for i=0,1,.1 do
  537.  
  538. for _,v2 in pairs(v:children())do v2.Transparency=i end
  539.  
  540. wait()
  541. end
  542. v:Destroy()
  543. end)
  544.  
  545. end
  546. end
  547. end
  548.  
  549. sc=4
  550. -- local br=doWord('HELLOVOIDSB',l(torso,0,sc/2,-3,PI/2,PI),sc,'Cyan')
  551. while wait()do
  552. for text in string.gmatch("GET LOST SKIDS. WAN DO NOT LIKE SKIDS","%w+") do
  553. local br=doWord(text,l(torso,0,sc/2,-3,PI/2,PI),sc,col or 'Cyan',{[3]='White'})
  554. wait(1)
  555. br()wait'.5'
  556. end
  557. end
  558.  
  559.  
  560. -- part=Part(4,4,4,'Cyan',.5)Weld(_1,torso)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement