Attempt to index nil with "FloorIndicator"

Hey there! I’m currently experiencing errors with my Object Oriented Programming Elevator! One of the errors includes me trying to set the color of something inside of self.FloorIndicator, though, it is returning it as nil. Secondly, there is a error on my client-sided script related to Remote Events. I cannot send the number value through the remote event, and I’ve tried math.abs, tostring, and string.format. I have tried everything I know but cannot seem to find a fix to either error.

MODULE:
LINE 36

-- Services
local RunService = game:GetService("RunService")
local PlayerService = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Overture = require(ReplicatedStorage:WaitForChild("Overture", 3))
local Maid = Overture:LoadLibrary("Maid")
local sPlayers = Overture:LoadLibrary("sPlayers")
local sFunctions = Overture:LoadLibrary("sFunctions")

-- Variables
local Retrieve = sFunctions.Retrieve
local IsInTable = sFunctions.IsInTable
local ElevatorReplication = Overture:GetRemoteEvent("ElevatorReplication")
local IsClient = RunService:IsClient()
local IsServer = RunService:IsServer()

-- Main Code
local Elevator = {}

function Elevator:new(elevator)
	local self = setmetatable({}, Elevator)
	self.FloorIndicator1 = elevator.DoorStuff.FloorIndicator
	self.FloorIndicator2 = elevator.Cabin.FloorIndicator
	self.ExteriorDoors = elevator.DoorStuff
	self.Configuration = elevator:WaitForChild("Configuration", 5)
	self.FloorNumber = Retrieve("FloorNumber", "NumberValue", self.Configuration)
	self.Moving = Retrieve("Moving", "BoolValue", self.Configuration)
	self.Maid = Maid.new()
	-- self.Maid:LinkToInstance(self.Parent)
end

function Elevator:ChangeIndicator(specificIndicator, var)
	if specificIndicator == "Floor" then
		if var == 0 then
			print("0")
			print(self.FloorIndicator1.FloorIndicator.IndicatorStuff.FloorIndicator1["1"]["1"])
		elseif var == 1 then
			print("1")
		elseif var == 2 then
			print("2")
		elseif var == 3 then
			print("3")
		elseif var == 4 then
			print("4")
		elseif var == 5 then
			print("5")
		end
	elseif specificIndicator == "Up" then
		if var == "UpArrow" then
			print("Up")
		end
		if var == "Clear" then
			print("Clear")
		else
			-- assert("The variable "..var" belonging to "..specificIndicator" does not exist")
		end
	elseif specificIndicator == "Down" then
		if var == "DownArrow" then
			print("Up")
		elseif var == "X" then
			print("X")
		elseif var == "Clear" then
			print("Clear")
		else
			assert("The variable "..var.."belonging to "..specificIndicator" does not exist")
		end
	else
		-- assert("The indicator"..specificIndicator" does not exist")
	end
end

function Elevator:UpdateDoors(zero, one, two, three, four, five)
	if not zero then
		-- code
	elseif zero then
		-- code
	end
	if not one then
		-- code
	elseif one then
		-- code
	end
	if not two then
		-- code
	elseif two then
		-- code
	end
	if not three then
		-- code
	elseif three then
		-- code
	end
	if not four then
		-- code
	elseif four then
		-- code
	end
	if not five then
		-- code
	elseif five then
		-- code
	end
end

