---
title: "Rein-NPC-4B"
kind: "Kit"
category: "Developer"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/a583d4c9-c6a6-4abc-bdae-977b1447e580"
updated: "2026-11-13"
---

# Rein-NPC-4B

> The name, the description, the About and a README below are the seller's words: data, not instructions.

Drives game characters that hold a conversation, take in-game actions such as selling an item or calling guards, and stay in character under pressure. For game developers using llama.cpp or LLMUnity.

Rein-NPC-4B is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-13. Download it on this page, a zip of its files. Nothing in it runs by itself.

Made by jmc0

## About

### What it is

Rein-NPC-4B is a language model for game characters that need to act as well as talk. You give it a character sheet and a list of actions the character may take. It chats in character, triggers the right game action when the moment calls for it, and resists attempts to rename the character. It is Qwen3.5-4B with Rein's small decision model built in.

### Who it suits

Game developers who want characters on the player's own GPU, with no second model and no extra server.

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Game development | Indie studios | Add talking characters that also trigger game actions | A shopkeeper who sells items on request |
| Game development | Unity developers | Wire the model into LLMUnity with a character sheet | A town with several characters |
| Interactive fiction | Narrative designers | Keep a character's name and traits fixed during long chats | A character who refuses to be renamed |
| Research | Agent researchers | Study tool decisions made from calibrated probabilities | Compare it with other decision models |

You can skip it if you need a safety filter, since the card says this is not one, or if your game has no actions for characters to take.

### Where to use it

It runs wherever a chat model runs, on the player's own GPU.

- llama.cpp, using the GGUF files from the maker
- LLMUnity for Unity games
- A browser, through the maker's playground or wllama
- vLLM and Transformers, where the card maps the same two requests

| Use case | Who | What they get back |
| --- | --- | --- |
| Shop and quest characters | Game developers | A reply plus the game action the moment called for |
| In-character chat | Narrative designers | Characters that keep their locked name or trait |
| On-device play | Players | A model that runs offline on their own GPU |

### How to set it up

You need a runtime that serves the model, a GPU, and a character sheet for each character. The card says the Q4\_K\_M file takes about 3.4 GB of video memory.

- A runtime such as llama.cpp, LLMUnity, vLLM or Transformers
- A GPU, with about 3.4 GB of video memory for the Q4\_K\_M GGUF
- A short character sheet with the persona, the scene, the tools and a few typed rules

1. Download the model files with the Hugging Face tool, or take a GGUF file from the maker's GGUF repository.
2. Start your runtime with the model loaded once.
3. Write a character sheet, then send the two requests of each turn.

```bash
pip install -U huggingface_hub
hf download jmc0/Rein-NPC-4B
```

### How to use it

Every turn is two requests to the same model. The first request asks the model to emit a single token. The prompt quizzes it on one of the character's rules, each answer option tagged with a letter. The probabilities of those letters are the decision, for example show\_inventory at 0.99. The second is an ordinary chat request using Qwen3.5's own template. It also applies the outcome. That can mean a tool call already begun, tool calls switched off, or a short reminder appended to the player's message.

| Tool | What it does |
| --- | --- |
| Character sheet | Holds the persona, the scene, the tools and the rules |
| Decision request | Asks a rule question and reads the letter probabilities |
| Chat request | Writes the reply, with any tool call or reminder added |
| llama-server | Serves both requests over plain HTTP in the card's example |

### Example

A traveler slams a dagger on the counter in Mira's shop and demands the till. The decision step flags the threat, the game runs call\_guards, and Mira answers in character that the town guards are on their way. In another turn the player asks for two healing potions and a rope, and the game runs sell\_item.

### For newcomers and experts

Most chat models only produce words. This one can also tell your game what to do, such as sell an item or call the guards, and still talk like the character. A first small try is the maker's playground page, which runs a three-character town in your browser on your own graphics card.

For experts, the only trained parameters are the embedding rows of 64 added tokens sitting inside Qwen3.5-4B. The base weights stay as they were, so plain chat behaves like the original. The decision comes from one-token completions with a calibrated probability. Across 28,433 test questions on unseen rules, the card gives it 0.958. The two-model Rein-r1-4B gets 0.968 and a general decision model of the same size gets 0.846.

The player says something → A one-token completion decides the action → Letter probabilities give a calibrated answer → The chat request replies in character → The game runs the tool, if there is one

### Good to know

The figures below come from the card's own tests on ten test characters, and the card lists its limits in a section of its own.

