How could I make my script look better

How could I make this script look better??

local MainFrame = script.Parent.Frame

local TweenService = game:GetService("TweenService")
local PromptInfoE = TweenInfo.new(0.4, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out)
local PromptInfo2E = TweenInfo.new(0.5, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out)
local PromptInfo3E = TweenInfo.new(0.6, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out)
local PromptInfoL = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.In)

local PromptInfoTransparency = TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut)

local bigOnesOpen = false
local coinsOpen = false

local bigOnes = MainFrame.BigOnes
local Coins = MainFrame.Coins
local BO = MainFrame.BO
local C = MainFrame.C
local BOText = MainFrame.BOText
local CText = MainFrame.CText

local prompt1 = MainFrame.Prompt1
local prompt2 = MainFrame.Prompt2
local prompt3 = MainFrame.Prompt3
local prompt4 = MainFrame.Prompt4
local prompt5 = MainFrame.Prompt5
local prompt6 = MainFrame.Prompt6

-- GOALS
local Prompt1GoalE = {}
Prompt1GoalE.Position = UDim2.new(0, 15, 0, 72)
local Prompt2GoalE = {}
Prompt2GoalE.Position = UDim2.new(0, 272, 0, 72)
local Prompt3GoalE = {}
Prompt3GoalE.Position = UDim2.new(0, 15, 0, 159)
local Prompt4GoalE = {}
Prompt4GoalE.Position = UDim2.new(0, 272, 0, 159)
local Prompt5GoalE = {}
Prompt5GoalE.Position = UDim2.new(0, 15, 0, 245)
local Prompt6GoalE = {}
Prompt6GoalE.Position = UDim2.new(0, 272, 0, 245)

local Prompt1GoalL = {}
Prompt1GoalL.Position = UDim2.new(0, -258, 0, 72)
local Prompt2GoalL = {}
Prompt2GoalL.Position = UDim2.new(0, 544, 0, 72)
local Prompt3GoalL = {}
Prompt3GoalL.Position = UDim2.new(0, -288, 0, 157)
local Prompt4GoalL = {}
Prompt4GoalL.Position = UDim2.new(0, 572, 0, 157)
local Prompt5GoalL = {}
Prompt5GoalL.Position = UDim2.new(0, -318, 0, 242)
local Prompt6GoalL = {}
Prompt6GoalL.Position = UDim2.new(0, 602, 0, 242)

local Prompt1GoalET = {}
Prompt1GoalET.BackgroundTransparency = 0
local Prompt2GoalET = {}
Prompt2GoalE.BackgroundTransparency = 0
local Prompt3GoalET = {}
Prompt3GoalET.BackgroundTransparency = 0
local Prompt4GoalET = {}
Prompt4GoalET.BackgroundTransparency = 0
local Prompt5GoalET = {}
Prompt5GoalET.BackgroundTransparency = 0
local Prompt6GoalET = {}
Prompt6GoalET.BackgroundTransparency = 0

local Prompt1GoalLT = {}
Prompt1GoalLT.BackgroundTransparency = 1
local Prompt2GoalLT = {}
Prompt2GoalLT.BackgroundTransparency = 1
local Prompt3GoalLT = {}
Prompt3GoalLT.BackgroundTransparency = 1
local Prompt4GoalLT = {}
Prompt4GoalLT.BackgroundTransparency = 1
local Prompt5GoalLT = {}
Prompt5GoalLT.BackgroundTransparency = 1
local Prompt6GoalLT = {}
Prompt6GoalLT.BackgroundTransparency = 1

-- TWEENS
local prompt1GoalETween = TweenService:Create(prompt1, PromptInfoE, Prompt1GoalE)
local prompt2GoalETween = TweenService:Create(prompt2, PromptInfoE, Prompt2GoalE)
local prompt3GoalETween = TweenService:Create(prompt3, PromptInfo2E, Prompt3GoalE)
local prompt4GoalETween = TweenService:Create(prompt4, PromptInfo2E, Prompt4GoalE)
local prompt5GoalETween = TweenService:Create(prompt5, PromptInfo3E, Prompt5GoalE)
local prompt6GoalETween = TweenService:Create(prompt6, PromptInfo3E, Prompt6GoalE)

