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