Freddy Fazbear Ethan's Portfolio
No BGM Loaded
UI, SCRIPTING

Soul Selection │ Roblox Studios

A set of questions intended to determine which moveset the player should use based on their answers

Soul Selection │ Roblox Studios.lua
Lua
local player = game.Players.LocalPlayer
local character = player.Character
local screen = player.PlayerGui.SoulSelection
local soul = screen.Animated.ImageLabel
local but1 = screen.Button1.TextButton
local but2 = screen.Button2.TextButton
local but3 = screen.Button3.TextButton
local Box = screen.Question

local Question = 1
local Name = screen.Box.TextBox.Text

local Questions = {"If someone were to attack you, what would you do?",
	"If someone was to call for help, what would you do?",
	"What do you view strangers as?",
	"What is your favourite colour?",
	"Whats the best route to take in life?",
	"Whats the Route to happiness?",
	"What makes a person strong?",
	"What makes a person beautiful?",
	"Whats Emotion do you like more?",
	"What do you think of people who group together?",
	"Are people born evil?",
	"And lastly... What is your name?"
}

local Ans1 = {
	"Defend myself with reasonable force",
	"Run to help them",
	"Possible Friends",
	"Green or Yellow",
	"Put others up",
	"Friends and Family",
	"Being able to protect the weak",
	"Personality",
	"Happiness",
	"Depends on why",
	"No its how they're brought up"
}

local Ans2 = {
	"Any means necessary",
	"Ignore them",
	"Objects",
	"Red or Orange",
	"Put Others down",
	"Dominate to get what you want",
	"Power",
	"How useful they are",
	"Anger",
	"Weak",
	"Yes"
}

local Ans3 = {
	"Call for help",
	"Call the police",
	"Random people",
	"Blue or Cyan",
	"Put yourself up",
	"Money",
	"Connections",
	"The Body",
	"Neutral",
	"Smart",
	"What is evil depends on the person"
}
	
	

local EvilV = 255
local HelpfulV = 255
local GoodV = 255
local SC = soul.ImageColor3
local EvilT = 0
local HelpfulT = 0
local GoodT = 0
local done = false

local R = soul.ImageColor3.R
local B = soul.ImageColor3.B
local G = soul.ImageColor3.G



local tween = game:GetService("TweenService")


local Per = 255 / 11




local rp = game:GetService("ReplicatedStorage")
local events = rp.BasicCombatEvents

local box = screen.Box

box.TextBox.Focused:Connect(function()
	print("Focused")
end)

box.TextBox.FocusLost:Connect(function(enterPressed, inputObject)
	if enterPressed then
		print("Enter pressed")
		Name = box.TextBox.Text
		print(Name)
		wait(0.1)
		Box.TextLabel.Text = Name.. "? What a wonderful name. you have found your true self and may go."
		box.Visible = false
		if EvilT >= 5 and HelpfulT < 5 and GoodT < 5 then
			local trait1 = Instance.new("IntValue")
			trait1.Name = "Evil"
			trait1.Parent = character
			print(EvilT,HelpfulT,GoodT,trait1.Name)
		elseif EvilT >= 5 and HelpfulT >= 5 and GoodT < 5 then
			local trait2 = Instance.new("IntValue")
			trait2.Name = "Selfish"
			trait2.Parent = character
			print(EvilT,HelpfulT,GoodT,trait2.Name)
		elseif EvilT >= 5 and HelpfulT < 5 and GoodT >= 5 then
			local trait3 = Instance.new("IntValue")
			trait3.Name = "Morally Grey"
			trait3.Parent = character
			print(EvilT,HelpfulT,GoodT,trait3.Name)
		elseif EvilT < 5 and HelpfulT >= 5 and GoodT < 5 then
			local trait3 = Instance.new("IntValue")
			trait3.Name = "Logical"
			trait3.Parent = character
			print(EvilT,HelpfulT,GoodT,trait3.Name)
		elseif EvilT < 5 and HelpfulT >= 5 and GoodT >= 5 then
			local trait3 = Instance.new("IntValue")
			trait3.Name = "Calculated"
			trait3.Parent = character
			print(EvilT,HelpfulT,GoodT,trait3.Name)
		elseif EvilT < 5 and HelpfulT < 5 and GoodT >= 5 then
			local trait3 = Instance.new("IntValue")
			trait3.Name = "Good"
			trait3.Parent = character
			print(EvilT,HelpfulT,GoodT,trait3.Name)
		elseif EvilT == 3 and HelpfulT == 3 and GoodT == 3 then
			local trait3 = Instance.new("IntValue")
			trait3.Name = "Neutral"
			trait3.Parent = character
			print(EvilT,HelpfulT,GoodT,trait3.Name)
		else 
			local trait3 = Instance.new("IntValue")
			trait3.Name = "???"
			trait3.Parent = character
			print(EvilT,HelpfulT,GoodT,trait3.Name)
		end
		wait(3)
		rp.Events.Genral.TestFinished:FireServer(player)
		screen.BG.Visible = false
		soul.Visible = false
		screen.Question.Visible = false
	else
		print("Focus lost")
		end
end)

