local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local shopUI = playerGui:WaitForChild("ShopUI")
local sideUI = playerGui:WaitForChild("SideUI")
local upgradeUI = playerGui:WaitForChild("UpgradeUI")
local clickSound = ReplicatedStorage.Audio.ClickSound
local shopMain = shopUI:WaitForChild("Frame")
local categories = shopMain.Categories.ButtonBar
local itemFrame = shopMain.Items.ItemsFrame
local pointsFrame = shopMain.Points.PointsFrame
local passes = shopMain.Passes.GamepassFrame
local viewFrames = shopMain.ViewFrames
local COLOR_NEW = Color3.fromRGB(115, 188, 214)
local COLOR_DEFAULT = Color3.fromRGB(76, 83, 85)
local MEDKIT_LEVEL = 10
local CROWBAR_LEVEL = 25
local BACKPACK_LEVEL = 50
local KEY_DETECTOR_LEVEL = 100
local functions = {}
function functions.changeCategoryColor(categoryFrame, frame)
clickSound:Play()
for _, categoryFrame in ipairs(categories:GetChildren()) do
categoryFrame.ImageColor3 = COLOR_DEFAULT
end
frame.ImageColor3 = COLOR_NEW
end
function functions.changeButtonColor(sideUIbutton)
for _, buttons in ipairs(sideUI:GetChildren()) do
buttons.ImageColor3 = COLOR_DEFAULT
end
sideUIbutton.ImageColor3 = COLOR_NEW
end
function functions.viewItemFrame(frame)
clickSound:Play()
for _, viewFrame in ipairs(viewFrames:GetChildren()) do
viewFrame.Visible = nil
end
itemFrame.Visible = nil
frame.Visible = true
end
function functions.viewCategoryFrame(frame)
clickSound:Play()
for _, viewFrame in ipairs(viewFrames:GetChildren()) do
viewFrame.Visible = nil
end
pointsFrame.Visible = nil
itemFrame.Visible = nil
passes.Visible = nil
frame.Visible = true
end
function functions.viewBack(frame)
clickSound:Play()
for _, viewFrame in ipairs(viewFrames:GetChildren()) do
viewFrame.Visible = nil
end
itemFrame.Visible = true
end
function functions.viewScreenGUI(screenGui)
clickSound:Play()
local guisToUnView = {upgradeUI, shopUI}
for _, guis in ipairs(guisToUnView) do
guis.Enabled = false
end
screenGui.Enabled = true
end
function functions.levelHandle(medKitName, crowbarName, backpackName, KeyDetectorName)
player.leaderstats.Level.Changed:Connect(function()
for _, frame in ipairs(itemFrame.ScrollingFrame:GetChildren()) do
if frame:IsA("ImageLabel") then
if frame.Name == medKitName then
if player.leaderstats.Level.Value >= MEDKIT_LEVEL then
frame.LockedFrame:Destroy()
frame.BuyFrame.Visible = true
end
elseif frame.Name == crowbarName then
if player.leaderstats.Level.Value >= CROWBAR_LEVEL then
frame.LockedFrame:Destroy()
frame.BuyFrame.Visible = true
end
elseif frame.Name == backpackName then
if player.leaderstats.Level.Value >= BACKPACK_LEVEL then
frame.LockedFrame:Destroy()
frame.BuyFrame.Visible = true
end
elseif frame.Name == KeyDetectorName then
if player.leaderstats.Level.Value >= KEY_DETECTOR_LEVEL then
frame.LockedFrame:Destroy()
frame.BuyFrame.Visible = true
end
end
end
end
end)
end
function functions.updateText(text)
text.Text = tostring(player.leaderstats.Points.Value)
end
return functions
Here’s what I want reviewed.
Script efficiency, will my script impact performance?
Are my variables efficient?
Here’s what I don’t want reviewed.
Script readbility.
Just a quick note to help you save up some time!
