Do you have any errors in your output? Your MessageInfo declaration is probably incorrect. I am not sure what value you want to get out of it but MessagesLeft-(#Conversation:GetChildren()-1) is going to start at 1 and then reduce to 0, which is an invalid index.
Do you want to go up the Conversation array or down it?
I would flip the entire loop so it’s more logically positive. This will count up instead of trying to count down and converting to up.
local MessagesRead = 0
local TotalMessages = #Conversation:GetChildren()
while MessagesRead < TotalMessages do
MessagesRead += 1
local MessageInfo = Conversation[MessagesRead]
-- etc ...
local MessagesRead = 1
Button.Visible = true
while true do -- Changed to true so i can break the loop when i want
local MessageInfo = Conversation[MessagesRead]
SpeakerName.Text = MessageInfo.Speaker.Value
Text.Text = MessageInfo.Text.Value
print(1)
if MessagesRead == #Conversation:GetChildren() then break end -- Break the loop
Button.Activated:Wait()
MessagesRead+=1
print(2)
end
print(3)
Thanks for helping
I still don’t know why it would not loop the first time