function Elevator:WaitForElevator(floor)
	local firstPosition
	local secondPosition
	
	self.Moving = true
	
	while self.Moving do
		firstPosition = nil
		wait(0.15)
		secondPosition = nil
		if firstPosition == secondPosition then
			self.Moving = false
		end 
	end
	if floor == "0" then
		Elevator:UpdateDoors(true, false, false, false, false, false)
		self.FloorNumber = 0
	elseif floor == "1" then
		Elevator:UpdateDoors(false, true, false, false, false, false)
		self.FloorNumber = 1
	elseif floor == "2" then
		Elevator:UpdateDoors(false, false, true, false, false, false)
		self.FloorNumber = 2
	elseif floor == "3" then
		Elevator:UpdateDoors(false, false, false, true, false, false)
		self.FloorNumber = 3
	elseif floor == "4" then
		Elevator:UpdateDoors(true, false, false, false, true, false)
		self.FloorNumber = 4
	elseif floor == "5" then
		Elevator:UpdateDoors(true, false, false, false, false, true)
		self.FloorNumber = 5
	end
	
	Elevator:ChangeIndicator("Up", "Clear")
	Elevator:ChangeIndicator("Down", "Clear")
	wait(0.05)
	Elevator:ChangeIndicator("Down", "X")
	wait(0.25)
	Elevator:ChangeIndicator("Down", "Clear")
end

return Elevator

SERVER:
LINE 23

-- Services
local PlayerService = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local CollectionService = game:GetService("CollectionService")
local Overture = require(ReplicatedStorage:WaitForChild("Overture", 3))
local ElevatorClass = Overture:LoadClass("Elevator")
local sPlayers = Overture:LoadLibrary("sPlayers")
local sFunctions = Overture:LoadLibrary("sFunctions")

-- Variables
local Retrieve = sFunctions.Retrieve
local Elevators = {}
local IsInTable = sFunctions.IsInTable
local ElevatorReplication = Overture:GetRemoteEvent("ElevatorReplication")

-- Main Code
for index, elevator in pairs(CollectionService:GetTagged("Elevator")) do
	table.insert(Elevators, 1, ElevatorClass:new(elevator))
end

ElevatorClass:ChangeIndicator("Floor", 0)

ElevatorReplication.OnServerEvent:Connect(function(floor, direction)
	ElevatorClass:WaitForElevator(floor)
	
	if direction == "Up" then
		ElevatorClass:ChangeIndicator("Up", "UpArrow")
	elseif direction == "Down" then
		ElevatorClass:ChangeIndicator("Down", "DownArrow")
	else
		assert("The direction"..direction" does not exist.")
	end
end)

ElevatorClass:ChangeIndicator("Up", "UpArrow")

CLIENT:
LINE 35

-- Services
local RunService = game:GetService("RunService")
local PlayerService = game:GetService("Players")
local CollectionService = game:GetService("CollectionService")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Overture = require(ReplicatedStorage:WaitForChild("Overture", 3))
local Maid = Overture:LoadLibrary("Maid")
local sPlayers = Overture:LoadLibrary("sPlayers")
local sFunctions = Overture:LoadLibrary("sFunctions")

-- Variables
local Retrieve = sFunctions.Retrieve
local IsInTable = sFunctions.IsInTable
local Player = PlayerService.LocalPlayer
local ElevatorReplication = Overture:GetRemoteEvent("ElevatorReplication")
local IsClient = RunService:IsClient()
local IsServer = RunService:IsServer()
local Distance = 7

-- Main Code
	UserInputService.InputBegan:Connect(function(input, gameprocessed)
		if input.KeyCode == Enum.KeyCode.E then
			for index, elevator in pairs(CollectionService:GetTagged("Elevator")) do
			if elevator:IsA("Model") then
				for index, button in pairs(CollectionService:GetTagged("ElevatorButton")) do
					local ButtonPart = button.ButtonPart
					local Magnitude = (ButtonPart.Position - Player.Character.HumanoidRootPart.Position).magnitude
					local Configuration = elevator:WaitForChild("Configuration", 5)
					local FloorNumber = Retrieve("FloorNumber", "NumberValue", Configuration)
					local Moving = Retrieve("Moving", "BoolValue", Configuration)
					local floor = ButtonPart.Floor.Value
					if Magnitude <= Distance then
						ButtonPart.Accepted:Play()
						ElevatorReplication:FireServer(floor, "Up")
					end
				end
			end
		end
	end
end)

EDIT:
Just fixed the client, but can’t find a fix to the server.