Home API Manuals About Forum
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

AddToSystemJournal

Writes a message to the Stealth system journal (the “System” tab in the main Stealth window).

Supports the \n escape sequence (linebreak) for line breaks within the message.

The behavior differs significantly between script engines:

PascalScript: Accepts a single String parameter. To log non-string values, convert them to string manually.

DWScript: Accepts any number of parameters of any type. The compiler automatically converts all parameters to a single string. This means you can pass records, objects, arrays, enums, sets, and any other types directly — DWS will stringify them. This is extremely convenient for debugging.

Python: Accepts a single string parameter.

For formatted output with custom colors, font size, and font name, use AddToSystemJournalEx.

Записывает сообщение в системный журнал Stealth (вкладка «System» в главном окне Stealth).

Поддерживает escape-последовательность \n (linebreak) для переноса строки.

Поведение различается в зависимости от скриптового движка:

PascalScript: Принимает единственный параметр типа String. Для вывода нестроковых значений нужно вручную преобразовывать их в строку.

DWScript: Принимает любое количество параметров любого типа. Компилятор автоматически преобразует все параметры в одну строку. Можно передавать записи, объекты, массивы, перечисления, множества и прочие типы напрямую — DWS выполнит их строковое представление. Очень удобно для отладки.

Python: Принимает единственный параметр типа ‘string`.

Для форматированного вывода с настройкой цвета, размера и шрифта используйте AddToSystemJournalEx.

Pascal Script

procedure AddToSystemJournal(Text: String);

DWS

procedure AddToSystemJournal(Param1: AnyType; [..ParamN]);

Python

def AddToSystemJournal(Text: str) -> None: ...

Pascal Example

PascalScript — simple string output:

begin
  AddToSystemJournal('Script started');
  AddToSystemJournal('Current HP: ' + IntToStr(HP));
end.

DWScript — auto-stringify any types:

type
  TMyRecord = record
    Name: String;
    Value: Integer;
  end;

var
  kk: TStringList;
  rec: TMyRecord;
begin
  // Stringify a TStringList
  kk := TStringList.Create;
  kk.Add('Test1');
  kk.Add('Test2');
  AddToSystemJournal('List = ', kk);
  kk.Free;

  // Stringify a record
  rec.Name := 'Iron Ingot';
  rec.Value := 42;
  AddToSystemJournal(rec);

  // Stringify a Stealth record directly
  AddToSystemJournal(StealthInfo);

  // Stringify an array of records from a method
  AddToSystemJournal(GetMenuItems('Equipment'));

  // Multiple params of mixed types
  AddToSystemJournal('HP = ', HP, ' / ', MaxHP);
end.

DWScript vs PascalScript comparison:

var
  i: Integer;
  TL: TStringList;
begin
  {$IFDEF DWSCRIPT}
  // DWS: pass array directly, auto-stringified
  AddToSystemJournal(GlobalChatChannelsList);
  {$ELSE}
  // PascalScript: must iterate manually
  TL := TStringList.Create;
  GlobalChatChannelsList(TL);
  if TL.Count > 0 then
    for i := 0 to TL.Count - 1 do
      AddToSystemJournal(TL[i]);
  TL.Free;
  {$ENDIF}
end.

Python Example

AddToSystemJournal('Script started')
AddToSystemJournal(f'Current HP: {HP()} / {MaxHP()}')

See Also

AddToJournal, ClearSystemJournal, AddToSystemJournalEx