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