SHOW:
|
|
- or go back to the newest paste.
1 | --https://github.com/Mokiros/roblox-FE-compatibility | |
2 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end | |
3 | local Player,Mouse,mouse,UserInputService,ContextActionService = owner | |
4 | local RealPlayer = Player | |
5 | do print("FE Compatibility code by Mokiros")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(),Button2Up=c(),Button2Down=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;if o.UserInputType==Enum.UserInputType.MouseButton2 then return f:TrigEvent(p and"Button2Down"or"Button2Up")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 typeof(t[q])=="function"and function(m,...)return t[q](t,...)end or t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u 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 rawget(self,t)or r:GetService(t)end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService"),RunService=v({_btrs={},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")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;v(x,game)game,owner=x,x.Players.LocalPlayer end | |
6 | ||
7 | --// SaviOS by SavageMunkey | |
8 | ||
9 | local Host = game:service'Players'.LocalPlayer | |
10 | local PlayerMouse = Host:GetMouse() | |
11 | local Character = Host.Character | |
12 | ||
13 | pcall(function() | |
14 | Character.Humanoid['SaviOS'..Host.Name].Disabled=true | |
15 | Character.Humanoid['SaviOS'..Host.Name]:Destroy() | |
16 | end) | |
17 | script.Name='SaviOS'..Host.Name | |
18 | ||
19 | local lrs = game:service'RunService'.RenderStepped | |
20 | local ud,c3 = UDim2.new,Color3.new | |
21 | ||
22 | local OS | |
23 | OS = { | |
24 | Backgrounds={263065080,122603145,510593355,167312453,119945204,38397690,167312682,192050536,152026398,167312652,120582545,167493039,274050234,454292754,466900315,177053058,229293848,122646263,159102803,321434238,120214481,120480107,129805827,251350099,134993390,294851220,91427420,159103087,161729354,451983167,111563465,224033486,159103552,490565976,419023708,159111488,254890271,72090809,148038665,201380429,235907960,118966085,184001465,158549839,135040161,569012987,124111954,617785055,127976057,157765107,172813012,261956734,229544221,381428334,141204418,130675970,114611763,569627808,165460147,165460277,123128917,65246335,113000488,210624979,86219936,542893768,485873381,133109970,147298379,147297851,133461415,248254225,542822127,536363798,167312652,542895503,89552732,65151650,101805028,103684980,385601310,57939071,304922993,13511519,473575489,256418140,136004272,46076174,497195310,28143702,158772801,557860938,483527125,125134380,129296064,436986440,331063936,162704842,108531974,156021502,546688542,192509200,193859832,78289792,339807971,156513166,305407040,363144648,60043055,621825797,621828236,179089950,501279669,403674379,275918945,247421728,126655771,478203228,25719408,50358414,7460070,415408253,91215756,85243064,135112694,161131570,684101235,467373053,65891746,24960278,318592132,424415675,17266396,64198567,230444445,156269405,179089950,248285466,202899851,156314932,151133945,514648696,}; | |
25 | Properties = {'AllowClientInsertModels','BrickColor','Color','ShowDevelopmentGui','ResetPlayerGuiOnSpawn','Parent','CustomPhysicalProperties','WaterColor','WaterTransparency','WaterWaveSize','WaterWaveSpeed','AllowThirdPartySales','FilteringEnabled','StreamingEnabled','Gravity','FallenPartsDestroyHeight','Archivable','AbsolutePosition','AbsoluteSize','AccountAge','AccountAgeReplicate','Active','Adornee','AllowAmbientOcclusion','AllowTeamChangeOnTouch','AluminumQuality','AlwaysOnTop','Ambient','AmbientReverb','Anchored','Angularvelocity','AnimationId','Archivable','AreHingesDetected','AttachmentForward','AttachmentPoint','AttachmentPos','AttachmentRight','AttachmentUp','AutoAssignable','AutoButtonColor','AutoColorCharacters','AvailablePhysicalMemory','Axes','BackgroundColor','BackgroundColor3','BackgroundTransparency','BackSurface','BaseTextureId','BaseUrl','Bevel','Roundness','BinType','BlastPressure','BlastRadius','C0','C1','HeadColor','LeftArmColor','RightArmColor','LeftLegColor','RightLegColor','HumanoidRootPartColor','BodyColor','BodyPart','BorderColor','BorderColor3','BorderSizePixel','BottomSurface','BrickColor','Brightness','Browsable','BubbleChat','BubbleChatLifetime','BubbleChatMaxBubbles','Bulge','Button1DownConnectionCount','Button1UpConnectionCount','Button2DownConnectionCount','Button2UpConnectionCount','C0','C1','CameraMode','CameraSubject','CameraType','CanBeDropped','CanCollide','CartoonFactor','CastShadows','CelestialBodiesShown','CFrame','Cframe','Character','CharacterAppearance','CharacterAutoLoads','ChatScrollLength','ClassicChat','ClassName','ClearTextOnFocus','ClipsDescendants','CollisionSoundEnabled','CollisionSoundVolume','Color','ColorShift_Top','ColorShift_Bottom','Bottom','Top','ConstrainedValue','Contro'..'llingHumanoid','ControlMode','ConversationDistance','CoordinateFrame','CorrodedMetalQuality','CPU','CpuCount','CpuSpeed','CreatorId','CreatorType','CurrentAngle','CurrentCamera','CycleOffset','D','DataCap','DataComplexity','DataComplexityLimit','DataCost','DataReady','Deprecated','DeselectedConnectionCount','DesiredAngle','DiamondPlateQuality','Disabled','DistanceFactor','DistributedGameTime','DopplerScale','Draggable','DraggingV1','Duration','EditorFont','EditorFontSize','EditorTabWidth','ElapsedTime','Elasticity','Enabled','ExplosionType','ExtentsOffset','F0','F1','F2','F3','Face','FaceId','Faces','FieldOfView','Focus','FogColor','FogEnd','FogStart','Font','FontSize','Force','FormFactor','Friction','From','FrontSurface','GearGenreSetting','Genre','GeographicLatitude','GfxCard', 'GlobalShadows','Graphic','GrassQuality','Grip','GripForward','GripPos','GripRight','GripUp','Guest','HeadsUpDisplay','Health','Heat','Hit','Humanoid','IceQuality','Icon','IdleConnectionCount','Image','InitialPrompt','InOut','InUse','IsPaused','IsPlaying','JobId','Jump','KeyDownConnectionCount','KeyUpConnectionCount','LeftLeg','LeftRight','LeftSurface','LinkedSource','LocalPlayer','Location','Locked','LODX','LODY','Looped','Material','MaxActivationDistance','MaxCollisionSounds','MaxExtents','MaxForce','MaxHealth','MaxItems','MaxPlayers','MaxSpeed','MaxThrust','MaxTorque','MaxValue','MaxVelocity','MembershipType','MembershipTypeReplicate','MeshId','MeshType','MinValue','Modal','MouseButton1ClickConnectionCount','MouseButton1DownConnectionCount','MouseButton1UpConnectionCount','MouseButton2ClickConnectionCount','MouseButton2DownConnectionCount','MouseButton2UpConnectionCount','MouseDelta','MouseDragConnectionCount','MouseEnterConnectionCount','MouseHit','MouseLeaveConnectionCount','MouseLock','MouseMovedConnectionCount','MouseTarget','MouseTargetFilter','MouseTargetSurface','MoveConnectionCount','MoveState','MultiLine','Name','NameOcclusion','NetworkOw'..'ner','Neutral','NumPlayers','Offset','Opacity','Origin','OsPlatform','OsVer','OutdoorAmbient','OverlayTextureId','P','PantsTemplate','ParamA','ParamB','Parent','PrimaryPart','Part','Part0','Part1','Pitch','PixelShaderModel','PlaceId','PlasticQuality','PlatformStand','PlayCount','PlayerToHideFrom','PlayOnRemove','Point','Port','Position','Preliminary','PrimaryPart','PrivateWorkingSetBytes','Purpose','RAM','Reflectance','ReplicatedSelectedConnectionCount','ResizeableFaces','ResizeIncrement','Resolution','ResponseDialog','RightLeg','RightSurface','RiseVelocity','RobloxLocked','RobloxVersion','RolloffScale','RotVelocity','Scale','Score','ScriptsDisabled','SecondaryColor','Selected','ShadowColor','Shape','Shiny','ShirtTemplate','ShowDeprecatedObjects','ShowDevelopmentGui','ShowPreliminaryObjects','Sides','Sit','Size','SizeConstraint','SizeOffset','SkinColor','SkyboxBk','SkyboxDn','SkyboxFt','SkyboxLf','SkyboxRt','SkyboxUp','SlateQuality','SoundId','Source','SparkleColor','Specular','StarCount','Steer','StickyWheels','StudsBetweenTextures','StudsOffset','StudsPerTileU','StudsPerTileV','Style','Summary','SuperSa'..'feChatReplicate','Surface','Surface0','Surface1','SurfaceInput','Target','TargetFilter','TargetOffset','TargetPoint','TargetRadius','TargetSurface','TeamColor','Terrain','Text','TextBounds','TextColor','TextColor3','TextFits','TextScaled','TextStrokeColor3','TextStrokeTransparency','TextTransparency','Texture','TextureId','TextureSize','TextWrap','TextWrapped','TextXAlignment','TextYAlignment','Throttle','ThrustD','ThrustP','Ticket','Time','TimeOfDay','To','Tone','ToolTip','TopBottom','TopSurface','Torque','HumanoidRootPart','Transparency','TrussDetail','TurnD','TurnP','TurnSpeed','UnitRay','UserDialog','UserId','Value','Version','VertexColor','VideoCaptureEnabled','VideoMemory','VideoQuality','ViewSizeX','ViewSizeY','Visible','Volume','WalkDirection','WalkSpeed','WalkToPart','WalkToPoint','WheelBackwardConnectionCount','WheelForwardConnectionCount','WindowSize','WireRadius','WoodQuality','X','Y','Z'}; | |
26 | DecalAssets={200182847}; | |
27 | --//49,51,51,55,115,97,118 | |
28 | Sounds = { | |
29 | 319758951,485859421,191035676,142312040,165065112,166471137,208240682,226788368,193399717, | |
30 | 274427825,155949200,209864226,211626338,232560219,172427188,180115728,170968526, | |
31 | 148492408,177956804,132399469,218530627,234627720,182411115,188712851,176454530, | |
32 | 685204898,736225554,267915404,180795185,263998927,181428192,266427268,215974232, | |
33 | 177297354,248794208,262158959,282890395,252612142,252614631,252613867,203275374, | |
34 | 244763119,169898604,173060483,181065299,294185225,657230380,574818336, | |
35 | }; | |
36 | RecentlyUsedPrograms={}; | |
37 | UIs={}; | |
38 | Logins={ | |
39 | {'SavageMunkey','abcd12',Color3.new(.1,.1,.1),Color3.new(1,1,1),497195310};--167312453}; | |
40 | {'Artiecsal','sookithearth',c3(0,0,0),c3(1,1,1),122646263}, | |
41 | {'Luke_Ames','xXfatphonesXx',c3(.5,0,0),c3(1,1,1),621828236}, | |
42 | {'Lord_Azure','AzureIsGay',c3(.3,0,0),c3(1,1,1),215152878}, | |
43 | }; | |
44 | Administrators={ | |
45 | 'SavageMunkey', | |
46 | 'Aeodile', | |
47 | }; | |
48 | Effects={}; | |
49 | Functions={}; | |
50 | Assets={}; | |
51 | Apps={ | |
52 | Qeued={}; | |
53 | Generated={}; | |
54 | Open={}; | |
55 | }; | |
56 | Settings={ | |
57 | Fonts = { | |
58 | Header = 'Code', | |
59 | Sub_Header = 'Highway', | |
60 | }; | |
61 | }; | |
62 | }; | |
63 | ||
64 | Functions = OS.Functions | |
65 | Effects = OS.Effects | |
66 | ||
67 | OS.GenCode = math.random()*9e5 | |
68 | ||
69 | local CurrentPlayerData=nil | |
70 | local Official=true | |
71 | ||
72 | function Functions:ConvertColor3(r,g,b) | |
73 | return c3(1-(1/r),1-(10/g),1-(10/b)) --//derped | |
74 | end | |
75 | ||
76 | function Functions:ReturnObjectProperties(Object) | |
77 | assert(pcall(function() | |
78 | assert(game.IsA(Object,'Instance')) | |
79 | end),'Should be ROBLOX instance') | |
80 | local Returns = {} | |
81 | for _, Value in next, OS.Properties do | |
82 | if pcall(function() return Object[Value] end) and (type(Object[Value]) ~= 'userdata' or not Object:FindFirstChild(Value)) then | |
83 | Returns[Value] = Object[Value] | |
84 | end | |
85 | end | |
86 | return Returns | |
87 | end; | |
88 | ||
89 | --print(Functions:ConvertColor3(170, 0, 255)) | |
90 | ||
91 | function Functions:GrabHostData() | |
92 | local PlayerData=nil | |
93 | local Found=0 | |
94 | for Index, Data in next, OS.Logins do | |
95 | if Data[1] == tostring(Host) then | |
96 | PlayerData=Data | |
97 | Found=Found+1 | |
98 | end | |
99 | end | |
100 | if PlayerData then | |
101 | CurrentPlayerData=PlayerData | |
102 | else | |
103 | Official=false | |
104 | CurrentPlayerData={Host.Name,Host.Name:lower():sub(0,5)..'12'..math.random(-50,50),c3(.25,.25,.25),c3(1,1,1),OS.Backgrounds[math.random(1,#OS.Backgrounds)]}; | |
105 | script:Destroy() | |
106 | end | |
107 | if Found > 1 then | |
108 | error('Found more than one('..Found..') data tables for '..Host.Name,2) | |
109 | end | |
110 | end | |
111 | ||
112 | Functions:GrabHostData() | |
113 | ||
114 | table.foreach(CurrentPlayerData,print) | |
115 | ||
116 | function Functions:GetPlayerImg(User) | |
117 | local ID = 'http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&username='..tostring(User) | |
118 | return ID | |
119 | end | |
120 | ||
121 | ypcall(function() | |
122 | --workspace['mon-mon']:Destroy() | |
123 | end) | |
124 | ||
125 | local Monitor, G, MainFrame | |
126 | function Functions:MakeMonitor() | |
127 | pcall(function() workspace['mon-mon'..Host.Name]:Destroy() end) | |
128 | local sc=Instance.new('Script', workspace) | |
129 | sc.Name='mon-mon'..Host.Name | |
130 | OS.Assets.FScript=sc | |
131 | Monitor = Instance.new('Part', sc) | |
132 | Monitor.Size = Vector3.new(24,14,.1) | |
133 | Monitor.Anchored = true | |
134 | Monitor.Locked=true | |
135 | Monitor.Transparency=0 | |
136 | Monitor.Color=Color3.new(1,1,1) | |
137 | Monitor.Material='Neon' | |
138 | Monitor.Name='mon-mon' | |
139 | Instance.new('SurfaceLight',Monitor).Face='Back' | |
140 | Monitor.CanCollide = false | |
141 | Monitor.TopSurface,Monitor.BottomSurface=0,0 | |
142 | local Flat = Instance.new('BlockMesh', Monitor) | |
143 | Flat.Scale = Vector3.new(1,1,0) | |
144 | spawn(function() | |
145 | for i = 0,1.025,.025 do | |
146 | --Monitor.Transparency = 1.3-i | |
147 | lrs:wait() | |
148 | end | |
149 | end) | |
150 | end | |
151 | ||
152 | function Functions:MakeNewUi(Type) | |
153 | local Ui = Instance.new(Type) | |
154 | ||
155 | local function TypeIsA(Table, Goal) | |
156 | for i,v in next, Table do | |
157 | if v:lower()==Type:lower() then | |
158 | Goal(Ui) | |
159 | end | |
160 | end | |
161 | end | |
162 | ||
163 | Ui.ClipsDescendants = true | |
164 | Ui.Size = ud(1,0,1,0) | |
165 | Ui.BackgroundTransparency = 1 | |
166 | TypeIsA({'TextButton'}, function(tUi) | |
167 | Ui.AutoButtonColor = false | |
168 | end) | |
169 | Ui.BackgroundColor3 = CurrentPlayerData[3] | |
170 | Ui.BorderSizePixel = 0 | |
171 | TypeIsA({'ImageLabel','ImageButton'}, function(tUi) | |
172 | ||
173 | end) | |
174 | TypeIsA({'TextButton','TextLabel','TextBox'}, function(tUi) | |
175 | tUi.TextColor3 = CurrentPlayerData[4] | |
176 | tUi.Font = OS.Settings.Fonts.Header | |
177 | tUi.Text='' | |
178 | tUi.FontSize = Enum.FontSize.Size18 | |
179 | end) | |
180 | delay(.1,function() | |
181 | OS.UIs[Ui.Name]={Ui,true} | |
182 | local oUi=Ui | |
183 | spawn(function() | |
184 | repeat lrs:wait() until Ui.Parent == nil | |
185 | OS.UIs[oUi.Name]={nil,false} | |
186 | end) | |
187 | end) | |
188 | Ui.ZIndex=7 | |
189 | return Ui | |
190 | end | |
191 | ||
192 | function Functions:Center(Ui) | |
193 | local co={Ui.Size.X.Offset/2, | |
194 | Ui.Size.Y.Offset/2}; | |
195 | return ud(.5,-co[1],.5,-co[2]) | |
196 | end | |
197 | ||
198 | function Functions:CenterOffset(Ui, Offset) | |
199 | local co={Ui.Size.X.Scale, | |
200 | Ui.Size.X.Offset/2, | |
201 | Ui.Size.Y.Scale, | |
202 | Ui.Size.Y.Offset/2 | |
203 | }; | |
204 | return ud(.5+Offset.X.Scale,-co[2]+Offset.X.Offset,.5+Offset.Y.Scale,-co[4]+Offset.Y.Offset) | |
205 | end | |
206 | ||
207 | local TypeDebs={}; | |
208 | function Effects:Type(Ui, Text, Type, Delay) | |
209 | TypeDebs[Ui]=false | |
210 | if Type == 'In' then | |
211 | local Continue = true | |
212 | for i = 0,#Text do | |
213 | if TypeDebs[Ui] then | |
214 | Continue = false | |
215 | return | |
216 | end | |
217 | if not Continue then | |
218 | return | |
219 | end | |
220 | Ui.Text = Text:sub(0,i)..'|' | |
221 | wait(Delay) | |
222 | end | |
223 | Ui.Text = Text | |
224 | elseif Type == 'Out' then | |
225 | local Continue = true | |
226 | for i = 0,#Text do | |
227 | if TypeDebs[Ui] then | |
228 | Continue = false | |
229 | return | |
230 | end | |
231 | if not Continue then | |
232 | return | |
233 | end | |
234 | Ui.Text = Text:sub(0,1-i)..'|' | |
235 | wait(Delay) | |
236 | end | |
237 | Ui.Text = Text | |
238 | else | |
239 | error'Please enter a TransitionType (Out, In)' | |
240 | end | |
241 | end | |
242 | ||
243 | function Functions:Sound(Id ,Rmv) | |
244 | local snd=Instance.new('Sound', Character:WaitForChild'Head' or Monitor or workspace) | |
245 | if Rmv then | |
246 | for index,o in next, snd.Parent:children() do | |
247 | if o:IsA'Sound' and o ~= snd then | |
248 | o:Stop() | |
249 | o:Destroy() | |
250 | end | |
251 | end | |
252 | end | |
253 | snd.EmitterSize=20 | |
254 | snd.SoundId=Functions:Asset(Id) | |
255 | snd.Volume=.6 | |
256 | delay(8,function() | |
257 | if not snd.Looped and snd.IsPlaying==false then | |
258 | snd:Stop() | |
259 | snd:Destroy() | |
260 | end | |
261 | end) | |
262 | return snd | |
263 | end | |
264 | ||
265 | function Effects:Underline(Ui, YOffset, XThickness, YThickness, Color, Fade) | |
266 | local Label = Functions:MakeNewUi('TextLabel') | |
267 | Label.BackgroundColor3 = Color | |
268 | Label.BackgroundTransparency=.2 | |
269 | Label.Size = ud(0,0,0,YThickness) | |
270 | Label.Position = Functions:CenterOffset(Label, ud(0,0,0,YOffset)) | |
271 | Label.Parent = Ui | |
272 | Label.ZIndex = 9 | |
273 | if Fade then | |
274 | Label.BackgroundTransparency = 1 | |
275 | delay(.5,function() | |
276 | Label:TweenSizeAndPosition(ud(0,XThickness,0,YThickness),Functions:CenterOffset(Label,ud(0,-XThickness/2,0,YOffset)),'Out','Back',1,true) | |
277 | end) | |
278 | for i = 0,1.025,.025 do | |
279 | Label.BackgroundTransparency = (1.2 - i) | |
280 | lrs:wait() | |
281 | end | |
282 | else | |
283 | Label.Size = ud(0,XThickness,0,YThickness) | |
284 | Label.Position = Functions:CenterOffset(Label, ud(0,0,0,YOffset)) | |
285 | end | |
286 | return Label | |
287 | end | |
288 | ||
289 | function Functions:Asset(Id) | |
290 | return 'rbxassetid://'..Id | |
291 | end | |
292 | ||
293 | function Functions:PlayerImage(User) | |
294 | return 'http://www.roblox.com/Thumbs/Avatar.ashx?x=150&y=200&Format=Png&username='..tostring(User) | |
295 | end | |
296 | ||
297 | function Functions:LoginScreenGui(Size,ltbl,Fade) | |
298 | if Host.PlayerGui:FindFirstChild'nomnompw' then | |
299 | end | |
300 | local limit=16 | |
301 | local SGui = Instance.new('ScreenGui', Host.PlayerGui) | |
302 | SGui.Name='nomnompw' | |
303 | local Box = Functions:MakeNewUi('TextBox') | |
304 | Box.ClearTextOnFocus=true | |
305 | Box.TextColor3 = CurrentPlayerData[3] | |
306 | Box.TextStrokeTransparency=.9 | |
307 | Box.Size=Size | |
308 | Box.Text = 'Enter your Password' | |
309 | Box.Position=Functions:Center(Box) | |
310 | Box.BackgroundTransparency=1 | |
311 | Box.TextStrokeColor3=CurrentPlayerData[3] | |
312 | Box.Parent=SGui | |
313 | Box.BackgroundColor3 = CurrentPlayerData[4] | |
314 | local enabled=true | |
315 | if Fade then | |
316 | Box.Position = Functions:CenterOffset(Box,ud(0,0,-.4,0)) | |
317 | for i = 0,1,.05 do | |
318 | Box.BackgroundTransparency=1-i | |
319 | lrs:wait() | |
320 | end | |
321 | Box:CaptureFocus() | |
322 | end | |
323 | local ev | |
324 | ev=Box.Focused:connect(function() | |
325 | --ev:disconnect() | |
326 | Box.ClearTextOnFocus=false | |
327 | end) | |
328 | local ev2 | |
329 | local lt='' | |
330 | ev2=Box.FocusLost:connect(function() | |
331 | if #Box.Text < 1 or Box.Text == 'Enter your Password' then | |
332 | Box.Text='Enter your Password' | |
333 | Box.ClearTextOnFocus=true | |
334 | end | |
335 | if Box.Text==CurrentPlayerData[2] then | |
336 | ev:disconnect() | |
337 | ev2:disconnect() | |
338 | Box.Active=false | |
339 | Box:TweenPosition(Functions:CenterOffset(Box,ud(0,0,-.55,0)),'Out','Linear',.5,true) | |
340 | Box.TextStrokeTransparency=1 | |
341 | for i = 0,1,.05 do | |
342 | Box.BackgroundTransparency=i | |
343 | Box.TextTransparency=i | |
344 | lrs:wait() | |
345 | end | |
346 | lt=Box.Text | |
347 | SGui:Destroy() | |
348 | end | |
349 | end) | |
350 | Box.BackgroundTransparency=0 | |
351 | if ltbl.loop then | |
352 | while SGui.Parent and enabled do | |
353 | lt=Box.Text | |
354 | if #Box.Text>limit and Box.Text ~= 'Enter your Password' then | |
355 | Box:ReleaseFocus() | |
356 | Box.Active=false | |
357 | local bft=Box.Text | |
358 | Box.Text='Password '..limit..' character limit.' | |
359 | wait(2) | |
360 | Box.Text=bft:sub(0,limit) | |
361 | Box.Active=true | |
362 | Box:CaptureFocus() | |
363 | end | |
364 | if #Box.Text>1 and Box.Text ~= 'Enter your Password' then | |
365 | local nt='' | |
366 | ltbl.ui.Text=nt | |
367 | for i = 1,#Box.Text do | |
368 | nt=nt..'*' | |
369 | end | |
370 | ltbl.ui.Text=nt | |
371 | elseif #Box.Text==0 then | |
372 | if Box.Text ~= 'Enter your Password' then | |
373 | Box.Text='Enter your Password' | |
374 | ltbl.ui.Text='Enter your Password' | |
375 | Box:ReleaseFocus() | |
376 | Box.ClearTextOnFocus=true | |
377 | end | |
378 | end | |
379 | lrs:wait() | |
380 | end | |
381 | end | |
382 | return lt | |
383 | end | |
384 | ||
385 | function Functions:IfRegistered(Player, Function) | |
386 | local Bool = false | |
387 | for Index, Data in next, OS.Logins do | |
388 | local user=Data[1] | |
389 | local pass=Data[2] | |
390 | if user == tostring(Player) then | |
391 | Bool = true | |
392 | end | |
393 | end | |
394 | Function(Bool) | |
395 | end | |
396 | ||
397 | function Functions:CreateProgram(Name, Id, Nick, Description, Click) | |
398 | table.insert(OS.Apps.Qeued,{tostring(Name), tonumber(Id), tostring(NickName), tostring(Description), Click}) | |
399 | end; | |
400 | ||
401 | local Search | |
402 | function Functions:Search(Parent, Function) | |
403 | for Index, Object in next, Parent:children() do | |
404 | pcall(function() | |
405 | Function(Object) | |
406 | end) | |
407 | Functions:Search(Object, Function) | |
408 | end | |
409 | end | |
410 | ||
411 | function Functions:ShowChar() | |
412 | OS.Functions:Search(Character, function(Object) | |
413 | if (Object:IsA'BasePart' or Object:IsA'Decal') and Object.Name ~='HumanoidRootPart' then | |
414 | Object.Transparency = 0 | |
415 | end | |
416 | end) | |
417 | end | |
418 | ||
419 | function Functions:HideChar() | |
420 | OS.Functions:Search(Character, function(Object) | |
421 | if (Object:IsA'BasePart' or Object:IsA'Decal') and Object.Name ~='HumanoidRootPart' then | |
422 | Object.Transparency = 1 | |
423 | end | |
424 | end) | |
425 | end | |
426 | ||
427 | local Notes={}; | |
428 | Functions:CreateProgram('Notepad++', 43360681, 'N++', 'Notepad for your... "personal" needs?', function(HF,TF,CF) | |
429 | local tb = Functions:MakeNewUi('TextButton') | |
430 | tb.Parent=CF | |
431 | tb.TextWrapped=true | |
432 | table.insert(Notes,tb) | |
433 | tb.Text = 'Notepad; '..#Notes | |
434 | tb.TextColor3=CurrentPlayerData[3] | |
435 | tb.BackgroundColor3=CurrentPlayerData[4] | |
436 | tb.Font=OS.Settings.Fonts.Sub_Header | |
437 | tb.TextStrokeTransparency=.9 | |
438 | tb.TextStrokeColor3=CurrentPlayerData[3] | |
439 | tb.TextXAlignment='Left' | |
440 | tb.TextYAlignment='Top' | |
441 | local SGui | |
442 | tb.MouseButton1Click:connect(function() | |
443 | pcall(function() | |
444 | SGui:Destroy() | |
445 | end) | |
446 | if Host.PlayerGui:FindFirstChild'nomnoemnp' then Host.PlayerGui:FindFirstChild'nomnoemnp':Destroy() end | |
447 | SGui = Instance.new('ScreenGui', Host.PlayerGui) | |
448 | SGui.Name='nomnoemnp' | |
449 | local Box = Functions:MakeNewUi('TextBox') | |
450 | Box.ClearTextOnFocus=false | |
451 | Box.TextColor3 = CurrentPlayerData[3] | |
452 | Box.TextStrokeTransparency=.9 | |
453 | Box.Size=ud(1,0,1,0) | |
454 | Box.Position=ud(-1,0,0,0) | |
455 | Box.Text = tb.Text | |
456 | Box.Visible = false | |
457 | Box.TextXAlignment='Left' | |
458 | --Box.MultiLine=true | |
459 | Box.TextYAlignment='Top' | |
460 | Box.BackgroundTransparency=1 | |
461 | Box.TextStrokeColor3=CurrentPlayerData[3] | |
462 | Box.Parent=SGui | |
463 | Box.BackgroundColor3 = CurrentPlayerData[4] | |
464 | Box:CaptureFocus() | |
465 | Box.FocusLost:connect(function() | |
466 | SGui:Destroy() | |
467 | end) | |
468 | local isub = '|' | |
469 | local l=false | |
470 | spawn(function() | |
471 | if tb.Text:sub(#tb.Text,#tb.Text)=='|' then | |
472 | tb.Text=tb.Text:sub(1,#tb.Text-1) | |
473 | end | |
474 | local canc = false | |
475 | spawn(function() | |
476 | while not canc do | |
477 | wait(.6) | |
478 | l=not l | |
479 | if l == true then | |
480 | isub='|' | |
481 | else | |
482 | isub='' | |
483 | end | |
484 | end | |
485 | end) | |
486 | repeat | |
487 | tb.Text=Box.Text..isub | |
488 | lrs:wait() | |
489 | until SGui.Parent ~= Host.PlayerGui | |
490 | if l then | |
491 | tb.Text=tb.Text:sub(1,#tb.Text-1) | |
492 | end | |
493 | --print'canc' | |
494 | canc=true | |
495 | SGui=nil | |
496 | end) | |
497 | end) | |
498 | end) | |
499 | --script.Parent=Host.PlayerGui | |
500 | ||
501 | Functions:CreateProgram('Calculator', 45545182, 'Calc', 'Math stuff man', function(HF,TF,CF) | |
502 | HF.Size = UDim2.new(0,150,0,300) | |
503 | end) | |
504 | ||
505 | local osEVENT = game:service'SoundService':FindFirstChild'osEVENT' | |
506 | if osEVENT==nil then | |
507 | osEVENT = Instance.new('RemoteEvent',game:service'SoundService') | |
508 | osEVENT.Name='osEVENT' | |
509 | end | |
510 | ||
511 | if game.PlaceId == 691043264 then | |
512 | Functions:CreateProgram('Lua', 71157241, 'LUA', 'Execute stuff...', function(HF,TF,CF) | |
513 | local tb = Functions:MakeNewUi('TextButton') | |
514 | tb.Parent=CF | |
515 | tb.TextWrapped=true | |
516 | tb.Text = '' | |
517 | tb.TextColor3=CurrentPlayerData[3] | |
518 | tb.BackgroundColor3=CurrentPlayerData[4] | |
519 | tb.Font=OS.Settings.Fonts.Sub_Header | |
520 | tb.Size=ud(.6,0,.9,0) | |
521 | tb.TextXAlignment='Left' | |
522 | tb.TextYAlignment='Top' | |
523 | ||
524 | local run = Functions:MakeNewUi('TextButton') | |
525 | run.Parent=CF | |
526 | run.Text = 'Run Script' | |
527 | run.BackgroundTransparency=0 | |
528 | run.TextColor3=CurrentPlayerData[4] | |
529 | run.BackgroundColor3=CurrentPlayerData[3] | |
530 | run.Font=OS.Settings.Fonts.Header | |
531 | run.Position=ud(0,0,.95,0) | |
532 | run.TextSize=11 | |
533 | run.Size=ud(.6,0,.05,0) | |
534 | ||
535 | local cleartb = Functions:MakeNewUi('TextButton') | |
536 | cleartb.Parent=CF | |
537 | cleartb.Text = 'Clear Text' | |
538 | cleartb.BackgroundTransparency=0 | |
539 | cleartb.TextColor3=CurrentPlayerData[4] | |
540 | cleartb.BackgroundColor3=CurrentPlayerData[3] | |
541 | cleartb.Font=OS.Settings.Fonts.Header | |
542 | cleartb.Position=ud(0,0,.9,0) | |
543 | cleartb.TextSize=11 | |
544 | cleartb.Size=ud(.6,0,.05,0) | |
545 | ||
546 | local ipos = 0 | |
547 | local timefromlast=0 | |
548 | local longestx=0 | |
549 | ||
550 | local clear = Functions:MakeNewUi('TextButton') | |
551 | clear.Parent=CF | |
552 | clear.Text = 'Clear Output' | |
553 | clear.BackgroundTransparency=0 | |
554 | clear.TextColor3=CurrentPlayerData[4] | |
555 | clear.BackgroundColor3=CurrentPlayerData[3] | |
556 | clear.Font=OS.Settings.Fonts.Header | |
557 | clear.Position=ud(.6,0,.95,0) | |
558 | clear.TextSize=11 | |
559 | clear.Size=ud(.4,0,.05,0) | |
560 | ||
561 | local output = Functions:MakeNewUi('ScrollingFrame') | |
562 | output.Parent=CF | |
563 | output.BackgroundColor3=CurrentPlayerData[3] | |
564 | output.Position=ud(.6,0,0,0) | |
565 | output.BackgroundTransparency=0 | |
566 | output.Size=ud(.4,0,.95,0) | |
567 | ||
568 | function op(argz) | |
569 | local txt,code,clr = argz[1],argz[2],argz[3] | |
570 | clr=clr or Color3.new(1,1,1) | |
571 | txt=' > '..txt or 'NO_TEXT' | |
572 | --print(txt,code,clr) | |
573 | local is = (tostring(code)==tostring(OS.GenCode)) | |
574 | if is then | |
575 | timefromlast=0 | |
576 | local lbl = Functions:MakeNewUi('TextLabel') | |
577 | lbl.Parent=output | |
578 | lbl.Position=ud(0,0,0,ipos) | |
579 | lbl.TextSize=10 | |
580 | if #txt > longestx then | |
581 | longextx=#txt | |
582 | end | |
583 | --txt=txt:gsub('\n','') | |
584 | lbl.TextColor3 = clr | |
585 | lbl.TextWrapped=true | |
586 | local count=0 | |
587 | local notting=true | |
588 | lbl.TextXAlignment='Left' | |
589 | lbl.Text = txt | |
590 | lbl.BackgroundTransparency=1 | |
591 | lbl.Size=ud(33,0,0,lbl.TextBounds.Y+5) | |
592 | ipos=ipos+lbl.TextBounds.Y+2 | |
593 | spawn(function() | |
594 | while notting do | |
595 | lrs:wait() | |
596 | count=count+1 | |
597 | local asx=output.AbsoluteSize.X | |
598 | local tbx=lbl.TextBounds.X | |
599 | --print(tbx,asx) | |
600 | if tbx > asx then | |
601 | lbl.Text=lbl.Text:sub(1+(asx*(count-1)),asx*count)..'\n'..lbl.Text:sub((asx*count)+1) | |
602 | else | |
603 | notting=false | |
604 | end | |
605 | end | |
606 | end) | |
607 | lbl.Size=ud(1,0,0,lbl.TextBounds.Y+5) | |
608 | end | |
609 | end | |
610 | ||
611 | op({'Hello world!', OS.GenCode, Color3.new(1,1,1)}) | |
612 | ||
613 | clear.MouseButton1Click:connect(function() | |
614 | output:ClearAllChildren() | |
615 | ipos=0 | |
616 | longestx=0 | |
617 | timefromlast=0 | |
618 | op({'Cleared output', OS.GenCode, BrickColor.new'Dark green'.Color}) | |
619 | end) | |
620 | ||
621 | cleartb.MouseButton1Click:connect(function() | |
622 | tb.Text='' | |
623 | pcall(function() | |
624 | SGui.Text='' | |
625 | end) | |
626 | end) | |
627 | ||
628 | local oev = osEVENT.OnClientEvent:connect(function(Argz) | |
629 | op(Argz) | |
630 | end) | |
631 | ||
632 | spawn(function() | |
633 | local ii=0 | |
634 | repeat lrs:wait() | |
635 | timefromlast=timefromlast+.05 | |
636 | ii=Functions:IntegerLerp(ii,ipos,.15) | |
637 | if timefromlast < 5 then | |
638 | output.CanvasSize=ud(0,longestx,0,ii) | |
639 | output.CanvasPosition=Vector2.new(0,ii) | |
640 | end | |
641 | until run.Parent ~= CF | |
642 | oev:disconnect() | |
643 | --print'dis' | |
644 | end) | |
645 | ||
646 | run.MouseButton1Click:connect(function() | |
647 | local lscode = [[ | |
648 | local owner = game:service'Players':WaitForChild(']]..Host.Name..[[') | |
649 | local event = game:service'SoundService':WaitForChild'osEVENT' | |
650 | local code = ]]..OS.GenCode..[[ | |
651 | function print(...) | |
652 | local Data, Return = {...}, "" | |
653 | for Index,Value in pairs(Data) do | |
654 | Return = Return .. tostring(Value) .. (Index < #Data and ", " or "") | |
655 | end | |
656 | event:FireClient(owner,{Return,code,Color3.new(1,1,1)}) | |
657 | end | |
658 | function warn(...) | |
659 | local Data, Return = {...}, "" | |
660 | for Index,Value in pairs(Data) do | |
661 | Return = Return .. tostring(Value) .. (Index < #Data and ", " or "") | |
662 | end | |
663 | event:FireClient(owner,{Return,code,Color3.new(1,.5,0)}) | |
664 | end | |
665 | function ferror(...) | |
666 | local Data, Return = {...}, "" | |
667 | for Index,Value in pairs(Data) do | |
668 | Return = Return .. tostring(Value) .. (Index < #Data and ", " or "") | |
669 | end | |
670 | event:FireClient(owner,{Return,code,Color3.new(.8,0,0)}) | |
671 | end | |
672 | delay(20,function() | |
673 | event:FireClient(owner,{'Auto removed script - delay ; 20',code,BrickColor.new'Dark green'.Color}) | |
674 | script:Destroy() | |
675 | end) | |
676 | local script = workspace:WaitForChild(']]..tostring(OS.Assets.FScript.Name)..[[') | |
677 | ]] | |
678 | local formattedcode = [[ | |
679 | pcall(function() | |
680 | local Success, Error = pcall(function() | |
681 | ]]..tb.Text..[[ | |
682 | end) | |
683 | if not Success then | |
684 | local err = Error | |
685 | err=err:gsub('ScriptBuilderScript','OS.sb') | |
686 | err=err:gsub('544','1') | |
687 | ferror(err) | |
688 | local stacks = debug.traceback() | |
689 | stacks=stacks:gsub('ScriptBuilderScript','OS.sb') | |
690 | event:FireClient(owner,{stacks,code,BrickColor.new'Bright blue'.Color}) | |
691 | else | |
692 | event:FireClient(owner,{'Ran script',code,BrickColor.new'Bright blue'.Color}) | |
693 | end | |
694 | end) | |
695 | ]] | |
696 | NS(lscode..'\n\n'..formattedcode, workspace) | |
697 | end) | |
698 | ||
699 | local SGui | |
700 | tb.MouseButton1Click:connect(function() | |
701 | pcall(function() | |
702 | SGui:Destroy() | |
703 | end) | |
704 | if Host.PlayerGui:FindFirstChild'nomnoemnp' then Host.PlayerGui:FindFirstChild'nomnoemnp':Destroy() end | |
705 | SGui = Instance.new('ScreenGui', Host.PlayerGui) | |
706 | SGui.Name='nomnoemnp' | |
707 | local Box = Functions:MakeNewUi('TextBox') | |
708 | Box.ClearTextOnFocus=false | |
709 | Box.TextColor3 = CurrentPlayerData[3] | |
710 | Box.TextStrokeTransparency=.9 | |
711 | Box.Size=ud(1,0,1,0) | |
712 | Box.Position=ud(-1,0,0,0) | |
713 | Box.Text = tb.Text | |
714 | Box.Visible = false | |
715 | Box.TextXAlignment='Left' | |
716 | --Box.MultiLine=true | |
717 | Box.TextYAlignment='Top' | |
718 | Box.BackgroundTransparency=1 | |
719 | Box.TextStrokeColor3=CurrentPlayerData[3] | |
720 | Box.Parent=SGui | |
721 | Box.BackgroundColor3 = CurrentPlayerData[4] | |
722 | Box:CaptureFocus() | |
723 | Box.FocusLost:connect(function() | |
724 | SGui:Destroy() | |
725 | end) | |
726 | local isub = '|' | |
727 | local l=false | |
728 | spawn(function() | |
729 | if tb.Text:sub(#tb.Text,#tb.Text)=='|' then | |
730 | tb.Text=tb.Text:sub(1,#tb.Text-1) | |
731 | end | |
732 | local canc = false | |
733 | spawn(function() | |
734 | while not canc do | |
735 | wait(.6) | |
736 | l=not l | |
737 | if l == true then | |
738 | isub='|' | |
739 | else | |
740 | isub='' | |
741 | end | |
742 | end | |
743 | end) | |
744 | repeat | |
745 | tb.Text=Box.Text..isub | |
746 | lrs:wait() | |
747 | until SGui.Parent ~= Host.PlayerGui | |
748 | if l then | |
749 | tb.Text=tb.Text:sub(1,#tb.Text-1) | |
750 | end | |
751 | canc=true | |
752 | SGui=nil | |
753 | end) | |
754 | end) | |
755 | end) | |
756 | end | |
757 | ||
758 | Functions:CreateProgram('Settings',485882401,'Sett','Also self explanitory...',function(HF,TF,CF) | |
759 | end) | |
760 | ||
761 | spawn(function() | |
762 | local nw={}; | |
763 | for i,v in next, OS.Backgrounds do | |
764 | delay(math.random()*5,function() | |
765 | nw[#nw+1]=v | |
766 | end) | |
767 | end | |
768 | repeat wait() until #nw==#OS.Backgrounds | |
769 | wait(.5) | |
770 | OS.Backgrounds=nw | |
771 | Functions:Notification('Formatted OS.Backgrounds', 4) | |
772 | end) | |
773 | ||
774 | spawn(function() | |
775 | local nw={}; | |
776 | for i,v in next, OS.Sounds do | |
777 | delay(math.random()*5,function() | |
778 | nw[#nw+1]=v | |
779 | end) | |
780 | end | |
781 | repeat wait() until #nw==#OS.Sounds | |
782 | wait(.5) | |
783 | OS.Sounds=nw | |
784 | Functions:Notification('Formatted OS.Sounds', 4) | |
785 | end) | |
786 | ||
787 | Functions:CreateProgram('Gallery', 152445445, 'Images', 'View your favorite, saved, and default images', function(HF,TF,CF) | |
788 | local title = Functions:MakeNewUi('TextLabel') | |
789 | title.TextColor3 = CurrentPlayerData[3] | |
790 | title.TextStrokeTransparency=1 | |
791 | title.Size=ud(1,0,.1,0) | |
792 | title.Text = 'Gallery - '..#OS.Backgrounds..' assets total' | |
793 | title.TextXAlignment='Center' | |
794 | title.TextYAlignment='Center' | |
795 | title.Font = OS.Settings.Fonts.Header | |
796 | title.BackgroundTransparency=1 | |
797 | title.Parent=CF | |
798 | title.BackgroundColor3 = CurrentPlayerData[4] | |
799 | ||
800 | spawn(function() | |
801 | wait(1) | |
802 | Effects:Underline(title, 15, 300, 2, CurrentPlayerData[3], true) | |
803 | end) | |
804 | ||
805 | local scroll = Functions:MakeNewUi('ScrollingFrame') | |
806 | scroll.Size=ud(1,0,.9,0) | |
807 | scroll.Position = ud(0,0,.1,0) | |
808 | scroll.BackgroundTransparency=0 | |
809 | scroll.TopImage=Functions:Asset(317839361) | |
810 | scroll.MidImage=Functions:Asset(317839361) | |
811 | scroll.BottomImage=Functions:Asset(317839361) | |
812 | scroll.ScrollBarThickness = 5 | |
813 | scroll.Parent=CF | |
814 | scroll.BackgroundColor3 = CurrentPlayerData[4] | |
815 | ||
816 | local Loaded = 0 | |
817 | local o,d = 0,0 | |
818 | local curbg = nil | |
819 | local bgs={}; | |
820 | for i, Id in next, OS.Backgrounds do | |
821 | --local Market = game:service'MarketplaceService' | |
822 | --local Asset = Market:GetProductInfo(Id) | |
823 | ||
824 | local Img = Functions:MakeNewUi('ImageButton') | |
825 | Img.Image = Functions:Asset(Id) | |
826 | local scl = 2 | |
827 | local add = .005 | |
828 | local sx,sy=(.089*scl),(.05*scl) | |
829 | Img.Size=ud(sx,0,0,34*2) | |
830 | Img.Position = ud(((sx+add)*o)+.05,0,0,((36*2)*d)) | |
831 | o=o+1 | |
832 | game:service'RunService'.RenderStepped:wait() | |
833 | if sx*(o+1) >= 1 then | |
834 | d=d+1 | |
835 | o=0 | |
836 | scroll.CanvasSize=ud(0,0,0,((36*2)*d)) | |
837 | end | |
838 | Img.BackgroundColor3 = scroll.BackgroundColor3 | |
839 | Img.BorderColor3 = CurrentPlayerData[3] | |
840 | Img.ImageTransparency=1 | |
841 | Img.MouseButton1Down:connect(function() | |
842 | curbg = Img | |
843 | OS.Assets.Background.Image=Functions:Asset(Id) | |
844 | end) | |
845 | Img.Parent=scroll | |
846 | ||
847 | spawn(function() | |
848 | for i = 0,1.05,.05 do | |
849 | Img.ImageTransparency=1-i | |
850 | game:service'RunService'.RenderStepped:wait() | |
851 | end | |
852 | end) | |
853 | bgs[#bgs+1]=Img | |
854 | end | |
855 | while #bgs > 0 do | |
856 | lrs:wait() | |
857 | for i,Img in next, bgs do | |
858 | if Img == nil or Img.Parent == nil then | |
859 | table.remove(bgs,i) | |
860 | else | |
861 | if curbg == Img then | |
862 | Img.BorderSizePixel = 2 | |
863 | else | |
864 | Img.BorderSizePixel=0 | |
865 | end | |
866 | end | |
867 | end | |
868 | end | |
869 | end) | |
870 | ||
871 | Functions:CreateProgram('Explorer', 27854793, 'Expl', 'Explore the game\'s children', function(HF,TF,CF) | |
872 | local funcs = {}; | |
873 | local title = Functions:MakeNewUi('TextLabel') | |
874 | title.TextColor3 = CurrentPlayerData[3] | |
875 | title.TextStrokeTransparency=1 | |
876 | title.Size=ud(1,0,.2,0) | |
877 | title.Text = 'Services' | |
878 | title.TextXAlignment='Center' | |
879 | title.TextYAlignment='Center' | |
880 | title.BackgroundTransparency=1 | |
881 | title.Parent=CF | |
882 | title.BackgroundColor3 = CurrentPlayerData[4] | |
883 | ||
884 | spawn(function() | |
885 | wait(1) | |
886 | Effects:Underline(title, 15, 80, 2, CurrentPlayerData[3], true) | |
887 | end) | |
888 | ||
889 | local scroll = Functions:MakeNewUi('ScrollingFrame') | |
890 | scroll.Size=ud(.8,0,.8,0) | |
891 | scroll.Position = ud(.1,0,.2,0) | |
892 | scroll.BackgroundTransparency=1 | |
893 | scroll.TopImage=Functions:Asset(317839361) | |
894 | scroll.MidImage=Functions:Asset(317839361) | |
895 | scroll.BottomImage=Functions:Asset(317839361) | |
896 | scroll.ScrollBarThickness = 5 | |
897 | scroll.Parent=CF | |
898 | scroll.BackgroundColor3 = CurrentPlayerData[4] | |
899 | ||
900 | function funcs:w() | |
901 | return wait(.05) | |
902 | end | |
903 | ||
904 | local buttons={}; | |
905 | local t = 0 | |
906 | function funcs:clearscroll() | |
907 | t=t+1 | |
908 | buttons={}; | |
909 | for i,v in next, scroll:children() do | |
910 | --funcs:w() | |
911 | pcall(function() | |
912 | spawn(function() | |
913 | v:TweenPosition(ud(1,0,v.Position.Y.Scale,v.Position.Y.Offset),'Out','Quint',2,true) | |
914 | for i = 0,1.05,.05 do | |
915 | pcall(function() | |
916 | v.TextTransparency=v.TextTransparency+.05 | |
917 | end) | |
918 | pcall(function() | |
919 | v.BackgroundTransparency=v.BackgroundTransparency+.05 | |
920 | end) | |
921 | pcall(function() | |
922 | v.TextStrokeTransparency=v.TextStrokeTransparency+.05 | |
923 | end) | |
924 | lrs:wait() | |
925 | end | |
926 | v:Destroy() | |
927 | end) | |
928 | end) | |
929 | end | |
930 | wait(2) | |
931 | end | |
932 | ||
933 | function funcs:bt(i,txt,func) | |
934 | delay(0,function() | |
935 | if t == i then | |
936 | --funcs:w() | |
937 | local button = Functions:MakeNewUi('TextButton') | |
938 | local index = #buttons | |
939 | buttons[index+1]=button | |
940 | local y = 22*(index) | |
941 | scroll.CanvasSize=ud(0,0,0,y) | |
942 | button.TextColor3 = CurrentPlayerData[3] | |
943 | button.TextStrokeTransparency=.9 | |
944 | button.Size=ud(1,0,0,20) | |
945 | button.Position=ud(1,0,0,y) | |
946 | button.Text = txt | |
947 | button.TextXAlignment='Left' | |
948 | button.TextTransparency=1 | |
949 | button.TextSize = 12 | |
950 | button.Font=OS.Settings.Fonts.Header | |
951 | --button.TextYAlignment='Top' | |
952 | button.BackgroundTransparency=.6 | |
953 | button.TextStrokeColor3=CurrentPlayerData[3] | |
954 | button.Parent=scroll | |
955 | button.BackgroundColor3 = CurrentPlayerData[4] | |
956 | spawn(function() | |
957 | button:TweenPosition(ud(0,0,0,y),'Out','Quint',.5,true) | |
958 | for i = 0,1.05,.05 do | |
959 | button.TextTransparency=1-i | |
960 | lrs:wait() | |
961 | end | |
962 | end) | |
963 | local ev | |
964 | ev=button.MouseButton1Click:connect(function() | |
965 | ev:disconnect() | |
966 | func(button) | |
967 | end) | |
968 | return button | |
969 | else | |
970 | return nil | |
971 | end | |
972 | end) | |
973 | end | |
974 | ||
975 | function funcs:showoptions(obj) | |
976 | funcs:clearscroll() | |
977 | local st = t | |
978 | if obj:IsA'Instance' then | |
979 | title.Text = obj:GetFullName() | |
980 | if #obj:children() > 0 then | |
981 | local expl=funcs:bt(st,'Explore',function() | |
982 | funcs:showchildren(obj) | |
983 | end) | |
984 | end | |
985 | pcall(function() | |
986 | if obj ~= game and obj.Parent ~= game then | |
987 | local expl=funcs:bt(st,'Destroy',function() | |
988 | local par = obj.Parent | |
989 | local pn = obj.Name | |
990 | pcall(function() | |
991 | obj:Destroy() | |
992 | end) | |
993 | funcs:clearscroll() | |
994 | local nst = t | |
995 | funcs:bt(nst,'Return to '..pn..'\'s parent object',function() | |
996 | funcs:showchildren(par) | |
997 | end) | |
998 | funcs:bt(nst,'Destroyed '..pn,function() | |
999 | end) | |
1000 | end) | |
1001 | end | |
1002 | end) | |
1003 | if obj ~= game then | |
1004 | local tag = 'Return to '..obj.Parent.Name..'\'s children' | |
1005 | if obj.Parent==game then | |
1006 | tag='Return to explorable services' | |
1007 | end | |
1008 | local ret=funcs:bt(st,tag,function() | |
1009 | funcs:showchildren(obj.Parent) | |
1010 | end) | |
1011 | elseif obj.Parent == game then | |
1012 | funcs:showservs() | |
1013 | end | |
1014 | local sprops=funcs:bt(st,'Show Properties',function() | |
1015 | funcs:clearscroll() | |
1016 | local st2 = t | |
1017 | local rett=funcs:bt(st2,'Return to options for '..obj.Name,function() | |
1018 | funcs:showoptions(obj) | |
1019 | end) | |
1020 | local Props = Functions:ReturnObjectProperties(obj) | |
1021 | Props['Children'] = #obj:children() | |
1022 | for index, value in next, Props do | |
1023 | local prop=funcs:bt(st2,tostring(index)..': '..tostring(value),function() | |
1024 | end) | |
1025 | end | |
1026 | end) | |
1027 | end | |
1028 | end | |
1029 | ||
1030 | function funcs:showchildren(prnt) | |
1031 | funcs:clearscroll() | |
1032 | local st = t | |
1033 | if prnt:IsA'Instance' then | |
1034 | local back=funcs:bt(st,'Show me options for '..prnt.Name,function() | |
1035 | funcs:showoptions(prnt) | |
1036 | end) | |
1037 | for i,v in next, prnt:children() do | |
1038 | pcall(function() | |
1039 | if prnt:IsA'Instance' then | |
1040 | local sub=' - '..v.ClassName | |
1041 | pcall(function() | |
1042 | if prnt==game then | |
1043 | sub='' | |
1044 | end | |
1045 | end) | |
1046 | local child=funcs:bt(st,v.Name..sub,function() | |
1047 | funcs:showoptions(v) | |
1048 | end) | |
1049 | end | |
1050 | end) | |
1051 | end | |
1052 | end | |
1053 | end | |
1054 | function funcs:showservs() | |
1055 | funcs:clearscroll() | |
1056 | local st = t | |
1057 | local servs = {}; | |
1058 | for i,v in next, game:children() do | |
1059 | pcall(function() | |
1060 | if #v:children() > 0 then | |
1061 | table.insert(servs,v) | |
1062 | end | |
1063 | end) | |
1064 | end | |
1065 | local child=funcs:bt(st,'SHOW ME ALL THE DAMN SERVICES!',function() | |
1066 | funcs:showoptions(game) | |
1067 | end) | |
1068 | for i,v in next, servs do | |
1069 | local child = funcs:bt(st,v.Name,function() | |
1070 | funcs:showoptions(v) | |
1071 | end) | |
1072 | end | |
1073 | end | |
1074 | funcs:showservs() | |
1075 | end) | |
1076 | ||
1077 | local Audios={}; | |
1078 | local CurrentPlaying = nil | |
1079 | function Functions:AddSound(Id) | |
1080 | for Index, Sound in next, Audios do | |
1081 | if Sound:IsA'Sound' then | |
1082 | Sound:Stop() | |
1083 | Sound.PlayOnRemove=false | |
1084 | end | |
1085 | end | |
1086 | local Sound = Instance.new('Sound', Monitor) | |
1087 | Sound.SoundId=Functions:Asset(Id) | |
1088 | Sound.Volume=.9 | |
1089 | CurrentPlaying = Sound | |
1090 | table.insert(Audios, Sound) | |
1091 | return Sound | |
1092 | end | |
1093 | ||
1094 | function Functions:IntegerLerp(a,b,c) | |
1095 | return a + (b - a) * c; | |
1096 | end | |
1097 | ||
1098 | Functions:CreateProgram('Messenger',485845332,'MGR','Self explanitory... idiot', function(HF,TF,CF) | |
1099 | end) | |
1100 | ||
1101 | local cur = nil | |
1102 | local curSound = nil | |
1103 | Functions:CreateProgram('SmAudio', 64646186, 'SmA', 'An archive of selected music just for you ;) with extra features as well', function(HF,TF,CF) | |
1104 | local title = Functions:MakeNewUi('TextLabel') | |
1105 | title.TextColor3 = CurrentPlayerData[3] | |
1106 | title.TextStrokeTransparency=1 | |
1107 | title.Size=ud(1,0,.2,0) | |
1108 | title.Text = 'SmAudio Alpha' | |
1109 | title.TextXAlignment='Center' | |
1110 | title.TextYAlignment='Center' | |
1111 | title.Font = OS.Settings.Fonts.Header | |
1112 | title.BackgroundTransparency=1 | |
1113 | title.Parent=CF | |
1114 | title.BackgroundColor3 = CurrentPlayerData[4] | |
1115 | ||
1116 | spawn(function() | |
1117 | wait(1) | |
1118 | Effects:Underline(title, 15, 80, 2, CurrentPlayerData[3], true) | |
1119 | end) | |
1120 | ||
1121 | local scroll = Functions:MakeNewUi('ScrollingFrame') | |
1122 | scroll.Size=ud(.8,0,.8,0) | |
1123 | scroll.Position = ud(.1,0,.2,0) | |
1124 | scroll.BackgroundTransparency=0 | |
1125 | scroll.TopImage=Functions:Asset(317839361) | |
1126 | scroll.MidImage=Functions:Asset(317839361) | |
1127 | scroll.BottomImage=Functions:Asset(317839361) | |
1128 | scroll.ScrollBarThickness = 5 | |
1129 | scroll.Parent=CF | |
1130 | scroll.BackgroundColor3 = CurrentPlayerData[4] | |
1131 | ||
1132 | local max = 0 | |
1133 | spawn(function() | |
1134 | local y = 0 | |
1135 | repeat game:service'RunService'.RenderStepped:wait() | |
1136 | y=Functions:IntegerLerp(y,max,.02) | |
1137 | --print(max) | |
1138 | --print(y) | |
1139 | --scroll.CanvasSize=ud(0,0,0,y) | |
1140 | until CF.Parent == nil | |
1141 | end) | |
1142 | ||
1143 | local play,pause,sound = Functions:Asset(745599404),Functions:Asset(745599001),Functions:Asset(176572847) | |
1144 | ||
1145 | local Loaded = 0 | |
1146 | for i, Id in next, OS.Sounds do | |
1147 | delay((math.random()/(math.random()+.2))*3, function() | |
1148 | local Market = game:service'MarketplaceService' | |
1149 | local Asset = Market:GetProductInfo(Id) | |
1150 | ||
1151 | local Song = Functions:MakeNewUi('ImageButton') | |
1152 | Song.Parent=scroll | |
1153 | Song.Image = play | |
1154 | local clr=CurrentPlayerData[3] | |
1155 | local clr2=CurrentPlayerData[4] | |
1156 | Song.BackgroundColor3=clr | |
1157 | Song.Size=ud(0,45,0,45) | |
1158 | Song.BackgroundTransparency=1 | |
1159 | ||
1160 | local y = (Song.Size.Y.Offset+2)*(i-1) | |
1161 | max=max+(Song.Size.Y.Offset+2) | |
1162 | local x = Song.Size.X.Offset | |
1163 | ||
1164 | local author = Functions:MakeNewUi('TextLabel') | |
1165 | author.TextColor3 = CurrentPlayerData[3] | |
1166 | author.Size=ud(1,-x+10,0,20) | |
1167 | author.Position = ud(0,x+10,0,y) | |
1168 | author.Text = 'Author '..Asset.Creator.Name..' ; '..Asset.Creator.Id | |
1169 | author.TextXAlignment='Left' | |
1170 | author.TextYAlignment='Center' | |
1171 | author.TextSize = 16 | |
1172 | author.Font = OS.Settings.Fonts.Header | |
1173 | author.BackgroundTransparency=1 | |
1174 | author.TextTransparency=1 | |
1175 | author.Parent=scroll | |
1176 | author.BackgroundColor3 = CurrentPlayerData[3] | |
1177 | ||
1178 | local name = Functions:MakeNewUi('TextLabel') | |
1179 | name.TextColor3 = CurrentPlayerData[3] | |
1180 | name.Size=ud(1,-x+10,0,20) | |
1181 | name.Position = ud(0,x+10,0,y+(author.TextSize+2)) | |
1182 | name.Text = 'Name '..Asset.Name | |
1183 | name.TextXAlignment='Left' | |
1184 | name.TextYAlignment='Center' | |
1185 | name.TextSize = 12 | |
1186 | name.TextTransparency=1 | |
1187 | name.Font = OS.Settings.Fonts.Header | |
1188 | name.BackgroundTransparency=1 | |
1189 | name.Parent=scroll | |
1190 | name.BackgroundColor3 = CurrentPlayerData[3] | |
1191 | ||
1192 | local desc = Functions:MakeNewUi('TextLabel') | |
1193 | desc.TextColor3 = CurrentPlayerData[3] | |
1194 | local alg = (((name.TextBounds.X+author.TextBounds.X)/1.5)+(10+(author.TextSize+name.TextSize))) | |
1195 | desc.Size=ud(1,-x-(alg+scroll.ScrollBarThickness),0,46) | |
1196 | desc.Position = ud(1,0,0,y-1) | |
1197 | desc.Text = Asset.Creator.Name..': '..Asset.Description | |
1198 | desc.BorderSizePixel=0 | |
1199 | desc.BorderColor3 = CurrentPlayerData[3] | |
1200 | desc.TextWrapped=true | |
1201 | desc.TextXAlignment='Left' | |
1202 | desc.TextTransparency=1 | |
1203 | desc.TextYAlignment='Top' | |
1204 | desc.TextSize = 12 | |
1205 | desc.Font = OS.Settings.Fonts.Header | |
1206 | desc.BackgroundTransparency=1 | |
1207 | desc.Parent=scroll | |
1208 | desc.BackgroundColor3 = scroll.BackgroundColor3 | |
1209 | desc.ClipsDescendants=false | |
1210 | ||
1211 | local line = Functions:MakeNewUi('TextLabel') | |
1212 | line.TextColor3 = CurrentPlayerData[3] | |
1213 | line.Size=ud(0,1,1,0) | |
1214 | line.Position = ud(0,-4,0,0) | |
1215 | line.Text = '' | |
1216 | line.BackgroundTransparency=0 | |
1217 | line.BackgroundColor3 = CurrentPlayerData[3] | |
1218 | line.Parent=desc | |
1219 | ||
1220 | if Asset.Description=='Audio' or Asset.Description=='RenderMesh' then | |
1221 | desc:Destroy() | |
1222 | else | |
1223 | desc:TweenPosition(ud(0,x+alg,0,y-1),'Out','Quint',1,true) | |
1224 | end | |
1225 | ||
1226 | Song.Position = ud(0,-x,0,y) | |
1227 | ||
1228 | Song.ZIndex=8 | |
1229 | Song.MouseEnter:connect(function() | |
1230 | local t=clr2 | |
1231 | local tt=.15 | |
1232 | clr=c3(t.r-tt,t.b-tt,t.g-tt) | |
1233 | clr2=CurrentPlayerData[3] | |
1234 | end) | |
1235 | Song.MouseLeave:connect(function() | |
1236 | clr=CurrentPlayerData[3] | |
1237 | clr2=CurrentPlayerData[4] | |
1238 | end) | |
1239 | ||
1240 | Song.MouseButton1Click:connect(function() | |
1241 | if cur == Song then | |
1242 | curSound:Pause() | |
1243 | cur=nil | |
1244 | else | |
1245 | cur=Song | |
1246 | curSound = Functions:AddSound(Id) | |
1247 | curSound.Looped = true | |
1248 | curSound:Play() | |
1249 | clr=CurrentPlayerData[3] | |
1250 | clr2=CurrentPlayerData[4] | |
1251 | end | |
1252 | end) | |
1253 | ||
1254 | spawn(function() | |
1255 | for i = 0,1.05,.05 do | |
1256 | desc.TextTransparency=1-i | |
1257 | desc.BackgroundTransparency=1-i | |
1258 | name.TextTransparency=1-i | |
1259 | author.TextTransparency=1-i | |
1260 | game:service'RunService'.RenderStepped:wait() | |
1261 | end | |
1262 | end) | |
1263 | ||
1264 | spawn(function() | |
1265 | repeat game:service'RunService'.RenderStepped:wait() | |
1266 | if cur == Song then | |
1267 | Song.Image = pause | |
1268 | else | |
1269 | Song.Image = play | |
1270 | end | |
1271 | Song.BackgroundColor3=Song.BackgroundColor3:lerp(clr,.25) | |
1272 | Song.ImageColor3=Song.ImageColor3:lerp(clr2,.25) | |
1273 | until CF.Parent == nil | |
1274 | end) | |
1275 | Song:TweenPosition(ud(0,0,0,y),'Out','Quint',.5,true) | |
1276 | Loaded = Loaded + 1 | |
1277 | end) | |
1278 | end | |
1279 | local ii=0 | |
1280 | repeat | |
1281 | wait() | |
1282 | title.Text = 'Loading Assets #'..Loaded | |
1283 | ii=Functions:IntegerLerp(ii,max+10,.04) | |
1284 | scroll.CanvasSize=ud(0,0,0,ii) | |
1285 | scroll.CanvasPosition=Vector2.new(0,ii) | |
1286 | until Loaded == #OS.Sounds | |
1287 | title.Text = 'SmAudio Beta' | |
1288 | end) | |
1289 | ||
1290 | function Functions:GeneratePrograms(Distance) | |
1291 | --print'k' | |
1292 | local Over, Down=0,0 | |
1293 | for Index, Data in next, OS.Apps.Qeued do | |
1294 | if Down > 7 then | |
1295 | return | |
1296 | end | |
1297 | local maximized,ump,ums | |
1298 | lrs:wait() | |
1299 | local Icon = Functions:MakeNewUi('ImageButton') | |
1300 | Icon.Image=Functions:PlayerImage(Host) | |
1301 | Icon.Parent=MainFrame | |
1302 | Icon.BackgroundColor3=CurrentPlayerData[4] | |
1303 | Icon.Image=Functions:Asset(Data[2]) | |
1304 | Icon.Size=ud(0,50,0,50) | |
1305 | Icon.ZIndex=2 | |
1306 | Icon.ImageTransparency=0 | |
1307 | local IconName = Functions:MakeNewUi('TextLabel') | |
1308 | IconName.Font=OS.Settings.Fonts.Header | |
1309 | IconName.Parent=Icon | |
1310 | IconName.TextYAlignment='Bottom' | |
1311 | IconName.TextSize = 10 | |
1312 | IconName.Text= Data[1] | |
1313 | IconName.Size=ud(1,0,0,20) | |
1314 | IconName.Position=ud(0,0,1,-20) | |
1315 | IconName.ZIndex=2 | |
1316 | local bgtp = 1 | |
1317 | Icon.MouseEnter:connect(function() | |
1318 | bgtp=.5 | |
1319 | end) | |
1320 | Icon.MouseLeave:connect(function() | |
1321 | bgtp=1 | |
1322 | end) | |
1323 | local oi = bgtp | |
1324 | lrs:connect(function() | |
1325 | oi=Functions:IntegerLerp(oi,bgtp,.3) | |
1326 | Icon.BackgroundTransparency=oi | |
1327 | end) | |
1328 | OS.Apps.Generated[Data[1]]=Icon | |
1329 | if Over >= 13 then | |
1330 | Down = Down + 1 | |
1331 | Over = 0 | |
1332 | end | |
1333 | Icon.Position=ud(0,15+(60*(Over)),0,15+(60*(Down))) | |
1334 | Over = Over + 1 | |
1335 | Icon.ZIndex=2 | |
1336 | local oic | |
1337 | oic=Icon.MouseButton1Click:connect(function() | |
1338 | local AlreadyOpen=false | |
1339 | for Index, Ting in next, OS.Apps.Open do | |
1340 | for i = 1,#Ting do | |
1341 | if Data[i] == Ting[i] then | |
1342 | AlreadyOpen=true | |
1343 | end | |
1344 | end | |
1345 | end | |
1346 | if AlreadyOpen then | |
1347 | warn'nop' | |
1348 | return | |
1349 | end | |
1350 | table.insert(OS.Apps.Open,{Data[1],Data[2],Data[3]}) | |
1351 | OS.RecentlyUsedPrograms[Data[4]]=Data | |
1352 | local HolderFrame = Functions:MakeNewUi('Frame') | |
1353 | HolderFrame.ZIndex=3 | |
1354 | HolderFrame.BackgroundTransparency=0 | |
1355 | HolderFrame.BorderSizePixel=.1 | |
1356 | HolderFrame.BorderColor3=CurrentPlayerData[3] | |
1357 | HolderFrame.Size=ud(0,600,0,400) | |
1358 | HolderFrame.Name='HF' | |
1359 | HolderFrame.BackgroundColor3=CurrentPlayerData[3] | |
1360 | HolderFrame.Position = Functions:Center(HolderFrame) | |
1361 | HolderFrame.Parent = MainFrame | |
1362 | maximized,ump,ums=false,HolderFrame.Position,HolderFrame.Size | |
1363 | local function Enable() | |
1364 | for i,gui in next, MainFrame:children() do | |
1365 | if gui:IsA'ImageButton' then | |
1366 | gui.Visible=true | |
1367 | end | |
1368 | end | |
1369 | end | |
1370 | local function Disable() | |
1371 | for i,gui in next, MainFrame:children() do | |
1372 | if gui:IsA'ImageButton' then | |
1373 | gui.Visible=false | |
1374 | end | |
1375 | end | |
1376 | end | |
1377 | ||
1378 | local ev1 | |
1379 | ev1=HolderFrame.MouseEnter:connect(function() | |
1380 | --print'k1' | |
1381 | Disable() | |
1382 | end) | |
1383 | local ev2 | |
1384 | ev2=HolderFrame.MouseLeave:connect(function() | |
1385 | --print'k2' | |
1386 | Enable() | |
1387 | end) | |
1388 | local InfoFrame = Functions:MakeNewUi('Frame') | |
1389 | InfoFrame.ZIndex=4 | |
1390 | InfoFrame.BackgroundTransparency=0 | |
1391 | InfoFrame.Size=ud(1,0,0,15) | |
1392 | InfoFrame.Name='TF' | |
1393 | InfoFrame.BackgroundColor3=CurrentPlayerData[3] | |
1394 | for i = 1,3 do | |
1395 | i=i | |
1396 | local CButt = Functions:MakeNewUi('ImageButton') | |
1397 | CButt.Image=Functions:Asset(625953771) | |
1398 | CButt.Parent=InfoFrame | |
1399 | CButt.ImageTransparency=.15 | |
1400 | local OCF | |
1401 | --505680534 | |
1402 | spawn(function() | |
1403 | local up=.75 | |
1404 | local r,g,b=0,0,0 | |
1405 | if (i==1) then | |
1406 | r,g,b=.8,.01,.01 | |
1407 | elseif (i==2) then | |
1408 | r,g,b=.95,.95,0 | |
1409 | elseif (i==3) then | |
1410 | r,g,b=0,.7,0 | |
1411 | end | |
1412 | CButt.ImageColor3 = c3(r,g,b) | |
1413 | CButt.MouseEnter:connect(function() | |
1414 | for i = 0,1,.1 do | |
1415 | CButt.ImageColor3 = CButt.ImageColor3:lerp(c3(r+up,g+up,b+up),.13) | |
1416 | lrs:wait() | |
1417 | end | |
1418 | end) | |
1419 | CButt.MouseLeave:connect(function() | |
1420 | for i = 0,1,.1 do | |
1421 | CButt.ImageColor3 = CButt.ImageColor3:lerp(c3(r,g,b),.13) | |
1422 | lrs:wait() | |
1423 | end | |
1424 | end) | |
1425 | end) | |
1426 | --if not OCF then OCF=function()print'missing func'end;end | |
1427 | if (i==1) then | |
1428 | r,g,b=.8,.01,.01 | |
1429 | local evv | |
1430 | ev1:disconnect() | |
1431 | ev2:disconnect() | |
1432 | evv=CButt.MouseButton1Click:connect(function() | |
1433 | for Index, Ting in next, OS.Apps.Open do | |
1434 | if Data[1] == Ting[1] then | |
1435 | table.remove(OS.Apps.Open, Index) | |
1436 | end | |
1437 | end | |
1438 | evv:disconnect() | |
1439 | local pos = HolderFrame.Position | |
1440 | HolderFrame.Active=false | |
1441 | HolderFrame:Destroy() | |
1442 | end) | |
1443 | elseif (i==2) then | |
1444 | r,g,b=.95,.95,0 | |
1445 | local evv | |
1446 | evv=CButt.MouseButton1Click:connect(function() | |
1447 | if maximized then | |
1448 | HolderFrame:TweenSizeAndPosition(ums,ump,'Out','Sine',.3,true) | |
1449 | maximized=false | |
1450 | else | |
1451 | HolderFrame:TweenSizeAndPosition(ud(1,2,1,-50),ud(0,-1,0,-1),'Out','Quint',.3,true) | |
1452 | maximized=true | |
1453 | end | |
1454 | end) | |
1455 | elseif (i==3) then | |
1456 | r,g,b=0,.7,0 | |
1457 | local evv | |
1458 | ev1:disconnect() | |
1459 | ev2:disconnect() | |
1460 | for Index, Ting in next, OS.Apps.Open do | |
1461 | if Data[1] == Ting[1] then | |
1462 | table.remove(OS.Apps.Open, Index) | |
1463 | end | |
1464 | end | |
1465 | evv=CButt.MouseButton1Click:connect(function() | |
1466 | evv:disconnect() | |
1467 | HolderFrame:TweenSizeAndPosition(ud(0,50,0,50),Icon.Position,'Out','Quint',.5,true) | |
1468 | wait(.2) | |
1469 | HolderFrame:Destroy() | |
1470 | end) | |
1471 | --Functions:AddToTaskBar(Data[1],Data[2],{ump,ums}) | |
1472 | end | |
1473 | --CButt.MouseButton1Click:connect(OCF) | |
1474 | CButt.Size=ud(0,12,0,12) | |
1475 | CButt.Position=Functions:CenterOffset(CButt,ud(.5,-(15*i),0,0)) | |
1476 | --CButt:TweenPosition(Functions:CenterOffset(CButt,ud(0,0,0,-50),'Out','Back',1,true)) | |
1477 | end | |
1478 | InfoFrame.Parent = HolderFrame | |
1479 | local InfoIcon = Functions:MakeNewUi('ImageButton') | |
1480 | InfoIcon.Parent=InfoFrame | |
1481 | InfoIcon.Image=Functions:Asset(Data[2]) | |
1482 | InfoIcon.Size=ud(0,12,0,12) | |
1483 | InfoIcon.ImageTransparency=0 | |
1484 | InfoIcon.Position=ud(0,2,0,3) | |
1485 | InfoIcon.ZIndex=4 | |
1486 | local InfoText = Functions:MakeNewUi('TextButton') | |
1487 | InfoText.BackgroundTransparency=.5 | |
1488 | InfoText.FontSize='Size12' | |
1489 | InfoText.Parent=InfoFrame | |
1490 | InfoText.TextXAlignment='Left' | |
1491 | InfoText.Text= Data[1]--..' \ '..Data[4]--'*C:\Users\\'..Host.Name..'' | |
1492 | InfoText.Size=ud(1,-40,1,0) | |
1493 | InfoText.Position=ud(0,16,0,0) | |
1494 | InfoText.ZIndex=4 | |
1495 | ||
1496 | local md=false | |
1497 | InfoText.MouseButton1Down:connect(function() | |
1498 | md=true | |
1499 | local origp=HolderFrame.Position | |
1500 | local origs=ud(0,600,0,15) | |
1501 | local origmp=OS.Assets.Mouse.Position | |
1502 | HolderFrame.Size = ud(0,600,0,400) | |
1503 | maximized=false | |
1504 | spawn(function() | |
1505 | repeat wait() until OS.MouseDown == false | |
1506 | md=false | |
1507 | end) | |
1508 | while md do | |
1509 | local mp={OS.Assets.Mouse.Position.X.Scale,OS.Assets.Mouse.Position.X.Offset,OS.Assets.Mouse.Position.Y.Scale,OS.Assets.Mouse.Position.Y.Offset}; | |
1510 | local fs={origs.X.Scale,origs.X.Offset,origs.Y.Scale,origs.Y.Offset}; | |
1511 | local fp={origp.X.Scale,origp.X.Offset,origp.Y.Scale,origp.Y.Offset}; | |
1512 | --local a,b= | |
1513 | local x,y=mp[2]-(fs[2]/2),mp[4]-(fs[4]/2) | |
1514 | --print(x,y) | |
1515 | HolderFrame.Position=ud(0,x,0,y) | |
1516 | lrs:wait() | |
1517 | end | |
1518 | end) | |
1519 | InfoText.MouseButton1Up:connect(function() | |
1520 | --md=false | |
1521 | end) | |
1522 | local ContentFrame = Functions:MakeNewUi('Frame') | |
1523 | ContentFrame.ZIndex=4 | |
1524 | ContentFrame.BackgroundTransparency=.1 | |
1525 | ContentFrame.Size=ud(1,-2,1,-17) | |
1526 | ContentFrame.Position=ud(0,1,0,16) | |
1527 | ContentFrame.Name='CF' | |
1528 | ContentFrame.BackgroundColor3=CurrentPlayerData[4] | |
1529 | ContentFrame.Parent = HolderFrame | |
1530 | Data[5](HolderFrame, TitleFrame, ContentFrame) | |
1531 | end) | |
1532 | end | |
1533 | end | |
1534 | ||
1535 | local AtMainScreen=false | |
1536 | function Functions:MakeHomeScreen() | |
1537 | local Background_id = CurrentPlayerData[5] | |
1538 | local BackgroundImg = Functions:MakeNewUi('ImageLabel') | |
1539 | BackgroundImg.Image=Functions:Asset(Background_id) | |
1540 | BackgroundImg.Name='Background' | |
1541 | BackgroundImg.BackgroundTransparency=1 | |
1542 | BackgroundImg.ImageTransparency = .1 | |
1543 | BackgroundImg.Parent=MainFrame | |
1544 | BackgroundImg.ZIndex=1 | |
1545 | BackgroundImg.Size=ud(1,0,1,0) | |
1546 | OS.Assets.Background = BackgroundImg | |
1547 | for i = 0,1.025,.025 do | |
1548 | MainFrame.BackgroundTransparency=i | |
1549 | lrs:wait() | |
1550 | end | |
1551 | local TskBar = Functions:MakeNewUi('TextLabel') | |
1552 | TskBar.Size = ud(1,0,0,52) | |
1553 | TskBar.Parent = MainFrame | |
1554 | TskBar.BackgroundColor3 = CurrentPlayerData[3] | |
1555 | TskBar.BackgroundTransparency = .5 | |
1556 | TskBar.Position = ud(0,0,1,0) | |
1557 | TskBar.ZIndex = 9 | |
1558 | TskBar:TweenPosition(ud(0,0,1,-52.5),'Out','Quint',1.2,true) | |
1559 | for i = 0,.15,.05 do | |
1560 | local TskBarShader = Functions:MakeNewUi('TextLabel') | |
1561 | TskBarShader.BackgroundTransparency = .8 | |
1562 | TskBarShader.BackgroundColor3 = CurrentPlayerData[4] | |
1563 | TskBarShader.BorderSizePixel = 0 | |
1564 | TskBarShader.Size = ud(1,0,.05,0) | |
1565 | TskBarShader.Position = ud(0,0,-i,0) | |
1566 | delay(.2,function() | |
1567 | TskBarShader:TweenPosition(ud(0,0,i+5,0),'Out','Quint',.5,true) | |
1568 | end) | |
1569 | TskBarShader.ZIndex = 9 | |
1570 | TskBarShader.Name = 'shd'..i | |
1571 | --TskBar:ClearAllChildren() | |
1572 | TskBarShader.Parent = TskBar | |
1573 | end | |
1574 | --//tem\\ | |
1575 | local TimeLabel = Instance.new'TextLabel' | |
1576 | TimeLabel.BackgroundTransparency = 1 | |
1577 | TimeLabel.BackgroundColor3 = c3(255,255,255) | |
1578 | TimeLabel.BorderSizePixel = 0 | |
1579 | TimeLabel.ZIndex = 9 | |
1580 | TimeLabel.TextColor3 = CurrentPlayerData[4] | |
1581 | TimeLabel.Font = OS.Settings.Fonts.Sub_Header | |
1582 | TimeLabel.TextScaled = true | |
1583 | TimeLabel.Name = 'TimeLabel' | |
1584 | TimeLabel.TextWrapped = true | |
1585 | TimeLabel.TextStrokeTransparency = .9 | |
1586 | TimeLabel.Text = '00:00:00 PM' | |
1587 | TimeLabel.Parent = TskBar | |
1588 | TimeLabel.Size = ud(.08,0,.3,0) | |
1589 | TimeLabel.Position = ud(.92,-10,0,6) | |
1590 | ||
1591 | local DateLabel = Instance.new'TextLabel' | |
1592 | DateLabel.BackgroundTransparency = 1 | |
1593 | DateLabel.BackgroundColor3 = c3(255,255,255) | |
1594 | DateLabel.BorderSizePixel = 0 | |
1595 | DateLabel.ZIndex = 9 | |
1596 | DateLabel.TextColor3 = CurrentPlayerData[4] | |
1597 | DateLabel.Font = OS.Settings.Fonts.Sub_Header | |
1598 | DateLabel.TextScaled = true | |
1599 | DateLabel.Name = 'DateLabel' | |
1600 | DateLabel.TextWrapped = true | |
1601 | DateLabel.TextStrokeTransparency = .9 | |
1602 | DateLabel.Text = '00/00/0000' | |
1603 | DateLabel.Parent = TskBar | |
1604 | DateLabel.Size = ud(.08,0,.3,0) | |
1605 | DateLabel.Position = ud(.92,-10,.6,-6) | |
1606 | ||
1607 | local Logo = Functions:MakeNewUi'ImageButton' | |
1608 | Logo.BackgroundTransparency = 1 | |
1609 | Logo.BackgroundColor3 = CurrentPlayerData[3] | |
1610 | Logo.BorderSizePixel = 0 | |
1611 | Logo.ZIndex = 10 | |
1612 | Logo.Image = Functions:Asset(265489553) | |
1613 | --Logo.TextColor3 = CurrentPlayerData[4] | |
1614 | --Logo.Font = 'Cartoon' | |
1615 | --Logo.FontSize='Size36' | |
1616 | Logo.Name = 'Logo' | |
1617 | --Logo.TextStrokeTransparency = .9 | |
1618 | --Logo.Text = '¶Y' | |
1619 | Logo.Parent = TskBar | |
1620 | Logo.Size = ud(0,40,0,50) | |
1621 | Logo.Position = ud(0,1,0,1) | |
1622 | local clrcancel=false | |
1623 | local igc,bgc=CurrentPlayerData[4],CurrentPlayerData[3] | |
1624 | Logo.MouseEnter:connect(function() | |
1625 | local continue=true | |
1626 | clrcancel=true | |
1627 | clrcancel=false | |
1628 | spawn(function() | |
1629 | for i = 0,.57,.07 do | |
1630 | Logo.BackgroundTransparency=1-i | |
1631 | lrs:wait() | |
1632 | end | |
1633 | end) | |
1634 | igc,bgc=CurrentPlayerData[3],CurrentPlayerData[4] | |
1635 | end) | |
1636 | Logo.MouseLeave:connect(function() | |
1637 | local continue=true | |
1638 | clrcancel=true | |
1639 | clrcancel=false | |
1640 | spawn(function() | |
1641 | for i = 0,.57,.07 do | |
1642 | Logo.BackgroundTransparency=.5+i | |
1643 | lrs:wait() | |
1644 | end | |
1645 | end) | |
1646 | igc,bgc=CurrentPlayerData[4],CurrentPlayerData[3] | |
1647 | end) | |
1648 | local StartFrameHolder = Functions:MakeNewUi('Frame') | |
1649 | StartFrameHolder.ZIndex=5 | |
1650 | StartFrameHolder.BackgroundTransparency=1 | |
1651 | StartFrameHolder.Size=ud(0,200,.6,0) | |
1652 | StartFrameHolder.Position = ud(0,0,.4,-52) | |
1653 | StartFrameHolder.Parent = MainFrame | |
1654 | local StartFrame = Functions:MakeNewUi('Frame') | |
1655 | StartFrame.ZIndex=9 | |
1656 | StartFrame.BackgroundTransparency=.5 | |
1657 | StartFrame.Size=ud(1,0,1,0) | |
1658 | StartFrame.BorderSizePixel=2 | |
1659 | StartFrame.Name='SF' | |
1660 | StartFrame.BorderColor3=CurrentPlayerData[4] | |
1661 | StartFrame.Position = ud(0,0,1,0) | |
1662 | StartFrame.Parent = StartFrameHolder | |
1663 | ||
1664 | local TestButton = Functions:MakeNewUi('TextButton') | |
1665 | TestButton.ZIndex=6 | |
1666 | TestButton.BackgroundTransparency=.7 | |
1667 | TestButton.Size=ud(1,-6,0,50) | |
1668 | TestButton.Position = ud(0,3,0,3) | |
1669 | TestButton.Text='TEST NOTIFICATIONS' | |
1670 | TestButton.Parent = StartFrame | |
1671 | TestButton.MouseButton1Click:connect(function() | |
1672 | Functions:Notification('Just testing the dank re-alignment and stuff, kek.') | |
1673 | end) | |
1674 | ||
1675 | local sfcc,detection=false,false | |
1676 | StartFrame.MouseEnter:connect(function() | |
1677 | detection=false | |
1678 | sfcc=false | |
1679 | end) | |
1680 | StartFrame.MouseLeave:connect(function() | |
1681 | detection=true | |
1682 | sfcc=true | |
1683 | end) | |
1684 | ||
1685 | local Extended=false | |
1686 | local function Open(trans) | |
1687 | StartFrame:TweenPosition(ud(0,0,0,0),'Out','Sine',.5,true) | |
1688 | for i = 0,1.05,.05 do | |
1689 | for a,b in next, StartFrame:children() do | |
1690 | if b.Name ~= 'SF' then | |
1691 | pcall(function() | |
1692 | b.TextTransparency=b.TextTransparency-.05 | |
1693 | end) | |
1694 | pcall(function() | |
1695 | b.BackgroundTransparency=bBackgroundTransparency-.05 | |
1696 | end) | |
1697 | pcall(function() | |
1698 | b.ImageTransparency=b.ImageTransparency-.05 | |
1699 | end) | |
1700 | end | |
1701 | end | |
1702 | StartFrame.BackgroundTransparency=1-.05 | |
1703 | lrs:wait() | |
1704 | end | |
1705 | StartFrame.BackgroundTransparency=trans | |
1706 | Extended=true | |
1707 | end | |
1708 | local function Close(trans) | |
1709 | StartFrame:TweenPosition(ud(0,0,1,0),'Out','Sine',.5,true) | |
1710 | for i = 0,1,.05 do | |
1711 | for a,b in next, StartFrame:children() do | |
1712 | if b.Name ~= 'SF' then | |
1713 | pcall(function() | |
1714 | b.TextTransparency=b.TextTransparency+.05 | |
1715 | end) | |
1716 | pcall(function() | |
1717 | b.BackgroundTransparency=bBackgroundTransparency+.05 | |
1718 | end) | |
1719 | pcall(function() | |
1720 | b.ImageTransparency=b.ImageTransparency+.05 | |
1721 | end) | |
1722 | end | |
1723 | end | |
1724 | StartFrame.BackgroundTransparency=trans+.05 | |
1725 | lrs:wait() | |
1726 | end | |
1727 | StartFrame.BackgroundTransparency=1 | |
1728 | Extended=false | |
1729 | end | |
1730 | local trans=.45 | |
1731 | PlayerMouse.Button1Down:connect(function() | |
1732 | if sfcc and Extended then | |
1733 | detection=false | |
1734 | Close(trans) | |
1735 | end | |
1736 | end) | |
1737 | PlayerMouse.Button2Down:connect(function() | |
1738 | if sfcc and Extended then | |
1739 | detection=false | |
1740 | Close(trans) | |
1741 | end | |
1742 | end) | |
1743 | Logo.MouseButton1Down:connect(function(x,y) | |
1744 | if Extended then | |
1745 | Close(trans) | |
1746 | else | |
1747 | Open(trans) | |
1748 | end | |
1749 | end) | |
1750 | local Months = { | |
1751 | "January", "Febreuary", "March", "April", "May", "June", | |
1752 | "July", "August", "September", "October", "November", "December" | |
1753 | } | |
1754 | local MonthDays = { | |
1755 | 31, 28, 31, 30, 31, 30, | |
1756 | 31, 31, 30, 31, 30, 31 | |
1757 | } | |
1758 | ||
1759 | function getDay(Date, year) | |
1760 | local month, date = Date:match("(%a+)%s*(%d+)") | |
1761 | local DAYS = tonumber(date) | |
1762 | local leaps = math.floor( (year-2011)/4 - .25 ) + 1 | |
1763 | local Days = {"Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"} | |
1764 | for _, v in ipairs(MonthDays) do | |
1765 | if Months[_] == month then break end | |
1766 | DAYS = DAYS + v | |
1767 | end | |
1768 | DAYS = math.floor( DAYS + (year-2017) * 365 ) + leaps | |
1769 | return Days[ (DAYS%7 == 0 and 7 or DAYS%7) ] | |
1770 | end | |
1771 | ||
1772 | function getMonthAndDate(days, year) | |
1773 | local leap = year%4 == 0 and 1 or 0 | |
1774 | local month; | |
1775 | for _, v in ipairs(MonthDays) do | |
1776 | if (days-v) < 1 then | |
1777 | month = Months[_] | |
1778 | break | |
1779 | end | |
1780 | days = days - v | |
1781 | end | |
1782 | return month, days | |
1783 | end | |
1784 | local LTime,LDate = '','' | |
1785 | local M = '' | |
1786 | Time = function() | |
1787 | local secondsInDay = 60*60*24 | |
1788 | local time = tick() | |
1789 | local year = math.floor(1970 + time/(365.25*86400)) | |
1790 | local days = math.ceil(((time % (86400*365.25)) )/86400 + 0.25) | |
1791 | local month, date = getMonthAndDate(days, year) | |
1792 | local day = getDay(month..date, year) | |
1793 | local tick = math.fmod(tick(),secondsInDay) | |
1794 | local hour = math.floor(tick/3600) + 5 + -5 | |
1795 | local minute = math.floor(tick/60 - 60*hour) | |
1796 | local seconds = math.floor(math.fmod(tick,60)) | |
1797 | if (hour > 12) then | |
1798 | M = ' PM' hour = hour - 12 | |
1799 | else | |
1800 | M = ' AM' | |
1801 | end | |
1802 | if hour == 0 then | |
1803 | hour = 12 | |
1804 | end | |
1805 | if hour == 24 then | |
1806 | hour = 1 | |
1807 | end | |
1808 | LTime = string.format("%2.0f:%02.0f",hour,minute) | |
1809 | local MonthNums = { | |
1810 | ["January"]=1, ["February"]=2, ["March"]=3, ["April"]=4, ["May"]=5, ["June"]=6, | |
1811 | ["July"]=7, ["August"]=8, ["September"]=9, ["October"]=10, ["November"]=11, ["December"]=12 | |
1812 | } | |
1813 | month=MonthNums[month] | |
1814 | LDate = month..'/'..(days-1)..'/'..year | |
1815 | TimeLabel.Text = LTime..M | |
1816 | DateLabel.Text = LDate | |
1817 | Logo.ImageColor3 = Logo.ImageColor3:lerp(igc,.2) | |
1818 | Logo.BackgroundColor3 = Logo.BackgroundColor3:lerp(bgc,.2) | |
1819 | end | |
1820 | game:service'RunService'.Heartbeat:connect(Time) | |
1821 | AtMainScreen=true | |
1822 | local txt='' | |
1823 | if Official then | |
1824 | txt='Welcome back, '..CurrentPlayerData[1]..', your last session\'s saved data has been loaded' | |
1825 | else | |
1826 | txt='Hello, '..CurrentPlayerData[1]..'. Your data will be saved at the end of this session' | |
1827 | end | |
1828 | delay(math.random(1,4),function() | |
1829 | delay(.3,function() | |
1830 | Functions:PlayerImgNotification('SavageMunkey', 'Creator & Founder of ¶YaviOS - SavageMunkey') | |
1831 | end) | |
1832 | local fr,tl = Functions:Notification(txt,6) | |
1833 | end) | |
1834 | Functions:GeneratePrograms({25,20}) | |
1835 | AtMainScreen=true | |
1836 | return warn'Homescreen Loaded' | |
1837 | end | |
1838 | ||
1839 | function Functions:PlayerImgNotification(Plr, Type) | |
1840 | if not AtMainScreen then return end | |
1841 | local sz=50 | |
1842 | if Type=='join' then | |
1843 | local fr,tl=Functions:Notification('New Player has joined, '..tostring(Plr)..'.', 4) | |
1844 | tl.Size=ud(1,-(sz+5),1,0) | |
1845 | tl.Position=ud(0,sz+5,0,0) | |
1846 | local UserImage = Functions:MakeNewUi('ImageLabel') | |
1847 | UserImage.Image=Functions:PlayerImage(tostring(Plr)) | |
1848 | UserImage.Parent=fr | |
1849 | UserImage.Size=ud(0,sz,1,0) | |
1850 | UserImage.ImageTransparency=0 | |
1851 | UserImage.Position=ud(0,4,0,0) | |
1852 | UserImage.ZIndex=8 | |
1853 | wait(4*1.5) | |
1854 | for i = 0,1.05,.05 do UserImage.ImageTransparency=i lrs:wait() end | |
1855 | elseif Type=='rmv' then | |
1856 | local fr,tl=Functions:Notification('Player has left, '..tostring(Plr)..'.', 4) | |
1857 | tl.Size=ud(1,-(sz+5),1,0) | |
1858 | tl.Position=ud(0,sz+5,0,0) | |
1859 | local UserImage = Functions:MakeNewUi('ImageLabel') | |
1860 | UserImage.Image=Functions:PlayerImage(tostring(Plr)) | |
1861 | UserImage.Parent=fr | |
1862 | UserImage.Size=ud(0,sz,1,0) | |
1863 | UserImage.ImageTransparency=0 | |
1864 | UserImage.Position=ud(0,4,0,0) | |
1865 | UserImage.ZIndex=8 | |
1866 | wait(4*1.5) | |
1867 | for i = 0,1.05,.05 do UserImage.ImageTransparency=i lrs:wait() end | |
1868 | else | |
1869 | local fr,tl=Functions:Notification(Type, 4) | |
1870 | tl.Size=ud(1,-(sz+5),1,0) | |
1871 | tl.Position=ud(0,sz+5,0,0) | |
1872 | local UserImage = Functions:MakeNewUi('ImageLabel') | |
1873 | UserImage.Image=Functions:PlayerImage(tostring(Plr)) | |
1874 | UserImage.Parent=fr | |
1875 | UserImage.Size=ud(0,sz,1,0) | |
1876 | UserImage.ImageTransparency=0 | |
1877 | UserImage.Position=ud(0,4,0,0) | |
1878 | UserImage.ZIndex=8 | |
1879 | wait(4*1.5) | |
1880 | for i = 0,1.05,.05 do UserImage.ImageTransparency=i lrs:wait() end | |
1881 | end | |
1882 | end | |
1883 | ||
1884 | local Notifications={}; | |
1885 | local Notifs=0 | |
1886 | ||
1887 | function Functions:AdjustNotifPositions() | |
1888 | local upv=0 | |
1889 | for i, data in next, Notifications do | |
1890 | --warn('('..tostring(ud(1,-200,.8,-(60*upv)))..')',#Notifications) | |
1891 | pcall(function() | |
1892 | data[1]:TweenPosition(ud(1,-200,.8,-(60*upv)),'Out','Back',.5,true) | |
1893 | end) | |
1894 | upv=upv+1 | |
1895 | wait(.1) | |
1896 | end | |
1897 | end | |
1898 | ||
1899 | function Functions:Notification(Text, ExitDelay) | |
1900 | if not ExitDelay then ExitDelay=4 end | |
1901 | if not AtMainScreen then return end | |
1902 | local v=false | |
1903 | local Frame = Functions:MakeNewUi('Frame') | |
1904 | Frame.ZIndex=8 | |
1905 | Frame.BackgroundTransparency=.25 | |
1906 | Frame.Size=ud(0,200,0,55) | |
1907 | Frame.BackgroundColor3=CurrentPlayerData[4] | |
1908 | Frame.Position = ud(1,0,.8,-(60*Notifs)) | |
1909 | Frame.Parent=MainFrame | |
1910 | Frame:TweenPosition(ud(1,-200,.8,-(60*Notifs)),'Out','Sine',2,true) | |
1911 | table.insert(Notifications,{Frame,ud(1,-200,.8,-(60*Notifs))}) | |
1912 | local Shader1 = Functions:MakeNewUi('Frame') | |
1913 | Shader1.ZIndex=9 | |
1914 | Shader1.BackgroundTransparency=.9 | |
1915 | Shader1.Size=ud(0,2,1,0) | |
1916 | Shader1.BackgroundColor3=CurrentPlayerData[4] | |
1917 | Shader1.Position = ud(0,-2,0,0) | |
1918 | Shader1.Parent=Frame | |
1919 | local Shader2 = Functions:MakeNewUi('Frame') | |
1920 | Shader2.ZIndex=9 | |
1921 | Shader2.BackgroundTransparency=.8 | |
1922 | Shader2.Size=ud(0,1,1,0) | |
1923 | Shader2.BackgroundColor3=CurrentPlayerData[4] | |
1924 | Shader2.Position = ud(0,-1,0,0) | |
1925 | Shader2.Parent=Frame | |
1926 | spawn(function() | |
1927 | Shader1:TweenPosition(ud(0,0,0,0),'Out','Linear',.4,true) | |
1928 | wait(.1) | |
1929 | Shader2:TweenPosition(ud(0,1,0,0),'Out','Linear',.4,true) | |
1930 | end) | |
1931 | local TLabel = Functions:MakeNewUi('TextButton') | |
1932 | TLabel.TextColor3=CurrentPlayerData[4] | |
1933 | TLabel.Position=ud(0,4,0,0) | |
1934 | TLabel.ZIndex=9 | |
1935 | TLabel.Active=true | |
1936 | TLabel.BackgroundTransparency=.98 | |
1937 | TLabel.TextWrapped=true | |
1938 | TLabel.Size=ud(1,-4,1,0) | |
1939 | TLabel.TextXAlignment='Left' | |
1940 | --TLabel.TextYAlignment='Top' | |
1941 | TLabel.Font=OS.Settings.Fonts.Sub_Header | |
1942 | TLabel.FontSize='Size12' | |
1943 | TLabel.TextStrokeColor3=CurrentPlayerData[4] | |
1944 | TLabel.TextStrokeTransparency=1 | |
1945 | TLabel.TextTransparency=1 | |
1946 | TLabel.Parent=Frame | |
1947 | Notifs=Notifs+1 | |
1948 | local tic = Functions:Sound(230336790,false) | |
1949 | tic:Play() | |
1950 | for i = 0,1.02,.02 do | |
1951 | Frame.BackgroundColor3=Frame.BackgroundColor3:lerp(CurrentPlayerData[3],.2) | |
1952 | Frame.BackgroundTransparency=1.5-i | |
1953 | TLabel.TextStrokeTransparency=1.9-i | |
1954 | TLabel.TextTransparency=1-i | |
1955 | lrs:wait() | |
1956 | end | |
1957 | local cc=true | |
1958 | local function Close() | |
1959 | if (not cc) then return end | |
1960 | --print'3' | |
1961 | Frame:TweenPosition(ud(1,0,.8,Frame.Position.Y.Offset),'Out','Sine',3,true) | |
1962 | for i = 0,1.015,.02 do | |
1963 | --Frame.BackgroundColor3=Frame.BackgroundColor3:lerp(c3(0,0,0),.2) | |
1964 | Frame.BackgroundTransparency=.5+i | |
1965 | Shader1.BackgroundTransparency=.9+i | |
1966 | Shader2.BackgroundTransparency=.8+i | |
1967 | TLabel.TextStrokeTransparency=.9+i | |
1968 | TLabel.TextTransparency=i | |
1969 | lrs:wait() | |
1970 | end | |
1971 | val=true | |
1972 | Frame:Destroy() | |
1973 | for i,v in next, Notifications do | |
1974 | if v[1]==Frame then | |
1975 | table.remove(Notifications,i) | |
1976 | end | |
1977 | end | |
1978 | Notifs=Notifs-1 | |
1979 | Functions:AdjustNotifPositions() | |
1980 | end | |
1981 | local ev | |
1982 | ev=TLabel.MouseButton1Click:connect(function() | |
1983 | --print'k' | |
1984 | spawn(Close) | |
1985 | wait() | |
1986 | cc=false | |
1987 | ev:disconnect() | |
1988 | end) | |
1989 | spawn(function() | |
1990 | if cc then | |
1991 | Effects:Type(TLabel, Text, 'In',.01) | |
1992 | wait(ExitDelay*1.2) | |
1993 | --print'k2' | |
1994 | spawn(Close) | |
1995 | wait() | |
1996 | cc=false | |
1997 | ev:disconnect() | |
1998 | end | |
1999 | end) | |
2000 | return Frame, TLabel | |
2001 | end | |
2002 | ||
2003 | function Functions:CreateLogin() | |
2004 | local BFrame = Functions:MakeNewUi('Frame') | |
2005 | BFrame.ZIndex=4 | |
2006 | BFrame.BackgroundTransparency=1 | |
2007 | BFrame.Size=ud(1,0,1,0) | |
2008 | BFrame.Position = ud(0,0,0,0) | |
2009 | BFrame.Parent=MainFrame | |
2010 | local TransFrame = Functions:MakeNewUi('Frame') | |
2011 | TransFrame.ZIndex=8 | |
2012 | TransFrame.BackgroundTransparency=1 | |
2013 | TransFrame.Parent=MainFrame | |
2014 | local Start = Functions:MakeNewUi('TextButton') | |
2015 | local txt='Welcome to SaviOS, '..Host.Name..'.' | |
2016 | Start.Text=txt | |
2017 | Start.Font=OS.Settings.Fonts.Header | |
2018 | Start.TextColor3=CurrentPlayerData[4] | |
2019 | Start.Position=ud(0,0,0,-18) | |
2020 | Start.BackgroundTransparency=1 | |
2021 | Start.TextTransparency=1 | |
2022 | Start.Parent=BFrame | |
2023 | local Sub = Functions:MakeNewUi('TextLabel') | |
2024 | Sub.Parent=BFrame | |
2025 | Sub.TextColor3=CurrentPlayerData[4] | |
2026 | Sub.Text='Loading Decal and Sound Assets.' | |
2027 | Sub.Position=ud(0,0,0,25-18) | |
2028 | Sub.BackgroundTransparency=1 | |
2029 | Sub.TextTransparency=1 | |
2030 | Sub.ZIndex=6 | |
2031 | local Circ = Functions:MakeNewUi('ImageLabel') | |
2032 | Circ.Image=Functions:Asset(502107146) | |
2033 | Circ.Parent=BFrame | |
2034 | Circ.ImageTransparency=0 | |
2035 | Circ.ImageColor3 = CurrentPlayerData[3] | |
2036 | Circ.Size=ud(0,350,0,400) | |
2037 | Circ.Position=Functions:CenterOffset(Circ,ud(0,0,0,0)) | |
2038 | Circ.ZIndex=5 | |
2039 | local con=false | |
2040 | spawn(function() | |
2041 | Effects:Type(Start, txt, 'In',.06) | |
2042 | local nspd=.5 | |
2043 | repeat wait(nspd) | |
2044 | --Start.Text=txt | |
2045 | Circ:TweenSizeAndPosition(ud(0,450,0,500),ud(.5,-450/2,.5,-250),'In','Back',nspd,true) | |
2046 | wait(nspd) | |
2047 | Circ:TweenSizeAndPosition(ud(0,350,0,400),ud(.5,-350/2,.5,-200),'Out','Quint',nspd,true) | |
2048 | --Start.Text=txt..'|' | |
2049 | until con | |
2050 | end) | |
2051 | for i = 0,1.025,.025 do | |
2052 | Start.TextTransparency = 1-i | |
2053 | MainFrame.BackgroundTransparency = 1-i | |
2054 | lrs:wait() | |
2055 | end | |
2056 | local function finish_Load() | |
2057 | Particles=false | |
2058 | Effects:Type(Start, txt, 'Out',.02) | |
2059 | Start.Text='' | |
2060 | Circ:TweenSizeAndPosition(ud(0,15,0,20),ud(.5,-15/2,.5,-10),'In','Quint',2,true) | |
2061 | wait(2) | |
2062 | Circ:TweenSizeAndPosition(ud(0,950,0,1000),ud(.5,-950/2,.5,-500),'In','Back',1,true) | |
2063 | wait(.2) | |
2064 | for i = 0,1.025,.025 do | |
2065 | Sub.TextTransparency = i | |
2066 | Circ.ImageTransparency=i | |
2067 | lrs:wait() | |
2068 | end | |
2069 | Circ:Destroy() | |
2070 | BFrame.Size = ud(0,400,0,210) | |
2071 | BFrame.Position = Functions:Center(BFrame) | |
2072 | spawn(function() | |
2073 | for i = 0,20,.1 do | |
2074 | MainFrame.BackgroundColor3 = MainFrame.BackgroundColor3:lerp(CurrentPlayerData[3],.1) | |
2075 | lrs:wait() | |
2076 | end | |
2077 | end) | |
2078 | Sub.Text='Assets['..(#OS.Backgrounds+#OS.Sounds)..'] Loaded.' | |
2079 | delay(.5,function() | |
2080 | txt='Click here to begin' | |
2081 | Effects:Type(Start, txt, 'In',.05) | |
2082 | delay(.6,function() | |
2083 | Start.Text=txt | |
2084 | end) | |
2085 | end) | |
2086 | for i = 0,1.025,.025 do | |
2087 | Sub.TextTransparency = 1-i | |
2088 | lrs:wait() | |
2089 | end | |
2090 | end | |
2091 | local con2=false | |
2092 | delay(1,function() | |
2093 | for i = 0,1.025,.025 do | |
2094 | Sub.TextTransparency = 1-i | |
2095 | lrs:wait() | |
2096 | end | |
2097 | delay(2,function() | |
2098 | local tbl1={}; | |
2099 | local tbl2={OS.Backgrounds,OS.Sounds,OS.DecalAssets} | |
2100 | for _,__ in next, tbl2 do | |
2101 | for i, Id in next, __ do | |
2102 | table.insert(tbl1, Id) | |
2103 | end | |
2104 | end | |
2105 | for i,v in next, tbl1 do lrs:wait() end | |
2106 | con=true | |
2107 | finish_Load() | |
2108 | con2=true | |
2109 | end) | |
2110 | end) | |
2111 | repeat lrs:wait() until con2 | |
2112 | Start.TextTransparency = 0 | |
2113 | --MainFrame.Transparency = 0 | |
2114 | local LoginScreen | |
2115 | local sclick | |
2116 | sclick=Start.MouseButton1Down:connect(function() | |
2117 | Sub:TweenPosition(ud(0,0,1,50),'In','Quint',1,true) | |
2118 | delay(1, function() | |
2119 | LoginScreen(false) | |
2120 | end) | |
2121 | sclick:disconnect() | |
2122 | end) | |
2123 | function LoginScreen(NewFrame) | |
2124 | OS['Login']=LoginScreen | |
2125 | if NewFrame then | |
2126 | BFrame = Functions:MakeNewUi('Frame') | |
2127 | BFrame.ZIndex=4 | |
2128 | BFrame.BackgroundTransparency=1 | |
2129 | BFrame.Size = ud(0,400,0,210) | |
2130 | BFrame.Position = Functions:Center(BFrame) | |
2131 | BFrame.Parent=MainFrame | |
2132 | end | |
2133 | pcall(function() | |
2134 | Sub:Destroy() | |
2135 | for i = 0,1.025,.025 do | |
2136 | Start.TextTransparency = i | |
2137 | lrs:wait() | |
2138 | end | |
2139 | Start.Parent=nil | |
2140 | end) | |
2141 | local UserImage = Functions:MakeNewUi('ImageLabel') | |
2142 | UserImage.Image=Functions:PlayerImage(Host) | |
2143 | UserImage.Parent=BFrame | |
2144 | UserImage.Size=ud(0,100,0,100) | |
2145 | UserImage.ImageTransparency=1 | |
2146 | UserImage.Position=Functions:CenterOffset(UserImage,ud(0,0,-1,0)) | |
2147 | UserImage:TweenPosition(Functions:CenterOffset(UserImage,ud(0,0,0,-50),'Out','Back',1,true)) | |
2148 | UserImage.ZIndex=8 | |
2149 | local UserImgFrame = Functions:MakeNewUi('ImageLabel') | |
2150 | UserImgFrame.Image=Functions:Asset(502107146) | |
2151 | UserImgFrame.Parent=BFrame | |
2152 | UserImgFrame.ImageTransparency=0 | |
2153 | --UserImgFrame.ImageColor3 = c3(Monitor.Color.r+.2,Monitor.Color.g+.2,Monitor.Color.b+.2) | |
2154 | UserImgFrame.Size=ud(0,100,0,100) | |
2155 | UserImgFrame.Position=Functions:CenterOffset(UserImgFrame,ud(0,0,-1,0)) | |
2156 | UserImgFrame:TweenPosition(Functions:CenterOffset(UserImgFrame,ud(0,0,0,-50),'Out','Back',1,true)) | |
2157 | local Username = Functions:MakeNewUi('TextLabel') | |
2158 | Username.Text = Host.Name | |
2159 | Username.Parent = BFrame | |
2160 | Username.TextTransparency=.9 | |
2161 | Username.Position=ud(0,0,1,0) | |
2162 | Username.ZIndex=9 | |
2163 | Username:TweenPosition(ud(0,0,0,15),'Out','Quint',1,true) | |
2164 | local Password = Functions:MakeNewUi('TextButton') | |
2165 | Password.TextTransparency=1 | |
2166 | Password.Parent=BFrame | |
2167 | Password.Position=ud(0,0,1,0) | |
2168 | Password.Font=OS.Settings.Fonts.Sub_Header | |
2169 | Password.TextStrokeColor3 = Password.TextColor3 | |
2170 | Password.MouseEnter:connect(function() | |
2171 | Password.TextStrokeTransparency=.9 | |
2172 | end) | |
2173 | Password.MouseLeave:connect(function() | |
2174 | Password.TextStrokeTransparency=1 | |
2175 | end) | |
2176 | local canclick=false | |
2177 | Password.MouseButton1Down:connect(function(x,y) | |
2178 | if not canclick then | |
2179 | return | |
2180 | end | |
2181 | canclick=false | |
2182 | --Effects:Particles(x,y) | |
2183 | local val = Functions:LoginScreenGui(ud(0,400,0,28),{loop=true,ui=Password},true) | |
2184 | print('dun',val) | |
2185 | local ss | |
2186 | ss=function(pp) | |
2187 | num=0 | |
2188 | for i,v in next,pp:children() do | |
2189 | num=num+1 | |
2190 | pcall(function() | |
2191 | spawn(function() | |
2192 | for i = 0,1.025,.025 do | |
2193 | if v:IsA'TextButton' or v:IsA'TextBox' or v:IsA'TextLabel' then | |
2194 | v.TextTransparency = i | |
2195 | lrs:wait() | |
2196 | end | |
2197 | end | |
2198 | end) | |
2199 | end) | |
2200 | pcall(function() | |
2201 | spawn(function() | |
2202 | for i = 0,1.025,.025 do | |
2203 | if v:IsA'ImageLabel' then | |
2204 | v.ImageTransparency = i | |
2205 | lrs:wait() | |
2206 | end | |
2207 | end | |
2208 | end) | |
2209 | end) | |
2210 | pcall(function() | |
2211 | v:TweenPosition(ud(2,v.Position.X.Offset,v.Position.Y.Scale,v.Position.Y.Offset),'In','Sine',1,true) | |
2212 | end) | |
2213 | wait(.1) | |
2214 | ss(v) | |
2215 | end | |
2216 | return num | |
2217 | end | |
2218 | ss(BFrame) | |
2219 | wait((num+1.5)-(.4*num)) | |
2220 | BFrame:Destroy() | |
2221 | Functions:MakeHomeScreen() | |
2222 | return {} | |
2223 | --canclick=true | |
2224 | --Gui:Destroy() | |
2225 | end) | |
2226 | delay(.1,function() | |
2227 | Password:TweenPosition(ud(0,0,0,45),'Out','Quint',1,true) | |
2228 | end) | |
2229 | spawn(function() | |
2230 | Effects:Type(Password, 'Enter your Password', 'In',.03) | |
2231 | canclick=true | |
2232 | end) | |
2233 | wait(.3) | |
2234 | spawn(function() | |
2235 | Effects:Underline(Username, 20, 70, 2, CurrentPlayerData[4], true) | |
2236 | end) | |
2237 | for i = 0,1.025,.01 do | |
2238 | --UserName.TextTransparency = 1-i | |
2239 | Password.TextTransparency = 1-i | |
2240 | Username.TextTransparency = 1-i | |
2241 | UserImage.ImageTransparency = 1-i | |
2242 | lrs:wait() | |
2243 | end | |
2244 | Functions:IfRegistered(Host.Name, function(bool) | |
2245 | if bool==true then | |
2246 | for i = 0,20 do | |
2247 | UserImgFrame.ImageColor3 = UserImgFrame.ImageColor3:lerp(c3(.25,1,.25),.1) | |
2248 | lrs:wait() | |
2249 | end | |
2250 | elseif bool and not Official then | |
2251 | for i = 0,20 do | |
2252 | UserImgFrame.ImageColor3 = UserImgFrame.ImageColor3:lerp(c3(1,.25,.25),.1) | |
2253 | lrs:wait() | |
2254 | end | |
2255 | else | |
2256 | for i = 0,20 do | |
2257 | UserImgFrame.ImageColor3 = UserImgFrame.ImageColor3:lerp(c3(.4,0,0),.1) | |
2258 | lrs:wait() | |
2259 | end | |
2260 | end | |
2261 | end) | |
2262 | end | |
2263 | end | |
2264 | ||
2265 | function Functions:Lerp(Speed) | |
2266 | if Monitor and Monitor.Parent~=nil then | |
2267 | ypcall(function() | |
2268 | Monitor.CFrame = Monitor.CFrame:lerp( | |
2269 | Host.Character.HumanoidRootPart.CFrame * | |
2270 | CFrame.new(0,5.5,-6.5) * | |
2271 | CFrame.Angles(-math.rad(12),0,0) | |
2272 | , Speed) | |
2273 | end) | |
2274 | end | |
2275 | end | |
2276 | ||
2277 | function Functions:Boot() | |
2278 | script:ClearAllChildren() | |
2279 | Functions:MakeMonitor() | |
2280 | G = Instance.new('SurfaceGui', Monitor) | |
2281 | G.Adornee = Monitor | |
2282 | G.Face = Enum.NormalId.Back | |
2283 | MainFrame = Functions:MakeNewUi('Frame') | |
2284 | MainFrame.ZIndex=1 | |
2285 | MainFrame.BackgroundTransparency=.3 | |
2286 | MainFrame.BackgroundColor3 = CurrentPlayerData[3] | |
2287 | MainFrame.Parent=G | |
2288 | spawn(function() | |
2289 | --wait(2) | |
2290 | for i = 0,20,.1 do | |
2291 | MainFrame.BackgroundColor3 = MainFrame.BackgroundColor3:lerp(CurrentPlayerData[4],.1) | |
2292 | lrs:wait() | |
2293 | end | |
2294 | end) | |
2295 | local MouseFrame = Instance.new('TextLabel', MainFrame) | |
2296 | MouseFrame.Size = ud(0,5,0,5) | |
2297 | MouseFrame.BackgroundTransparency = 1 | |
2298 | MouseFrame.Text = '' | |
2299 | MouseFrame.ZIndex = 9 | |
2300 | MouseFrame.BackgroundColor3=c3(-1,-1,-1) | |
2301 | MainFrame.MouseMoved:connect(function(x,y) | |
2302 | if MouseFrame.Parent ~= nil then | |
2303 | MouseFrame.Position = ud(0,x+3,0,y+6) | |
2304 | end | |
2305 | end) | |
2306 | --200182847 | |
2307 | local MouseInner = Instance.new('ImageLabel', MouseFrame) | |
2308 | OS.Assets.Mouse=MouseFrame | |
2309 | MouseInner.Size = ud(0,5,0,5) | |
2310 | MouseInner.Position = ud(0,-5,0,-7) | |
2311 | MouseInner.ImageColor3 = CurrentPlayerData[3] | |
2312 | MouseInner.Image = Functions:Asset(284205403) | |
2313 | MouseInner.Name = 'AFriendlyMouse1' | |
2314 | MouseInner.BackgroundTransparency = 1 | |
2315 | MouseInner.ZIndex = 10 | |
2316 | local MouseOuter = Instance.new('ImageLabel', MouseFrame) | |
2317 | MouseOuter.Size = ud(0,7,0,7) | |
2318 | MouseOuter.Position = ud(0,-6,0,-8) | |
2319 | MouseOuter.ImageColor3 = CurrentPlayerData[4] | |
2320 | MouseOuter.Image = Functions:Asset(284205403) | |
2321 | MouseOuter.Name = 'AFriendlyMouse2' | |
2322 | MouseOuter.BackgroundTransparency = 1 | |
2323 | MouseOuter.ZIndex = 9 | |
2324 | local sx,sy=90,100 | |
2325 | local mouseactive=true | |
2326 | PlayerMouse.Button1Down:connect(function() | |
2327 | OS.MouseDown = true | |
2328 | if not mouseactive then return end | |
2329 | local mus=Functions:Sound(341225236) | |
2330 | mus.Pitch=3 | |
2331 | mus:Play() | |
2332 | end) | |
2333 | PlayerMouse.Button1Up:connect(function() | |
2334 | OS.MouseDown = false | |
2335 | if not mouseactive then return end | |
2336 | local mds=Functions:Sound(341225236) | |
2337 | mds.Pitch=2.5 | |
2338 | mds:Play() | |
2339 | local RelativeUi=MouseFrame | |
2340 | local x,y=RelativeUi.Position.X.Offset,RelativeUi.Position.Y.Offset | |
2341 | local Circ = Functions:MakeNewUi('ImageLabel') | |
2342 | Circ.Image=Functions:Asset(284205403) | |
2343 | Circ.Parent=MainFrame | |
2344 | Circ.ImageTransparency=0 | |
2345 | Circ.ImageColor3 = CurrentPlayerData[4] | |
2346 | Circ.Size=ud(0,5,0,5) | |
2347 | local backx,backy=5,6 | |
2348 | Circ.Position=ud(0,x-backx,0,y-backy) | |
2349 | Circ.ZIndex=10 | |
2350 | spawn(function() | |
2351 | Circ:TweenSizeAndPosition(ud(0,sx,0,sy),ud(0,(x-backx)-(sx/2),0,(y-backy)-(sy/2)),'Out','Sine',1,true) | |
2352 | for i = 0,1.05,.05 do | |
2353 | Circ.ImageTransparency=i | |
2354 | lrs:wait() | |
2355 | end | |
2356 | Circ:Destroy() | |
2357 | end) | |
2358 | end) | |
2359 | MainFrame.MouseEnter:connect(function(x,y) | |
2360 | mouseactive=true | |
2361 | game:service'UserInputService'.MouseIconEnabled=false | |
2362 | OS.Functions:HideChar() | |
2363 | end) | |
2364 | MainFrame.MouseLeave:connect(function(x,y) | |
2365 | mouseactive=false | |
2366 | game:service'UserInputService'.MouseIconEnabled=true | |
2367 | OS.Functions:ShowChar() | |
2368 | end) | |
2369 | --Functions:CreateLogin() | |
2370 | Functions:MakeHomeScreen() | |
2371 | end | |
2372 | ||
2373 | lrs:connect(function() | |
2374 | Functions:Lerp(.2) | |
2375 | end) | |
2376 | ||
2377 | Character.Humanoid.Died:connect(function() | |
2378 | Monitor.Parent:Destroy() | |
2379 | game:service'UserInputService'.MouseIconEnabled=true | |
2380 | script:Destroy() | |
2381 | end) | |
2382 | ||
2383 | Host.Chatted:connect(function(msg) | |
2384 | if msg=='g/r' then | |
2385 | Monitor:Destroy() | |
2386 | game:service'UserInputService'.MouseIconEnabled=true | |
2387 | script:Destroy() | |
2388 | end | |
2389 | end) | |
2390 | ||
2391 | local plrz=game:service'Players' | |
2392 | ||
2393 | plrz.PlayerAdded:connect(function(Plr) | |
2394 | Functions:PlayerImgNotification(Plr, 'join') | |
2395 | end) | |
2396 | ||
2397 | plrz.PlayerRemoving:connect(function(Plr) | |
2398 | Functions:PlayerImgNotification(Plr, 'rmv') | |
2399 | end) | |
2400 | ||
2401 | Functions:Boot() | |
2402 | ||
2403 | Host.Chatted:connect(function(msg) | |
2404 | if msg:lower()=='!reboot' then | |
2405 | Functions:Boot() | |
2406 | elseif msg:lower():sub(0,#'!background') == '!background' then | |
2407 | local id = msg:lower():sub(#'!background'+2) | |
2408 | OS.UIs['Background'][1].Image=Functions:Asset(tonumber(id)) | |
2409 | end | |
2410 | end) |