Try using reflection to get the messages
Simba Code:
function TReflectionChat.Messages(): TStringArray;
var
ChatWidget, ChatChild: TReflectWidget;
i:integer;
begin
setLength(result, 16);
ChatWidget.GetWidget(WIDGET_Chat_Container, 2);
for i := 0 to 16 do
begin
ChatChild.GetChild(ChatWidget, i);
Result[i] := Reflect.Text.RemoveFormatting(ChatChild.GetText);
ChatChild.Free;
end;
ChatWidget.Free;
end;
I made a script similar to this, except it just mimicked a player with a certain name. It might get a little bit tricky getting new !Roll commands