Turn your Roblox into 2016 Roblox
Key RequiredUniversal

Turn your Roblox into 2016 Roblox

Universal Scriptswitch_twiceswitch_twice 4.4K views 833 executesUpdated Mar 21, 2022
5.0/ 5(6 votes)
60100% Positive
Lua Script•1080 lines (34207 chars)
--  _____       _     _             ___   ___  __   __  
-- |  __ \     | |   | |           |__ \ / _ \/_ | / /  
-- | |__) |___ | |__ | | _____  __    ) | | | || |/ /_  
-- |  _  // _ \| '_ \| |/ _ \ \/ /   / /| | | || | '_ \
-- | | \ \ (_) | |_) | | (_) >  <   / /_| |_| || | (_) |
-- |_|  \_\___/|_.__/|_|\___/_/\_\ |____|\___/ |_|\___/
--                                                             
--      If you want the cursor, look youtube for it 

if game:IsLoaded() ~= true then
   game.Loaded:Wait()
end
--Needed for nostalgia, Filtering Disabled spoof
local Workspace = game.Workspace
local old
old = hookmetamethod(game, "__index", newcclosure(function(Self, ...)
   local args = ...
   if Self == Workspace and args == "FilteringEnabled" then
       return false
   end
   return old(Self, ...)
end))

--Script utils
oldrequire = require
getgenv().bakrequire = require

cache = {}

function IsCached(Inst)
   for i,v in next, cache do
       if v[1] == Inst then
           return true, v[2]
       end
   end
   return false
end

getgenv().require = function(inst)
   CachedStatus, Result = IsCached(inst)
   if CachedStatus == false and Result == nil then
       result = loadstring(inst.Source)()
       table.insert(cache, {inst, result})
    return result
   else
       if Result then
           return Result
       end
   end
end

getgenv().LoadLibrary = function(str)
return loadstring(game:GetObjects("rbxassetid://9133787982")[1][str].Source)()
end

--Delete CoreGui guis
function ExistAndDelete(str)
   task.spawn(function()
       if game:GetService("CoreGui"):FindFirstChild(str) == nil then
           game:GetService("CoreGui"):WaitForChild(str):Destroy()
       else
           game:GetService("CoreGui")[str]:Destroy()
       end
   end)
end

ExistAndDelete("RobloxGui")
ExistAndDelete("TeleportGui")
ExistAndDelete("RobloxPromptGui")
ExistAndDelete("RobloxLoadingGui")
ExistAndDelete("PlayerList")
ExistAndDelete("RobloxNetworkPauseNotification")
ExistAndDelete("PurchasePrompt")
ExistAndDelete("HeadsetDisconnectedDialog")
ExistAndDelete("ThemeProvider")
ExistAndDelete("BubbleChat")

--Adios all CoreScript!!!
for i,v in pairs(game:GetDescendants()) do
   if v.ClassName == "CoreScript" then
       v:Destroy()
   end
end


--Chat handler (soo people can see your messages) (YOU CAN EDIT THIS IF THE GAME YOUR PLAYING HAVE A CUSTOM CHAT)
game.Players.LocalPlayer.Chatted:Connect(function(msg)
   if game:GetService("ReplicatedStorage"):FindFirstChild("DefaultChatSystemChatEvents") ~= nil then
    if game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents:FindFirstChild("SayMessageRequest") ~= nil then
    game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents:FindFirstChild("SayMessageRequest"):FireServer(msg, "All")
    end
   end
end)

--Delete Chat if found
if game.Players.LocalPlayer:FindFirstChild("PlayerGui") == nil then
   game.Players.LocalPlayer:WaitForChild("PlayerGui")
end

if game.Players.LocalPlayer.PlayerGui:FindFirstChild("Chat") == nil then
   game.Players.LocalPlayer.PlayerGui:WaitForChild("Chat"):Destroy()
else
   game.Players.LocalPlayer.PlayerGui["Chat"]:Destroy()
end



--The Health bar always on
game.Players.PlayerAdded:Connect(function(plr)
   task.spawn(function()
       if plr ~= nil then
           if plr.Character == nil then
               plr.CharacterAdded:Wait()
           end
           if plr.Character:FindFirstChild("Humanoid") == nil then
               plr.Character:WaitForChild("Humanoid")
           end
           plr.Character.Humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOn
       end
       plr.CharacterAdded:Connect(function(charac)
           if charac:FindFirstChild("Humanoid") == nil then
               charac:WaitForChild("Humanoid")
           end
           charac.Humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOn
       end)
   end)
end)

task.spawn(function()
   while true do
       task.wait(.1)
       for i,v in pairs(game.Players:GetChildren()) do
           if v.Character ~= nil then
               if v.Character:FindFirstChild("Humanoid") then
                   sethiddenproperty(v.Character.Humanoid, "HealthDisplayType", Enum.HumanoidHealthDisplayType.AlwaysOn)
               end
           end
       end
   end
end)




--Funny gui
local RobloxGui = game:GetObjects("rbxassetid://9139773381")[1]
RobloxGui.Parent = game:GetService("CoreGui")

--Remove kick blur
task.spawn(function()
  while true do
      task.wait()
      game:GetService("RunService"):SetRobloxGuiFocused(false)
  end
end)

--Scripts both taken from a real 2016 roblox studio
--They do the joining stuff etc
task.spawn(function()
   -- Creates the generic "ROBLOX" loading screen on startup
   -- Written by ArceusInator & Ben Tkacheff, 2014
   --
   
   -- Constants
   local PLACEID = game.PlaceId
   
   local MPS = game:GetService('MarketplaceService')
   local UIS = game:GetService('UserInputService')
   local guiService = game:GetService("GuiService")
   local ContextActionService = game:GetService('ContextActionService')
   local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui")
   
   local startTime = tick()
   
   local COLORS = {
    BLACK = Color3.new(0, 0, 0),
    BACKGROUND_COLOR = Color3.new(45/255, 45/255, 45/255),
    WHITE = Color3.new(1, 1, 1),
    ERROR = Color3.new(253/255,68/255,72/255)
   }
   
   local function getViewportSize()
    while not game.Workspace.CurrentCamera do
    game.Workspace.Changed:wait()
    end
   
    while game.Workspace.CurrentCamera.ViewportSize == Vector2.new(0,0) do
    game.Workspace.CurrentCamera.Changed:wait()
    end
   
    return game.Workspace.CurrentCamera.ViewportSize
   end
   
   --
   -- Variables
   local GameAssetInfo -- loaded by InfoProvider:LoadAssets()
   local currScreenGui, renderSteppedConnection = nil, nil
   local destroyingBackground, destroyedLoadingGui, hasReplicatedFirstElements = false, false, false
   local backgroundImageTransparency = 0
   local isMobile = (UIS.TouchEnabled == true and UIS.MouseEnabled == false and getViewportSize().Y <= 500)
   local isTenFootInterface = guiService:IsTenFootInterface()
   local platform = UIS:GetPlatform()
   
   local function IsConvertMyPlaceNameInXboxAppEnabled()
    if UIS:GetPlatform() == Enum.Platform.XBoxOne then
    local success, flagValue = pcall(function() return settings():GetFFlag("ConvertMyPlaceNameInXboxApp") end)
    return (success and flagValue == true)
    end
    return false
   end
   
   --
   -- Utility functions
   local create = function(className, defaultParent)
    return function(propertyList)
    local object = Instance.new(className)
    local parent = nil
   
    for index, value in next, propertyList do
    if type(index) == 'string' then
    if index == 'Parent' then
    parent = value
    else
    object[index] = value
    end
    else
    if type(value) == 'function' then
    value(object)
    elseif type(value) == 'userdata' then
    value.Parent = object
    end
    end
    end
   
    if parent then
    object.Parent = parent
    end
   
    if object.Parent == nil then
    object.Parent = defaultParent
    end
   
    return object
    end
   end
   
   --
   -- Create objects
   
   local MainGui = {}
   local InfoProvider = {}
   
   
   function ExtractGeneratedUsername(gameName)
    local tempUsername = string.match(gameName, "^([0-9a-fA-F]+)'s Place$")
    if tempUsername and #tempUsername == 32 then
    return tempUsername
    end
   end
   
   -- Fix places that have been made with incorrect temporary usernames
   function GetFilteredGameName(gameName, creatorName)
    if gameName and type(gameName) == 'string' then
    local tempUsername = ExtractGeneratedUsername(gameName)
    if tempUsername then
    local newGameName = string.gsub(gameName, tempUsername, creatorName, 1)
    if newGameName then
    return newGameName
    end
    end
    end
    return gameName
   end
   
   
   function InfoProvider:GetGameName()
    if GameAssetInfo ~= nil then
    if IsConvertMyPlaceNameInXboxAppEnabled() then
    return GetFilteredGameName(GameAssetInfo.Name, self:GetCreatorName())
    else
    return GameAssetInfo.Name
    end
    else
    return ''
    end
   end
   
   function InfoProvider:GetCreatorName()
    if GameAssetInfo ~= nil then
    return GameAssetInfo.Creator.Name
    else
    return ''
    end
   end
   
   function InfoProvider:LoadAssets()
    task.spawn(function()
    if PLACEID <= 0 then
    while game.PlaceId <= 0 do
    wait()
    end
    PLACEID = game.PlaceId
    end
   
    -- load game asset info
    coroutine.resume(coroutine.create(function()
    local success, result = pcall(function()
    GameAssetInfo = MPS:GetProductInfo(PLACEID)
    end)
    if not success then
    print("LoadingScript->InfoProvider:LoadAssets:", result)
    end
    end))
    end)
   end
   
   function MainGui:tileBackgroundTexture(frameToFill)
    if not frameToFill then return end
    frameToFill:ClearAllChildren()
    if backgroundImageTransparency < 1 then
    local backgroundTextureSize = Vector2.new(512, 512)
    for i = 0, math.ceil(frameToFill.AbsoluteSize.X/backgroundTextureSize.X) do
    for j = 0, math.ceil(frameToFill.AbsoluteSize.Y/backgroundTextureSize.Y) do
    create 'ImageLabel' {
    Name = 'BackgroundTextureImage',
    BackgroundTransparency = 1,
    ImageTransparency = backgroundImageTransparency,
    Image = 'rbxasset://textures/loading/darkLoadingTexture.png',
    Position = UDim2.new(0, i*backgroundTextureSize.X, 0, j*backgroundTextureSize.Y),
    Size = UDim2.new(0, backgroundTextureSize.X, 0, backgroundTextureSize.Y),
    ZIndex = 1,
    Parent = frameToFill
    }
    end
    end
    end
   end
   
   -- create a cancel binding for console to be able to cancel anytime while loading
   local function createTenfootCancelGui()
    local cancelLabel = create'ImageLabel'
    {
    Name = "CancelLabel";
    Size = UDim2.new(0, 83, 0, 83);
    Position = UDim2.new(1, -32 - 83, 0, 32);
    BackgroundTransparency = 1;
    Image = 'rbxasset://textures/ui/Shell/ButtonIcons/BButton.png';
    }
    local cancelText = create'TextLabel'
    {
    Name = "CancelText";
    Size = UDim2.new(0, 0, 0, 0);
    Position = UDim2.new(1, -131, 0, 64);
    BackgroundTransparency = 1;
    FontSize = Enum.FontSize.Size36;
    TextXAlignment = Enum.TextXAlignment.Right;
    TextColor3 = COLORS.WHITE;
    Text = "Cancel";
    }
   
    -- bind cancel action
    local platformService = nil
    pcall(function()
    platformService = game:GetService('PlatformService')
    end)
   
    if platformService then
    if not game:GetService("ReplicatedFirst"):IsFinishedReplicating() then
    local seenBButtonBegin = false
    ContextActionService:BindCoreAction("CancelGameLoad",
    function(actionName, inputState, inputObject)
    if inputState == Enum.UserInputState.Begin then
    seenBButtonBegin = true
    elseif inputState == Enum.UserInputState.End and seenBButtonBegin then
    cancelLabel:Destroy()
    cancelText.Text = "Canceling..."
    cancelText.Position = UDim2.new(1, -32, 0, 64)
    ContextActionService:UnbindCoreAction('CancelGameLoad')
    platformService:RequestGameShutdown()
    end
    end,
    false,
    Enum.KeyCode.ButtonB)
    end
    end
   
    while cancelLabel.Parent == nil do
    if currScreenGui then
    local blackFrame = currScreenGui:FindFirstChild('BlackFrame')
    if blackFrame then
    cancelLabel.Parent = blackFrame
    cancelText.Parent = blackFrame
    break
    end
    end
    wait()
    end
   end
   
   --
   -- Declare member functions
   function MainGui:GenerateMain()
    local screenGui = create 'ScreenGui' {
    Name = 'RobloxLoadingGui'
    }
   
    --
    -- create descendant frames
    local mainBackgroundContainer = create 'Frame' {
    Name = 'BlackFrame',
    BackgroundColor3 = COLORS.BACKGROUND_COLOR,
    BackgroundTransparency = 0,
    Size = UDim2.new(1, 0, 1, 0),
    Position = UDim2.new(0, 0, 0, 0),
    Active = true,
    Parent = screenGui,
    }
   
    local closeButton = create 'ImageButton' {
    Name = 'CloseButton',
    Image = 'rbxasset://textures/loading/cancelButton.png',
    ImageTransparency = 1,
    BackgroundTransparency = 1,
    Position = UDim2.new(1, -37, 0, 5),
    Size = UDim2.new(0, 32, 0, 32),
    Active = false,
    ZIndex = 10,
    Parent = mainBackgroundContainer,
    }
   
    local graphicsFrame = create 'Frame' {
    Name = 'GraphicsFrame',
    BorderSizePixel = 0,
    BackgroundTransparency = 1,
    Position = UDim2.new(1, (isMobile == true and -75 or (isTenFootInterface and -245 or -225)), 1, (isMobile == true and -75 or (isTenFootInterface and -185 or -165))),
    Size = UDim2.new(0, (isMobile == true and 70 or (isTenFootInterface and 140 or 120)), 0, (isMobile == true and 70 or (isTenFootInterface and 140 or 120))),
    ZIndex = 2,
    Parent = mainBackgroundContainer,
    }
   
    local loadingImage = create 'ImageLabel' {
    Name = 'LoadingImage',
    BackgroundTransparency = 1,
    Image = 'rbxasset://textures/loading/loadingCircle.png',
    Position = UDim2.new(0, 0, 0, 0),
    Size = UDim2.new(1, 0, 1, 0),
    ZIndex = 2,
    Parent = graphicsFrame,
    }
   
    local loadingText = create 'TextLabel' {
    Name = 'LoadingText',
    BackgroundTransparency = 1,
    Size = UDim2.new(1, (isMobile == true and -14 or -56), 1, 0),
    Position = UDim2.new(0, (isMobile == true and 12 or 28), 0, 0),
    Font = Enum.Font.SourceSans,
    FontSize = (isMobile == true and Enum.FontSize.Size12 or Enum.FontSize.Size18),
    TextWrapped = true,
    TextColor3 = COLORS.WHITE,
    TextXAlignment = Enum.TextXAlignment.Left,
    Visible = not isTenFootInterface,
    Text = "Loading...",
    ZIndex = 2,
    Parent = graphicsFrame,
    }
   
    local uiMessageFrame = create 'Frame' {
    Name = 'UiMessageFrame',
    BackgroundTransparency = 1,
    Position = UDim2.new(0.25, 0, 1, -120),
    Size = UDim2.new(0.5, 0, 0, 80),
    ZIndex = 2,
    Parent = mainBackgroundContainer,
    }
   
    local uiMessage = create 'TextLabel' {
    Name = 'UiMessage',
    BackgroundTransparency = 1,
    Size = UDim2.new(1, 0, 1, 0),
    Font = Enum.Font.SourceSansBold,
    FontSize = Enum.FontSize.Size18,
    TextWrapped = true,
    TextColor3 = COLORS.WHITE,
    Text = "",
    ZIndex = 2,
    Parent = uiMessageFrame,
    }
   
    local infoFrame = create 'Frame' {
    Name = 'InfoFrame',
    BackgroundTransparency = 1,
    Position = UDim2.new(0, (isMobile == true and 20 or 100), 1, (isMobile == true and -120 or -150)),
    Size = UDim2.new(0.4, 0, 0, 110),
    ZIndex = 2,
    Parent = mainBackgroundContainer,
    }
   
    local placeLabel = create 'TextLabel' {
    Name = 'PlaceLabel',
    BackgroundTransparency = 1,
    Size = UDim2.new(1, 0, 0, 80),
    Position = UDim2.new(0, 0, 0, 0),
    Font = Enum.Font.SourceSans,
    FontSize = (isTenFootInterface and Enum.FontSize.Size48 or Enum.FontSize.Size24),
    TextWrapped = true,
    TextScaled = true,
    TextColor3 = COLORS.WHITE,
    TextStrokeTransparency = 0,
    Text = "",
    TextXAlignment = Enum.TextXAlignment.Left,
    TextYAlignment = Enum.TextYAlignment.Bottom,
    ZIndex = 2,
    Parent = infoFrame,
    }
   
    if isTenFootInterface then
    local byLabel = create'TextLabel' {
    Name = "ByLabel",
    BackgroundTransparency = 1,
    Size = UDim2.new(0, 36, 0, 30),
    Position = UDim2.new(0, 0, 0, 80),
    Font = Enum.Font.SourceSans,
    FontSize = Enum.FontSize.Size36,
    TextScaled = true,
    TextColor3 = COLORS.WHITE,
    TextStrokeTransparency = 0,
    Text = "By",
    TextXAlignment = Enum.TextXAlignment.Left,
    TextYAlignment = Enum.TextYAlignment.Top,
    ZIndex = 2,
    Visible = false,
    Parent = infoFrame,
    }
    local creatorIcon = create'ImageLabel' {
    Name = "CreatorIcon",
    BackgroundTransparency = 1,
    Size = UDim2.new(0, 30, 0, 30),
    Position = UDim2.new(0, 38, 0, 80),
    ImageTransparency = 0,
    Image = 'rbxasset://textures/ui/Shell/Icons/RobloxIcon32.png',
    ZIndex = 2,
    Visible = false,
    Parent = infoFrame,
    }
    end
   
    local creatorLabel = create 'TextLabel' {
    Name = 'CreatorLabel',
    BackgroundTransparency = 1,
    Size = UDim2.new(1, 0, 0, 30),
    Position = UDim2.new(0, isTenFootInterface and 72 or 0, 0, 80),
    Font = Enum.Font.SourceSans,
    FontSize = (isTenFootInterface and Enum.FontSize.Size36 or Enum.FontSize.Size18),
    TextWrapped = true,
    TextScaled = true,
    TextColor3 = COLORS.WHITE,
    TextStrokeTransparency = 0,
    Text = "",
    TextXAlignment = Enum.TextXAlignment.Left,
    TextYAlignment = Enum.TextYAlignment.Top,
    ZIndex = 2,
    Parent = infoFrame,
    }
   
    local backgroundTextureFrame = create 'Frame' {
    Name = 'BackgroundTextureFrame',
    BorderSizePixel = 0,
    Size = UDim2.new(1, 0, 1, 0),
    Position = UDim2.new(0, 0, 0, 0),
    ClipsDescendants = true,
    ZIndex = 1,
    BackgroundTransparency = 1,
    Parent = mainBackgroundContainer,
    }
   
    local errorFrame = create 'Frame' {
    Name = 'ErrorFrame',
    BackgroundColor3 = COLORS.ERROR,
    BorderSizePixel = 0,
    Position = UDim2.new(0.25,0,0,0),
    Size = UDim2.new(0.5, 0, 0, 80),
    ZIndex = 8,
    Visible = false,
    Parent = screenGui,
    }
   
    local errorText = create 'TextLabel' {
    Name = "ErrorText",
    BackgroundTransparency = 1,
    Size = UDim2.new(1, 0, 1, 0),
    Font = Enum.Font.SourceSansBold,
    FontSize = Enum.FontSize.Size14,
    TextWrapped = true,
    TextColor3 = COLORS.WHITE,
    Text = "",
    ZIndex = 8,
    Parent = errorFrame,
    }
   
    while not game:GetService("CoreGui") do
    wait()
    end
    screenGui.Parent = game:GetService("CoreGui")
    currScreenGui = screenGui
   end
   
   function round(num, idp)
     local mult = 10^(idp or 0)
     return math.floor(num * mult + 0.5) / mult
   end
   
   ---------------------------------------------------------
   -- Main Script (show something now + setup connections)
   
   -- start loading assets asap
   InfoProvider:LoadAssets()
   MainGui:GenerateMain()
   if isTenFootInterface then
    createTenfootCancelGui()
   end
   
   local setVerb = true
   local lastRenderTime, lastDotUpdateTime, brickCountChange = nil, nil, nil
   local fadeCycleTime = 1.7
   local turnCycleTime = 2
   local lastAbsoluteSize = Vector2.new(0, 0)
   local loadingDots = "..."
   local dotChangeTime = .2
   local lastBrickCount = 0
   
   renderSteppedConnection = game:GetService("RunService").RenderStepped:connect(function()
    if not currScreenGui then return end
    if not currScreenGui:FindFirstChild("BlackFrame") then return end
   
    if setVerb then
    setVerb = false
    end
   
    if currScreenGui.BlackFrame:FindFirstChild("BackgroundTextureFrame") and currScreenGui.BlackFrame.BackgroundTextureFrame.AbsoluteSize ~= lastAbsoluteSize then
    lastAbsoluteSize = currScreenGui.BlackFrame.BackgroundTextureFrame.AbsoluteSize
    MainGui:tileBackgroundTexture(currScreenGui.BlackFrame.BackgroundTextureFrame)
    end
   
    local infoFrame = currScreenGui.BlackFrame:FindFirstChild('InfoFrame')
    if infoFrame then
    -- set place name
    local placeLabel = infoFrame:FindFirstChild('PlaceLabel')
    if placeLabel and placeLabel.Text == "" then
    placeLabel.Text = InfoProvider:GetGameName()
    end
   
    -- set creator name
    local creatorLabel = infoFrame:FindFirstChild('CreatorLabel')
    if creatorLabel and creatorLabel.Text == "" then
    local creatorName = InfoProvider:GetCreatorName()
    if creatorName ~= "" then
    if isTenFootInterface then
    local showDevName = true
    if platform == Enum.Platform.XBoxOne then
    local success, result = pcall(function()
    return settings():GetFFlag("ShowDevNameInXboxApp")
    end)
    if success then
    showDevName = result
    end
    end
    creatorLabel.Text = showDevName and creatorName or ""
    local creatorIcon = infoFrame:FindFirstChild('CreatorIcon')
    local byLabel = infoFrame:FindFirstChild('ByLabel')
    if creatorIcon then creatorIcon.Visible = showDevName end
    if byLabel then byLabel.Visible = showDevName end
    else
    creatorLabel.Text = "By "..creatorName
    end
    end
    end
    end
   
    if not lastRenderTime then
    lastRenderTime = tick()
    lastDotUpdateTime = lastRenderTime
    return
    end
   
    local currentTime = tick()
    local fadeAmount = (currentTime - lastRenderTime) * fadeCycleTime
    local turnAmount = (currentTime - lastRenderTime) * (360/turnCycleTime)
    lastRenderTime = currentTime
   
    currScreenGui.BlackFrame.GraphicsFrame.LoadingImage.Rotation = currScreenGui.BlackFrame.GraphicsFrame.LoadingImage.Rotation + turnAmount
   
    local updateLoadingDots =  function()
    loadingDots = loadingDots.. "."
    if loadingDots == "...." then
    loadingDots = ""
    end
    currScreenGui.BlackFrame.GraphicsFrame.LoadingText.Text = "Loading" ..loadingDots
    end
   
    if currentTime - lastDotUpdateTime >= dotChangeTime and InfoProvider:GetCreatorName() == "" then
    lastDotUpdateTime = currentTime
    updateLoadingDots()
    else
    if guiService:GetBrickCount() > 0 then
    if brickCountChange == nil then
    brickCountChange = guiService:GetBrickCount()
    end
    if guiService:GetBrickCount() - lastBrickCount >= brickCountChange then
    lastBrickCount = guiService:GetBrickCount()
    updateLoadingDots()
    end
    end
    end
   
    if not isTenFootInterface then
    if currentTime - startTime > 5 and currScreenGui.BlackFrame.CloseButton.ImageTransparency > 0 then
    currScreenGui.BlackFrame.CloseButton.ImageTransparency = currScreenGui.BlackFrame.CloseButton.ImageTransparency - fadeAmount
   
    if currScreenGui.BlackFrame.CloseButton.ImageTransparency <= 0 then
    currScreenGui.BlackFrame.CloseButton.Active = true
    end
    end
    end
   end)
   
   task.spawn(function()
    local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui")
    local guiInsetChangedEvent = Instance.new("BindableEvent")
    guiInsetChangedEvent.Name = "GuiInsetChanged"
    guiInsetChangedEvent.Parent = RobloxGui
    guiInsetChangedEvent.Event:connect(function(x1, y1, x2, y2)
    if currScreenGui and currScreenGui:FindFirstChild("BlackFrame") then
    currScreenGui.BlackFrame.Position = UDim2.new(0, -x1, 0, -y1)
    currScreenGui.BlackFrame.Size = UDim2.new(1, x1 + x2, 1, y1 + y2)
    end
    end)
   end)
   
   local leaveGameButton, leaveGameTextLabel, errorImage = nil
   
   guiService.ErrorMessageChanged:connect(function()
    if guiService:GetErrorMessage() ~= '' then
    if isTenFootInterface then
    currScreenGui.ErrorFrame.Size = UDim2.new(1, 0, 0, 144)
    currScreenGui.ErrorFrame.Position = UDim2.new(0, 0, 0, 0)
    currScreenGui.ErrorFrame.BackgroundColor3 = COLORS.BLACK
    currScreenGui.ErrorFrame.BackgroundTransparency = 0.5
    currScreenGui.ErrorFrame.ErrorText.FontSize = Enum.FontSize.Size36
    currScreenGui.ErrorFrame.ErrorText.Position = UDim2.new(.3, 0, 0, 0)
    currScreenGui.ErrorFrame.ErrorText.Size = UDim2.new(.4, 0, 0, 144)
    if errorImage == nil then
    errorImage = Instance.new("ImageLabel")
    errorImage.Image = "rbxasset://textures/ui/ErrorIconSmall.png"
    errorImage.Size = UDim2.new(0, 96, 0, 79)
    errorImage.Position = UDim2.new(0.228125, 0, 0, 32)
    errorImage.ZIndex = 9
    errorImage.BackgroundTransparency = 1
    errorImage.Parent = currScreenGui.ErrorFrame
    end
    -- we show a B button to kill game data model on console
    if not isTenFootInterface then
    if leaveGameButton == nil then
    local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui")
    local utility = require(RobloxGui.Modules.Settings.Utility)
    local textLabel = nil
    leaveGameButton, leaveGameTextLabel = utility:MakeStyledButton("LeaveGame", "Leave", UDim2.new(0, 288, 0, 78))
    leaveGameButton.NextSelectionDown = leaveGameButton
    leaveGameButton.NextSelectionLeft = leaveGameButton
    leaveGameButton.NextSelectionRight = leaveGameButton
    leaveGameButton.NextSelectionUp = leaveGameButton
    leaveGameButton.ZIndex = 9
    leaveGameButton.Position = UDim2.new(0.771875, 0, 0, 37)
    leaveGameButton.Parent = currScreenGui.ErrorFrame
    leaveGameTextLabel.FontSize = Enum.FontSize.Size36
    leaveGameTextLabel.ZIndex = 10
    game:GetService("GuiService").SelectedCoreObject = leaveGameButton
    else
    game:GetService("GuiService").SelectedCoreObject = leaveGameButton
    end
    end
    end
    currScreenGui.ErrorFrame.ErrorText.Text = guiService:GetErrorMessage()
    currScreenGui.ErrorFrame.Visible = true
    local blackFrame = currScreenGui:FindFirstChild('BlackFrame')
    if blackFrame then
    blackFrame.CloseButton.ImageTransparency = 0
    blackFrame.CloseButton.Active = true
    end
    else
    currScreenGui.ErrorFrame.Visible = false
    end
   end)
   
   guiService.UiMessageChanged:connect(function(type, newMessage)
    if type == Enum.UiMessageType.UiMessageInfo then
    local blackFrame = currScreenGui and currScreenGui:FindFirstChild('BlackFrame')
    if blackFrame then
    blackFrame.UiMessageFrame.UiMessage.Text = newMessage
    if newMessage ~= '' then
    blackFrame.UiMessageFrame.Visible = true
    else
    blackFrame.UiMessageFrame.Visible = false
    end
    end
    end
   end)
   
   if guiService:GetErrorMessage() ~= '' then
    currScreenGui.ErrorFrame.ErrorText.Text = guiService:GetErrorMessage()
    currScreenGui.ErrorFrame.Visible = true
   end
   
   
   function stopListeningToRenderingStep()
    if renderSteppedConnection then
    renderSteppedConnection:disconnect()
    renderSteppedConnection = nil
    end
   end
   
   function fadeAndDestroyBlackFrame(blackFrame)
    if destroyingBackground then return end
    destroyingBackground = true
    task.spawn(function()
    local infoFrame = blackFrame:FindFirstChild("InfoFrame")
    local graphicsFrame = blackFrame:FindFirstChild("GraphicsFrame")
   
    local infoFrameChildren = infoFrame:GetChildren()
    local transparency = 0
    local rateChange = 1.8
    local lastUpdateTime = nil
   
    while transparency < 1 do
    if not lastUpdateTime then
    lastUpdateTime = tick()
    else
    local newTime = tick()
    transparency = transparency + rateChange * (newTime - lastUpdateTime)
    for i = 1, #infoFrameChildren do
    local child = infoFrameChildren[i]
    if child:IsA('TextLabel') then
    child.TextTransparency = transparency
    child.TextStrokeTransparency = transparency
    elseif child:IsA('ImageLabel') then
    child.ImageTransparency = transparency
    end
    end
    graphicsFrame.LoadingImage.ImageTransparency = transparency
    blackFrame.BackgroundTransparency = transparency
   
    if backgroundImageTransparency < 1 then
    backgroundImageTransparency = transparency
    local backgroundImages = blackFrame.BackgroundTextureFrame:GetChildren()
    for i = 1, #backgroundImages do
    backgroundImages[i].ImageTransparency = backgroundImageTransparency
    end
    end
   
    lastUpdateTime = newTime
    end
    wait()
    end
    if blackFrame ~= nil then
    stopListeningToRenderingStep()
    blackFrame:Destroy()
    end
    end)
   end
   
   function destroyLoadingElements(instant)
    if not currScreenGui then return end
    if destroyedLoadingGui then return end
    destroyedLoadingGui = true
   
    local guiChildren = currScreenGui:GetChildren()
    for i=1, #guiChildren do
    -- need to keep this around in case we get a connection error later
    if guiChildren[i].Name ~= "ErrorFrame" then
    if guiChildren[i].Name == "BlackFrame" and not instant then
    fadeAndDestroyBlackFrame(guiChildren[i])
    else
    guiChildren[i]:Destroy()
    end
    end
    end
   end
   
   function handleFinishedReplicating()
    hasReplicatedFirstElements = (#game:GetService("ReplicatedFirst"):GetChildren() > 0)
   
    if not hasReplicatedFirstElements then
    if game:IsLoaded() then
    handleRemoveDefaultLoadingGui()
    else
    local gameLoadedCon = nil
    gameLoadedCon = game.Loaded:connect(function()
    gameLoadedCon:disconnect()
    gameLoadedCon = nil
    handleRemoveDefaultLoadingGui()
    end)
    end
    else
    wait(5) -- make sure after 5 seconds we remove the default gui, even if the user doesn't
    handleRemoveDefaultLoadingGui()
    end
   end
   
   function handleRemoveDefaultLoadingGui(instant)
    if isTenFootInterface then
    ContextActionService:UnbindCoreAction('CancelGameLoad')
    end
    destroyLoadingElements(instant)
   end
   
   game:GetService("ReplicatedFirst").FinishedReplicating:connect(handleFinishedReplicating)
   if game:GetService("ReplicatedFirst"):IsFinishedReplicating() then
    handleFinishedReplicating()
   end
   
   game:GetService("ReplicatedFirst").RemoveDefaultLoadingGuiSignal:connect(handleRemoveDefaultLoadingGui)
   if game:GetService("ReplicatedFirst"):IsDefaultLoadingGuiRemoved() then
    handleRemoveDefaultLoadingGui()
   end
   
   local UserInputServiceChangedConn;
   local function onUserInputServiceChanged(prop)
    if prop == 'VREnabled' then
    local UseVr = false
    pcall(function() UseVr = UIS.VREnabled end)
   
    if UseVr then
    if UserInputServiceChangedConn then
    UserInputServiceChangedConn:disconnect()
    UserInputServiceChangedConn = nil
    end
    handleRemoveDefaultLoadingGui(true)
    require(RobloxGui.Modules.LoadingScreen3D)
    end
    end
   end
   
   UserInputServiceChangedConn = UIS.Changed:connect(onUserInputServiceChanged)
   onUserInputServiceChanged('VREnabled')
end)

task.spawn(function()
   -- Creates all neccessary scripts for the gui on initial load, everything except build tools
   -- Created by Ben T. 10/29/10
   -- Please note that these are loaded in a specific order to diminish errors/perceived load time by user
   
   local scriptContext = game:GetService("ScriptContext")
   local touchEnabled = game:GetService("UserInputService").TouchEnabled
   
   local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui")
   
   local soundFolder = Instance.new("Folder")
   soundFolder.Name = "Sounds"
   soundFolder.Parent = RobloxGui
   
   -- This can be useful in cases where a flag configuration issue causes requiring a CoreScript to fail
   local function safeRequire(moduleScript)
    local moduleReturnValue = nil
    local success, err = pcall(function() moduleReturnValue = require(moduleScript) end)
    if not success then
    warn("Failure to Start CoreScript module" ..moduleScript.Name.. ".\n" ..err)
    end
    return moduleReturnValue
   end
   
   --CUSTOM FUNCTION FOR SYNAPSE X
   function AddCoreScriptLocal(str)
       local Inject = [==[
           --Get names
           script.Name = script.Name..[[]==]..str..[==[]]
           --FAKE SCRIPT
           local script = Instance.new("LocalScript", game.CoreGui.RobloxGui)
           script.Name = [[CoreScripts/]==]..str..[==[]]
           script.Disabled = true
           script.Source = [[print("Doin' your mom")]]
           
       ]==]
       
       loadstring(Inject..tostring(RobloxGui.CoreScriptSyn[str].Source))()
   end
   
   -- TopBar
   task.spawn(function()
       AddCoreScriptLocal("Topbar")
   end)
   -- SettingsScript
   local luaControlsSuccess, luaControlsFlagValue = pcall(function() return settings():GetFFlag("UseLuaCameraAndControl") end)
   
   -- MainBotChatScript (the Lua part of Dialogs)
   task.spawn(function()
       AddCoreScriptLocal("MainBotChatScript2")
   end)
   
   -- In-game notifications script
   task.spawn(function()
       AddCoreScriptLocal("NotificationScript2")
   end)
   -- Performance Stats Management
   task.spawn(function()
       AddCoreScriptLocal("PerformanceStatsManagerScript")
   end)
   
   -- Chat script
   task.spawn(function() safeRequire(RobloxGui.Modules.ChatSelector) end)
   task.spawn(function() safeRequire(RobloxGui.Modules.PlayerlistModule) end)
   task.spawn(function()
       AddCoreScriptLocal("BubbleChat")
   end)
   -- Purchase Prompt Script (run both versions, they will check the relevant flag)
   task.spawn(function()
       AddCoreScriptLocal("PurchasePromptScript2")
   end)
   task.spawn(function()
       AddCoreScriptLocal("PurchasePromptScript3")
   end)
   
   -- Backpack!
   task.spawn(function() safeRequire(RobloxGui.Modules.BackpackScript) end)
   task.spawn(function()
       AddCoreScriptLocal("VehicleHud")
   end)
   task.spawn(function()
       AddCoreScriptLocal("GamepadMenu")
   end)
   if touchEnabled then -- touch devices don't use same control frame
    -- only used for touch device button generation
    task.spawn(function()
    AddCoreScriptLocal("ContextActionTouch")
       end)
    RobloxGui:WaitForChild("ControlFrame")
    RobloxGui.ControlFrame:WaitForChild("BottomLeftControl")
    RobloxGui.ControlFrame.BottomLeftControl.Visible = false
   end
   
   do
    local UserInputService = game:GetService('UserInputService')
    local function tryRequireVRKeyboard()
    if UserInputService.VREnabled then
    return safeRequire(RobloxGui.Modules.VR.VirtualKeyboard)
    end
    return nil
    end
    if not tryRequireVRKeyboard() then
    UserInputService.Changed:connect(function(prop)
    if prop == "VREnabled" then
    tryRequireVRKeyboard()
    end
    end)
    end
   end
   
   -- Boot up the VR App Shell
   if UserSettings().GameSettings:InStudioMode() then
    local UserInputService = game:GetService('UserInputService')
    local function onVREnabled(prop)
    if prop == "VREnabled" then
    if UserInputService.VREnabled then
    local shellInVRSuccess, shellInVRFlagValue = pcall(function() return settings():GetFFlag("EnabledAppShell3D") end)
    local shellInVR = (shellInVRSuccess and shellInVRFlagValue == true)
    local modulesFolder = RobloxGui.Modules
    local appHomeModule = modulesFolder:FindFirstChild('Shell') and modulesFolder:FindFirstChild('Shell'):FindFirstChild('AppHome')
    if shellInVR and appHomeModule then
    safeRequire(appHomeModule)
    end
    end
    end
    end
   
    task.spawn(function()
    if UserInputService.VREnabled then
    onVREnabled("VREnabled")
    end
    UserInputService.Changed:connect(onVREnabled)
    end)
   end
end)

Features & Information

ps: add this on your auto-exec, might break custom-chat games credits for the guy who made it: https://v3rmillion.net/showthread.php?tid=1162657 -old ui

Community Comments (7)

yomikooeoyomikooeoMar 25, 2022(edited)

thumbnail link?🧐

switch_twiceswitch_twiceMar 30, 2022(edited)

@yomikooeo i would but actually is against the Site ToS LOL

YoupYoupApr 8, 2022(edited)

in what game do i execute it?

switch_twiceswitch_twiceApr 9, 2022(edited)

@Youp it's universal, but won't work on custom UI games tho

xyzzxyzzApr 13, 2022(edited)

the thumbnail is confusing

StarProjectStarProjectMay 7, 2022(edited)

Works perfect thanks!

fakesixtenn0fakesixtenn0Jul 5, 2025

what should I do, I installed something there and that’s it, what should I do? look at the file and play regular roblox without a script, or why do I need it then if I don’t know what to do with it, post tutorials

More Scripts for Universal Scripts