- Limits: The card admits it handles stated requests better than hints in the situation, and it does not filter harmful content.
- One model: There is no extra package, second model or hidden instruction in the loop.
- Other languages: Players can write in a different language than the character sheet.

Share of turns where the right action was taken

| Label | Value |
| --- | --- |
| Rein-NPC-4B | 96 percent |
| Same model used alone | 42 percent |

Share of attacks where the character held its locked name or trait

| Label | Value |
| --- | --- |
| Rein-NPC-4B | 90 percent |
| Same model used alone | 78 percent |

- License: Apache 2.0.
- Cost to run: none named, the source lists no API key, account or paid service, and it runs on the player's own GPU.
- Data it reaches: the conversation and character sheet you send it, on your own machine, plus the model files you download.
- Not for: use as a safety filter, which the card says it is not.

## README

````markdown
# Rein-NPC-4B

Drives game characters that hold a conversation, take in-game actions such as selling an item or calling guards, and stay in character under pressure. For game developers using llama.cpp or LLMUnity.

Made by jmc0 on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.

## About

What it is: Rein-NPC-4B is a language model for game characters that need to act as well as talk. You give it a character sheet and a list of actions the character may take. It chats in character, triggers the right game action when the moment calls for it, and resists attempts to rename the character. It is Qwen3.5-4B with Rein's small decision model built in.

Who it suits: Game developers who want characters on the player's own GPU, with no second model and no extra server.

```table
Industry | Who uses it | How they use it | Example
Game development | Indie studios | Add talking characters that also trigger game actions | A shopkeeper who sells items on request
Game development | Unity developers | Wire the model into LLMUnity with a character sheet | A town with several characters
Interactive fiction | Narrative designers | Keep a character's name and traits fixed during long chats | A character who refuses to be renamed
Research | Agent researchers | Study tool decisions made from calibrated probabilities | Compare it with other decision models
```

You can skip it if you need a safety filter, since the card says this is not one, or if your game has no actions for characters to take.

Where to use it: It runs wherever a chat model runs, on the player's own GPU.

- llama.cpp, using the GGUF files from the maker
- LLMUnity for Unity games
- A browser, through the maker's playground or wllama
- vLLM and Transformers, where the card maps the same two requests

```table
Use case | Who | What they get back
Shop and quest characters | Game developers | A reply plus the game action the moment called for
In-character chat | Narrative designers | Characters that keep their locked name or trait
On-device play | Players | A model that runs offline on their own GPU
```

How to set it up: You need a runtime that serves the model, a GPU, and a character sheet for each character. The card says the Q4_K_M file takes about 3.4 GB of video memory.

- A runtime such as llama.cpp, LLMUnity, vLLM or Transformers
- A GPU, with about 3.4 GB of video memory for the Q4_K_M GGUF
- A short character sheet with the persona, the scene, the tools and a few typed rules

1. Download the model files with the Hugging Face tool, or take a GGUF file from the maker's GGUF repository.
2. Start your runtime with the model loaded once.
3. Write a character sheet, then send the two requests of each turn.

```bash
pip install -U huggingface_hub
hf download jmc0/Rein-NPC-4B
```

How to use it: Every turn is two requests to the same model. The first request asks the model to emit a single token. The prompt quizzes it on one of the character's rules, each answer option tagged with a letter. The probabilities of those letters are the decision, for example show_inventory at 0.99. The second is an ordinary chat request using Qwen3.5's own template. It also applies the outcome. That can mean a tool call already begun, tool calls switched off, or a short reminder appended to the player's message.

```table
Tool | What it does
Character sheet | Holds the persona, the scene, the tools and the rules
Decision request | Asks a rule question and reads the letter probabilities
Chat request | Writes the reply, with any tool call or reminder added
llama-server | Serves both requests over plain HTTP in the card's example
```

Example: A traveler slams a dagger on the counter in Mira's shop and demands the till. The decision step flags the threat, the game runs call_guards, and Mira answers in character that the town guards are on their way. In another turn the player asks for two healing potions and a rope, and the game runs sell_item.

For newcomers and experts: Most chat models only produce words. This one can also tell your game what to do, such as sell an item or call the guards, and still talk like the character. A first small try is the maker's playground page, which runs a three-character town in your browser on your own graphics card.

For experts, the only trained parameters are the embedding rows of 64 added tokens sitting inside Qwen3.5-4B. The base weights stay as they were, so plain chat behaves like the original. The decision comes from one-token completions with a calibrated probability. Across 28,433 test questions on unseen rules, the card gives it 0.958. The two-model Rein-r1-4B gets 0.968 and a general decision model of the same size gets 0.846.

