Описание
# NPC Engine
**Interactive NPC system with dialogues for Minecraft 1.21.9+**
NPC Engine is a data pack for creating NPCs with a dialogue system, response options, and a cinematic camera.
---
## 🎯 Features
### NPCs
- **Mannequins** — NPCs based on `minecraft:mannequin` with custom skins
- **Other Entities** — Villagers, zombies, skeletons, etc.
- **Interactivity** — Clicking on an NPC starts a dialogue
- **Visual Editor** — Control via the action bar
### Dialogues
- **Typewriter Effect** — Smooth character-by-character typing
- **Choice System** — Branching dialogues with multiple answer options
- **Navigation** — Shift to skip to the next line
- **Text Display** — Text is displayed above the NPC
### Camera
- **Cinematic Mode** — Automatically zooms in on the NPC
- **Positioning** — The camera is positioned to the side of the NPC
- **Smooth Transitions** — Blindness effect at the start/end Dialogue
- **Restore** — automatically returns the player to their starting position
---
## 🚀 Installation
1. Place the `npcs-engine` folder in your world's `datapacks`
2. Run `/reload`
---
## 📋 Usage
### Open the Editor
```mcfunction
/function _npsc:open
```
### Editor Controls
- **Mouse Wheel** — Navigate the menu
- **RMB (carrot on a fishing rod)** — Select an item
### Editor Menu
| Item | Description |
|-------|----------|
| 📝 Create NPC | Create a new NPC |
| 📋 List | View all NPCs |
| 💬 Dialogues | Dialogue Editor |
| 🎬 Dialogue Test | Run a Dialogue Test |
| ❌ Exit | Close Editor |
### Interacting with NPCs
- Click on the NPC to start a dialogue
- **Shift** — next line
- The dialogue ends automatically after the last line
---
## 🔧 API for Developers
### Creating an NPC
```mcfunction
# Create a mannequin NPC
function npcs:npc/create_player
# Create an NPC entity
function npcs:npc/create_entity
```
### Dialogue Management
```mcfunction
# Add a dialogue line
function npcs:dialog/editor/add_line {npc_id:1,text:"Hello, traveler!"}
# Add a choice
function npcs:dialog/editor/add_choice {npc_id:1,text:"Where shall we go?",choices:["North","South"]}
# Start a dialogue programmatically
function npcs:dialog/start_play
```
### Data Storage
- **Storage** `npcs:data` — NPC and dialogue data
- **Storage** `npcs:current_dialog` — currently active dialogue
---
## 📋 Requirements
- **Minecraft**: 1.21.9+
- **Permissions**: Operator for editor commands
---
## 🎮 Example: Quest NPC
```mcfunction
# 1. Create an NPC
function npcs:npc/create_player
# 2. Add dialogues (npc_id = 1)
function npcs:dialog/editor/add_line {npc_id:1,text:"Greetings, hero!"}
function npcs:dialog/editor/add_line {npc_id:1,text:"I have something for you" task."}
function npcs:dialog/editor/add_choice {npc_id:1,text:"Will you accept it?",choices:["Of course!","Not now"]}
```
---
**Create living worlds with the NPC Engine!** 💬✨