Lore packs · Chazz.ai
How lore packs works on Chazz.ai. Background facts that stay out of the prompt until the conversation touches them. A lore pack is a set of entries. Each entry has trigger conditions and a body of text. When the conversation matches an entry's triggers, its text is injected into the...
Background facts that stay out of the prompt until the conversation touches them.
A lore pack is a set of entries. Each entry has trigger conditions and a body of text. When the conversation matches an entry's triggers, its text is injected into the prompt for that turn, and stays out of it otherwise, which is what keeps a big world from eating the whole context window.
How an entry fires
Scripting is additive. Keyword entries still work exactly as they always did; a script is something you reach for when keywords are not expressive enough.
- Keywords: The classic mechanism: list words, and the entry fires when they appear in the scanned conversation window.
- A script: An entry can decide for itself instead, looking at the whole window, keeping state between turns, counting, rolling dice, or building its text on the fly. See LoreScript.
Where the text lands
An entry chooses its injection position. Six of the seven positions put text somewhere inside the system prompt; the seventh puts it in the transcript instead. In order, top to bottom:
An entry that does not choose a position gets at_depth at depth 1 with the role system. Depth 1 rather than 0 so your own message stays the last line the model reads. Source: worker/src/engine/lore.ts:47-49, mirrored for scripts at shared/lore-script/stdlib.ts:56-58.
Verified order from worker/src/engine/scenario.ts:904-915 and worker/src/engine/session.ts:327-332; the transcript splice is worker/src/engine/session.ts:198 spliceAtDepth.
If an entry is being ignored, position is usually the cause before wording is. Everything in the system prompt competes with a long block of scene instructions and several more blocks after it. at_depth sits in the conversation itself, a line or two from the end, which is the hardest place for the model to skip. Move an entry into a system-prompt slot only when you want it to read as part of the setup rather than as something that just happened.
em_top and em_bottom are named for an example-messages block that the engine does not currently render. They still work, they just land in the neighbouring slot rather than around examples.
- before_char: Above the character card, at the very top of the prompt.
- after_char: Immediately below the character card.
- em_top: Concatenated onto after_char, so in practice it behaves as a second after_char.
- an_top: Below the scene block and the modifier layers, immediately above the long block of scene instructions.
- an_bottom: Immediately below the scene instructions.
- em_bottom: Concatenated onto an_bottom, so in practice it behaves as a second an_bottom.
- at_depth: Not in the system prompt at all. It is spliced into the transcript N lines from the end, as if someone had said it. You choose the role it is attributed to.
Where to build one
Lore packs are created and edited from the Lore Packs tab of your Library, not from Customize. There is no AI generate path for lore packs. They are built by hand or by script.
Elsewhere on Chazz.ai
- Explore characters
- About
- Features
- Pricing
- Use cases
- Integrations
- Compare
- Documentation
- FAQ
- Changelog
- API
- Security
- Status
- Contact
- Press
- Stories
- Marketplace
- Image generation
- Credits and plans
- Chat app connectors
- Terms
- Privacy
- AI transparency
- Notice to AI agents
This document is the server-rendered form of /docs/lore-packs. The interactive page needs JavaScript, and shows the same content.
The complete documentation of this service is available as one plain-text file at /llms-full.txt. A short summary, with the operator's policy for automated readers, is at /llms.txt. Changes are published as a feed at /rss.xml.
Chazz.ai is operated by Cognitive Industries, ABN 62 794 528 747, Australia. Contact: [email protected].