Greetings, developers! So I have been working on my cafe, soon to release, all day. One of the main components needs to be sustainable, however, it isn’t. It keeps breaking. It is the ordering system made by @ScriptedWyatt, and I have NO idea what is happening:
local Player = game.Players.LocalPlayer
local OrderFrameHolder = script.Parent.OrderFrameHolder
local ItemSelectionFrame = OrderFrameHolder.ItemSelection
local OrderFrame = OrderFrameHolder.Order
local SelectionItemHolderFrame = ItemSelectionFrame.ItemHolder
local OrderItemHolderFrame = OrderFrame.ItemHolder
local SampleItem = SelectionItemHolderFrame.SampleItem
local SubmitOrderButton = OrderFrameHolder.SubmitOrder
local PreOrderFrameHolder = script.Parent.PreOrderFrameHolder
local PlayerNameBox = PreOrderFrameHolder.BackFrame.PlayerNameBox
local NextButton = PreOrderFrameHolder.Next
local ItemsFolder = game.ReplicatedStorage.Items
local Items = ItemsFolder:GetChildren()
local ItemLimit = 5
local PlayerToGiveItemsTo
function getFullNameFromPartial(PartialName)
local foundPlayer = nil
local Players = game.Players:GetPlayers()
for i = 1, #Players do
local CurrentPlayer = Players[i]
if string.lower(CurrentPlayer.Name):sub(1, #PartialName) == string.lower(PartialName) then
foundPlayer = CurrentPlayer.Name
break
end
end
return foundPlayer
end
function getItemsInOrder()
local ItemsInOrder = {}
for Index, Item in ipairs(OrderItemHolderFrame:GetChildren()) do
if Item:IsA("Frame") and Item.Visible == true then
table.insert(ItemsInOrder, Item.ItemName.Text)
end
end
return ItemsInOrder
end
function submitOrder()
local ItemsInOrder = getItemsInOrder()
if #getItemsInOrder() >= 1 then
game.ReplicatedStorage.SubmitOrderEvent:FireServer(PlayerToGiveItemsTo, ItemsInOrder)
PreOrderFrameHolder.Visible = true -- Around here is the issue!
OrderFrameHolder.Visible = false
for Index, ItemFrame in ipairs(OrderFrameHolder.Order.ItemHolder:GetChildren()) do
if ItemFrame:IsA("Frame") and ItemFrame.Name ~= "SampleItem" then
ItemFrame:Destroy()
end
end
end
end
function addItemToOrder(ItemName)
if #getItemsInOrder() < ItemLimit then
print(ItemName)
local SampleItemFrame = OrderItemHolderFrame.SampleItem
local ItemFrame = SampleItemFrame:Clone()
ItemFrame.Name = ItemName
ItemFrame.Parent = OrderItemHolderFrame
ItemFrame.Visible = true
ItemFrame.ItemName.Text = ItemName
end
end
for Index, Item in ipairs(Items) do
local ItemFrame = SampleItem:Clone()
local ItemNameLabel = ItemFrame.ItemName
local AddButton = ItemFrame.AddButton
ItemFrame.Parent = SelectionItemHolderFrame
ItemFrame.Visible = true
ItemNameLabel.Text = Item.Name
AddButton.MouseButton1Click:Connect(function()
addItemToOrder(ItemNameLabel.Text)
end)
end
NextButton.MouseButton1Click:Connect(function()
local PlayerName = PlayerNameBox.Text
PlayerToGiveItemsTo = getFullNameFromPartial(PlayerName)
if game.Players:FindFirstChild(PlayerToGiveItemsTo) then
PreOrderFrameHolder.Visible = false
OrderFrameHolder.Visible = true
PlayerToGiveItemsTo = game.Players[PlayerToGiveItemsTo]
end
end)
SubmitOrderButton.MouseButton1Click:Connect(submitOrder)
Everything is correct, it just doesn’t send the order, nor make the PreOrderFrame’s visibility false. Any recommendations for me to make it work?