Package-level declarations

Lorekeeper narrative systems: interviews, books, reputation, scheduling, and memory tagging. This package powers the story layer of the server.

Types

Link copied to clipboard
object LoreBooks

Factory for creating in-game written books from lore entries.

Link copied to clipboard

Registers the /lore command tree.

Link copied to clipboard
object Lorekeeper

Main entry point and central registry for the Lorekeeper mod.

Link copied to clipboard

Utilities for awarding Lorekeeper-related advancements.

Link copied to clipboard

Deterministic fallback text used when AI summary generation fails.

Link copied to clipboard

Service for generating AI-powered lore summaries and interview reactions.

Link copied to clipboard

Handles polishing, resale, and royalty payouts for submitted player books.

Link copied to clipboard

Listens for player chat messages to handle Lorekeeper interview responses.

Link copied to clipboard
data class LorekeeperConfig(var openaiEnabled: Boolean = false, var openaiProvider: String = "openai", var openaiApiKey: String = "", var openaiBaseUrl: String = "https://api.openai.com/v1", var openaiModelLow: String = "gpt-5-nano-2025-08-07", var openaiModelHigh: String = "gpt-5.2-2025-12-11", var openaiTimeoutSeconds: Int = 30, var openaiConnectTimeoutSeconds: Int = 15, var openaiNewsTimeoutSeconds: Int = 240, var openaiHistoryTimeoutSeconds: Int = 240, var openaiReputationTimeoutSeconds: Int = 180, var openaiStartupJokeTestEnabled: Boolean = false, var openaiFallbackEnabled: Boolean = false, var openaiFallbackProvider: String = "", var openaiFallbackBaseUrl: String = "", var openaiFallbackApiKey: String = "", var openaiFallbackModel: String = "", var jeevesEnabled: Boolean = true, var jeevesIntentionThreshold: Double = 0.5, var jeevesContextLength: Int = 20, var jeevesIntentionPromptFile: String = "evermod-jeeves-intention.md", var jeevesPromptFile: String = "evermod-jeeves-system.md", var notionEnabled: Boolean = false, var notionApiKey: String = "", var notionDatabaseId: String = "", var notionPollIntervalSeconds: Int = 300, var notionTitleProperty: String = "Name", var notionAuthorProperty: String = "Author", var notionTimestampProperty: String = "Timestamp", var notionApiBaseUrl: String = "https://api.notion.com/v1", var qualityMinChars: Int = 120, var lorekeeperChatEnabled: Boolean = true, var lorekeeperEncountersEnabled: Boolean = true, var lorekeeperNewsEnabled: Boolean = true, var bookMarketEnabled: Boolean = true, var memoryIndexEnabled: Boolean = true, var memoryIndexUseForTalk: Boolean = false, var memoryIndexOpenAiArchiveEnabled: Boolean = false, var memoryIndexOpenAiArchiveUseForTalkFallback: Boolean = false, var memoryIndexOpenAiArchiveSyncIntervalSeconds: Int = 900, var memoryIndexOpenAiArchiveMaxRecordsPerSnapshot: Int = 1600, var memoryIndexOpenAiArchiveRetainedFiles: Int = 4, var memoryIndexOpenAiArchivePurpose: String = "user_data", var marioEnabled: Boolean = true, var minigamesEnabled: Boolean = true, var presenceEnabled: Boolean = true, var mcpServerEnabled: Boolean = false, var mcpServerPort: Int = 8526, var mcpApiKey: String = "", var blueMapRefreshIntervalSeconds: Int = 3600)

Configuration for the Lorekeeper mod.

Link copied to clipboard

Registers Fabric event listeners for Lorekeeper encounter triggers.

Link copied to clipboard

Handles Lorekeeper NPC encounter logic and spawning.

Link copied to clipboard

Registry for Lorekeeper mod entity types.

Link copied to clipboard

Manages Lorekeeper NPC interviews with players.

Link copied to clipboard

Registry for Lorekeeper mod items.

Repairs legacy book submissions that were logged in lore entries but not fully processed.

Link copied to clipboard
object LorekeeperMod : ModInitializer

Fabric mod initializer for the Lorekeeper mod.

Link copied to clipboard

Handles publication of weekly lore news broadcasts and snapshots.

Link copied to clipboard

Schedules automatic weekly news publication on server tick events.

Link copied to clipboard

Handles permanent Lorekeeper outposts (HQ + settlement newsies) backed by world persistence.

Link copied to clipboard
class LorekeeperPlayerData : SavedData

Persistent per-player data for Lorekeeper interactions.

Link copied to clipboard

Evaluates the quality of submitted books using AI and applies reputation, feedback, and rewards.

Link copied to clipboard

Coordinates reputation-memory recording, profile generation, and archived profile lookup.

Link copied to clipboard

Tracks per-player reputation for Lorekeeper interactions.

Link copied to clipboard

Shared submission pipeline for books given to the Lorekeeper.

Link copied to clipboard

Manages free-form Lorekeeper conversations that are summarized into a single archival entry.

Link copied to clipboard
class LoreStorage : SavedData

Persistent storage for lore entries and weekly news snapshots.

Link copied to clipboard

Synchronizes lore entries with a Notion database.