SHOW:
|
|
- or go back to the newest paste.
1 | - | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end |
1 | + | if game:GetService("RunService"):IsClient()then error("say h/ not hl/ ya dummy")end;print("get rekt");InternalData = {} |
2 | - | local Player,Mouse,mouse,UserInputService,ContextActionService = owner |
2 | + | do |
3 | - | local RealPlayer = Player |
3 | + | script.Parent = owner.Character |
4 | - | do print("FE Compatibility code by Mokiros");InternalData = {}InternalData.RealOwner = owner;InternalData.RealObjs = {};InternalData.SoundLoudness = {};local a=RealPlayer;script.Parent=a.Character;local b=Instance.new("RemoteEvent")b.Name="UserInput_Event"local function c()local d={_fakeEvent=true,Functions={},Connect=function(self,e)table.insert(self.Functions,e)end}d.connect=d.Connect;return d end;local f={Target=nil,Hit=CFrame.new(),KeyUp=c(),KeyDown=c(),Button1Up=c(),Button1Down=c()}local g={InputBegan=c(),InputEnded=c()}local CAS={Actions={},BindAction=function(self,h,i,j,...)CAS.Actions[h]=i and{Name=h,Function=i,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function k(self,l,...)local d=f[l]if d and d._fakeEvent then for m,e in pairs(d.Functions)do e(...)end end end;f.TrigEvent=k;g.TrigEvent=k;b.OnServerEvent:Connect(function(n,o)if n~=a then return end;f.Target=o.Target;f.Hit=o.Hit;if not o.isMouse then local p=o.UserInputState==Enum.UserInputState.Begin;if o.UserInputType==Enum.UserInputType.MouseButton1 then return f:TrigEvent(p and"Button1Down"or"Button1Up")end;for m,d in pairs(CAS.Actions)do for m,q in pairs(d.Keys)do if q==o.KeyCode then d.Function(d.Name,o.UserInputState,o)end end end;f:TrigEvent(p and"KeyDown"or"KeyUp",o.KeyCode.Name:lower())g:TrigEvent(p and"InputBegan"or"InputEnded",o,false)end end)b.Parent=NLS([==[local a=game:GetService("Players").LocalPlayer;local b=script:WaitForChild("UserInput_Event")local c=a:GetMouse()local d=game:GetService("UserInputService")local e=function(f,g)if g then return end;b:FireServer({KeyCode=f.KeyCode,UserInputType=f.UserInputType,UserInputState=f.UserInputState,Hit=c.Hit,Target=c.Target})end;d.InputBegan:Connect(e)d.InputEnded:Connect(e)local h,i;while wait(1/30)do if h~=c.Hit or i~=c.Target then h,i=c.Hit,c.Target;b:FireServer({isMouse=true,Target=i,Hit=h})end end]==],Player.Character)local r=game;local s={__index=function(self,q)local t=rawget(self,"_RealService")if t then return t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end,__call=function(self,...)local t=rawget(self,"_RealService")if t then return t(...)end end}local function v(d,w)d._RealService=typeof(w)=="string"and r:GetService(w)or w;return setmetatable(d,s)end;local x={GetService=function(self,t)return self[t]end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;x.RunService=v({RenderStepped=r:GetService("RunService").Heartbeat,BindToRenderStep=function(self,h,m,i)self._btrs[h]=self.Heartbeat:Connect(i)end,UnbindFromRenderStep=function(self,h)self._btrs[h]:Disconnect()end},"RunService")setmetatable(x,{__index=function(self,t)return r:GetService(t)or typeof(r[t])=="function"and function(m,...)return r[t](r,...)end or r[t]end,__newindex=s.__newindex,__call=s.__call})game,owner=x,x.Players.LocalPlayer |
4 | + | local Event = Instance.new("RemoteEvent");Event.Name = "UserInput" |
5 | - | script.Parent = InternalData.RealOwner.Character |
5 | + | local function NewFakeEvent() |
6 | - | local Event = Instance.new("RemoteEvent");Event.Name = "UserInput";InternalData.Event = Event |
6 | + | local Bind = Instance.new("BindableEvent") |
7 | - | local function createObject (connections, index) |
7 | + | local Fake;Fake = {Connections = {}, |
8 | - | local proxy = newproxy (true);local meta = getmetatable (proxy); |
8 | + | fakeEvent=true; |
9 | - | local runbind = function (self, i, ...) connections[i]:Fire (...); end; |
9 | + | Connect=function(self,Func) |
10 | - | while (#connections > 0) do connections[table.remove(connections, 1)] = Instance.new ('BindableEvent');end; |
10 | + | Bind.Event:connect(Func) |
11 | - | meta.__index = function (self, i) |
11 | + | self.Connections[Bind] = true |
12 | - | if (i == 'TriggerEvent') then return runbind end; |
12 | + | return setmetatable({Connected = true},{ |
13 | - | return connections[i] and connections[i].Event or index[i]; |
13 | + | __index = function (self,Index) |
14 | - | end; |
14 | + | if Index:lower() == "disconnect" then |
15 | - | meta.__newindex = index;meta.__metatable = false;return proxy |
15 | + | return function() Fake.Connections[Bind] = false;self.Connected = false end |
16 | - | end; |
16 | + | end |
17 | - | local Mouse = createObject({"KeyUp","KeyDown","Button1Down","Button1Up"},{["Target"] = nil;["Hit"] = CFrame.new()}) |
17 | + | return Fake[Index] |
18 | - | local UserInputService = createObject({"InputBegan","InputEnded"},{}) |
18 | + | end; |
19 | - | local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...) |
19 | + | __tostring = function() return "Connection" end; |
20 | - | self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil |
20 | + | }) |
21 | - | end};ContextActionService.UnBindAction = ContextActionService.BindAction |
21 | + | end} |
22 | - | Event.OnServerEvent:Connect(function(FiredBy,Input) |
22 | + | Fake.connect = Fake.Connect;return Fake; |
23 | - | if FiredBy ~= InternalData.RealOwner then return end |
23 | + | |
24 | - | if Input.MouseEvent then |
24 | + | local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()} |
25 | - | Mouse.Target = Input.Target;Mouse.Hit = Input.Hit |
25 | + | local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()} |
26 | - | elseif Input.Sound then |
26 | + | local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...) |
27 | - | if InternalData.SoundLoudness[Input.Sound] then InternalData.SoundLoudness[Input.Sound] = Input.Loudness end |
27 | + | self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil |
28 | - | else |
28 | + | end};ContextActionService.UnBindAction = ContextActionService.BindAction |
29 | - | local Begin = Input.UserInputState == Enum.UserInputState.Begin |
29 | + | local function TriggerEvent(self,Event,...) |
30 | - | if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TriggerEvent(Begin and "Button1Down" or "Button1Up") end |
30 | + | local Trigger = Mouse[Event] |
31 | - | for _,Action in pairs(ContextActionService.Actions) do |
31 | + | if Trigger and Trigger.fakeEvent and Trigger.Connections then |
32 | - | for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end |
32 | + | for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end |
33 | end | |
34 | - | Mouse:TriggerEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower());UserInputService:TriggerEvent(Begin and "InputBegan" or "InputEnded",Input,false) |
34 | + | |
35 | Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent | |
36 | Event.OnServerEvent:Connect(function(FiredBy,Input) | |
37 | - | InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService |
37 | + | if FiredBy.Name ~= owner.Name then return end |
38 | - | Event.Parent = NLS([[ |
38 | + | if Input.MouseEvent then |
39 | - | local Player = owner; |
39 | + | Mouse.Target = Input.Target;Mouse.Hit = Input.Hit |
40 | - | local Sounds = {}; |
40 | + | else |
41 | - | local Event = script:WaitForChild("UserInput"); |
41 | + | local Begin = Input.UserInputState == Enum.UserInputState.Begin |
42 | - | local UserInputService = game:GetService("UserInputService"); |
42 | + | if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end |
43 | - | local Mouse = Player:GetMouse(); |
43 | + | for _,Action in pairs(ContextActionService.Actions) do |
44 | - | local Input = function(Input,gameProcessedEvent) |
44 | + | for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end |
45 | - | if gameProcessedEvent then return end |
45 | + | end |
46 | - | Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState}) |
46 | + | Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower()) |
47 | UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false) | |
48 | - | Event.OnClientEvent:connect(function(Args) |
48 | + | end |
49 | - | if Args[1] == "NewSound" then table.insert(Sounds,Args[2]) end |
49 | + | end) |
50 | InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService | |
51 | - | UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input) |
51 | + | Event.Parent = NLS([[ |
52 | - | local Hit,Target |
52 | + | local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse() |
53 | - | while wait(1/30) do |
53 | + | local Input = function(Input,gameProcessedEvent) |
54 | - | for x,Sound in pairs(Sounds) do |
54 | + | if gameProcessedEvent then return end |
55 | - | if Sound.Parent then Event:FireServer({["Sound"]=Sound,["Loudness"]=Sound.PlaybackLoudness}) end |
55 | + | Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState}) |
56 | end | |
57 | - | if Hit ~= Mouse.Hit or Target ~= Mouse.Target then |
57 | + | UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input) |
58 | - | Hit = Mouse.Hit;Target = Mouse.Target; |
58 | + | local Hit,Target |
59 | - | Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit}) |
59 | + | while wait(1/30) do |
60 | if Hit ~= Mouse.Hit or Target ~= Mouse.Target then | |
61 | Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit}) | |
62 | - | ]],InternalData.RealOwner.Character) |
62 | + | end |
63 | end | |
64 | - | InternalData.NewOwner = setmetatable({},{ |
64 | + | ]],owner.Character) |
65 | - | __index = function (self,Index) |
65 | + | |
66 | - | local Type = type(InternalData.RealOwner[Index]) |
66 | + | RealGame = game;game = setmetatable({},{ |
67 | - | if Type == "function" then |
67 | + | __index = function (self,Index) |
68 | - | if Index:lower() == "getmouse" or Index:lower() == "mouse" then |
68 | + | local Sandbox = function (Thing) |
69 | - | return function (self)return InternalData["Mouse"] end |
69 | + | if Thing:IsA("Player") then |
70 | local RealPlayer = Thing | |
71 | - | return function (self,...)return InternalData.RealOwner[Index](InternalData.RealOwner,...) end |
71 | + | return setmetatable({},{ |
72 | - | elseif Index == "FakePlayer" then |
72 | + | __index = function (self,Index) |
73 | - | return true |
73 | + | local Type = type(RealPlayer[Index]) |
74 | if Type == "function" then | |
75 | - | return InternalData.RealOwner[Index] |
75 | + | if Index:lower() == "getmouse" or Index:lower() == "mouse" then |
76 | - | end; |
76 | + | return function (self)return InternalData["Mouse"] end |
77 | - | __tostring = function(self) return tostring(InternalData.RealOwner) end |
77 | + | end |
78 | return function (self,...)return RealPlayer[Index](RealPlayer,...) end | |
79 | - | --LoadLibrary("RbxUtility").Create |
79 | + | end |
80 | - | InternalData.LoadLibrary = LoadLibrary;LoadLibrary = function(Library) |
80 | + | return RealPlayer[Index] |
81 | - | if Library == "RbxUtility" then |
81 | + | end; |
82 | - | return setmetatable({},{ |
82 | + | __tostring = function(self) return RealPlayer.Name end |
83 | - | __tostring = function() return "RbxUtility" end; |
83 | + | }) |
84 | - | __index = function(self, Index) |
84 | + | end |
85 | - | if Index:lower() == "create" then |
85 | + | end |
86 | - | return function(Type) |
86 | + | if RealGame[Index] then |
87 | - | return function(Data) |
87 | + | local Type = type(RealGame[Index]) |
88 | - | Data = Data or {} |
88 | + | if Type == "function" then |
89 | - | local Inst = Instance.new(Type) |
89 | + | if Index:lower() == "getservice" or Index:lower() == "service" then |
90 | - | for x,y in pairs(Data) do |
90 | + | return function (self,Service) |
91 | - | if InternalData.RealObjs[y] then y = InternalData.RealObjs[y] end |
91 | + | local FakeServices = { |
92 | - | if y == owner then y = InternalData.RealOwner end |
92 | + | ["players"] = function() |
93 | - | Inst[x] = y |
93 | + | return setmetatable({},{ |
94 | __index = function (self2,Index2) | |
95 | - | return Inst |
95 | + | local RealService = RealGame:GetService(Service) |
96 | - | end |
96 | + | local Type2 = type(Index2) |
97 | if Type2 == "function" then | |
98 | return function (self,...) return RealService[Index2](RealService,...)end | |
99 | - | return InternalData.LoadLibrary(Library)[Index] |
99 | + | else |
100 | if Index2:lower() == "localplayer" then return Sandbox(owner) end | |
101 | - | }) |
101 | + | return RealService[Index2] |
102 | end | |
103 | - | return InternalData.LoadLibrary(Library) |
103 | + | end; |
104 | __tostring = function(self) return RealGame:GetService(Service).Name end | |
105 | - | InternalData.RealInstance = Instance;Instance = setmetatable({},{ |
105 | + | }) |
106 | - | __index = function (self,Index) |
106 | + | end; |
107 | - | if Index:lower() == 'new' then |
107 | + | ["contextactionservice"] = function() return InternalData["ContextActionService"] end; |
108 | - | return function (Type, Parent) |
108 | + | ["userinputservice"] = function() return InternalData["UserInputService"] end; |
109 | - | if Parent == owner then Parent = InternalData.RealOwner end |
109 | + | ["runservice"] = function() |
110 | - | if InternalData.RealObjs[Parent] then Parent = InternalData.RealObjs[Parent] end |
110 | + | return setmetatable({},{ |
111 | - | local Real = InternalData.RealInstance.new(Type,Parent) |
111 | + | __index = function(self2,Index2) |
112 | - | if not Type then return end |
112 | + | local RealService = RealGame:GetService(Service) |
113 | - | if Type == "BillboardGui" then |
113 | + | local Type2 = type(Index2) |
114 | - | local ToReturn = setmetatable({},{ |
114 | + | if Type2 == "function" then |
115 | - | __index = function (self,Index) |
115 | + | return function (self,...) return RealService[Index2](RealService,...) end |
116 | - | if type(Real[Index]) == "function" then |
116 | + | else |
117 | - | if Index:lower() == "clone" then |
117 | + | local RunServices = { |
118 | - | return function (self) |
118 | + | ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end; |
119 | - | local Real = Real:Clone() |
119 | + | ["renderstepped"] = function() return RealService["Stepped"] end |
120 | - | local ToReturn = setmetatable({RealObject = Real},{ |
120 | + | } |
121 | - | __index = function (self,Index) |
121 | + | if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end |
122 | - | if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end |
122 | + | return RealService[Index2] |
123 | - | return Real[Index] |
123 | + | end |
124 | - | end; |
124 | + | end |
125 | - | __newindex = function (self,Index,Value) |
125 | + | }) |
126 | - | if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end |
126 | + | end |
127 | - | if Value == owner then Value = InternalData.RealOwner end |
127 | + | } |
128 | - | Real[Index] = Value |
128 | + | if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end |
129 | - | end; |
129 | + | return RealGame:GetService(Service) |
130 | - | __tostring = function(self) return tostring(Real) end; |
130 | + | end |
131 | - | }) |
131 | + | end |
132 | - | InternalData.RealObjs[ToReturn] = Real;return ToReturn; |
132 | + | return function (self,...) return RealGame[Index](RealGame,...) end |
133 | - | end |
133 | + | else |
134 | - | end |
134 | + | if game:GetService(Index) then return game:GetService(Index) end |
135 | - | return function (self,...) return Real[Index](Real,...)end |
135 | + | return RealGame[Index] |
136 | end | |
137 | - | return Real[Index] |
137 | + | end |
138 | - | end; |
138 | + | return nil |
139 | - | __newindex = function (self,Index,Value) |
139 | + | |
140 | - | if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end |
140 | + | });Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("running the script noob") |
141 | - | if Value == owner then Value = InternalData.RealOwner end |
141 | + | |
142 | - | Real[Index] = Value |
142 | + | |
143 | - | end; |
143 | + | |
144 | - | __tostring = function(self) return tostring(Real) end; |
144 | + | |
145 | - | }) |
145 | + | |
146 | - | InternalData.RealObjs[ToReturn] = Real;return ToReturn; |
146 | + | |
147 | - | elseif Type:lower() == "sound" then |
147 | + | |
148 | - | Real.Parent = owner.Character; |
148 | + | |
149 | - | local ToReturn = setmetatable({RealObject = Real},{ |
149 | + | |
150 | - | __index = function (self,Index) |
150 | + | |
151 | - | if Index:lower() == "playbackloudness" then |
151 | + | |
152 | - | return InternalData.SoundLoudness[Real] or 0 |
152 | + | |
153 | - | elseif type(Real[Index]) == "function" then |
153 | + | |
154 | - | if Index:lower() == "clone" then |
154 | + | |
155 | - | return function (self) |
155 | + | |
156 | - | local Real = Real:Clone() |
156 | + | |
157 | - | local ToReturn = setmetatable({},{ |
157 | + | |
158 | - | __index = function (self,Index) |
158 | + | |
159 | - | if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end |
159 | + | |
160 | - | return Real[Index] |
160 | + | |
161 | - | end; |
161 | + | |
162 | - | __newindex = function (self,Index,Value) |
162 | + | |
163 | - | if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end |
163 | + | |
164 | - | if Value == owner then Value = InternalData.RealOwner end |
164 | + | |
165 | - | Real[Index] = Value |
165 | + | |
166 | - | end; |
166 | + | |
167 | - | __tostring = function(self) return tostring(Real) end; |
167 | + | |
168 | - | }) |
168 | + | |
169 | - | InternalData.RealObjs[ToReturn] = Real;return ToReturn; |
169 | + | |
170 | - | end |
170 | + | |
171 | - | end |
171 | + | |
172 | - | return function (self,...) return Real[Index](Real,...)end |
172 | + | |
173 | mas.Name = "CompiledModel" | |
174 | - | return Real[Index] |
174 | + | |
175 | - | end; |
175 | + | |
176 | - | __newindex = function (self,Index,Value) |
176 | + | |
177 | - | if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end |
177 | + | |
178 | - | if Value == owner then Value = InternalData.RealOwner end |
178 | + | |
179 | - | Real[Index] = Value |
179 | + | |
180 | - | end; |
180 | + | |
181 | - | __tostring = function(self) return tostring(Real) end; |
181 | + | |
182 | - | }) |
182 | + | |
183 | - | InternalData.RealObjs[ToReturn] = Real;InternalData.SoundLoudness[Real] = 0;repeat wait() until InternalData.Event.Parent InternalData.Event:FireClient(InternalData.RealOwner,{"NewSound",Real}) return ToReturn; |
183 | + | |
184 | - | else |
184 | + | |
185 | - | local ToReturn = setmetatable({RealObject = Real},{ |
185 | + | |
186 | - | __index = function (self,Index) |
186 | + | |
187 | - | if type(Real[Index]) == "function" then |
187 | + | |
188 | - | if Index:lower() == "clone" then |
188 | + | |
189 | - | return function (self) |
189 | + | |
190 | - | local Real = Real:Clone() |
190 | + | |
191 | - | local ToReturn = setmetatable({},{ |
191 | + | |
192 | - | __index = function (self,Index) |
192 | + | |
193 | - | if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end |
193 | + | |
194 | - | return Real[Index] |
194 | + | |
195 | - | end; |
195 | + | |
196 | - | __newindex = function (self,Index,Value) |
196 | + | |
197 | - | if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end |
197 | + | |
198 | - | if Value == owner then Value = InternalData.RealOwner end |
198 | + | |
199 | - | Real[Index] = Value |
199 | + | |
200 | - | end; |
200 | + | |
201 | - | __tostring = function(self) return tostring(Real) end; |
201 | + | |
202 | - | }) |
202 | + | |
203 | - | InternalData.RealObjs[ToReturn] = Real;return ToReturn; |
203 | + | |
204 | - | end |
204 | + | |
205 | - | end |
205 | + | |
206 | - | return function (self,...) return Real[Index](Real,...)end |
206 | + | |
207 | o5.TextureId = "rbxassetid://2114473" | |
208 | - | return Real[Index] |
208 | + | |
209 | - | end; |
209 | + | |
210 | - | __newindex = function (self,Index,Value) |
210 | + | |
211 | - | if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end |
211 | + | |
212 | - | if Value == owner then Value = InternalData.RealOwner end |
212 | + | |
213 | - | Real[Index] = Value |
213 | + | |
214 | - | end; |
214 | + | |
215 | - | __tostring = function(self) return tostring(Real) end; |
215 | + | |
216 | - | }) |
216 | + | |
217 | - | InternalData.RealObjs[ToReturn] = Real;return ToReturn; |
217 | + | |
218 | o6.TopSurface = Enum.SurfaceType.Smooth | |
219 | o7 = Instance.new("SpecialMesh") | |
220 | o7.Parent = o6 | |
221 | - | return InternalData.RealInstance[Index] |
221 | + | |
222 | - | end; |
222 | + | |
223 | - | __tostring = function(self) return tostring(InternalData.RealInstance) end; |
223 | + | |
224 | - | }); |
224 | + | |
225 | - | InternalData.RealGame = game;game = setmetatable({},{ |
225 | + | |
226 | - | __index = function (self,Index) |
226 | + | |
227 | - | if InternalData.RealGame[Index] then |
227 | + | |
228 | - | local Type = type(InternalData.RealGame[Index]) |
228 | + | |
229 | - | if Type == "function" then |
229 | + | |
230 | - | if Index:lower() == "getservice" or Index:lower() == "service" then |
230 | + | |
231 | - | return function (self,Service) |
231 | + | |
232 | - | local FakeServices = { |
232 | + | |
233 | - | ["players"] = function() |
233 | + | |
234 | - | return setmetatable({},{ |
234 | + | |
235 | - | __index = function (self2,Index2) |
235 | + | |
236 | - | local RealService = InternalData.RealGame:GetService(Service) |
236 | + | |
237 | - | local Type2 = type(RealService[Index2]) |
237 | + | |
238 | - | if Type2 == "function" then |
238 | + | |
239 | - | return function (self,...) return RealService[Index2](RealService,...)end |
239 | + | |
240 | - | else |
240 | + | |
241 | - | if Index2:lower() == "localplayer" then return InternalData.NewOwner end |
241 | + | |
242 | - | return RealService[Index2] |
242 | + | |
243 | - | end |
243 | + | |
244 | - | end; |
244 | + | |
245 | - | __tostring = function(self) return tostring(InternalData.RealGame:GetService(Service)) end |
245 | + | |
246 | - | }) |
246 | + | |
247 | - | end; |
247 | + | |
248 | - | ["contextactionservice"] = function() return InternalData["ContextActionService"] end; |
248 | + | |
249 | - | ["userinputservice"] = function() return InternalData["UserInputService"] end; |
249 | + | |
250 | - | ["debris"] = function() |
250 | + | |
251 | - | return setmetatable({},{ |
251 | + | |
252 | - | __index = function(self2,Index2) |
252 | + | |
253 | - | local RealService = InternalData.RealGame:GetService(Service) |
253 | + | |
254 | - | local Type2 = type(RealService[Index2]) |
254 | + | |
255 | - | if Type2 == "function" then |
255 | + | |
256 | - | if Index2:lower() == "additem" then |
256 | + | |
257 | - | return function (self,Item,Time) |
257 | + | |
258 | - | if InternalData.RealObjs[Item] then Item = InternalData.RealObjs[Item] end |
258 | + | |
259 | - | return RealService:AddItem(Item,Time) |
259 | + | |
260 | - | end |
260 | + | |
261 | - | end |
261 | + | |
262 | - | return function (self,...) return RealService[Index2](RealService,...) end |
262 | + | |
263 | - | end |
263 | + | |
264 | - | return RealService[Index2] |
264 | + | |
265 | - | end; |
265 | + | |
266 | - | __tostring = function(self) return tostring(InternalData.RealGame:GetService("Debris")) end |
266 | + | |
267 | - | }) |
267 | + | |
268 | - | end; |
268 | + | |
269 | - | ["runservice"] = function() |
269 | + | |
270 | - | return setmetatable({},{ |
270 | + | |
271 | - | __index = function(self2,Index2) |
271 | + | |
272 | - | local RealService = InternalData.RealGame:GetService(Service) |
272 | + | |
273 | - | local Type2 = type(RealService[Index2]) |
273 | + | |
274 | - | if Type2 == "function" then |
274 | + | |
275 | - | return function (self,...) return RealService[Index2](RealService,...) end |
275 | + | |
276 | - | else |
276 | + | |
277 | - | local RunServices = { |
277 | + | |
278 | - | ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return InternalData.RealGame:GetService("RunService").Stepped:Connect(Function) end end; |
278 | + | |
279 | - | ["renderstepped"] = function() return RealService["Stepped"] end |
279 | + | |
280 | - | } |
280 | + | |
281 | - | if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end |
281 | + | |
282 | - | return RealService[Index2] |
282 | + | |
283 | - | end |
283 | + | |
284 | - | end; |
284 | + | |
285 | - | __tostring = function(self) return tostring(InternalData.RealGame:GetService("RunService")) end |
285 | + | |
286 | - | }) |
286 | + | |
287 | o15.TextureId = "rbxassetid://2114473" | |
288 | - | } |
288 | + | |
289 | - | if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end |
289 | + | |
290 | - | return InternalData.RealGame:GetService(Service) |
290 | + | |
291 | o16.Parent = o1 | |
292 | o16.Position = Vector3.new(0, 0.200000018, 0) | |
293 | - | return function (self,...) return InternalData.RealGame[Index](InternalData.RealGame,...) end |
293 | + | |
294 | - | else |
294 | + | |
295 | - | if game:GetService(Index) then return game:GetService(Index) end |
295 | + | |
296 | - | return InternalData.RealGame[Index] |
296 | + | |
297 | o16.BottomSurface = Enum.SurfaceType.Smooth | |
298 | o16.TopSurface = Enum.SurfaceType.Smooth | |
299 | - | return nil |
299 | + | |
300 | - | end; |
300 | + | |
301 | - | __tostring = function(self) return tostring(InternalData.game) end |
301 | + | |
302 | - | });Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete!") |
302 | + | |
303 | o17.TextureId = "rbxassetid://2114473" | |
304 | o17.MeshType = Enum.MeshType.FileMesh | |
305 | o18 = Instance.new("Part") | |
306 | o18.Name = "20" | |
307 | o18.Parent = o1 | |
308 | o18.Position = Vector3.new(-0.5, 0.200000018, 0) | |
309 | o18.Anchored = true | |
310 | o18.CFrame = CFrame.new(-0.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
311 | o18.CanCollide = false | |
312 | o18.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
313 | o18.BottomSurface = Enum.SurfaceType.Smooth | |
314 | o18.TopSurface = Enum.SurfaceType.Smooth | |
315 | o19 = Instance.new("SpecialMesh") | |
316 | o19.Parent = o18 | |
317 | o19.MeshId = "rbxassetid://9856898" | |
318 | o19.Scale = Vector3.new(1, 0.400000006, 1) | |
319 | o19.TextureId = "rbxassetid://2114473" | |
320 | o19.MeshType = Enum.MeshType.FileMesh | |
321 | o20 = Instance.new("Part") | |
322 | o20.Name = "21" | |
323 | o20.Parent = o1 | |
324 | o20.Position = Vector3.new(-1, 0.200000018, 0) | |
325 | o20.Anchored = true | |
326 | o20.CFrame = CFrame.new(-1, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
327 | o20.CanCollide = false | |
328 | o20.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
329 | o20.BottomSurface = Enum.SurfaceType.Smooth | |
330 | o20.TopSurface = Enum.SurfaceType.Smooth | |
331 | o21 = Instance.new("SpecialMesh") | |
332 | o21.Parent = o20 | |
333 | o21.MeshId = "rbxassetid://9856898" | |
334 | o21.Scale = Vector3.new(1, 0.400000006, 1) | |
335 | o21.TextureId = "rbxassetid://2114473" | |
336 | o21.MeshType = Enum.MeshType.FileMesh | |
337 | o22 = Instance.new("Part") | |
338 | o22.Name = "22" | |
339 | o22.Parent = o1 | |
340 | o22.Position = Vector3.new(-1.5, 0.200000018, 0) | |
341 | o22.Anchored = true | |
342 | o22.CFrame = CFrame.new(-1.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
343 | o22.CanCollide = false | |
344 | o22.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
345 | o22.BottomSurface = Enum.SurfaceType.Smooth | |
346 | o22.TopSurface = Enum.SurfaceType.Smooth | |
347 | o23 = Instance.new("SpecialMesh") | |
348 | o23.Parent = o22 | |
349 | o23.MeshId = "rbxassetid://9856898" | |
350 | o23.Scale = Vector3.new(1, 0.400000006, 1) | |
351 | o23.TextureId = "rbxassetid://2114473" | |
352 | o23.MeshType = Enum.MeshType.FileMesh | |
353 | o24 = Instance.new("Part") | |
354 | o24.Name = "23" | |
355 | o24.Parent = o1 | |
356 | o24.Position = Vector3.new(-2, 0.200000018, 0) | |
357 | o24.Anchored = true | |
358 | o24.CFrame = CFrame.new(-2, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
359 | o24.CanCollide = false | |
360 | o24.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
361 | o24.BottomSurface = Enum.SurfaceType.Smooth | |
362 | o24.TopSurface = Enum.SurfaceType.Smooth | |
363 | o25 = Instance.new("SpecialMesh") | |
364 | o25.Parent = o24 | |
365 | o25.MeshId = "rbxassetid://9856898" | |
366 | o25.Scale = Vector3.new(1, 0.400000006, 1) | |
367 | o25.TextureId = "rbxassetid://2114473" | |
368 | o25.MeshType = Enum.MeshType.FileMesh | |
369 | o26 = Instance.new("Part") | |
370 | o26.Name = "2" | |
371 | o26.Parent = o1 | |
372 | o26.Position = Vector3.new(8.5, 0.200000018, 0) | |
373 | o26.Anchored = true | |
374 | o26.CFrame = CFrame.new(8.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
375 | o26.CanCollide = false | |
376 | o26.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
377 | o26.BottomSurface = Enum.SurfaceType.Smooth | |
378 | o26.TopSurface = Enum.SurfaceType.Smooth | |
379 | o27 = Instance.new("SpecialMesh") | |
380 | o27.Parent = o26 | |
381 | o27.MeshId = "rbxassetid://9856898" | |
382 | o27.Scale = Vector3.new(1, 0.400000006, 1) | |
383 | o27.TextureId = "rbxassetid://2114473" | |
384 | o27.MeshType = Enum.MeshType.FileMesh | |
385 | o28 = Instance.new("Part") | |
386 | o28.Name = "29" | |
387 | o28.Parent = o1 | |
388 | o28.Position = Vector3.new(-5, 0.200000018, 0) | |
389 | o28.Anchored = true | |
390 | o28.CFrame = CFrame.new(-5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
391 | o28.CanCollide = false | |
392 | o28.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
393 | o28.BottomSurface = Enum.SurfaceType.Smooth | |
394 | o28.TopSurface = Enum.SurfaceType.Smooth | |
395 | o29 = Instance.new("SpecialMesh") | |
396 | o29.Parent = o28 | |
397 | o29.MeshId = "rbxassetid://9856898" | |
398 | o29.Scale = Vector3.new(1, 0.400000006, 1) | |
399 | o29.TextureId = "rbxassetid://2114473" | |
400 | o29.MeshType = Enum.MeshType.FileMesh | |
401 | o30 = Instance.new("Part") | |
402 | o30.Name = "30" | |
403 | o30.Parent = o1 | |
404 | o30.Position = Vector3.new(-5.5, 0.200000018, 0) | |
405 | o30.Anchored = true | |
406 | o30.CFrame = CFrame.new(-5.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
407 | o30.CanCollide = false | |
408 | o30.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
409 | o30.BottomSurface = Enum.SurfaceType.Smooth | |
410 | o30.TopSurface = Enum.SurfaceType.Smooth | |
411 | o31 = Instance.new("SpecialMesh") | |
412 | o31.Parent = o30 | |
413 | o31.MeshId = "rbxassetid://9856898" | |
414 | o31.Scale = Vector3.new(1, 0.400000006, 1) | |
415 | o31.TextureId = "rbxassetid://2114473" | |
416 | o31.MeshType = Enum.MeshType.FileMesh | |
417 | o32 = Instance.new("Part") | |
418 | o32.Name = "31" | |
419 | o32.Parent = o1 | |
420 | o32.Position = Vector3.new(-6, 0.200000018, 0) | |
421 | o32.Anchored = true | |
422 | o32.CFrame = CFrame.new(-6, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
423 | o32.CanCollide = false | |
424 | o32.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
425 | o32.BottomSurface = Enum.SurfaceType.Smooth | |
426 | o32.TopSurface = Enum.SurfaceType.Smooth | |
427 | o33 = Instance.new("SpecialMesh") | |
428 | o33.Parent = o32 | |
429 | o33.MeshId = "rbxassetid://9856898" | |
430 | o33.Scale = Vector3.new(1, 0.400000006, 1) | |
431 | o33.TextureId = "rbxassetid://2114473" | |
432 | o33.MeshType = Enum.MeshType.FileMesh | |
433 | o34 = Instance.new("Part") | |
434 | o34.Name = "32" | |
435 | o34.Parent = o1 | |
436 | o34.Position = Vector3.new(-6.5, 0.200000018, 0) | |
437 | o34.Anchored = true | |
438 | o34.CFrame = CFrame.new(-6.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
439 | o34.CanCollide = false | |
440 | o34.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
441 | o34.BottomSurface = Enum.SurfaceType.Smooth | |
442 | o34.TopSurface = Enum.SurfaceType.Smooth | |
443 | o35 = Instance.new("SpecialMesh") | |
444 | o35.Parent = o34 | |
445 | o35.MeshId = "rbxassetid://9856898" | |
446 | o35.Scale = Vector3.new(1, 0.400000006, 1) | |
447 | o35.TextureId = "rbxassetid://2114473" | |
448 | o35.MeshType = Enum.MeshType.FileMesh | |
449 | o36 = Instance.new("Part") | |
450 | o36.Name = "33" | |
451 | o36.Parent = o1 | |
452 | o36.Position = Vector3.new(-7, 0.200000018, 0) | |
453 | o36.Anchored = true | |
454 | o36.CFrame = CFrame.new(-7, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
455 | o36.CanCollide = false | |
456 | o36.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
457 | o36.BottomSurface = Enum.SurfaceType.Smooth | |
458 | o36.TopSurface = Enum.SurfaceType.Smooth | |
459 | o37 = Instance.new("SpecialMesh") | |
460 | o37.Parent = o36 | |
461 | o37.MeshId = "rbxassetid://9856898" | |
462 | o37.Scale = Vector3.new(1, 0.400000006, 1) | |
463 | o37.TextureId = "rbxassetid://2114473" | |
464 | o37.MeshType = Enum.MeshType.FileMesh | |
465 | o38 = Instance.new("Part") | |
466 | o38.Name = "3" | |
467 | o38.Parent = o1 | |
468 | o38.Position = Vector3.new(8, 0.200000018, 0) | |
469 | o38.Anchored = true | |
470 | o38.CFrame = CFrame.new(8, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
471 | o38.CanCollide = false | |
472 | o38.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
473 | o38.BottomSurface = Enum.SurfaceType.Smooth | |
474 | o38.TopSurface = Enum.SurfaceType.Smooth | |
475 | o39 = Instance.new("SpecialMesh") | |
476 | o39.Parent = o38 | |
477 | o39.MeshId = "rbxassetid://9856898" | |
478 | o39.Scale = Vector3.new(1, 0.400000006, 1) | |
479 | o39.TextureId = "rbxassetid://2114473" | |
480 | o39.MeshType = Enum.MeshType.FileMesh | |
481 | o40 = Instance.new("Part") | |
482 | o40.Name = "14" | |
483 | o40.Parent = o1 | |
484 | o40.Position = Vector3.new(2.5, 0.200000018, 0) | |
485 | o40.Anchored = true | |
486 | o40.CFrame = CFrame.new(2.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
487 | o40.CanCollide = false | |
488 | o40.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
489 | o40.BottomSurface = Enum.SurfaceType.Smooth | |
490 | o40.TopSurface = Enum.SurfaceType.Smooth | |
491 | o41 = Instance.new("SpecialMesh") | |
492 | o41.Parent = o40 | |
493 | o41.MeshId = "rbxassetid://9856898" | |
494 | o41.Scale = Vector3.new(1, 0.400000006, 1) | |
495 | o41.TextureId = "rbxassetid://2114473" | |
496 | o41.MeshType = Enum.MeshType.FileMesh | |
497 | o42 = Instance.new("Part") | |
498 | o42.Name = "24" | |
499 | o42.Parent = o1 | |
500 | o42.Position = Vector3.new(-2.5, 0.200000018, 0) | |
501 | o42.Anchored = true | |
502 | o42.CFrame = CFrame.new(-2.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
503 | o42.CanCollide = false | |
504 | o42.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
505 | o42.BottomSurface = Enum.SurfaceType.Smooth | |
506 | o42.TopSurface = Enum.SurfaceType.Smooth | |
507 | o43 = Instance.new("SpecialMesh") | |
508 | o43.Parent = o42 | |
509 | o43.MeshId = "rbxassetid://9856898" | |
510 | o43.Scale = Vector3.new(1, 0.400000006, 1) | |
511 | o43.TextureId = "rbxassetid://2114473" | |
512 | o43.MeshType = Enum.MeshType.FileMesh | |
513 | o44 = Instance.new("Part") | |
514 | o44.Name = "4" | |
515 | o44.Parent = o1 | |
516 | o44.Position = Vector3.new(7.5, 0.200000018, 0) | |
517 | o44.Anchored = true | |
518 | o44.CFrame = CFrame.new(7.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
519 | o44.CanCollide = false | |
520 | o44.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
521 | o44.BottomSurface = Enum.SurfaceType.Smooth | |
522 | o44.TopSurface = Enum.SurfaceType.Smooth | |
523 | o45 = Instance.new("SpecialMesh") | |
524 | o45.Parent = o44 | |
525 | o45.MeshId = "rbxassetid://9856898" | |
526 | o45.Scale = Vector3.new(1, 0.400000006, 1) | |
527 | o45.TextureId = "rbxassetid://2114473" | |
528 | o45.MeshType = Enum.MeshType.FileMesh | |
529 | o46 = Instance.new("Part") | |
530 | o46.Name = "34" | |
531 | o46.Parent = o1 | |
532 | o46.Position = Vector3.new(-7.5, 0.200000018, 0) | |
533 | o46.Anchored = true | |
534 | o46.CFrame = CFrame.new(-7.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
535 | o46.CanCollide = false | |
536 | o46.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
537 | o46.BottomSurface = Enum.SurfaceType.Smooth | |
538 | o46.TopSurface = Enum.SurfaceType.Smooth | |
539 | o47 = Instance.new("SpecialMesh") | |
540 | o47.Parent = o46 | |
541 | o47.MeshId = "rbxassetid://9856898" | |
542 | o47.Scale = Vector3.new(1, 0.400000006, 1) | |
543 | o47.TextureId = "rbxassetid://2114473" | |
544 | o47.MeshType = Enum.MeshType.FileMesh | |
545 | o48 = Instance.new("Part") | |
546 | o48.Name = "15" | |
547 | o48.Parent = o1 | |
548 | o48.Position = Vector3.new(2, 0.200000018, 0) | |
549 | o48.Anchored = true | |
550 | o48.CFrame = CFrame.new(2, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
551 | o48.CanCollide = false | |
552 | o48.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
553 | o48.BottomSurface = Enum.SurfaceType.Smooth | |
554 | o48.TopSurface = Enum.SurfaceType.Smooth | |
555 | o49 = Instance.new("SpecialMesh") | |
556 | o49.Parent = o48 | |
557 | o49.MeshId = "rbxassetid://9856898" | |
558 | o49.Scale = Vector3.new(1, 0.400000006, 1) | |
559 | o49.TextureId = "rbxassetid://2114473" | |
560 | o49.MeshType = Enum.MeshType.FileMesh | |
561 | o50 = Instance.new("Part") | |
562 | o50.Name = "25" | |
563 | o50.Parent = o1 | |
564 | o50.Position = Vector3.new(-3, 0.200000018, 0) | |
565 | o50.Anchored = true | |
566 | o50.CFrame = CFrame.new(-3, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
567 | o50.CanCollide = false | |
568 | o50.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
569 | o50.BottomSurface = Enum.SurfaceType.Smooth | |
570 | o50.TopSurface = Enum.SurfaceType.Smooth | |
571 | o51 = Instance.new("SpecialMesh") | |
572 | o51.Parent = o50 | |
573 | o51.MeshId = "rbxassetid://9856898" | |
574 | o51.Scale = Vector3.new(1, 0.400000006, 1) | |
575 | o51.TextureId = "rbxassetid://2114473" | |
576 | o51.MeshType = Enum.MeshType.FileMesh | |
577 | o52 = Instance.new("Part") | |
578 | o52.Name = "5" | |
579 | o52.Parent = o1 | |
580 | o52.Position = Vector3.new(7, 0.200000018, 0) | |
581 | o52.Anchored = true | |
582 | o52.CFrame = CFrame.new(7, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
583 | o52.CanCollide = false | |
584 | o52.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
585 | o52.BottomSurface = Enum.SurfaceType.Smooth | |
586 | o52.TopSurface = Enum.SurfaceType.Smooth | |
587 | o53 = Instance.new("SpecialMesh") | |
588 | o53.Parent = o52 | |
589 | o53.MeshId = "rbxassetid://9856898" | |
590 | o53.Scale = Vector3.new(1, 0.400000006, 1) | |
591 | o53.TextureId = "rbxassetid://2114473" | |
592 | o53.MeshType = Enum.MeshType.FileMesh | |
593 | o54 = Instance.new("Part") | |
594 | o54.Name = "35" | |
595 | o54.Parent = o1 | |
596 | o54.Position = Vector3.new(-8, 0.200000018, 0) | |
597 | o54.Anchored = true | |
598 | o54.CFrame = CFrame.new(-8, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
599 | o54.CanCollide = false | |
600 | o54.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
601 | o54.BottomSurface = Enum.SurfaceType.Smooth | |
602 | o54.TopSurface = Enum.SurfaceType.Smooth | |
603 | o55 = Instance.new("SpecialMesh") | |
604 | o55.Parent = o54 | |
605 | o55.MeshId = "rbxassetid://9856898" | |
606 | o55.Scale = Vector3.new(1, 0.400000006, 1) | |
607 | o55.TextureId = "rbxassetid://2114473" | |
608 | o55.MeshType = Enum.MeshType.FileMesh | |
609 | o56 = Instance.new("Part") | |
610 | o56.Name = "16" | |
611 | o56.Parent = o1 | |
612 | o56.Position = Vector3.new(1.5, 0.200000018, 0) | |
613 | o56.Anchored = true | |
614 | o56.CFrame = CFrame.new(1.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
615 | o56.CanCollide = false | |
616 | o56.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
617 | o56.BottomSurface = Enum.SurfaceType.Smooth | |
618 | o56.TopSurface = Enum.SurfaceType.Smooth | |
619 | o57 = Instance.new("SpecialMesh") | |
620 | o57.Parent = o56 | |
621 | o57.MeshId = "rbxassetid://9856898" | |
622 | o57.Scale = Vector3.new(1, 0.400000006, 1) | |
623 | o57.TextureId = "rbxassetid://2114473" | |
624 | o57.MeshType = Enum.MeshType.FileMesh | |
625 | o58 = Instance.new("Part") | |
626 | o58.Name = "6" | |
627 | o58.Parent = o1 | |
628 | o58.Position = Vector3.new(6.5, 0.200000018, 0) | |
629 | o58.Anchored = true | |
630 | o58.CFrame = CFrame.new(6.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
631 | o58.CanCollide = false | |
632 | o58.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
633 | o58.BottomSurface = Enum.SurfaceType.Smooth | |
634 | o58.TopSurface = Enum.SurfaceType.Smooth | |
635 | o59 = Instance.new("SpecialMesh") | |
636 | o59.Parent = o58 | |
637 | o59.MeshId = "rbxassetid://9856898" | |
638 | o59.Scale = Vector3.new(1, 0.400000006, 1) | |
639 | o59.TextureId = "rbxassetid://2114473" | |
640 | o59.MeshType = Enum.MeshType.FileMesh | |
641 | o60 = Instance.new("Part") | |
642 | o60.Name = "26" | |
643 | o60.Parent = o1 | |
644 | o60.Position = Vector3.new(-3.5, 0.200000018, 0) | |
645 | o60.Anchored = true | |
646 | o60.CFrame = CFrame.new(-3.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
647 | o60.CanCollide = false | |
648 | o60.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
649 | o60.BottomSurface = Enum.SurfaceType.Smooth | |
650 | o60.TopSurface = Enum.SurfaceType.Smooth | |
651 | o61 = Instance.new("SpecialMesh") | |
652 | o61.Parent = o60 | |
653 | o61.MeshId = "rbxassetid://9856898" | |
654 | o61.Scale = Vector3.new(1, 0.400000006, 1) | |
655 | o61.TextureId = "rbxassetid://2114473" | |
656 | o61.MeshType = Enum.MeshType.FileMesh | |
657 | o62 = Instance.new("Part") | |
658 | o62.Name = "36" | |
659 | o62.Parent = o1 | |
660 | o62.Position = Vector3.new(-8.5, 0.200000018, 0) | |
661 | o62.Anchored = true | |
662 | o62.CFrame = CFrame.new(-8.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
663 | o62.CanCollide = false | |
664 | o62.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
665 | o62.BottomSurface = Enum.SurfaceType.Smooth | |
666 | o62.TopSurface = Enum.SurfaceType.Smooth | |
667 | o63 = Instance.new("SpecialMesh") | |
668 | o63.Parent = o62 | |
669 | o63.MeshId = "rbxassetid://9856898" | |
670 | o63.Scale = Vector3.new(1, 0.400000006, 1) | |
671 | o63.TextureId = "rbxassetid://2114473" | |
672 | o63.MeshType = Enum.MeshType.FileMesh | |
673 | o64 = Instance.new("Part") | |
674 | o64.Name = "17" | |
675 | o64.Parent = o1 | |
676 | o64.Position = Vector3.new(1, 0.200000018, 0) | |
677 | o64.Anchored = true | |
678 | o64.CFrame = CFrame.new(1, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
679 | o64.CanCollide = false | |
680 | o64.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
681 | o64.BottomSurface = Enum.SurfaceType.Smooth | |
682 | o64.TopSurface = Enum.SurfaceType.Smooth | |
683 | o65 = Instance.new("SpecialMesh") | |
684 | o65.Parent = o64 | |
685 | o65.MeshId = "rbxassetid://9856898" | |
686 | o65.Scale = Vector3.new(1, 0.400000006, 1) | |
687 | o65.TextureId = "rbxassetid://2114473" | |
688 | o65.MeshType = Enum.MeshType.FileMesh | |
689 | o66 = Instance.new("Part") | |
690 | o66.Name = "27" | |
691 | o66.Parent = o1 | |
692 | o66.Position = Vector3.new(-4, 0.200000018, 0) | |
693 | o66.Anchored = true | |
694 | o66.CFrame = CFrame.new(-4, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
695 | o66.CanCollide = false | |
696 | o66.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
697 | o66.BottomSurface = Enum.SurfaceType.Smooth | |
698 | o66.TopSurface = Enum.SurfaceType.Smooth | |
699 | o67 = Instance.new("SpecialMesh") | |
700 | o67.Parent = o66 | |
701 | o67.MeshId = "rbxassetid://9856898" | |
702 | o67.Scale = Vector3.new(1, 0.400000006, 1) | |
703 | o67.TextureId = "rbxassetid://2114473" | |
704 | o67.MeshType = Enum.MeshType.FileMesh | |
705 | o68 = Instance.new("Part") | |
706 | o68.Name = "7" | |
707 | o68.Parent = o1 | |
708 | o68.Position = Vector3.new(6, 0.200000018, 0) | |
709 | o68.Anchored = true | |
710 | o68.CFrame = CFrame.new(6, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
711 | o68.CanCollide = false | |
712 | o68.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
713 | o68.BottomSurface = Enum.SurfaceType.Smooth | |
714 | o68.TopSurface = Enum.SurfaceType.Smooth | |
715 | o69 = Instance.new("SpecialMesh") | |
716 | o69.Parent = o68 | |
717 | o69.MeshId = "rbxassetid://9856898" | |
718 | o69.Scale = Vector3.new(1, 0.400000006, 1) | |
719 | o69.TextureId = "rbxassetid://2114473" | |
720 | o69.MeshType = Enum.MeshType.FileMesh | |
721 | o70 = Instance.new("Part") | |
722 | o70.Name = "37" | |
723 | o70.Parent = o1 | |
724 | o70.Position = Vector3.new(-9, 0.200000018, 0) | |
725 | o70.Anchored = true | |
726 | o70.CFrame = CFrame.new(-9, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
727 | o70.CanCollide = false | |
728 | o70.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
729 | o70.BottomSurface = Enum.SurfaceType.Smooth | |
730 | o70.TopSurface = Enum.SurfaceType.Smooth | |
731 | o71 = Instance.new("SpecialMesh") | |
732 | o71.Parent = o70 | |
733 | o71.MeshId = "rbxassetid://9856898" | |
734 | o71.Scale = Vector3.new(1, 0.400000006, 1) | |
735 | o71.TextureId = "rbxassetid://2114473" | |
736 | o71.MeshType = Enum.MeshType.FileMesh | |
737 | o72 = Instance.new("Part") | |
738 | o72.Name = "8" | |
739 | o72.Parent = o1 | |
740 | o72.Position = Vector3.new(5.5, 0.200000018, 0) | |
741 | o72.Anchored = true | |
742 | o72.CFrame = CFrame.new(5.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
743 | o72.CanCollide = false | |
744 | o72.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
745 | o72.BottomSurface = Enum.SurfaceType.Smooth | |
746 | o72.TopSurface = Enum.SurfaceType.Smooth | |
747 | o73 = Instance.new("SpecialMesh") | |
748 | o73.Parent = o72 | |
749 | o73.MeshId = "rbxassetid://9856898" | |
750 | o73.Scale = Vector3.new(1, 0.400000006, 1) | |
751 | o73.TextureId = "rbxassetid://2114473" | |
752 | o73.MeshType = Enum.MeshType.FileMesh | |
753 | o74 = Instance.new("Part") | |
754 | o74.Name = "18" | |
755 | o74.Parent = o1 | |
756 | o74.Position = Vector3.new(0.5, 0.200000018, 0) | |
757 | o74.Anchored = true | |
758 | o74.CFrame = CFrame.new(0.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
759 | o74.CanCollide = false | |
760 | o74.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
761 | o74.BottomSurface = Enum.SurfaceType.Smooth | |
762 | o74.TopSurface = Enum.SurfaceType.Smooth | |
763 | o75 = Instance.new("SpecialMesh") | |
764 | o75.Parent = o74 | |
765 | o75.MeshId = "rbxassetid://9856898" | |
766 | o75.Scale = Vector3.new(1, 0.400000006, 1) | |
767 | o75.TextureId = "rbxassetid://2114473" | |
768 | o75.MeshType = Enum.MeshType.FileMesh | |
769 | o76 = Instance.new("Part") | |
770 | o76.Name = "28" | |
771 | o76.Parent = o1 | |
772 | o76.Position = Vector3.new(-4.5, 0.200000018, 0) | |
773 | o76.Anchored = true | |
774 | o76.CFrame = CFrame.new(-4.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
775 | o76.CanCollide = false | |
776 | o76.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
777 | o76.BottomSurface = Enum.SurfaceType.Smooth | |
778 | o76.TopSurface = Enum.SurfaceType.Smooth | |
779 | o77 = Instance.new("SpecialMesh") | |
780 | o77.Parent = o76 | |
781 | o77.MeshId = "rbxassetid://9856898" | |
782 | o77.Scale = Vector3.new(1, 0.400000006, 1) | |
783 | o77.TextureId = "rbxassetid://2114473" | |
784 | o77.MeshType = Enum.MeshType.FileMesh | |
785 | o78 = Instance.new("Part") | |
786 | o78.Name = "38" | |
787 | o78.Parent = o1 | |
788 | o78.Position = Vector3.new(-9.5, 0.200000018, 0) | |
789 | o78.Anchored = true | |
790 | o78.CFrame = CFrame.new(-9.5, 0.200000018, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) | |
791 | o78.CanCollide = false | |
792 | o78.Size = Vector3.new(0.5, 0.200000003, 0.5) | |
793 | o78.BottomSurface = Enum.SurfaceType.Smooth | |
794 | o78.TopSurface = Enum.SurfaceType.Smooth | |
795 | o79 = Instance.new("SpecialMesh") | |
796 | o79.Parent = o78 | |
797 | o79.MeshId = "rbxassetid://9856898" | |
798 | o79.Scale = Vector3.new(1, 0.400000006, 1) | |
799 | o79.TextureId = "rbxassetid://2114473" | |
800 | o79.MeshType = Enum.MeshType.FileMesh | |
801 | o80 = Instance.new("SpecialMesh") | |
802 | o80.Parent = o1 | |
803 | o80.MeshId = "rbxassetid://9856898" | |
804 | o80.Scale = Vector3.new(40, 0.400000006, 2) | |
805 | o80.TextureId = "rbxassetid://2114473" | |
806 | o80.VertexColor = Vector3.new(0, 0, 0) | |
807 | o80.MeshType = Enum.MeshType.FileMesh | |
808 | mas.Parent = game.Players.LocalPlayer.Character.Torso | |
809 | mas:MakeJoints() | |
810 | local mas1 = mas:GetChildren() | |
811 | for i=1,#mas1 do | |
812 | mas1[i].Parent = game.Players.LocalPlayer.Character.Torso | |
813 | ypcall(function() mas1[i]:MakeJoints() end) | |
814 | end | |
815 | mas:Destroy() | |
816 | for i=1,#cors do | |
817 | coroutine.resume(cors[i]) | |
818 | end | |
819 | ||
820 | local Height=9 -- Max height of the bars | |
821 | local plr=game.Players.LocalPlayer | |
822 | ||
823 | o81 = Instance.new("Sound") | |
824 | o81.Parent = plr.Character.Torso | |
825 | o81.SoundId = "rbxassetid://" | |
826 | o81.Volume = 1 | |
827 | o81.Looped = false | |
828 | ||
829 | o82 = Instance.new("PointLight") | |
830 | o82.Parent = plr.Character.Torso | |
831 | o82.Range = 24 | |
832 | ||
833 | --Startup Interface-- | |
834 | local head = game.Players.LocalPlayer.Character.Head | |
835 | local bg = Instance.new("BillboardGui",head) | |
836 | bg.Name = "Startup" | |
837 | bg.AlwaysOnTop = true | |
838 | bg.StudsOffset = Vector3.new(0,4,0) | |
839 | local bgframe = Instance.new("Frame",bg) | |
840 | bgframe.BackgroundTransparency = 1 | |
841 | bgframe.Size = UDim2.new(0,200,0,25) | |
842 | bgframe.Position = UDim2.new(0.5,-100,0.5,-12) | |
843 | local bgtxt = Instance.new("TextLabel",bgframe) | |
844 | bgtxt.Size = UDim2.new(0,200,0,25) | |
845 | bgtxt.FontSize = "Size24" | |
846 | bgtxt.Position = UDim2.new(0.5,-100,0.5,-12) | |
847 | bgtxt.BackgroundTransparency = 1 | |
848 | bgtxt.TextColor3 = BrickColor.new("Gold").Color | |
849 | bgtxt.TextStrokeColor3=Color3.new(0,0,0) | |
850 | bgtxt.TextStrokeTransparency = 0 | |
851 | bgtxt.Font = "SciFi" | |
852 | bgtxt.TextScaled = false | |
853 | spawn(function() | |
854 | local txt1 = "hi, its me, tame lol" | |
855 | local txt2 = "credits: me sir, im so good (not)" | |
856 | for i=1,#txt1 do | |
857 | bgtxt.Text = txt1:sub(1,i) | |
858 | wait() | |
859 | end | |
860 | wait() | |
861 | for i=#txt1,1,-1 do | |
862 | bgtxt.Text = txt1:sub(1,i) | |
863 | wait() | |
864 | end | |
865 | wait() | |
866 | for i=1,#txt2 do | |
867 | bgtxt.Text = txt2:sub(1,i) | |
868 | wait() | |
869 | end | |
870 | wait() | |
871 | for i=#txt2,1,-1 do | |
872 | bgtxt.Text = txt2:sub(1,i) | |
873 | wait() | |
874 | end | |
875 | wait() | |
876 | for i=0,1,0.1 do | |
877 | bgtxt.TextTransparency = i | |
878 | bgtxt.TextStrokeTransparency = i | |
879 | wait() | |
880 | end | |
881 | bg:Destroy() | |
882 | end) | |
883 | --Startup Interface-- | |
884 | ||
885 | local Soundbar=game.Players.LocalPlayer.Character.Torso.Soundbar | |
886 | local Sound=plr.Character.Torso.Sound | |
887 | local Bars={} for i,v in next,Soundbar:children() do | |
888 | if v:IsA'BasePart' then | |
889 | table.insert(Bars,v) | |
890 | end | |
891 | end Height=Height*2 | |
892 | local nBars,Tweens=#Bars-1,{} | |
893 | ||
894 | -- EASING FUNCTIONS -- | |
895 | local function quadIn(t,b,c,d) t=t/d; return c*t*t+b; end; | |
896 | local function quadOut(t,b,c,d) t=t/d; return -c*t*(t-2)+b; end; | |
897 | local function Quad(obj,val,ease,d) | |
898 | local t,f,con,nt,st,sd=tick() | |
899 | Tweens[obj]=t -- Set identifier | |
900 | st=obj.Scale.Y -- Start Value | |
901 | sd=val-st -- Change in Value | |
902 | f=ease=='In' and quadIn or quadOut -- Choose between Out/In | |
903 | con=game:GetService'RunService'.RenderStepped:connect(function() nt=tick()-t | |
904 | if Tweens[obj]~=t then -- Check for override | |
905 | con:disconnect() | |
906 | return | |
907 | end | |
908 | local nv=math.max(.2,f(math.min(d,nt),st,sd,d)) -- New Value | |
909 | obj.Scale=Vector3.new(.9,nv,.9) | |
910 | obj.Offset=Vector3.new(0,nv/4,0) | |
911 | obj.VertexColor=Vector3.new(cycle(tick())) | |
912 | o82.Color = Color3.new(cycle(tick())) | |
913 | if nt>d then -- Easing done? | |
914 | con:disconnect() | |
915 | if ease~='In' then | |
916 | Quad(obj,.2,'In',.3) -- Drop the bar | |
917 | end | |
918 | end | |
919 | end) | |
920 | end | |
921 | ||
922 | -- BAR MANIPULATION -- | |
923 | local function CheckSet(N,S,D) -- Number, Scale, Direction | |
924 | local nS=Soundbar[tostring(N)].Mesh.Scale.Y | |
925 | if S>nS then | |
926 | Set(N,nS+(S-nS)/3,D) | |
927 | end | |
928 | end | |
929 | ||
930 | function Set(N,S,D) -- Number, Scale, Direction | |
931 | Quad(Soundbar[tostring(N)].Mesh,S,'Out',.1) -- Grabs the bar and tweens | |
932 | if N>0 and D~=1 then -- Checks left for smaller bars to manipulate | |
933 | CheckSet(N-1,S,-1) | |
934 | end | |
935 | if N<nBars and D~=-1 then -- Checks right... | |
936 | CheckSet(N+1,S,1) | |
937 | end | |
938 | end | |
939 | ||
940 | -- RENDER LOOP -- | |
941 | local MPL,PL,curr=0 curr=Sound.SoundId | |
942 | spawn(function() | |
943 | game:service'RunService'.RenderStepped:connect(function() | |
944 | PL=Sound.PlaybackLoudness | |
945 | if Sound.IsPlaying and PL==PL then -- Sound is playing & PlaybackLoudness is not undefined | |
946 | if curr~=Sound.SoundId then MPL=0 -- Reset the relative Max PlaybackLoudness on song change | |
947 | curr=Sound.SoundId | |
948 | end | |
949 | MPL=math.max(PL,MPL) PL=PL/MPL -- Normalize PL based on relative Max PlaybackLoudness | |
950 | if PL==PL then | |
951 | Set(math.floor(PL*nBars),PL*Height*1) -- Modify bar relative to PlaybackLoudness | |
952 | end | |
953 | end | |
954 | end) | |
955 | end) | |
956 | ||
957 | local play = false | |
958 | --Function Chat Start-- | |
959 | function Chat(Message) | |
960 | pcall(function() | |
961 | for i,v in pairs(game.Players.LocalPlayer.Character.Head:GetChildren()) do | |
962 | if v.ClassName == "BillboardGui" and v.Name ~= "Startup" then | |
963 | v.Frame.TextLabel.TextTransparency = v.Frame.TextLabel.TextTransparency - 0.5 | |
964 | wait() | |
965 | v:Remove() | |
966 | end | |
967 | end | |
968 | end) | |
969 | local head = game.Players.LocalPlayer.Character.Head | |
970 | local bg = Instance.new("BillboardGui",head) | |
971 | bg.Name = "MusicNotify" | |
972 | bg.AlwaysOnTop = true | |
973 | bg.StudsOffset = Vector3.new(0,4,0) | |
974 | local bgframe = Instance.new("Frame",bg) | |
975 | bgframe.BackgroundTransparency = 1 | |
976 | bgframe.Size = UDim2.new(0,200,0,25) | |
977 | bgframe.Position = UDim2.new(0.5,-100,0.5,-12) | |
978 | local bgtxt = Instance.new("TextLabel",bgframe) | |
979 | bgtxt.Size = UDim2.new(0,200,0,25) | |
980 | bgtxt.FontSize = "Size24" | |
981 | bgtxt.Position = UDim2.new(0.5,-100,0.5,-12) | |
982 | bgtxt.BackgroundTransparency = 1 | |
983 | bgtxt.TextColor3 = BrickColor.new("Gold").Color | |
984 | bgtxt.TextStrokeColor3=Color3.new(0,0,0) | |
985 | bgtxt.TextStrokeTransparency = 0 | |
986 | bgtxt.Font = "SciFi" | |
987 | bgtxt.TextScaled = false | |
988 | spawn(function() | |
989 | local txt1 = Message | |
990 | for i=1,#txt1 do | |
991 | bgtxt.Text = txt1:sub(1,i) | |
992 | wait() | |
993 | end | |
994 | wait() | |
995 | for i=#txt1,1,-1 do | |
996 | bgtxt.Text = txt1:sub(1,i) | |
997 | wait() | |
998 | end | |
999 | wait() | |
1000 | for i=0,1,0.1 do | |
1001 | bgtxt.TextTransparency = i | |
1002 | wait() | |
1003 | end | |
1004 | bg:Destroy() | |
1005 | end) | |
1006 | end | |
1007 | ||
1008 | local play = true | |
1009 | local Pause = false | |
1010 | --function chat end-- | |
1011 | local Songs = { | |
1012 | {SongName = 'Avril Lavigne - Girlfriend', SongDesc = 'Nil', Creator = 'Ayeekillerpro', ID = 333259850}; | |
1013 | {SongName = 'Chris Brown & Tyga - Ayo [Jason Nevins Remix]', SongDesc = 'Nil', Creator = 'Nil', ID = 262514615}; | |
1014 | {SongName = 'Charli XCX - Boom clap', SongDesc = 'Nil', Creator = 'brightnikki', ID = 160594536}; | |
1015 | {SongName = 'Calvin Harris & Alesso - Under control ft. Hurts', SongDesc = 'Nil', Creator = 'Nil', ID = 152190091}; | |
1016 | {SongName = 'Soulja Boy Tell\'em - Crank That', SongDesc = 'Nil', Creator = 'jdude567', ID = 174655936}; | |
1017 | {SongName = 'Love Me Harder- Ariana Grande', SongDesc = 'Nil', Creator = 'Violisse', ID = 174577922}; | |
1018 | } | |
1019 | ||
1020 | function PlayList() | |
1021 | local sng = Songs[math.random(1,#Songs)] | |
1022 | Sound.SoundId = 'rbxassetid://'..sng.ID | |
1023 | Sound:Play() | |
1024 | Chat("Now Playing: \n"..game:GetService("MarketplaceService"):GetProductInfo(sng.ID).Name) | |
1025 | repeat wait() until Sound.IsPaused == true | |
1026 | if play == false then return end | |
1027 | if Pause == true then return end | |
1028 | PlayList() | |
1029 | end | |
1030 | local Loop = false | |
1031 | local Locked | |
1032 | p = game:GetService('Players').LocalPlayer | |
1033 | p.Chatted:connect(function(msg) | |
1034 | if msg:sub(1,5):lower()=='play/' then | |
1035 | play = true | |
1036 | local val = Instance.new("NumberValue", p.Character) | |
1037 | val.Name = "SongID" | |
1038 | val.Value = tonumber(msg:sub(6)) | |
1039 | local id = val.Value | |
1040 | Sound:Stop() | |
1041 | Sound.SoundId='rbxassetid://'..id | |
1042 | Sound:Play() | |
1043 | Chat("Now Playing: \n"..game:GetService("MarketplaceService"):GetProductInfo(val.Value).Name) | |
1044 | wait(1) | |
1045 | val:Remove() | |
1046 | elseif msg:sub(1,4):lower()=='vol/' then | |
1047 | local val = Instance.new("NumberValue", p.Character) | |
1048 | val.Name = "VolID" | |
1049 | val.Value = tonumber(msg:sub(5)) | |
1050 | if val.Value > 10 then val.Value = 10 | |
1051 | end | |
1052 | local id = val.Value | |
1053 | Sound.Volume = id | |
1054 | Chat("Set Volume To: "..id.."") | |
1055 | val:Remove() | |
1056 | ||
1057 | elseif msg:sub(1,5):lower()=='dist/' then | |
1058 | local val = Instance.new("NumberValue", p.Character) | |
1059 | val.Name = "Distance" | |
1060 | val.Value = tonumber(msg:sub(6)) | |
1061 | if val.Value > 10000 then val.Value = 10000 | |
1062 | end | |
1063 | local id = val.Value | |
1064 | Sound.MaxDistance = id | |
1065 | Chat("Set Max Distance To: "..id.."") | |
1066 | val:Remove() | |
1067 | ||
1068 | elseif msg:sub(1,6) == 'start/' then | |
1069 | play = true | |
1070 | PlayList() | |
1071 | ||
1072 | elseif msg:sub(1,5) == 'loop/' and Loop == false then | |
1073 | Loop = true | |
1074 | Chat("Music Loop Enabled") | |
1075 | game.Players.LocalPlayer.Character.Torso.Sound.Looped = true | |
1076 | ||
1077 | elseif msg:sub(1,5) == 'loop/' and Loop == true then | |
1078 | Loop = false | |
1079 | Chat("Music Loop Disabled") | |
1080 | game.Players.LocalPlayer.Character.Torso.Sound.Looped = false | |
1081 | ||
1082 | elseif msg:sub(1,6) == 'pause/' and Pause == false then | |
1083 | Pause = true | |
1084 | Chat("Music Paused") | |
1085 | game.Players.LocalPlayer.Character.Torso.Sound:Pause() | |
1086 | ||
1087 | elseif msg:sub(1,6) == 'pause/' and Pause == true then | |
1088 | Pause = false | |
1089 | Chat("Music Unpaused") | |
1090 | game.Players.LocalPlayer.Character.Torso.Sound:Resume() | |
1091 | ||
1092 | elseif msg:sub(1,5) == 'skip/' then | |
1093 | play = false | |
1094 | Sound:Stop() | |
1095 | play = true | |
1096 | PlayList() | |
1097 | ||
1098 | elseif msg:sub(1,5) == 'stop/' then | |
1099 | Chat("Stopped Music Spectrum") | |
1100 | play = false | |
1101 | Sound:Stop() | |
1102 | end | |
1103 | ||
1104 | end) | |
1105 | ||
1106 | local CRot = 1 | |
1107 | local rad,sin,ceil=math.rad,math.sin,math.ceil | |
1108 | ||
1109 | Sound:Play() | |
1110 | ||
1111 | local Parts = {} | |
1112 | for Index,v in pairs(o1:children'') do | |
1113 | if v:IsA'Part' then | |
1114 | table.insert(Parts,v) | |
1115 | end | |
1116 | end | |
1117 | ||
1118 | spawn(function() | |
1119 | game:service'RunService'.RenderStepped:connect(function() | |
1120 | for Index,v in pairs(o1:children'') do | |
1121 | if v:IsA'Part' then | |
1122 | v.CFrame = CFrame.new(plr.Character.Torso.Position) | |
1123 | *CFrame.Angles(0,rad((360/#Parts*Index+(tick())*60/(#Parts ~= 0 and #Parts or 1))%360),0) | |
1124 | *CFrame.new(0, -3, (5+#Parts)*.35+v.Size.X) | |
1125 | *CFrame.Angles(0,90+CRot,0) | |
1126 | end | |
1127 | end | |
1128 | ||
1129 | end) | |
1130 | end) |