Advertisement
AvidMalignus

Loading Script.lua

May 14th, 2015
608
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 16.56 KB | None | 0 0
  1. -- Creates the generic "ROBLOX" loading screen on startup
  2. -- Written by ArceusInator & Ben Tkacheff, 2014
  3. --
  4.  
  5. -- Constants
  6. local PLACEID = Game.PlaceId
  7.  
  8. local MPS = Game:GetService 'MarketplaceService'
  9. local CP = Game:GetService 'ContentProvider'
  10.  
  11. local startTime = tick()
  12.  
  13. local COLORS = {
  14.     BLACK = Color3.new(0, 0, 0),
  15.     WHITE = Color3.new(1, 1, 1),
  16.     ERROR = Color3.new(253/255,68/255,72/255)
  17. }
  18.  
  19. --
  20. -- Variables
  21. local GameAssetInfo -- loaded by InfoProvider:LoadAssets()
  22. local currScreenGui = nil
  23. local renderSteppedConnection = nil
  24. local fadingBackground = false
  25. local destroyedLoadingGui = false
  26. local hasReplicatedFirstElements = false
  27.  
  28. -- Fast Flags
  29. local topbarSuccess, topbarFlagValue = pcall(function() return settings():GetFFlag("UseInGameTopBar") end)
  30. local useTopBar = (topbarSuccess and topbarFlagValue == true)
  31. local bgFrameOffset = useTopBar and 36 or 20
  32. local offsetPosition = useTopBar and UDim2.new(0, 0, 0, -36) or UDim2.new(0, 0, 0, 0)
  33.  
  34. --
  35. -- Utility functions
  36. local create = function(className, defaultParent)
  37.     return function(propertyList)
  38.         local object = Instance.new(className)
  39.  
  40.         for index, value in next, propertyList do
  41.             if type(index) == 'string' then
  42.                 object[index] = value
  43.             else
  44.                 if type(value) == 'function' then
  45.                     value(object)
  46.                 elseif type(value) == 'userdata' then
  47.                     value.Parent = object
  48.                 end
  49.             end
  50.         end
  51.  
  52.         if object.Parent == nil then
  53.             object.Parent = defaultParent
  54.         end
  55.  
  56.         return object
  57.     end
  58. end
  59.  
  60. --
  61. -- Create objects
  62.  
  63. local MainGui = {}
  64. local InfoProvider = {}
  65.  
  66.  
  67. function InfoProvider:GetGameName()
  68.     if GameAssetInfo ~= nil then
  69.         return GameAssetInfo.Name
  70.     else
  71.         return ''
  72.     end
  73. end
  74.  
  75. function InfoProvider:GetCreatorName()
  76.     if GameAssetInfo ~= nil then
  77.         return GameAssetInfo.Creator.Name
  78.     else
  79.         return ''
  80.     end
  81. end
  82.  
  83. function InfoProvider:LoadAssets()
  84.     Spawn(function()
  85.         if PLACEID <= 0 then
  86.             while Game.PlaceId <= 0 do
  87.                 wait()
  88.             end
  89.             PLACEID = Game.PlaceId
  90.         end
  91.  
  92.         -- load game asset info
  93.         coroutine.resume(coroutine.create(function()
  94.             local success, result = pcall(function()
  95.                 GameAssetInfo = MPS:GetProductInfo(PLACEID)
  96.             end)
  97.             if not success then
  98.                 print("LoadingScript->InfoProvider:LoadAssets:", result)
  99.             end
  100.         end))
  101.     end)
  102. end
  103.  
  104. --
  105. -- Declare member functions
  106. function MainGui:GenerateMain()
  107.     local screenGui = create 'ScreenGui' {
  108.         Name = 'RobloxLoadingGui'
  109.     }
  110.  
  111.     --
  112.     -- create descendant frames
  113.     local mainBackgroundContainer = create 'Frame' {
  114.         Name = 'BlackFrame',
  115.         BackgroundColor3 = COLORS.BLACK,
  116.         Size = UDim2.new(1, 0, 1, bgFrameOffset),
  117.         Position = offsetPosition,
  118.         Active = true,
  119.  
  120.         create 'ImageButton' {
  121.                 Name = 'CloseButton',
  122.                 Image = 'rbxasset://textures/ui/CloseButton_dn.png',
  123.                 ImageColor3=Color3.new(0.9,0.9,0.9),
  124.                 ImageTransparency = 1,
  125.                 BackgroundTransparency = 1,
  126.                 Position = UDim2.new(1, -37, 0, 5),
  127.                 Size = UDim2.new(0, 32, 0, 32),
  128.                 Active = false,
  129.                 ZIndex = 10
  130.         },
  131.        
  132.         create 'Frame' {
  133.             Name = 'GraphicsFrame',
  134.             BorderSizePixel = 0,
  135.             BackgroundTransparency = 1,
  136.             Position = UDim2.new(1, -125, 1, -125),
  137.             Size = UDim2.new(0, 120, 0, 120),
  138.             ZIndex = 2,
  139.  
  140.             create 'ImageLabel' {
  141.                 Name = 'LoadingImage',
  142.                 BackgroundTransparency = 1,
  143.                 Image = 'rbxasset://textures/Roblox-loading-glow.png',
  144.                 Position = UDim2.new(0, 0, 0, 0),
  145.                 Size = UDim2.new(1, 0, 1, 0),
  146.                 ZIndex = 2
  147.             },
  148.  
  149.             create 'ImageLabel' {
  150.                 Name = 'LogoImage',
  151.                 BackgroundTransparency = 1,
  152.                 Image = 'rbxasset://textures/Roblox-loading.png',
  153.                 Position = UDim2.new(0.125, 0, 0.125, 0),
  154.                 Size = UDim2.new(0.75, 0, 0.75, 0),
  155.                 ZIndex = 2
  156.             }
  157.         },
  158.        
  159.         create 'Frame' {
  160.             Name = 'UiMessageFrame',
  161.             BackgroundTransparency = 1,
  162.             Position = UDim2.new(0.25, 0, 1, -120),
  163.             Size = UDim2.new(0.5, 0, 0, 80),
  164.             ZIndex = 2,
  165.  
  166.             create 'TextLabel' {
  167.                 Name = 'UiMessage',
  168.                 BackgroundTransparency = 1,
  169.                 Size = UDim2.new(1, 0, 1, 0),
  170.                 Font = Enum.Font.SourceSansBold,
  171.                 FontSize = Enum.FontSize.Size18,
  172.                 TextWrapped = true,
  173.                 TextColor3 = COLORS.WHITE,
  174.                 Text = "",
  175.                 ZIndex = 2
  176.             },
  177.         },
  178.        
  179.         create 'Frame' {
  180.             Name = 'CountFrame',
  181.             BackgroundTransparency = 1,
  182.             Position = UDim2.new(0, 0, 1, -120),
  183.             Size = UDim2.new(0.3, 0, 0, 120),
  184.             ZIndex = 2,
  185.  
  186.             create 'TextLabel' {
  187.                 Name = 'PlaceLabel',
  188.                 BackgroundTransparency = 1,
  189.                 Size = UDim2.new(1, -5, 0, 18),
  190.                 Position = UDim2.new(0, 5, 0, 0),
  191.                 Font = Enum.Font.SourceSansBold,
  192.                 FontSize = Enum.FontSize.Size14,
  193.                 TextWrapped = true,
  194.                 TextScaled = true,
  195.                 TextColor3 = COLORS.WHITE,
  196.                 TextStrokeTransparency = 0,
  197.                 Text = "",
  198.                 TextXAlignment = Enum.TextXAlignment.Left,
  199.                 ZIndex = 2
  200.             },
  201.  
  202.             create 'TextLabel' {
  203.                 Name = 'CreatorLabel',
  204.                 BackgroundTransparency = 1,
  205.                 Position = UDim2.new(0,5,0,18),
  206.                 Size = UDim2.new(1, -5, 0, 18),
  207.                 Font = Enum.Font.SourceSans,
  208.                 FontSize = Enum.FontSize.Size12,
  209.                 TextWrapped = true,
  210.                 TextScaled = true,
  211.                 TextColor3 = COLORS.WHITE,
  212.                 TextStrokeTransparency = 0,
  213.                 Text = "",
  214.                 TextXAlignment = Enum.TextXAlignment.Left,
  215.                 ZIndex = 2
  216.             },
  217.  
  218.             create 'TextLabel' {
  219.                 Name = 'BrickLabel',
  220.                 BackgroundTransparency = 1,
  221.                 Position = UDim2.new(0, 5, 0, 63),
  222.                 Size = UDim2.new(0, 85, 0, 18),
  223.                 Font = Enum.Font.SourceSansBold,
  224.                 FontSize = Enum.FontSize.Size18,
  225.                 TextScaled = true,
  226.                 TextColor3 = COLORS.WHITE,
  227.                 TextStrokeTransparency = 0,
  228.                 Text = "Bricks:",
  229.                 TextXAlignment = Enum.TextXAlignment.Right,
  230.                 ZIndex = 2
  231.             },
  232.  
  233.             create 'TextLabel' {
  234.                 Name = 'ConnectorLabel',
  235.                 BackgroundTransparency = 1,
  236.                 Position = UDim2.new(0, 5, 0, 81),
  237.                 Size = UDim2.new(0, 85, 0, 18),
  238.                 Font = Enum.Font.SourceSansBold,
  239.                 FontSize = Enum.FontSize.Size18,
  240.                 TextScaled = true,
  241.                 TextColor3 = COLORS.WHITE,
  242.                 TextStrokeTransparency = 0,
  243.                 Text = "Connectors:",
  244.                 TextXAlignment = Enum.TextXAlignment.Right,
  245.                 ZIndex = 2
  246.             },
  247.  
  248.             create 'TextLabel' {
  249.                 Name = 'InstanceLabel',
  250.                 BackgroundTransparency = 1,
  251.                 Position = UDim2.new(0, 5, 0, 45),
  252.                 Size = UDim2.new(0, 85, 0, 18),
  253.                 Font = Enum.Font.SourceSansBold,
  254.                 FontSize = Enum.FontSize.Size18,
  255.                 TextScaled = true,
  256.                 TextColor3 = COLORS.WHITE,
  257.                 TextStrokeTransparency = 0,
  258.                 Text = "Instances:",
  259.                 TextXAlignment = Enum.TextXAlignment.Right,
  260.                 ZIndex = 2
  261.             },
  262.  
  263.             create 'TextLabel' {
  264.                 Name = 'VoxelLabel',
  265.                 BackgroundTransparency = 1,
  266.                 Position = UDim2.new(0, 5, 0, 99),
  267.                 Size = UDim2.new(0, 85, 0, 18),
  268.                 Font = Enum.Font.SourceSansBold,
  269.                 FontSize = Enum.FontSize.Size18,
  270.                 TextScaled = true,
  271.                 TextColor3 = COLORS.WHITE,
  272.                 TextStrokeTransparency = 0,
  273.                 Text = "Voxels:",
  274.                 TextXAlignment = Enum.TextXAlignment.Right,
  275.                 ZIndex = 2
  276.             },
  277.  
  278.             create 'TextLabel' {
  279.                 Name = 'BrickCount',
  280.                 BackgroundTransparency = 1,
  281.                 Position = UDim2.new(0, 95, 0, 63),
  282.                 Size = UDim2.new(0.5, -5, 0, 18),
  283.                 Font = Enum.Font.SourceSans,
  284.                 FontSize = Enum.FontSize.Size18,
  285.                 TextScaled = true,
  286.                 TextColor3 = COLORS.WHITE,
  287.                 TextStrokeTransparency = 0,
  288.                 Text = "",
  289.                 TextXAlignment = Enum.TextXAlignment.Left,
  290.                 ZIndex = 2
  291.             },
  292.  
  293.             create 'TextLabel' {
  294.                 Name = 'ConnectorCount',
  295.                 BackgroundTransparency = 1,
  296.                 Position = UDim2.new(0, 95, 0, 81),
  297.                 Size = UDim2.new(0.5, -5, 0, 18),
  298.                 Font = Enum.Font.SourceSans,
  299.                 FontSize = Enum.FontSize.Size18,
  300.                 TextScaled = true,
  301.                 TextColor3 = COLORS.WHITE,
  302.                 TextStrokeTransparency = 0,
  303.                 Text = "",
  304.                 TextXAlignment = Enum.TextXAlignment.Left,
  305.                 ZIndex = 2
  306.             },
  307.  
  308.             create 'TextLabel' {
  309.                 Name = 'InstanceCount',
  310.                 BackgroundTransparency = 1,
  311.                 Position = UDim2.new(0, 95, 0, 45),
  312.                 Size = UDim2.new(0.5, -5, 0, 18),
  313.                 Font = Enum.Font.SourceSans,
  314.                 FontSize = Enum.FontSize.Size18,
  315.                 TextScaled = true,
  316.                 TextColor3 = COLORS.WHITE,
  317.                 TextStrokeTransparency = 0,
  318.                 Text = "",
  319.                 TextXAlignment = Enum.TextXAlignment.Left,
  320.                 ZIndex = 2
  321.             },
  322.  
  323.             create 'TextLabel' {
  324.                 Name = 'VoxelCount',
  325.                 BackgroundTransparency = 1,
  326.                 Position = UDim2.new(0, 95, 0, 99),
  327.                 Size = UDim2.new(0.5, -5, 0, 18),
  328.                 Font = Enum.Font.SourceSans,
  329.                 FontSize = Enum.FontSize.Size18,
  330.                 TextScaled = true,
  331.                 TextColor3 = COLORS.WHITE,
  332.                 TextStrokeTransparency = 0,
  333.                 Text = "",
  334.                 TextXAlignment = Enum.TextXAlignment.Left,
  335.                 ZIndex = 2
  336.             },
  337.         },
  338.  
  339.         Parent = screenGui
  340.     }
  341.  
  342.     create 'Frame' {
  343.             Name = 'ErrorFrame',
  344.             BackgroundColor3 = COLORS.ERROR,
  345.             BorderSizePixel = 0,
  346.             Position = UDim2.new(0.25,0,0,0),
  347.             Size = UDim2.new(0.5, 0, 0, 80),
  348.             ZIndex = 8,
  349.             Visible = false,
  350.  
  351.             create 'TextLabel' {
  352.                 Name = "ErrorText",
  353.                 BackgroundTransparency = 1,
  354.                 Size = UDim2.new(1, 0, 1, 0),
  355.                 Font = Enum.Font.SourceSansBold,
  356.                 FontSize = Enum.FontSize.Size14,
  357.                 TextWrapped = true,
  358.                 TextColor3 = COLORS.WHITE,
  359.                 Text = "",
  360.                 ZIndex = 8
  361.             },
  362.  
  363.         Parent = screenGui
  364.     }
  365.  
  366.     while not Game:GetService("CoreGui") do
  367.         wait()
  368.     end
  369.     screenGui.Parent = Game:GetService("CoreGui")
  370.     currScreenGui = screenGui
  371. end
  372.  
  373. function round(num, idp)
  374.   local mult = 10^(idp or 0)
  375.   return math.floor(num * mult + 0.5) / mult
  376. end
  377.  
  378. ---------------------------------------------------------
  379. -- Main Script (show something now + setup connections)
  380.  
  381. -- start loading assets asap
  382. InfoProvider:LoadAssets()
  383. MainGui:GenerateMain()
  384.  
  385. local guiService = Game:GetService("GuiService")
  386.  
  387. local removedLoadingScreen = false
  388. local instanceCount = 0
  389. local voxelCount = 0
  390. local brickCount = 0
  391. local connectorCount = 0
  392. local setVerb = true
  393. local fadeDown = true
  394. local lastRenderTime = nil
  395. local fadeCycleTime = 1.7
  396.  
  397. renderSteppedConnection = Game:GetService("RunService").RenderStepped:connect(function()
  398.     if not currScreenGui then return end
  399.     if not currScreenGui:FindFirstChild("BlackFrame") then return end
  400.  
  401.     if setVerb then
  402.         currScreenGui.BlackFrame.CloseButton:SetVerb("Exit")
  403.         setVerb = false
  404.     end
  405.  
  406.     if currScreenGui.BlackFrame.CountFrame.PlaceLabel.Text == "" then
  407.         currScreenGui.BlackFrame.CountFrame.PlaceLabel.Text = InfoProvider:GetGameName()
  408.     end
  409.  
  410.     if currScreenGui.BlackFrame.CountFrame.CreatorLabel.Text == "" then
  411.         local creatorName = InfoProvider:GetCreatorName()
  412.         if creatorName ~= "" then
  413.             currScreenGui.BlackFrame.CountFrame.CreatorLabel.Text = "By " .. creatorName
  414.         end
  415.     end
  416.  
  417.     instanceCount = guiService:GetInstanceCount()
  418.     voxelCount = guiService:GetVoxelCount()
  419.     brickCount = guiService:GetBrickCount()
  420.     connectorCount = guiService:GetConnectorCount()
  421.  
  422.     currScreenGui.BlackFrame.CountFrame.InstanceCount.Text = tostring(instanceCount)
  423.     currScreenGui.BlackFrame.CountFrame.BrickCount.Text = tostring(brickCount)
  424.     currScreenGui.BlackFrame.CountFrame.ConnectorCount.Text = tostring(connectorCount)
  425.  
  426.     if voxelCount <= 0 then
  427.         currScreenGui.BlackFrame.CountFrame.VoxelCount.Text = "0"
  428.     else
  429.         currScreenGui.BlackFrame.CountFrame.VoxelCount.Text = tostring(round(voxelCount,4)) .." million"
  430.     end
  431.  
  432.     if not lastRenderTime then
  433.         lastRenderTime = tick()
  434.         return
  435.     end
  436.  
  437.     local currentTime = tick()
  438.     local fadeAmount = (currentTime - lastRenderTime) * fadeCycleTime
  439.     lastRenderTime = currentTime
  440.  
  441.     if fadeDown then
  442.         currScreenGui.BlackFrame.GraphicsFrame.LoadingImage.ImageTransparency = currScreenGui.BlackFrame.GraphicsFrame.LoadingImage.ImageTransparency - fadeAmount
  443.         if currScreenGui.BlackFrame.GraphicsFrame.LoadingImage.ImageTransparency <= 0 then
  444.             fadeDown = false
  445.         end
  446.     else
  447.         currScreenGui.BlackFrame.GraphicsFrame.LoadingImage.ImageTransparency = currScreenGui.BlackFrame.GraphicsFrame.LoadingImage.ImageTransparency + fadeAmount
  448.         if currScreenGui.BlackFrame.GraphicsFrame.LoadingImage.ImageTransparency >= 1 then
  449.             fadeDown = true
  450.         end
  451.     end
  452.    
  453.     -- fade in close button after 5 seconds
  454.     if currentTime - startTime > 5 and currScreenGui.BlackFrame.CloseButton.ImageTransparency > 0 then
  455.         currScreenGui.BlackFrame.CloseButton.ImageTransparency = currScreenGui.BlackFrame.CloseButton.ImageTransparency - fadeAmount
  456.  
  457.         if currScreenGui.BlackFrame.CloseButton.ImageTransparency <= 0 then
  458.             currScreenGui.BlackFrame.CloseButton.Active = true
  459.         end
  460.     end
  461. end)
  462.  
  463. guiService.ErrorMessageChanged:connect(function()
  464.     if guiService:GetErrorMessage() ~= '' then
  465.         currScreenGui.ErrorFrame.ErrorText.Text = guiService:GetErrorMessage()
  466.         currScreenGui.ErrorFrame.Visible = true
  467.         local blackFrame = currScreenGui:FindFirstChild('BlackFrame')
  468.         if blackFrame then
  469.             blackFrame.CloseButton.ImageTransparency = 0
  470.             blackFrame.CloseButton.Active = true
  471.         end
  472.     else
  473.         currScreenGui.ErrorFrame.Visible = false
  474.     end
  475. end)
  476.  
  477. guiService.UiMessageChanged:connect(function(type, newMessage)
  478.     if type == Enum.UiMessageType.UiMessageInfo then
  479.         local blackFrame = currScreenGui and currScreenGui:FindFirstChild('BlackFrame')
  480.         if blackFrame then
  481.             blackFrame.UiMessageFrame.UiMessage.Text = newMessage
  482.             if newMessage ~= '' then
  483.                 blackFrame.UiMessageFrame.Visible = true
  484.             else
  485.                 blackFrame.UiMessageFrame.Visible = false
  486.             end
  487.         end
  488.     end
  489. end)
  490.  
  491. if guiService:GetErrorMessage() ~= '' then
  492.     currScreenGui.ErrorFrame.ErrorText.Text = guiService:GetErrorMessage()
  493.     currScreenGui.ErrorFrame.Visible = true
  494. end
  495.  
  496.  
  497. function stopListeningToRenderingStep()
  498.     if renderSteppedConnection then
  499.         renderSteppedConnection:disconnect()
  500.         renderSteppedConnection = nil
  501.     end
  502. end
  503.  
  504. function fadeBackground()
  505.     if not currScreenGui then return end
  506.     if fadingBackground then return end
  507.    
  508.     if not currScreenGui:findFirstChild("BlackFrame") then return end
  509.  
  510.     fadingBackground = true
  511.  
  512.     local lastTime = nil
  513.     local backgroundRemovalTime = 3.2
  514.  
  515.     while currScreenGui and currScreenGui.BlackFrame and currScreenGui.BlackFrame.BackgroundTransparency < 1 do
  516.         if lastTime == nil then
  517.             currScreenGui.BlackFrame.Active = false
  518.             lastTime = tick()
  519.         else
  520.             local currentTime = tick()
  521.             local fadeAmount = (currentTime - lastTime) * backgroundRemovalTime
  522.             lastTime = currentTime
  523.  
  524.             currScreenGui.BlackFrame.BackgroundTransparency = currScreenGui.BlackFrame.BackgroundTransparency + fadeAmount
  525.         end
  526.  
  527.         wait()
  528.     end
  529. end
  530.  
  531. function fadeAndDestroyBlackFrame(blackFrame)
  532.     Spawn(function()
  533.         local countFrame = blackFrame:FindFirstChild("CountFrame")
  534.         local graphicsFrame = blackFrame:FindFirstChild("GraphicsFrame")
  535.  
  536.         local textChildren = countFrame:GetChildren()
  537.         local transparency = 0
  538.         local rateChange = 1.8
  539.         local lastUpdateTime = nil
  540.  
  541.         while transparency < 1 do
  542.             if not lastUpdateTime then
  543.                 lastUpdateTime = tick()
  544.             else
  545.                 local newTime = tick()
  546.                 transparency = transparency + rateChange * (newTime - lastUpdateTime)
  547.                 for i =1, #textChildren do
  548.                     textChildren[i].TextTransparency = transparency
  549.                     textChildren[i].TextStrokeTransparency = transparency
  550.                 end
  551.                 graphicsFrame.LoadingImage.ImageTransparency = transparency
  552.                 graphicsFrame.LogoImage.ImageTransparency = transparency
  553.  
  554.                 lastUpdateTime = newTime
  555.             end
  556.             wait()
  557.         end
  558.         blackFrame:Destroy()
  559.     end)
  560. end
  561.  
  562. function destroyLoadingElements()
  563.     if not currScreenGui then return end
  564.     if destroyedLoadingGui then return end
  565.     destroyedLoadingGui = true
  566.    
  567.     local guiChildren = currScreenGui:GetChildren()
  568.     for i=1, #guiChildren do
  569.         -- need to keep this around in case we get a connection error later
  570.         if guiChildren[i].Name ~= "ErrorFrame" then
  571.             if guiChildren[i].Name == "BlackFrame" then
  572.                 fadeAndDestroyBlackFrame(guiChildren[i])
  573.             else
  574.                 guiChildren[i]:Destroy()
  575.             end
  576.         end
  577.     end
  578. end
  579.  
  580. function handleFinishedReplicating()
  581.     hasReplicatedFirstElements = (#Game:GetService("ReplicatedFirst"):GetChildren() > 0)
  582.     if not hasReplicatedFirstElements then
  583.         fadeBackground()
  584.     else
  585.         wait(20) -- make sure after 20 seconds we remove the default gui, even if the user doesn't
  586.         handleRemoveDefaultLoadingGui()
  587.     end
  588. end
  589.  
  590. function handleRemoveDefaultLoadingGui()
  591.     fadeBackground()
  592.     destroyLoadingElements()
  593. end
  594.  
  595. function handleGameLoaded()
  596.     if not hasReplicatedFirstElements then
  597.         destroyLoadingElements()
  598.     end
  599. end
  600.  
  601. Game:GetService("ReplicatedFirst").FinishedReplicating:connect(handleFinishedReplicating)
  602. if Game:GetService("ReplicatedFirst"):IsFinishedReplicating() then
  603.     handleFinishedReplicating()
  604. end
  605.  
  606. Game:GetService("ReplicatedFirst").RemoveDefaultLoadingGuiSignal:connect(handleRemoveDefaultLoadingGui)
  607. if Game:GetService("ReplicatedFirst"):IsDefaultLoadingGuiRemoved() then
  608.     handleRemoveDefaultLoadingGui()
  609.     return
  610. end
  611.  
  612. Game.Loaded:connect(handleGameLoaded)
  613. if Game:IsLoaded() then
  614.     handleGameLoaded()
  615. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement