0% found this document useful (0 votes)
314 views19 pages

RetrofiyNightly Lua

Broke

Uploaded by

altacclunt5583
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
314 views19 pages

RetrofiyNightly Lua

Broke

Uploaded by

altacclunt5583
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

--[[

██████╗░███████╗████████╗██████╗░░█████╗░███████╗██╗██╗░░░██╗
██╔══██╗██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██╔════╝██║╚██╗░██╔╝
██████╔╝█████╗░░░░░██║░░░██████╔╝██║░░██║█████╗░░██║░╚████╔╝░
██╔══██╗██╔══╝░░░░░██║░░░██╔══██╗██║░░██║██╔══╝░░██║░░╚██╔╝░░
██║░░██║███████╗░░░██║░░░██║░░██║╚█████╔╝██║░░░░░██║░░░██║░░░
╚═╝░░╚═╝╚══════╝░░░╚═╝░░░╚═╝░░╚═╝░╚════╝░╚═╝░░░░░╚═╝░░░╚═╝░░░
2016 client simulator

Developed by Beyond 5D#5878


[Link]
--]]

--[[
Keys:

[R] - Recommended, you should keep it on for accuracy sake and has no
big/known issues
[B] - Buggy, isn't fully implemented and/or may not be accurate
[L] - Low compatibility, works perfectly fine on some games
[O] - Optional, improvement or a personal preference
p

if RetrofiyLoaded then
print("Retrofiy is already loaded!")
return
end

pcall(function() getgenv().RetrofiyLoaded = true end)

local RetrofiyConfig = {
RetroLighting = true, -- [R] -- Force disables lighting properties that
weren't in 2016, uses compatibility Techology and deletes effects not seen in 2016
RetroCoreGui = true, -- [B] -- Replaces the Core Gui with a 2016 Core Gui
(Playerlist, topbar, etc)
RetroWorkspace = true, -- [R] -- Uses old materials, disables terrain
decoration, only allows brick colors and returns 2016 studs
RetroCharacters = true, -- [B] -- Displays health bars above the heads of
characters & returns old oof sound
RetroChat = true, -- [R] -- If default chat is enabled it will convert it to
the 2016 chat
BCOnly = false -- [O] -- Makes all premium players appear as BC players
instead of it being User ID linked
}

local Players = game:GetService("Players")


local Lighting = game:GetService("Lighting")
local MaterialService = game:GetService("MaterialService")
local StarterGui = game:GetService("StarterGui")
local StarterPlayer = game:GetService("StarterPlayer")
local Teams = game:GetService("Teams")
local Chat = game:GetService("Chat")
local CoreGui = game:GetService("CoreGui")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local NetworkClient = game:GetService("NetworkClient")
local GuiService = game:GetService("GuiService")
local HttpService = game:GetService("HttpService")
local MarketplaceService = game:GetService("MarketplaceService")
local UserService = game:GetService("UserService")

local GetAsset = getsynasset or getcustomasset


local MaxInteger = {
[true] = 2147483647,
[false] = -2147483648
}

local function ImprovedKeyPress(keys)


for _, key in pairs(keys) do
keypress(key)
keyrelease(key)
end
end

local LoadingScreen = [Link]("ScreenGui")


[Link] = MaxInteger[true] -- maybe lower lol
[Link] = true
[Link] = CoreGui
local Background = [Link]("ImageLabel")
[Link] = [Link](1, 0, 1, 0)
[Link] = "rbxasset://textures/loading/[Link]"
[Link] = [Link]
[Link] = [Link](0, 512, 0, 552)
[Link] = LoadingScreen
local Information = [Link]("Folder")
[Link] = Background
local GameInformation = [Link]("Frame")
[Link] = 1
[Link] = [Link](0, 100, 1, -150)
[Link] = [Link](0.4, 0, 0, 110)
[Link] = Information
local CreatorName = [Link]("TextLabel")
[Link] = 1
[Link] = [Link](0, 0, 0, 80)
[Link] = [Link](1, 0, 0, 30)
[Link] = [Link]
[Link] = ""
CreatorName.TextColor3 = [Link](255, 255, 255)
[Link] = true
CreatorName.TextStrokeColor3 = [Link](0, 0, 0)
[Link] = 0
[Link] = [Link]
[Link] = [Link]
[Link] = GameInformation
local PlaceName = [Link]("TextLabel")
[Link] = 1
[Link] = [Link](0, 0, 0, 0)
[Link] = [Link](1, 0, 0, 80)
[Link] = [Link]
[Link] = ""
PlaceName.TextColor3 = [Link](255, 255, 255)
[Link] = true
PlaceName.TextStrokeColor3 = [Link](0, 0, 0)
[Link] = 0
[Link] = [Link]
[Link] = [Link]
[Link] = GameInformation
local CloseButton = [Link]("ImageButton")
[Link] = 1
[Link] = [Link](1, -37, 0, 5)
[Link] = [Link](0, 32, 0, 32)
[Link] = "rbxasset://textures/loading/[Link]"
[Link] = Information
local Message = [Link]("TextLabel")
[Link] = 1
[Link] = [Link](0.25, 0, 1, -120)
[Link] = [Link](0.5, 0, 0, 80)
[Link] = [Link]
[Link] = "Requesting Server..."
Message.TextColor3 = [Link](255, 255, 255)
[Link] = 18
[Link] = Information
local Loading = [Link]("Frame")
[Link] = 1
[Link] = [Link](1, -225, 1, -165)
[Link] = [Link](0, 120, 0, 120)
[Link] = Information
local LoadingText = [Link]("TextLabel")
[Link] = 1
[Link] = [Link](0, 28, 0, 0)
[Link] = [Link](1, -56, 1, 0)
[Link] = [Link]
[Link] = "Loading..."
LoadingText.TextColor3 = [Link](255, 255, 255)
[Link] = 18
[Link] = true
[Link] = [Link]
[Link] = Loading
local LoadingImage = [Link]("ImageLabel")
[Link] = 1
[Link] = [Link](1, 0, 1, 0)
[Link] = "rbxasset://textures/loading/[Link]"
[Link] = Loading

-- This part of the code was just straight up taken from the 2016 client, it
doesn't fully work though for some reason and will be optimised and fixed soon :)

local u1 = nil -- Yo remember to actually work on this jackass


local u2 = nil
local u3 = "..."

renderSteppedConnection = [Link]:connect(function()
if not u1 then
u1 = tick()
u2 = u1
return
end

local v28 = tick()


u1 = v28

[Link] += (v28 - u1) * 180

if 0.2 <= v28 - u2 then


u2 = v28
u3 = u3 .. "."
if u3 == "...." then
u3 = ""
end
[Link] = "Loading" .. u3
end
end)

-- End of stolen code

local VirtualMouseIconEnabled = [Link]


[Link] = false

if not game:IsLoaded() then


[Link]:Wait()
end

Message:Destroy()

local Player = [Link]


local Mouse = Player:GetMouse()

local Creator = UserService:GetUserInfosByUserIdsAsync({[Link]})[1]

if Creator then
Creator = [Link]
else
Creator = "temporary"
end

[Link] = MarketplaceService:GetProductInfo([Link]).Name
[Link] = "By " .. Creator

local function Connect(...)


return [Link]({...}, "/")
end

local function DownloadFiles(directory)


local _, Error = pcall(function()
for _, item in
pairs(HttpService:JSONDecode(game:HttpGet(Connect("[Link]
BeyondThe5D/Retrofiy/contents", directory)))) do
local NewPath = Connect(directory, item["name"])

if item["type"] == "dir" then


makefolder(NewPath)
DownloadFiles(NewPath)
elseif item["type"] == "file" and not isfile(NewPath) then
writefile(NewPath, game:HttpGet(item["download_url"]))
end
end
end)

if Error then
local Response = [Link]("BindableFunction")
[Link] = function(answer)
if answer == "Yes" then

setclipboard("[Link]
end
Response:Destroy()
end

StarterGui:SetCore("SendNotification", {
Title = "Retrofiy Error!",
Text = "Retrofiy couldn't check if you have the most up-to-date
assets installed, do you want a download link set to ur clipboard?",
Duration = [Link],
Button1 = "Yes",
Button2 = "No",
Callback = Response
})
end
end

makefolder("Retrofiy")
makefolder("Retrofiy\\Patches")
DownloadFiles("Retrofiy")

local DefaultMouse = readfile("Retrofiy/Assets/Textures/[Link]")

local FakeMouse = [Link]("Image")


[Link] = DefaultMouse
[Link] = [Link](Mouse.X - 32, Mouse.Y)
[Link] = [Link](64, 64)
[Link] = VirtualMouseIconEnabled

local OldNewIndex
OldNewIndex = hookmetamethod(game, "__newindex", newcclosure(function(self,
property, value)
if self == UserInputService and property == "MouseIconEnabled" then
VirtualMouseIconEnabled = value
return
end

return OldNewIndex(self, property, value)


end))

local OldIndex
OldIndex = hookmetamethod(game, "__index", newcclosure(function(self, property)
if self == UserInputService and property == "MouseIconEnabled" then
return VirtualMouseIconEnabled
end

return OldIndex(self, property)


end))

[Link]:Connect(function()
[Link] = [Link](Mouse.X - 32, Mouse.Y)
end)

local IconReplacement = {
[""] = DefaultMouse
}

Mouse:GetPropertyChangedSignal("Icon"):Connect(function()
--local Icon = IconReplacement[[Link]]
--local NewIcon = (Icon and readfile(Icon)) or
game:HttpGet("[Link]
Image/Png") -- placeholder
--DefaultMouse = NewIcon
--[Link] = NewIcon
end)

local function ApplyMouseHover(button)


if button:IsA("GuiObject") then
[Link]:Connect(function()
if [Link] then
[Link] =
readfile("Retrofiy/Assets/Textures/[Link]")
end
end)

[Link]:Connect(function()
[Link] = DefaultMouse
end)
end
end

for _, buttons in pairs(game:GetDescendants()) do


ApplyMouseHover(buttons)
end

[Link]:Connect(ApplyMouseHover)

[Link]:Connect(function()
[Link] = [Link]
end)

if [Link] then
local RestrictedLighting = {
["EnvironmentDiffuseScale"] = 0,
["EnvironmentSpecularScale"] = 0,
["ExposureCompensation"] = 0
}
local RestrictedEffects = {
"DepthOfFieldEffect",
"Atmosphere"
}

local function RemoveEffect(effect)


if [Link](RestrictedEffects, [Link]) then
[Link]:Wait()
effect:Destroy()
end
end

sethiddenproperty(Lighting, "Technology", [Link])

for property, value in pairs(RestrictedLighting) do


Lighting[property] = value
end

[Link]:Connect(RemoveEffect)

for _, effects in pairs(Lighting:GetDescendants()) do


RemoveEffect(effects)
end
[Link]:Connect(function(property)
local Property = RestrictedLighting[property]

if Property then
Lighting[property] = Property
end
end)
end

local OriginalChat

if [Link] then
local RetroGui = [Link]("ScreenGui")
[Link] = true
[Link] = CoreGui

local Memberships = {
["33"] = "icon_BC-[Link]",
["67"] = "icon_TBC-[Link]",
["0"] = "icon_OBC-[Link]"
}
local SpecialPlayers = {
[2601528367] = "icon_DEV-[Link]",
[3897409161] = "icon_DEV-[Link]"
}

local CanTogglePlayerlist = true


local ChosenPlayerlistVisibility = CanTogglePlayerlist

[Link] = false
[Link] = false

local Topbar = [Link]("Frame")


[Link] = true
Topbar.BackgroundColor3 = [Link](31, 31, 31)
[Link] = [Link]:GetTopbarTransparency()
[Link] = 0
[Link] = [Link](1, 0, 0, 36)
[Link] = RetroGui
local PlayerlistContainer = [Link]("ScrollingFrame")
[Link] = [Link](1, 0)
[Link] = 1
[Link] = 0
[Link] = [Link](1, 0, 0, 38)
[Link] = [Link](0, 170, 0.5, 0)
[Link] = [Link].Y
[Link] = [Link](0, 0, 0, 0)
PlayerlistContainer.ScrollBarImageColor3 = [Link](56, 56, 56)
[Link] = 6
[Link] = RetroGui
local UIListLayout = [Link]("UIListLayout")
[Link] = [Link](0, 2)
[Link] = [Link]
[Link] = PlayerlistContainer
local NameContainer = [Link]("ImageButton")
[Link] = [Link](1, 0)
[Link] = 1
[Link] = [Link](1, 0, 0, 0)
[Link] = [Link](0, 170, 1, 0)
[Link] = Topbar
local Username = [Link]("TextLabel")
[Link] = 1
[Link] = [Link](0, 7, 0, 0)
[Link] = [Link](1, -14, 0, 22)
[Link] = [Link]
[Link] = [Link]
Username.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = [Link]
[Link] = [Link]
[Link] = NameContainer
local HealthBar = [Link]("Frame")
HealthBar.BackgroundColor3 = [Link](228, 236, 246)
[Link] = 0
[Link] = [Link](0, 7, 1, -9)
[Link] = [Link](1, -14, 0, 3)
[Link] = NameContainer
local HealthFill = [Link]("Frame")
HealthFill.BackgroundColor3 = [Link](27, 252, 107)
[Link] = 0
[Link] = [Link](1, 0, 1, 0)
[Link] = HealthBar
local IconsFolder = [Link]("Folder")
[Link] = Topbar
local UIListLayout = [Link]("UIListLayout")
[Link] = [Link]
[Link] = [Link]
[Link] = IconsFolder
local KickMessage = [Link]("TextLabel")
[Link] = [Link](0.5, 0)
KickMessage.BackgroundColor3 = [Link](253, 68, 72)
[Link] = 0
[Link] = [Link](0.5, 0, 0, 36)
[Link] = [Link](0.5, 0, 0, 80)
[Link] = false
[Link] = [Link]
KickMessage.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = RetroGui

local function CreateIcon(size, image)


local Button = [Link]("ImageButton")
[Link] = 1
[Link] = [Link](0, 50, 0, 36)
[Link] = IconsFolder
local Image = [Link]("ImageLabel")
[Link] = [Link](0.5, 0.5)
[Link] = 1
[Link] = [Link](0.5, 0, 0.5, 0)
[Link] = size
[Link] = GetAsset("Retrofiy/Assets/Textures/" .. image)
[Link] = Button
return Button
end

local function AttachHumanoidToHealthBar(humanoid)


[Link] = [Link]([Link] / [Link], 0, 1,
0)
[Link]:Connect(function()
[Link] = [Link]([Link] / [Link],
0, 1, 0)
end)
end

local function TogglePlayerlist()


if CanTogglePlayerlist then
local Visibility = not [Link]

[Link] = Visibility
ChosenPlayerlistVisibility = Visibility
end
end

local ChatTextures = {
[true] = "[Link]",
[false] = "[Link]"
}
local BackpackTextures = {
[true] = "Backpack_Down.png",
[false] = "[Link]"
}

local CoreChatBools = {
["rbxasset://textures/ui/TopBar/[Link]"] = ChatTextures[true],
["rbxasset://textures/ui/TopBar/[Link]"] = ChatTextures[false]
}

local SettingsButton = CreateIcon([Link](0, 32, 0, 25), "[Link]",


0)
local ChatButton = CreateIcon([Link](0, 28, 0, 27),
CoreChatBools[[Link]
e], 0)
local BackpackButton = CreateIcon([Link](0, 22, 0, 28),
BackpackTextures[[Link]], 0)

ChatButton.MouseButton1Down:Connect(function()
if [Link] and [Link]:FindFirstChild("Chat")
then
[Link] = not
[Link]
end
end)

BackpackButton.MouseButton1Down:Connect(function()
ImprovedKeyPress({0xDF, 0xC0})
end)

NameContainer.MouseButton1Down:Connect(TogglePlayerlist)

if [Link] and [Link]:FindFirstChild("Humanoid") then


AttachHumanoidToHealthBar([Link])
end

[Link]:Connect(function(character)
AttachHumanoidToHealthBar(character:WaitForChild("Humanoid"))
end)
[Link]:Connect(function(input)
if [Link] == [Link] then
TogglePlayerlist()
end
end)

local TeamsOrderd = {}
local NeutralTeamExists = false
local Number = 0

local function ReturnNeutralCount()


local Count = 0

for _, players in pairs(Players:GetPlayers()) do


if [Link] == nil then
Count += 1
end
end

return Count
end

local function AddTeamToPlayerlist(team, color, order, neutralteam)


if neutralteam then
if NeutralTeamExists then
return
end
NeutralTeamExists = true
end

if not order then


Number += 1
end

TeamsOrderd[team] = order or Number


local Button = [Link]("ImageButton")
[Link] = team
[Link] = false
Button.BackgroundColor3 = color
[Link] = 0.5
[Link] = 0
[Link] = order or Number
[Link] = [Link](1, 0, 0, 18)
[Link] = PlayerlistContainer
local TeamName = [Link]("TextLabel")
[Link] = 1
[Link] = [Link](0.01, 1, 0, 0)
[Link] = [Link](-0.01, 170, 1, 0)
[Link] = [Link]
[Link] = team
TeamName.TextColor3 = [Link](255, 255, 243)
[Link] = 14
TeamName.TextStrokeColor3 = [Link](34, 34, 34)
[Link] = 0.75
[Link] = [Link]
[Link] = Button

if neutralteam then
[Link]("BoolValue", Button) -- A little bit stinky
end
end

local function AddPlayerToPlayerlist(player)


local Button = [Link]("ImageButton")
[Link] = [Link]
[Link] = false
Button.BackgroundColor3 = [Link](31, 31, 31)
[Link] = 0.5
[Link] = 0
if [Link] then
[Link] = TeamsOrderd[[Link]]
end
[Link] = [Link](1, 0, 0, 24)
[Link] = PlayerlistContainer
local PlayerName = [Link]("TextLabel")
[Link] = 1
[Link] = [Link](0.01, 19, 0, 0)
[Link] = [Link](-0.01, 151, 1, 0)
[Link] = [Link]
[Link] = [Link]
PlayerName.TextColor3 = [Link](255, 255, 243)
[Link] = 14
PlayerName.TextStrokeColor3 = [Link](34, 34, 34)
[Link] = 0.75
[Link] = [Link]
[Link] = Button
local Icon = [Link]("ImageLabel")
[Link] = 1
[Link] = [Link](0.01, 1, 0.5, -8)
[Link] = [Link](0, 16, 0, 16)
[Link] = Button

local function CheckTeams()


if #Teams:GetChildren() > 0 then
if [Link] then
[Link] = TeamsOrderd[[Link]]
else
AddTeamToPlayerlist("Neutral", [Link](255,
255, 255), MaxInteger[true], true)
[Link] = MaxInteger[true]
end
end
end

CheckTeams()

player:GetPropertyChangedSignal("Team"):Connect(function()
CheckTeams()

if ReturnNeutralCount() <= 0 and


PlayerlistContainer:FindFirstChild("Neutral") then
for _, teams in pairs(PlayerlistContainer:GetChildren()) do
if teams:FindFirstChildOfClass("BoolValue") then
NeutralTeamExists = false
teams:Destroy()
end
end
end
end)

[Link]([Link](function()
local SpecialPlayer = SpecialPlayers[[Link]]

if [Link] == [Link] then


[Link] =
GetAsset("Retrofiy/Assets/Textures/icon_placeowner.png")
elseif SpecialPlayer then
[Link] = GetAsset("Retrofiy/Assets/Textures/" ..
SpecialPlayer)
elseif player:IsInGroup(1200769) then
[Link] = GetAsset("Retrofiy/Assets/Textures/icon_admin-
[Link]")
elseif [Link] == [Link] then
if [Link] then
[Link] = GetAsset("Retrofiy/Assets/Textures/" ..
Memberships["33"])
else
[Link] = GetAsset("Retrofiy/Assets/Textures/" ..
Memberships[tostring([Link](([Link] / 3) * 100) * 0.01):split(".")[2] or
"0"])
end
end
end))
end

for _, teams in pairs(Teams:GetChildren()) do


if teams:IsA("Team") then
AddTeamToPlayerlist([Link], [Link])
end
end

[Link]:Connect(AddPlayerToPlayerlist)

for _, players in pairs(Players:GetPlayers()) do


AddPlayerToPlayerlist(players)
end

[Link]:Connect(function(player)
if PlayerlistContainer:FindFirstChild([Link]) then
PlayerlistContainer[[Link]]:Destroy()
end
end)

if [Link] and [Link]:FindFirstChild("Chat") then --


Need to properly check if this is how it would work
[Link]:Connect(function()
[Link] =
GetAsset("Retrofiy/Assets/Textures/" ..
ChatTextures[[Link]])
end)
end

[Link]:Connect(function()
[Link] =
GetAsset("Retrofiy/Assets/Textures/" ..
BackpackTextures[[Link]])
end)
local function ConvertScrollingFrame(scrollingframe) -- Maybe change the
thickness of the scrollbar to?
if scrollingframe:IsA("ScrollingFrame") then
scrollingframe.ScrollBarImageColor3 = [Link](56, 56, 56)
[Link] = 0
[Link]:Connect(function()
scrollingframe.ScrollBarImageColor3 = [Link](56,
56, 56)
[Link] = 0
end)
end
end

[Link]:Connect(ConvertScrollingFrame)

for _, scrollingframes in pairs(game:GetDescendants()) do


ConvertScrollingFrame(scrollingframes)
end

local MessageReplacement = {
["You have been kicked from the game"] = "You have lost the connection
to the game",
["Player service requests player disconnect"] = "This game has shut
down"
}

local function DestroyGui(gui)


if gui ~= OriginalChat then
gui:Destroy()
end
end

local RemovedGuis = false

[Link]:Connect(function(message)
if not RemovedGuis then
RemovedGuis = true

[Link]:Connect(DestroyGui)

for _, guis in pairs([Link]:GetChildren()) do


DestroyGui(guis)
end
end

GuiService:ClearError()

[Link] = MessageReplacement[message] or message


[Link] = true
end)

local HealthBarNamePosition = {
[true] = [Link](0, 7, 0, 0),
[false] = [Link](0, 7, 0, 3)
}

local Hints = {}
local function ConvertHint(object)
if object:IsA("Hint") then
[Link]:Wait()

local Hint = [Link]("TextLabel")


Hint.BackgroundColor3 = [Link](0, 0, 0)
[Link] = 0
[Link] = [Link](0, 0, 0, 36)
[Link] = [Link](1, 0, 0, 20)
[Link] = 0
[Link] = [Link]
[Link] = [Link]
Hint.TextColor3 = [Link](255, 255, 255)
[Link] = 21
[Link] = RetroGui

local FakeHint = [Link]("TextLabel")


[Link] = [Link]
[Link] = [Link]
[Link] = [Link]

[Link](Hints, FakeHint)

[Link] = game:GetService("BrowserService")

FakeHint:GetPropertyChangedSignal("Text"):Connect(function()
[Link] = [Link]
[Link] = [Link]
end)

[Link]:Connect(function()
[Link](Hints, [Link](Hints, FakeHint))
Hint:Destroy()
object:Destroy()
end)

object:GetPropertyChangedSignal("Text"):Connect(function()
[Link] = [Link]
[Link] = [Link]
end)
object:GetPropertyChangedSignal("Parent"):Connect(function()
if not object:IsDescendantOf(workspace) then
Hint:Destroy()
[Link](Hints, [Link](Hints, FakeHint))
end
end)
end
end

local OldNameCall
OldNameCall = hookmetamethod(game, "__namecall",
newcclosure(function(self, ...)
local Method = getnamecallmethod()
local Args = {...}

if checkcaller() then
if tostring(Args[1]) == "Hint" and Method ==
"FindFirstChildWhichIsA" then
return Hints[1]
end
end

return OldNameCall(self, ...)


end))

[Link]:Connect(ConvertHint)

for _, objects in pairs(workspace:GetDescendants()) do


ConvertHint(objects)
end

[Link]:Connect(function()
local PlayerlistVisibility =
StarterGui:GetCoreGuiEnabled([Link])
local HealthVisibility =
StarterGui:GetCoreGuiEnabled([Link])

if not PlayerlistVisibility then


CanTogglePlayerlist = false
[Link] = false
else
if not CanTogglePlayerlist then
CanTogglePlayerlist = true
[Link] = ChosenPlayerlistVisibility
end
end

[Link] =
[Link]:GetTopbarTransparency()
[Link] =
StarterGui:GetCoreGuiEnabled([Link])
[Link] =
StarterGui:GetCoreGuiEnabled([Link])
[Link] = HealthVisibility
[Link] = HealthVisibility or PlayerlistVisibility
[Link] = HealthBarNamePosition[HealthVisibility]
end)
end

if [Link] then
local Surface = {"BackSurface", "BottomSurface", "FrontSurface",
"LeftSurface", "RightSurface", "TopSurface"}
local _Faces = {"Back", "Bottom", "Front", "Left", "Right", "Top"}

local function ConvertBasePart(basepart)


if [Link] and Players:FindFirstChild([Link])
then -- Try remove
if [Link] then
if not Players[[Link]]:HasAppearanceLoaded()
then

Players[[Link]].CharacterAppearanceLoaded:Wait()
end
end

if [Link] then
[Link]:WaitForChild("Humanoid", 2)
end
end

for face, surface in pairs(Surface) do


if basepart:IsA("BasePart") and not
basepart:IsA("UnionOperation") and [Link] and not
basepart:FindFirstChildOfClass("MeshPart") and not
basepart:FindFirstChildOfClass("SpecialMesh") and not
[Link]:FindFirstChildOfClass("Humanoid") and [Link] ==
[Link] and basepart[surface] == [Link] then
local Studs = [Link]("Texture")
Studs.Color3 = [Link] -- omg lua
Studs.Color3 = [Link](Studs.Color3.R * 2,
Studs.Color3.G * 2, Studs.Color3.B * 2)
[Link] = 4
[Link] =
GetAsset("Retrofiy/Assets/Textures/[Link]")
[Link] = [Link]
[Link] = MaxInteger[false]
[Link] = _Faces[face]
[Link] = basepart

basepart:GetPropertyChangedSignal("Color"):Connect(function()
Studs.Color3 = [Link] -- omg lua
Studs.Color3 = [Link](Studs.Color3.R * 2,
Studs.Color3.G * 2, Studs.Color3.B * 2)
end)

basepart:GetPropertyChangedSignal("Transparency"):Connect(function()
[Link] = [Link]
end)
end
end
end

[Link]:Connect(ConvertBasePart)

for _, baseparts in pairs(workspace:GetDescendants()) do


[Link]([Link](function()
ConvertBasePart(baseparts)
end))
end

sethiddenproperty(workspace:FindFirstChildOfClass("Terrain"), "Decoration",
false)

MaterialService.Use2022Materials = false

MaterialService:GetPropertyChangedSignal("Use2022Materials"):Connect(function()
MaterialService.Use2022Materials = false
end)
end

if [Link] then
local Humanoids = {}

local WomanLegs = {
[746826007] = 81628361, -- Uses Roblox assets, need to try use a
downloaded mesh instead
[746825633] = 81628308
}

local Conversion = {
["Humanoid"] = function(humanoid)
if [Link] ==
[Link] then
[Link] =
[Link]
end

if [Link] ~= humanoid and not


[Link](Humanoids, humanoid) then
[Link](Humanoids, humanoid)
end
end,
["Sound"] = function(sound)
if [Link] == "rbxasset://sounds/uuhhh.mp3" then
[Link] =
GetAsset("Retrofiy/Assets/Sounds/uuhhh.mp3")
end
end,
["CharacterMesh"] = function(charactermesh)
local MeshId = WomanLegs[[Link]]

if MeshId then
[Link] = MeshId
end
end
}

local function ConvertCharacter(object)


local Convert = Conversion[[Link]]

if Convert then
Convert(object)
end
end

[Link]:Connect(ConvertCharacter)

for _, objects in pairs(workspace:GetDescendants()) do


ConvertCharacter(objects)
end

[Link]:Connect(function(object)
if [Link](Humanoids, object) then
[Link](Humanoids, [Link](Humanoids, object))
end
end)

local PreviousCameraSubject = [Link]

[Link]:GetPropertyChangedSignal("CameraSubject"):Connect(function(
)
if [Link](Humanoids, [Link]) then
[Link](Humanoids, [Link](Humanoids,
[Link]))
else
ConvertCharacter(PreviousCameraSubject)
end

PreviousCameraSubject = [Link]
end)

[Link]([Link](function()
while true do
while #Humanoids > 0 do
for _, humanoids in pairs(Humanoids) do -- Does not work if
player has infinite health!
[Link] += 0.001
[Link]:Wait()
[Link] -= 0.001
end
end

[Link]:Wait()
end
end))
end

if [Link] then
if [Link] and [Link]:FindFirstChild("Chat") then --
Could be optimised/Rewritten (Might be better to just straight up use the 2016 chat
code)
OriginalChat = [Link]

local ChatFrame = [Link]


[Link] = [Link](0, 0, 1, -23)
[Link] = [Link](1, 0, 0, 32)
[Link] = [Link](0, 7,
0, 5)
[Link] = [Link](1, -14, 1,
-10)
[Link] =
[Link](0, 7, 0, 2)
local Scroller =
[Link]["Frame_MessageLogDisplay"].Scroller
[Link] = [Link]

[Link] = [Link](1, 0, 1, -27)

for _, messages in pairs(Scroller:GetChildren()) do


local TextLabel = messages:FindFirstChildOfClass("TextLabel")

if TextLabel and [Link] == "Chat '/?' or '/help' for a


list of chat commands." then
[Link] = "Please chat '/?' for a list of commands"
end
end

[Link]:Connect(function(
)
[Link] = [Link](1, 0, 0, 40)
[Link] =
[Link](0, 7, 0, 6)
repeat

[Link] = 0.1

[Link]:GetPropertyChangedSignal("BackgroundTra
nsparency"):Wait()
until
not
[Link]:IsFocused()
[Link] = [Link](1, 0, 0, 32)
[Link] =
[Link](0, 7, 0, 2)
end)

[Link]:Connect(function(object)
if object:FindFirstChildOfClass("TextLabel") then
local Message = object:FindFirstChildOfClass("TextLabel")

if not Message:FindFirstChildOfClass("TextButton") then


if [Link]:find("Your friend ") then
[Link]:Wait()
object:Destroy()
end
end
end
end)

local function UpdateBarThickness()


if [Link] == 4 then
[Link] = 7
end
end

Scroller:GetPropertyChangedSignal("ScrollBarThickness"):Connect(UpdateBarThickness)
-- Might not effect chat

UpdateBarThickness()
end
end

local Patch = "Retrofiy\\Patches\\" .. [Link] .. ".lua"

if isfile(Patch) then
loadstring(readfile(Patch))()
end

LoadingScreen:Destroy()

You might also like