Skip to content

Classes

Journal

The Journal can be used to inspect the game journal contents to trigger parts of your script.

Use it for:

  • Checking if the Journal contains text
  • Waiting for text to appear in the Journal
  • Waiting for a collection of possible strings to exist

Methods

clear()
ts
clear(): void

Clears/forgets the journal history. This is useful if you don't want to process older journal entries.

Example
ts
player.say('Hello there');
journal.waitForText('Hello there'); // This will succeed quickly as the text was just added
journal.clear();
journal.waitForText('Hello there'); // this will time out, as the string is now empty.

containsText()
ts
containsText(text: string, author?: string): boolean

Checks for the existence of text in the journal

Parameters
ParameterTypeDescription
textstring
author?string
Returns

boolean

true/false if the text exists in the journal.


waitForText()
ts
waitForText(
   text: string,
   author?: string,
   timeout?: number): boolean

Waits for the text to appear in the journal.

  • Use clear() to clear the journal text.
Parameters
ParameterTypeDescription
textstring
author?string
timeout?number
Returns

boolean

true/false if the text was found.

Example
ts
const healthBefore = player.hits;

journal.clear();
player.useType(0xe21);
target.waitTargetSelf();

if (journal.waitForText('You healed', 'System', 8000)) {
  client.headMsg(`Bandaged +${player.hits - healthBefore}`, player, 66);
}

waitForTextAny()
ts
waitForTextAny(
   text: string[],
   author?: string,
   timeout?: number): null | string

Waits for ANY string in an array of strings to be found in the Journal, or for the timeout to be hit. Returns the first string to be found or null if the timeout was reached.

This method is useful if you're waiting for any one of a list of strings to appear. If you want all the strings to appear you should use waitForTextEvery

Parameters
ParameterTypeDescription
textstring[]
author?string
timeout?number
Returns

null | string

The string if it was found, or null if not.

Example
typescript
const waitMessage = 'You must wait';
const failMessage = 'You cannot focus';
const successMessage = 'You enter a meditative trance.';

journal.clear();
const response = journal.waitForTextAny([waitMessage, failMessage, successMessage]);

switch (response) {
  case waitMessage: {
    // sleep
    break;
  }
  case failMessage: {
    // retry
    break;
  }
  case successMessage: {
    // loop
    break;
  }
}

waitForTextEvery()
ts
waitForTextEvery(
   text: string[],
   author?: string,
   timeout?: number): string[]

Waits for EVERY string in an array of strings to be found in the Journal, or for the timeout to be hit. Returns all the strings that were found, may be less than the input if the timeout was hit.

This method is useful if you're waiting for several strings to all appear. If you want to wait for any string in the input array use waitForTextAny

Parameters
ParameterTypeDescription
textstring[]
author?string
timeout?number
Returns

string[]

All the strings that were found within the timeout, or an empty array if none were found.

Example
ts
const waitMessage = 'You must wait';
const failMessage = 'You cannot focus';
const successMessage = 'You enter a meditative trance.';

journal.clear();
const response = journal.waitForTextEvery([waitMessage, failMessage, successMessage]);

if (response.includes(successMessage)) {
  client.headMsg(`Meditating...`, player, 66);
}