RPGEventGenerator accepts a GeneratorOptions object.
const generator = new RPGEventGenerator({
theme: 'fantasy',
debug: false,
// Reproducible generation (optional)
rng: new (require('rpg-event-generator').SeededRandom)(42),
// Tier 2 layers (all optional)
enableTemplates: true,
templateLibrary: null,
enableModifiers: true,
enableRuleEngine: true,
enableRelationships: true,
enableDependencies: false,
// Legacy Markov mode (off by default in v4)
pureMarkovMode: false,
trainingData: [], // Markov training strings (pureMarkovMode only)
// Database (Tier 3)
enableDatabase: true,
// Localization
language: 'en',
// AI (experimental)
aiEnhancement: {
provider: 'openai',
apiKey: process.env.OPENAI_API_KEY
}
});
| Option | Default | Description |
|---|---|---|
rng |
auto | Injectable SeededRandom for reproducible generation |
theme |
null |
Theme label for generation |
debug |
false |
Console logging |
enableTemplates |
true |
Try templates before core |
templateLibrary |
null |
Genre/library to load |
enableModifiers |
true |
Weather/time/season modifiers |
enableRuleEngine |
true |
Post-process with rules |
enableRelationships |
true |
NPC relationship system |
pureMarkovMode |
false |
Use Markov instead of content library |
enableDatabase |
true |
Init template DB (memory adapter default) |
language |
'en' |
Localization language |
aiEnhancement |
off | Optional AI rewrite layer |
customRules |
{} |
Named rule definitions |
Jam game (Tier 1 only):
new RPGEventGenerator({ enableTemplates: false });
// or just generateRPGEvent(context)
Custom templates:
new RPGEventGenerator({
enableTemplates: true,
templateLibrary: 'my_genre'
});
Markov legacy mode:
new RPGEventGenerator({
pureMarkovMode: true,
trainingData: ['sentence one', 'sentence two']
});
new RPGEventGenerator({ enableDatabase: false });
Useful when you don't need template persistence and want zero async init.