If it was working then I've no idea. Try debugging your code like:
for k, v in ipairs(dim1players) do
local text1 = "P1 RP: "
local text2 = "P2 RP: "
outputDebugString("Sent to "..getPlayerName(v))
triggerClientEvent(v, "round5addtext", v, text1, text2)
end
Put them in a table and then insert messages like:
local messages = {}
table.insert(messages, 1, {playerName, message}) -- Insert a message into table at first position.
if #messages > 30 then
table.remove(messages) -- Remove last one
end
MySQL is much more faster and convenient than XML. Maybe you could use it and you wouldn't need to save only 30 last messages. You could make custom logs. And if you still want to fetch only 30 messages, you could easily fetch latest 30 from MySQL database by using LIMIT.