local prompt1GoalLTween = TweenService:Create(prompt1, PromptInfoL, Prompt1GoalL)
local prompt2GoalLTween = TweenService:Create(prompt2, PromptInfoL, Prompt2GoalL)
local prompt3GoalLTween = TweenService:Create(prompt3, PromptInfoL, Prompt3GoalL)
local prompt4GoalLTween = TweenService:Create(prompt4, PromptInfoL, Prompt4GoalL)
local prompt5GoalLTween = TweenService:Create(prompt5, PromptInfoL, Prompt5GoalL)
local prompt6GoalLTween = TweenService:Create(prompt6, PromptInfoL, Prompt6GoalL)

local prompt1GoalEtTween = TweenService:Create(prompt1, PromptInfoTransparency, Prompt1GoalET)
local prompt2GoalEtTween = TweenService:Create(prompt2, PromptInfoTransparency, Prompt2GoalET)
local prompt3GoalEtTween = TweenService:Create(prompt3, PromptInfoTransparency, Prompt3GoalET)
local prompt4GoalEtTween = TweenService:Create(prompt4, PromptInfoTransparency, Prompt4GoalET)
local prompt5GoalEtTween = TweenService:Create(prompt5, PromptInfoTransparency, Prompt5GoalET)
local prompt6GoalEtTween = TweenService:Create(prompt6, PromptInfoTransparency, Prompt6GoalET)

local prompt1GoalLtTween = TweenService:Create(prompt1, PromptInfoTransparency, Prompt1GoalLT)
local prompt2GoalLtTween = TweenService:Create(prompt2, PromptInfoTransparency, Prompt2GoalLT)
local prompt3GoalLtTween = TweenService:Create(prompt3, PromptInfoTransparency, Prompt3GoalLT)
local prompt4GoalLtTween = TweenService:Create(prompt4, PromptInfoTransparency, Prompt4GoalLT)
local prompt5GoalLtTween = TweenService:Create(prompt5, PromptInfoTransparency, Prompt5GoalLT)
local prompt6GoalLtTween = TweenService:Create(prompt6, PromptInfoTransparency, Prompt6GoalLT)

bigOnes.MouseButton1Click:Connect(function()
	if bigOnesOpen == false then
		
		print("hgff")
		bigOnesOpen = true
		prompt1GoalETween:Play()
		prompt2GoalETween:Play()
		prompt3GoalETween:Play()
		prompt4GoalETween:Play()
		prompt5GoalETween:Play()
		prompt6GoalETween:Play()
		
		prompt1GoalEtTween:Play()
		prompt2GoalEtTween:Play()
		prompt3GoalEtTween:Play()
		prompt4GoalEtTween:Play()
		prompt5GoalEtTween:Play()
		prompt6GoalEtTween:Play()
		
	elseif bigOnesOpen == true then
		
		print("fdsgf")
		bigOnesOpen = false
		prompt1GoalLTween:Play()
		prompt2GoalLTween:Play()
		prompt3GoalLTween:Play()
		prompt4GoalLTween:Play()
		prompt5GoalLTween:Play()
		prompt6GoalLTween:Play()
		
		prompt1GoalLtTween:Play()
		prompt2GoalLtTween:Play()
		prompt3GoalLtTween:Play()
		prompt4GoalLtTween:Play()
		prompt5GoalLtTween:Play()
		prompt6GoalLtTween:Play()
		
	end

end)

I would put all your prompts and their tweens into a big table like this:

local Prompts = {
	MainFrame.Prompt1,
	MainFrame.Prompt2,
	MainFrame.Prompt3,
	MainFrame.Prompt4,
	MainFrame.Prompt5,
	MainFrame.Prompt6
}

local Tweens = {
	E = {
		TweenService:Create(Prompts[1], PromptInfoE, { Position = UDim2.new(0, 15, 0, 72) }),
		TweenService:Create(Prompts[2], PromptInfoE, { Position = UDim2.new(0, 272, 0, 72) }),
		...
	},
	L = {
		...
	},
	Et = {
		...
	},
	Lt = {
		...
	}
}

Also, you can instead make a function for each animation with an original position attribute from the prompt. You could call it like this:

for _, prompt in Prompts do
    PlayETween(prompt)
end
1 Like