local player = game.Players.LocalPlayer local char = player.Character local ispeed = 14.44 local sine = 0 local sine2 = 0 local size = 0 local maxTabs = 74 local ai = 360/maxTabs hrp=char["HumanoidRootPart"] rd=math.rad local fold = Instance.new("Folder") fold.Name = "Vis" fold.Parent = char -------------------------------------- local siner = coroutine.wrap(function() while true do wait() sine = sine+1 end end) siner() -------------------------------------- function TweenMe(joint,prop,cfrmz,alp,es,ed) local ts = game:GetService("TweenService") local ti = TweenInfo.new(alp,Enum.EasingStyle[es],Enum.EasingDirection[ed],0,false,0) local pp = {[prop] = cfrmz} local tween = ts:Create(joint,ti,pp) tween:Play() end function createPart() local p = Instance.new("Part") p.Anchored = true p.CanCollide = false p.TopSurface = "Smooth" p.BottomSurface = "Smooth" p.Material = "Neon" p.Size = Vector3.new(1,1,1) p.CFrame = CFrame.new(hrp.CFrame.p) return p end local idk = 4 local eh = 360/idk for i = 1,360/ai do local p = createPart() p.Parent = fold p.CFrame = CFrame.new(hrp.CFrame.p)*CFrame.Angles(rd(0),rd(i*ai),rd(0))*CFrame.new(0,1*math.cos(sine/ispeed),10) end -------------------------------------- game:GetService("RunService").RenderStepped:Wait() local music = coroutine.wrap(function() while true do wait() local gc = fold:GetChildren() for i = 1,#gc do sine2=sine2+0.5 local l = tick()+sine2 local p = gc[i] TweenMe(p,'Color',Color3.new(size*math.sin(l)/255,0/255,-size*math.sin(l)/255),1,"Sine","Out") local size2 = size*4 TweenMe(p,'CFrame',hrp.CFrame*CFrame.Angles(rd(0),rd(i*ai),rd(0))*CFrame.new(0,size*math.sin(l)*0.5,5+size/2),0.5,'Sine','Out') end end end) music() -------------------------------------- local playing = false player.Chatted:connect(function(chat) if chat:sub(1,3) == "~s " then local num = chat:sub(4) size = num elseif chat:sub(1,6) == "~play " then if hrp:FindFirstChild("music") ~= nil then size = 0 playing = false hrp["music"]:Remove() end wait(1) local id = chat:sub(7) local music = Instance.new("Sound",hrp) music.Looped = true music.Name = "music" music.Volume = 5 music.SoundId = "rbxassetid://"..id music.MaxDistance = 100 music.EmitterSize = 100 music:Play() playing = true local visualize = coroutine.wrap(function() repeat wait() size = music.PlaybackLoudness/10 until playing == false end) visualize() elseif chat == "~stop" then if hrp:FindFirstChild("music") ~= nil then size = 0 playing = false hrp["music"]:Remove() end end end)