1. save = nil
  2. c3 = function(r,g,b) return Color3.new(r/255,g/255,b/255) end
  3. --do something ro get save file
  4. if not save then
  5. save = {
  6. ui = {
  7. highlightcolor = c3(33, 122, 255);
  8. errorcolor = c3(255, 0, 0);
  9. --AnimationPriority colors
  10. core = c3(65, 65, 65);
  11. idle = c3(134, 200, 230);
  12. movement = c3(114, 230, 121);
  13. action = c3(235, 235, 235);
  14. };
  15. preferences = {
  16. };
  17. custom_animations = {
  18. template = {
  19. Title = "";
  20. AnimationId = "rbxassetid://";
  21. Image = "rbxassetid://2151539455"; --not required
  22. Speed = 1;
  23. Time = 0;
  24. Weight = 1;
  25. Loop = false;
  26. R6 = true;
  27. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  28. };
  29. };
  30. }
  31. end
  32. lp = game:GetService("Players").LocalPlayer
  33. m = lp:GetMouse()
  34. function getHumanoid()
  35. if not lp.Character then return nil end
  36. return lp.Character:FindFirstChildWhichIsA("Humanoid")
  37. end
  38. screengui = game:GetObjects("rbxassetid://02159099015")[1]
  39. screengui.Parent = game:GetService("CoreGui")
  40. main = screengui.Topbar.Main
  41. mainframe = main.MainFrame
  42. scrollframe = mainframe.ScrollingFrame
  43. items = scrollframe.Items
  44. search = scrollframe.SearchFrame.Search
  45. searchbutton = scrollframe.SearchFrame.ImageLabel.TextButton
  46. searchframe = scrollframe.SearchFrame
  47. preview = main.Preview
  48. previewimage = preview.Image
  49. previewtitle = preview.Title
  50. previewdesc = preview.Desc
  51. function draggable(gObj)
  52. local UserInputService = game:GetService("UserInputService")
  53. local gui = gObj
  54. local dragging
  55. local dragInput
  56. local dragStart
  57. local startPos
  58. local function update(input)
  59. local delta = input.Position - dragStart
  60. gui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  61. end
  62. gui.InputBegan:Connect(function(input)
  63. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  64. dragging = true
  65. dragStart = input.Position
  66. startPos = gui.Position
  67. input.Changed:Connect(function()
  68. if input.UserInputState == Enum.UserInputState.End then
  69. dragging = false
  70. end
  71. end)
  72. end
  73. end)
  74. gui.InputChanged:Connect(function(input)
  75. if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
  76. dragInput = input
  77. end
  78. end)
  79. UserInputService.InputChanged:Connect(function(input)
  80. if input == dragInput and dragging then
  81. update(input)
  82. end
  83. end)
  84. end
  85. function tween(object,style,direction,t,goal)
  86. local tweenservice = game:GetService("TweenService")
  87. local tweenInfo = TweenInfo.new(t,Enum.EasingStyle[style],Enum.EasingDirection[direction])
  88. local tween = tweenservice:Create(object,tweenInfo,goal)
  89. tween:Play()
  90. return tween
  91. end
  92. draggable(screengui.Topbar)
  93. function checkIfStudio()
  94. return game.Name ~= "Game"
  95. end
  96. if not checkIfStudio() then
  97. print'Client is not in Roblox studio'
  98. --main.Size = UDim2.new(0.398, 0, 0.477, 0)
  99. end
  100. search.Changed:connect(function(p)
  101. local n = 0
  102. for i,v in pairs (items:GetChildren()) do
  103. if v:IsA("TextButton") and not string.find(v.Title.Text:lower(), search.Text:lower()) then
  104. v.Visible = false
  105. elseif v:IsA("TextButton") and string.find(v.Title.Text:lower(), search.Text:lower()) then
  106. v.Visible = true
  107. n = n + 1
  108. end
  109. end
  110. if p == "Text" then
  111. if n > 0 then
  112. tween(searchframe, "Sine", "Out", 0.25, {
  113. BorderColor3 = save.ui.highlightcolor;
  114. })
  115. wait(0.25)
  116. tween(searchframe, "Sine", "In", 0.5, {
  117. BorderColor3 = c3(58, 58, 58);
  118. })
  119. else
  120. tween(searchframe, "Sine", "Out", 0.25, {
  121. BorderColor3 = save.ui.errorcolor;
  122. })
  123. wait(0.25)
  124. tween(searchframe, "Sine", "In", 0.5, {
  125. BorderColor3 = c3(58, 58, 58);
  126. })
  127. end
  128. end
  129. end)
  130. spawn(function()
  131. while wait(10) do
  132. --auto-save every 10 seconds
  133. end
  134. end)
  135. cam = workspace.CurrentCamera
  136. running = {}
  137. popAnims = {
  138. armturbine = {
  139. Title = "Arm Turbine";
  140. AnimationId = "rbxassetid://259438880";
  141. Speed = 1.5;
  142. Time = 0;
  143. Weight = 1;
  144. Loop = true;
  145. R6 = true;
  146. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  147. };
  148. weirdsway = {
  149. Title = "Weird Sway";
  150. AnimationId = "rbxassetid://248336677";
  151. Speed = 1;
  152. Time = 0;
  153. Weight = 1;
  154. Loop = true;
  155. R6 = true;
  156. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  157. };
  158. weirdfloat = {
  159. Title = "Weird Float";
  160. AnimationId = "rbxassetid://248336459";
  161. Speed = 1;
  162. Time = 0;
  163. Weight = 1;
  164. Loop = true;
  165. R6 = true;
  166. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  167. };
  168. weirdpose = {
  169. Title = "Weird Pose";
  170. AnimationId = "rbxassetid://248336163";
  171. Speed = 1;
  172. Time = 0;
  173. Weight = 1;
  174. Loop = true;
  175. R6 = true;
  176. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  177. };
  178. penguinslide = {
  179. Title = "Penguin Slide";
  180. AnimationId = "rbxassetid://282574440";
  181. Speed = 1;
  182. Time = 0;
  183. Weight = 1;
  184. Loop = true;
  185. R6 = true;
  186. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  187. };
  188. scream = {
  189. Title = "Scream";
  190. AnimationId = "rbxassetid://180611870";
  191. Speed = 1.5;
  192. Time = 0;
  193. Weight = 1;
  194. Loop = true;
  195. R6 = true;
  196. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  197. };
  198. crouch = {
  199. Title = "Crouch";
  200. AnimationId = "rbxassetid://182724289";
  201. Speed = 1;
  202. Time = 0;
  203. Weight = 1;
  204. Loop = true;
  205. R6 = true;
  206. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  207. };
  208. happydance = {
  209. Title = "Happy Dance";
  210. AnimationId = "rbxassetid://248335946";
  211. Speed = 1;
  212. Time = 0;
  213. Weight = 1;
  214. Loop = true;
  215. R6 = true;
  216. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  217. };
  218. floatinghead = {
  219. Title = "Floating Head";
  220. AnimationId = "rbxassetid://121572214";
  221. Speed = 1;
  222. Time = 0;
  223. Weight = 1;
  224. Loop = true;
  225. R6 = true;
  226. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  227. };
  228. balloonfloat = {
  229. Title = "Balloon Float";
  230. AnimationId = "rbxassetid://148840371";
  231. Speed = 1;
  232. Time = 0;
  233. Weight = 1;
  234. Loop = true;
  235. R6 = true;
  236. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  237. };
  238. pinchnose = {
  239. Title = "Pinch Nose";
  240. AnimationId = "rbxassetid://30235165";
  241. Speed = 1;
  242. Time = 0;
  243. Weight = 1;
  244. Loop = true;
  245. R6 = true;
  246. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  247. };
  248. goal = {
  249. Title = "Goal!";
  250. AnimationId = "rbxassetid://28488254";
  251. Speed = 1;
  252. Time = 0;
  253. Weight = 1;
  254. Loop = true;
  255. R6 = true;
  256. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  257. };
  258. cry = {
  259. Title = "Cry";
  260. AnimationId = "rbxassetid://180612465";
  261. Speed = 0;
  262. Time = 1.5;
  263. Weight = 1;
  264. Loop = true;
  265. R6 = true;
  266. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  267. };
  268. partytime = {
  269. Title = "Party Time";
  270. AnimationId = "rbxassetid://33796059";
  271. Speed = 1;
  272. Time = 0;
  273. Weight = 1;
  274. Loop = true;
  275. R6 = true;
  276. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  277. };
  278. moondance = {
  279. Title = "Moon Dance";
  280. AnimationId = "rbxassetid://27789359";
  281. Speed = 1;
  282. Time = 0;
  283. Weight = 1;
  284. Loop = true;
  285. R6 = true;
  286. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  287. };
  288. insanelegs = {
  289. Title = "Insane Legs";
  290. AnimationId = "rbxassetid://87986341";
  291. Speed = 99;
  292. Time = 0;
  293. Weight = 1;
  294. Loop = true;
  295. R6 = true;
  296. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  297. };
  298. rotation = {
  299. Title = "Rotation";
  300. AnimationId = "rbxassetid://136801964";
  301. Speed = 1;
  302. Time = 0;
  303. Weight = 1;
  304. Loop = true;
  305. R6 = true;
  306. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  307. };
  308. insanerotation = {
  309. Title = "Insane Rotation";
  310. AnimationId = "rbxassetid://136801964";
  311. Speed = 99;
  312. Time = 0;
  313. Weight = 1;
  314. Loop = true;
  315. R6 = true;
  316. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  317. };
  318. roar = {
  319. Title = "Roar";
  320. AnimationId = "rbxassetid://163209885";
  321. Speed = 1;
  322. Time = 0;
  323. Weight = 1;
  324. Loop = true;
  325. R6 = true;
  326. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  327. };
  328. spin = {
  329. Title = "Spin";
  330. AnimationId = "rbxassetid://188632011";
  331. Speed = 1;
  332. Time = 0;
  333. Weight = 1;
  334. Loop = true;
  335. R6 = true;
  336. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  337. };
  338. zombiearms = {
  339. Title = "Zombie Arms";
  340. AnimationId = "rbxassetid://183294396";
  341. Speed = 0;
  342. Time = 0;
  343. Weight = 1;
  344. Loop = true;
  345. R6 = true;
  346. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  347. };
  348. insane = {
  349. Title = "Insane";
  350. AnimationId = "rbxassetid://33796059";
  351. Speed = 99;
  352. Time = 0;
  353. Weight = 1;
  354. Loop = true;
  355. R6 = true;
  356. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  357. };
  358. neckbreak = {
  359. Title = "Neck Break";
  360. AnimationId = "rbxassetid://35154961";
  361. Speed = 0;
  362. Time = 2;
  363. Weight = 1;
  364. Loop = true;
  365. R6 = true;
  366. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  367. };
  368. headdetach = {
  369. Title = "Head Detach";
  370. AnimationId = "rbxassetid://35154961";
  371. Speed = 0;
  372. Time = 3;
  373. Weight = 1;
  374. Loop = true;
  375. R6 = true;
  376. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  377. };
  378. idle = {
  379. Title = "Idle";
  380. AnimationId = "rbxassetid://180435571";
  381. Speed = 1;
  382. Time = 0;
  383. Weight = 1;
  384. Loop = true;
  385. R6 = true;
  386. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  387. };
  388. charleston = {
  389. Title = "Charleston";
  390. AnimationId = "rbxassetid://429703734";
  391. Speed = 1;
  392. Time = 0;
  393. Weight = 1;
  394. Loop = true;
  395. R6 = true;
  396. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  397. };
  398. }
  399. robloxOwns = {}
  400. ownerOwns = {}
  401. customAnims = {}
  402. function getOwnedAnimations(userid)
  403. local httpserv = game:GetService("HttpService")
  404. local owned = httpserv:GetAsync("https://inventory.roblox.com/v1/users/"..userid.."/inventory/Animation?pageNumber=1&itemsPerPage=10", true)
  405. return owned
  406. end
  407. function getAnim(name)
  408. return popAnims[name] or customAnims[name]
  409. end
  410. function runAnim(info, humanoid)
  411. local animation = Instance.new("Animation")
  412. animation.AnimationId = info.AnimationId
  413. local animtrack = humanoid:LoadAnimation(animation)
  414. table.insert(running,animtrack)
  415. animtrack.Priority = info.Priority
  416. animtrack.Looped = info.Loop
  417. animtrack:Play()
  418. animtrack:AdjustSpeed(info.Speed)
  419. animtrack:AdjustWeight(info.Weight)
  420. animtrack.TimePosition = info.Time
  421. animtrack.Stopped:connect(function()
  422. for i = 1,#running do
  423. if running[i] == animtrack then
  424. table.remove(running,i)
  425. end
  426. end
  427. end)
  428. return animtrack
  429. end
  430. template = items.Template
  431. template.Parent = nil
  432. function clear()
  433. for i,v in pairs (items:GetChildren()) do
  434. if v:IsA("TextButton") then
  435. v:Destroy()
  436. end
  437. end
  438. end
  439. --[[
  440. idle = {
  441. Title = "Idle";
  442. AnimationId = "rbxassetid://180435571";
  443. Speed = 1;
  444. Time = 0;
  445. Weight = 1;
  446. Loop = true;
  447. R6 = true;
  448. Priority = 2; --0, 1, 2, and 1000 are acceptable priorities
  449. };
  450. --]]
  451. function createbutton(v)
  452. local temp = template:Clone()
  453. temp.Parent = items
  454. temp.Name = v.Title
  455. temp.Title.Text = v.Title
  456. temp.Image.Image = v.Image or "rbxassetid://2151539455"
  457. if temp.Image.Image == "rbxassetid://2151539455" then
  458. temp.Image.ImageColor3 = (v.Priority == 0 and save.ui.idle) or (v.Priority == 1 and save.ui.movement) or (v.Priority == 2 and save.ui.action) or (v.Priority == 1000 and save.ui.core)
  459. else
  460. temp.Image.ImageColor3 = Color3.new(1,1,1)
  461. end
  462. temp.LayoutOrder = math.random(1,10000)
  463. temp.Settings.AnimationId.Value = v.AnimationId
  464. temp.Settings.Loop.Value = v.Loop
  465. temp.Settings.Priority.Value = v.Priority
  466. temp.Settings.R6.Value = v.R6
  467. temp.Settings.Speed.Value = v.Speed
  468. temp.Settings.Weight.Value = v.Weight
  469. temp.Settings.Time.Value = v.Time
  470. temp.MouseEnter:connect(function()
  471. preview.Title.Text = v.Title
  472. preview.Desc.Text = "Speed: "..tostring(v.Speed).."\nPriority: "..tostring(v.Priority).."\nR6 Rig: "..tostring(v.R6).."\nAnimID: "..tostring(v.AnimationId).."\n\n"..(v.Description or "No description provided")
  473. preview.Image.Image = v.Image or "rbxassetid://2151539455"
  474. if preview.Image.Image == "rbxassetid://2151539455" then
  475. preview.Image.ImageColor3 = (v.Priority == 0 and save.ui.idle) or (v.Priority == 1 and save.ui.movement) or (v.Priority == 2 and save.ui.action) or (v.Priority == 1000 and save.ui.core)
  476. else
  477. preview.Image.ImageColor3 = Color3.new(1,1,1)
  478. end
  479. end)
  480. temp.MouseButton1Click:connect(function()
  481. temp.Border.ImageColor3 = save.ui.highlightcolor
  482. for i,anim in pairs (running) do
  483. if anim.Animation.AnimationId == v.AnimationId then
  484. anim:Stop()
  485. return
  486. end
  487. end
  488. temp.Border.Visible = true
  489. local rAnim = runAnim(v, getHumanoid())
  490. rAnim.Stopped:connect(function()
  491. temp.Border.Visible = false
  492. end)
  493. end)
  494. return temp
  495. end
  496. dropdown = mainframe.ScrollingFrame.DropdownFrame
  497. elements = dropdown.HoldContentsFrame.Frame.Elements
  498. dropdownenabled = true
  499. tween(dropdown.HoldContentsFrame.Frame, "Linear", "In", 0, {
  500. Position = UDim2.new(0,0,-1,0)
  501. })
  502. dropdown.HoldContentsFrame.Frame.Visible = false
  503. dropdowndeactivate = screengui.DropdownDeactivate
  504. dropdowndeactivate.Visible = false
  505. function hideddown()
  506. tween(dropdown.HoldContentsFrame.Frame, "Linear", "In", 0, {
  507. Position = UDim2.new(0,0,-1,0)
  508. })
  509. dropdown.HoldContentsFrame.Frame.Visible = false
  510. dropdowndeactivate.Visible = false
  511. dropdownenabled = true
  512. for i,e in pairs (elements:GetChildren()) do
  513. if e:IsA("TextButton") then
  514. e.BackgroundColor3 = c3(46,46,46)
  515. end
  516. end
  517. end
  518. dropdown.MouseButton1Click:connect(function()
  519. print'ddownclick'
  520. dropdownenabled = not dropdownenabled
  521. if dropdownenabled then
  522. hideddown()
  523. else
  524. tween(dropdown.HoldContentsFrame.Frame, "Linear", "In", 0.3, {
  525. Position = UDim2.new(0,0,0,0)
  526. })
  527. dropdown.HoldContentsFrame.Frame.Visible = true
  528. dropdowndeactivate.Visible = true
  529. end
  530. end)
  531. dropdowndeactivate.MouseButton1Down:connect(function()
  532. hideddown()
  533. end)
  534. for i,v in pairs (elements:GetChildren()) do
  535. if v:IsA("TextButton") then
  536. v.MouseEnter:connect(function()
  537. for i,e in pairs (elements:GetChildren()) do
  538. if e:IsA("TextButton") then
  539. e.BackgroundColor3 = c3(46,46,46)
  540. end
  541. end
  542. v.BackgroundColor3 = save.ui.highlightcolor
  543. end)
  544. v.MouseButton1Click:connect(function()
  545. hideddown()
  546. dropdown.TextLabel.Text = v.Name
  547. sort(v.Name)
  548. end)
  549. end
  550. end
  551. function sort(category)
  552. clear()
  553. if category == "Popular" then
  554. for i,v in pairs (popAnims) do
  555. local temp = createbutton(v)
  556. end
  557. elseif category == "By Roblox" then
  558. end
  559. end
  560. game:GetService('RunService').RenderStepped:connect(function()
  561. items.Parent.CanvasSize = UDim2.new(0,0,0,items.GridLayout.AbsoluteContentSize.Y + 50)
  562. end)
  563. sort("Popular")