# TiedUp! - Minecraft 1.20.1 Forge Mod

Community remake of the TiedUp! mod for Minecraft 1.20.1 (Forge).
Adds restraint and roleplay mechanics to the game.

> Original mod by Yuti & Marl Velius (1.12.2).
> This is an independent remake, not affiliated with the original developers.

## Features

- Restraint items (binds, gags, blindfolds, collars, straps, and more)
- NPC entities with AI and personality-driven dialogue (Kidnapper, Damsel, Guard, Trader, Maid, Master)
- Kidnapper camp world generation
- Captivity and prison mechanics
- Player animation system with 3D item rendering
- Multiplayer synchronization
- Mod compatibility (Minecraft Comes Alive, Wildfire's Female Gender Mod)
- In-game guide book (Patchouli)

## Requirements

- Java 17
- Minecraft 1.20.1
- Forge 47.4.10+
- [PlayerAnimator](https://maven.kosmx.dev/) 1.0.2-rc1+

## Building

```bash
# First time setup
make setup

# Build the mod
make build

# Clean and rebuild
make rebuild

# See all available commands
make help
```

Or directly with Gradle:

```bash
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
./gradlew build
```

The built JAR will be in `build/libs/`.

## Development

```bash
# Run Minecraft client
make run

# Run dedicated server
make server

# Multiplayer testing (server + 2 clients)
make mptest

# Generate IDE configurations
make idea     # IntelliJ IDEA
make eclipse  # Eclipse
```

## Project Structure

```
src/main/java/com/tiedup/remake/
├── blocks/        # Custom blocks and block entities
├── cells/         # Captive cell management
├── client/        # Rendering, GUI, animations
├── commands/      # /tiedup command
├── compat/        # Mod compatibility (MCA, Wildfire)
├── core/          # Main mod class, config, sounds
├── dialogue/      # NPC conversation system
├── entities/      # Custom NPCs and AI
├── events/        # Event handlers
├── items/         # All mod items
├── mixin/         # Minecraft bytecode modifications
├── network/       # Multiplayer packet system
├── personality/   # NPC personality system
├── state/         # Player state tracking
├── v2/            # Next-gen items and blocks
└── worldgen/      # Structure generation
```

## Dependencies

Some dependencies are included as local JARs in `libs/` because they are not available on Maven Central:

| Library | Version | Usage |
|---------|---------|-------|
| PlayerAnimator | 1.0.2-rc1+1.20 | Player pose animations |
| bendy-lib | 4.0.0 | Model part bending |
| Architectury | 9.2.14 | Required by MCA |
| Minecraft Comes Alive | 7.6.13 | Optional compatibility |
| Wildfire Gender Mod | 3.1 | Optional compatibility |

## License

GPL-3.0 with Commons Clause - see [LICENSE](LICENSE) for details.

**TL;DR:** Free to use, modify, and distribute. Cannot be sold or put behind a paywall.
The 3D models are the **property of their creators**; if their names are listed, please ask them for permission otherwise me.

## Status

This mod is under heavy rework. Things will break, APIs will change, features will come and go. If you want to build and use it as-is, that's on you.

## Contributing

Contributions are welcome. Rules:

- **Pull requests only** - no direct pushes
- **Clear commit messages** - describe what and why, not how
- **Test your changes** before submitting - at minimum, make sure it compiles and runs
- Bug fixes, new features, improvements - all welcome
- Areas where help is especially needed: textures, 3D models, multiplayer testing
