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