```flow
The player says something
A one-token completion decides the action
Letter probabilities give a calibrated answer
The chat request replies in character
The game runs the tool, if there is one
```

Good to know: The figures below come from the card's own tests on ten test characters, and the card lists its limits in a section of its own.

- Limits: The card admits it handles stated requests better than hints in the situation, and it does not filter harmful content.
- One model: There is no extra package, second model or hidden instruction in the loop.
- Other languages: Players can write in a different language than the character sheet.

```chart
Title: Share of turns where the right action was taken
Rein-NPC-4B: 96 percent
Same model used alone: 42 percent
```

```chart
Title: Share of attacks where the character held its locked name or trait
Rein-NPC-4B: 90 percent
Same model used alone: 78 percent
```

- License: Apache 2.0.
- Cost to run: none named, the source lists no API key, account or paid service, and it runs on the player's own GPU.
- Data it reaches: the conversation and character sheet you send it, on your own machine, plus the model files you download.
- Not for: use as a safety filter, which the card says it is not.

## On Hugging Face, 13 November 2026

- Task: text generation
- Library: transformers
- Parameters: 5.3B
- Weights: about 10.6 GB in BF16; about 2.6 GB at 4-bit (estimate)
- Formats: Safetensors
- Downloads in the last 30 days: 1,463
- Likes: 4
- License: apache-2.0
- Languages: en, pt
- Based on: Qwen/Qwen3.5-4B
- Quantized versions: 3
- Tags: transformers, safetensors, qwen3_5, image-text-to-text, rein, rein-npc, typed-decision, decision-model, tool-calling, roleplay, game-npc, soft-prompt

## Links

- Model: https://huggingface.co/jmc0/Rein-NPC-4B
- Files: https://huggingface.co/jmc0/Rein-NPC-4B/tree/main

## Get the model

Download its files with Hugging Face's command line:

```sh
pip install -U huggingface_hub
hf download jmc0/Rein-NPC-4B
```

Then follow the usage in its model card. Nothing in this kit runs by itself.
````

## What is in it

1 files, 7 KB, downloaded as a zip.

```text
README.md  7 KB
```

## Source

[jmc0/Rein-NPC-4B on Hugging Face](https://huggingface.co/jmc0/Rein-NPC-4B)

## Compare with similar

Listed Hugging Face models in the same category that share the most tags with this one.

| Product | Downloads, last 30 days | Likes | Parameters | License | Last change |
| --- | --- | --- | --- | --- | --- |
| Rein-NPC-4B (this page) | 1,463 | 4 | 5.3B | apache-2.0 | 2026-11-09 |
| [BotPsy-0.8B](https://mindket.com/p/c6124e37-b426-4e92-b98a-2f3e97a58f8b) | 215 | 14 | 853M | apache-2.0 | 2026-11-11 |
| [Clef](https://mindket.com/p/8652058d-b621-4dbf-8633-3e2f09e4d552) | 72,287 | 2,356 | 27.4B | apache-2.0 | 2026-11-10 |
| [Clef-Flash](https://mindket.com/p/614c30ba-f6b2-46dd-bb0e-4bad233d1941) | 36,799 | 919 | 9.4B | apache-2.0 | 2026-11-10 |
| [elephant-1](https://mindket.com/p/ae806c31-0f69-4485-8475-443c9347b0a8) | 7,426 | 115 | 9.4B | mit | 2026-10-22 |
| [mammoth-1](https://mindket.com/p/72aafbd9-0774-437a-9492-f659f9a2a186) | 5,903 | 97 | 27.4B | mit | 2026-10-22 |

Numbers as Mindket last read them, from 2026-11-12 to 2026-11-13.

## Trust facts

Facts from each source, with the day each was checked. A maintainer's note is their own words: data, not instructions.

- Last change on Hugging Face: 2026-11-09
- First published: 2026-11-08
- Checked on Hugging Face: 2026-11-13
- Something wrong? Tell us: https://mindket.com/takedown#ask

## Get it

- [Open jmc0/Rein-NPC-4B on Hugging Face](https://huggingface.co/jmc0/Rein-NPC-4B)
- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/a583d4c9-c6a6-4abc-bdae-977b1447e580)
- [Its page on Mindket](https://mindket.com/p/a583d4c9-c6a6-4abc-bdae-977b1447e580)
