Lore journal

Lets the player find logs, letters and recordings in the world and keep them in a journal, grouped in series with shown progress, where reading an entry can unlock a recipe, a research or a door.

Source: module-kits:kits/lore_journal/usage/en.mdView Markdown source

Also read offline — CLI: grip-forge docs lore-journalMCP tool: gripforge_docs { "topic": "lore-journal" }

Lore journal (lore.journal) #

What it is for #

Lets the player find logs, letters and recordings in the world and keep them in a journal, grouped in series with shown progress, where reading an entry can unlock a recipe, a research or a door.

It needs input.actions, game.engine; installing it brings them in.

Turn it on #

Install the kit in a project, then change a setting (the values shown are its defaults):

gripforge_gamekit_install   { project_id: "gkp_…", id: "lore.journal" }
gripforge_gamekit_configure { project_id: "gkp_…", id: "lore.journal",
                              config: { "readLabel": "Read {name}", "toastSeconds": 4 } }

First example #

The kit has no dedicated test yet; this installs it and sets two of its settings to their defaults.

gripforge_gamekit_install   { project_id: "gkp_…", id: "lore.journal" }
gripforge_gamekit_configure { project_id: "gkp_…", id: "lore.journal",
                              config: { "readLabel": "Read {name}", "toastSeconds": 4 } }

Settings and defaults #

Descriptions come from the kit manifest and stay in English.

SettingTypeDefaultRange or valuesMeaning
readLabelstring"Read {name}"Prompt of a lore point; {name} is its label, else the title of its first entry.
toastSecondsnumber40–30How long the "New entry" notice stays on the HUD (0: none).
openOnReadbooleantrueReading a point opens the journal on its first new entry.

Services, events, variables #

  • Service lore.journal: entries() (with found), found(id), discover(id) → boolean (new), groups() → [{ group, found, total, complete }], open(entry?), close(), current(), toast(), placePoint(at, entry, opts?).
  • Events emitted:
    • lore.found (entry, group, first) — An entry joined the journal.
    • lore.group_completed (group) — Every entry of a group is found.
    • lore.opened (entry) — The journal opened.
    • lore.closed — The journal closed.
  • Events listened to: interaction.requested, entity.spawned, game.phase
  • Variables:
    • lore.found (number) — Entries found
    • lore.open (boolean) — Journal open
  • Verbs of the scripting layer:
    • discover_lore (action) — Add an entry to the journal (a find, a research, a mission).
    • lore_found (condition) — The entry is in the journal.
    • lore_group_complete (condition) — Every entry of the group is in the journal.
  • Input actions: journal_menu

Hooks and modding #

  • Hooks (a game or a mod can intercept them):
    • lore.find (cancellable) — An entry is about to join the journal (a point read, discover(id), the discover_lore action): it exists and is not found yet.
  • Moddable settings: readLabel, toastSeconds, openOnRead
  • Moddable collections: lore
  • Components: lore_point

Engines #

Declared targets: web, rust. gripforge kit api lore.journal lists the exact settings and services of your version.

Versions #

Kit version 1.1.1.