but3.MouseButton1Click:Connect(function()
	if Question <= 10 then
		EvilV = EvilV - Per
		GoodV = GoodV - Per
		HelpfulT += 1
		Question += 1
		SC = Color3.fromRGB(EvilV,GoodV,HelpfulV)
		local A1T = tween:Create(soul,TweenInfo.new(0.5,Enum.EasingStyle.Linear,Enum.EasingDirection.In,0,false), {ImageColor3 = SC})
		A1T:Play()
		Box.TextLabel.Text = Questions[Question]
		but1.Text = Ans1[Question]
		but2.Text = Ans2[Question]
		but3.Text = Ans3[Question]
	elseif Question >= 11 then
		Question += 1
		HelpfulT += 1
		Box.TextLabel.Text = Questions[Question]
		EvilV = EvilV - Per
		GoodV = GoodV - Per
		SC = Color3.fromRGB(EvilV,GoodV,HelpfulV)
		local A1T = tween:Create(soul,TweenInfo.new(0.5,Enum.EasingStyle.Linear,Enum.EasingDirection.In,0,false), {ImageColor3 = SC})
		A1T:Play()
		but1.Active = false
		but1.Parent.Visible = false
		but3.Active = false
		but3.Parent.Visible = false
		but2.Active = false
		but2.Parent.Visible = false
		box.Visible = true
	end
end)

but2.MouseButton1Click:Connect(function()
	if Question <= 10 then
		HelpfulV = HelpfulV - Per
		GoodV = GoodV - Per
		Question += 1
		EvilT += 1
		SC = Color3.fromRGB(EvilV,GoodV,HelpfulV)
		local A2T = tween:Create(soul,TweenInfo.new(0.5,Enum.EasingStyle.Linear,Enum.EasingDirection.In,0,false), {ImageColor3 = SC})
		A2T:Play()
		Box.TextLabel.Text = Questions[Question]
		but1.Text = Ans1[Question]
		but2.Text = Ans2[Question]
		but3.Text = Ans3[Question]
	elseif Question >= 11 then
		Question += 1
		EvilT += 1
		HelpfulV = HelpfulV - Per
		GoodV = GoodV - Per
		SC = Color3.fromRGB(EvilV,GoodV,HelpfulV)
		local A2T = tween:Create(soul,TweenInfo.new(0.5,Enum.EasingStyle.Linear,Enum.EasingDirection.In,0,false), {ImageColor3 = SC})
		A2T:Play()
		but1.Active = false
		Box.TextLabel.Text = Questions[Question]
		but1.Parent.Visible = false
		but3.Active = false
		but3.Parent.Visible = false
		but2.Active = false
		but2.Parent.Visible = false
		box.Visible = true
	end
end)

but1.MouseButton1Click:Connect(function()
	if Question <= 10 then
		HelpfulV = HelpfulV - Per
		EvilV = EvilV -  Per
		GoodT += 1
		Question += 1
		SC = Color3.fromRGB(EvilV,GoodV,HelpfulV)
		local A3T = tween:Create(soul,TweenInfo.new(0.5,Enum.EasingStyle.Linear,Enum.EasingDirection.In,0,false), {ImageColor3 = SC})
		A3T:Play()
		Box.TextLabel.Text = Questions[Question]
		but1.Text = Ans1[Question]
		but2.Text = Ans2[Question]
		but3.Text = Ans3[Question]
	elseif Question >= 11 then
		Question += 1
		GoodT += 1	
		HelpfulV = HelpfulV - Per
		EvilV = EvilV -  Per
		SC = Color3.fromRGB(EvilV,GoodV,HelpfulV)
		local A3T = tween:Create(soul,TweenInfo.new(0.5,Enum.EasingStyle.Linear,Enum.EasingDirection.In,0,false), {ImageColor3 = SC})
		A3T:Play()
		Box.TextLabel.Text = Questions[Question]
		but1.Active = false
		but1.Parent.Visible = false
		but3.Active = false
		but3.Parent.Visible = false
		but2.Active = false
		but2.Parent.Visible = false
		box.Visible = true
	end
end)

Description

A set of questions intended to determine which moveset the player should use based on their answers

Tags

Roblox Studios UI Design Scripting