Downloads · 30 days
31
8% of all-time downloads
FormatC/Qwen3-4B-DND
Qwen3-4B-DND is a machine learning model from FormatC. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
Engine Narrator is a specialized LoRA fine-tuned on the Qwen3-4B architecture using the lara-martin/FIREBALL dataset. It is designed specifically for Dark Fantasy TTRPGs (specifically the Grim Hollow setting), focusin…
Downloads · 30 days
31
8% of all-time downloads
All-time downloads
372
Public
Repo size
12 GB
Likes
1
Public
Click a slice to open those files.
.gguf12 GB · 100%
From the Hugging Face model README
Engine Narrator is a specialized LoRA fine-tuned on the Qwen3-4B architecture using the lara-martin/FIREBALL dataset. It is designed specifically for Dark Fantasy TTRPGs (specifically the Grim Hollow setting), focusing on visceral, grounded prose and strict adherence to game mechanics. Qwen3-4B-DND Engine Narrator was Built with Qwen. This model is intended for non-commercial research and roleplay purposes only.
This prompt must be active at all times during the session. It acts as the "Instruction Anchor" that the LoRA was trained to follow. Without it, the model may ignore the JSON mechanics.
Copy-Paste into System Field:
You are the [Engine_Narrator]. Your purpose is to provide grounded, visceral, and logically consistent RPG narration based on provided JSON input.
### MANDATORY NARRATIVE LAWS:
1. LOGIC & PHYSICS ADHERENCE:
- If [Success] is False: The target must remain UNMOVED and UNDAMAGED. The energy of the action must recoil into the character's body (e.g., jarring bones, sliding feet, bruised muscle). Do not describe the target buckling or yielding.
- If [Success] is True: The target yields as intended, emphasizing the character's competence.
2. SCALE & HYPERBOLE CONTROL:
- Match the intensity of the prose to the mechanic.
- A failed strength check or a minor hazard causes physical strain or temporary pain (e.g., stinging skin, labored breath), NOT permanent mutilation or magical disintegration unless "Curse" or "Magic" is explicitly in the JSON.
3. SENSORY STACKING:
- Every response MUST include exactly one Auditory detail (e.g., the screech of metal, a hollow thud) AND one Tactile detail (e.g., the bite of cold iron, the stinging heat of rust).
4. ANTI-ECHO PROTOCOL:
- You are strictly forbidden from reusing unique verbs or nouns from the [Action] field. Transform "I throw my weight" into "Driving a shoulder into the unresponsive barrier."
5. TONE & DELIVERY:
- Use a low-fantasy, grounded, and visceral tone.
- Focus on clinical descriptions of impact and sensory feedback over poetic metaphors.
- NO META-TALK: Never address the user or offer advice. Start the narrative immediately.
To get the "Chain of Thought" reasoning and high-quality prose, the model requires information delivered in a specific Triple-Block format.
Template:
[Context]: {"location": "Area Name", "target": "Object/NPC"}
[Mechanics]: {"success": true/false, "difficulty": #, "hazard": "optional"}
[Action]: Your character's specific physical attempt.
Why this matters: The model is trained to look for these headers.
These settings control the "randomness" and "flow" of the model. Using the wrong settings can result in repetitive loops or overly chaotic text.
| Parameter | Value | Purpose |
|---|---|---|
| Temperature | 0.8 | Allows for creative prose without losing logical coherence. |
| Min-P | 0.05 | CRITICAL. Filters out nonsensical words while allowing for high-quality synonyms. |
| Top-P | 1.0 | (Disabled/Set to Max) Let Min-P handle the filtering. |
| Repetition Penalty | 1.15 | Prevents the model from overusing favorite words like "molten" or "visceral." |
| Max Tokens | 150 - 250 | Keeps the narrative punchy and prevents "rambling." |
Users should be aware of the "Physics Lock" we programmed into the model to ensure a high-quality "Grim-Hollow" feel:
{"success": false}, the model will never describe the door breaking or the enemy flinching. Instead, it will describe the jarring impact on the player's body.Problem: The model is repeating my words.
Fix: Increase Repetition Penalty to 1.2 and ensure the Anti-Echo Law is in the System Prompt.
Problem: The model says I succeeded when the JSON says False.
Fix: Ensure the [Mechanics] block is clearly separated by a new line. The model needs to "see" the failure flag clearly to trigger its recoil logic.
Here is a "Quick Start" cheat sheet for testing the Engine Narrator. These examples are specifically designed to test the boundaries of the logic we've trained: Physics Recoil, Hazard Integration, and Grounded Scale.
Copy and paste these into the User input field to verify the LoRA is functioning correctly across different RPG scenarios.
Goal: Verify the gate doesn't move and the energy "bounces back" into the character.
[Context]: {"location": "The Iron Oubliette", "target": "Heavy Cell Door"}
[Mechanics]: {"success": false, "difficulty": 15}
[Action]: I deliver a powerful kick to the door's center.
Goal: Ensure the hazard (acid) is described viscerally without being world-ending.
[Context]: {"location": "Alchemist's Drain", "target": "Stone Ledge"}
[Mechanics]: {"success": false, "hazard": "acid-splash"}
[Action]: I try to leap across the gap to the far ledge.
Goal: Verify the model can handle non-combat tension and grounded social feedback.
[Context]: {"location": "The Gallow's Inn", "target": "Nervous Informant"}
[Mechanics]: {"success": true, "intimidation": 18}
[Action]: I slam my dagger into the table an inch from his hand.
Goal: Check if the model can describe precise sensory stacking (sound and touch) in a quiet scene.
[Context]: {"location": "The Vault Room", "target": "Brass Lockbox"}
[Mechanics]: {"success": true, "tools": "lockpicks"}
[Action]: I gently probe the tumblers with my tension wrench.
Goal: Test the "Scale Control" to ensure healing is described as gritty and physical, not magical.
[Context]: {"location": "Battlefield Medic Tent", "target": "Open Wound"}
[Mechanics]: {"success": true, "medicine": 12}
[Action]: I apply a cauterizing iron to the jagged gash.
When you run these, use this quick checklist. If the answer to any of these is "No," your Inference Parameters (like Min-P or Repetition Penalty) need adjustment:
If you use this model in your research, please cite the original FIREBALL dataset:
@inproceedings{zhu-etal-2023-fireball,
title = "{FIREBALL}: A Dataset of Dungeons and Dragons Actual-Play with Structured Game State Information",
author = "Zhu, Andrew and Aggarwal, Karmanya and Feng, Alexander and Martin, Lara J. and Callison-Burch, Chris",
booktitle = "Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics",
year = "2023",
url = "[https://aclanthology.org/2023.acl-long.229](https://aclanthology.org/2023.acl-long.229)",
}