Fork EF client renderer patched/entity/ → rig/render/, imports rewrités. Nouveaux fichiers : - render/PatchedEntityRenderer.java (~96 LOC, était stub 16 LOC) — base abstraite, mulPoseStack + setArmaturePose + nameplate via mixin invoker - render/PatchedLivingEntityRenderer.java (~230 LOC, EF 294 → stripped) — hot path render, strippé du JSON customLayers loading + EntityDecorations (pas impl. côté LivingEntityPatch TiedUp) - render/PHumanoidRenderer.java (~95 LOC, EF 53 → adapté) — intermediate biped, baby head scale, enregistre PatchedArmorLayer + PatchedItemInHandLayer - render/TiedUpPlayerRenderer.java (~95 LOC, EF PPlayerRenderer 60 → adapté) — dispatch slim/default (Meshes.ALEX vs BIPED), propage modelParts visible flags, skip cape/bee/arrow layers (V3-REW-08/09) - render/PatchedLayer.java (~55 LOC) — base no-op layer - render/PatchedArmorLayer.java (~45 LOC) — stub no-op (V3-REW-04) - render/PatchedItemInHandLayer.java (~45 LOC) — stub no-op (Phase 3) - mixin/client/MixinEntityRenderer.java (~35 LOC) — invoker shouldShowName + renderNameTag (EF verbatim) - mixin/client/MixinLivingEntityRenderer.java (~30 LOC) — invoker isBodyVisible, getRenderType, getBob Modifs : - resources/tiedup-rig.mixins.json : enregistre les 2 nouveaux mixins client Dépendances stubbées : - PatchedArmorLayer / PatchedItemInHandLayer no-op — "mangent" le layer vanilla équivalent pour éviter double-rendu, mais ne dessinent rien. À implémenter Phase 3 (armor : V3-REW-04 ; item-in-hand : tool joints GLB). - EntityDecorations (color/light/overlay modifiers) strippées du render path — le patch TiedUp n'expose pas encore cette API. Hurt/death overlay natifs conservés. À rework si feature premium glow/tint NPC. TODOs Phase 2.6 / Phase 3 : - animated_layers/*.json datapack-driven loading (strippé du constructor) si besoin futur - PlayerItemInHandLayer (version player-spécifique, distincte de ItemInHandLayer générique) pas encore mangée côté player → layer vanilla continue de draw - ElytraLayer / CustomHeadLayer pas mangés (cohérent "on mange juste les layers qui entrent en conflit avec le mesh skinné") Surprise pendant le fork : - ItemInHandLayer vanilla MC 1.20.1 exige M extends EntityModel<E> & ArmedModel, pas HeadedModel comme PatchedItemInHandLayer EF 1.20.1 pouvait le suggérer via ses anciennes versions. Alignement forcé sur ArmedModel. - EF utilise 2 mixins @Invoker (MixinEntityRenderer / MixinLivingEntityRenderer) pour accéder aux méthodes protected de vanilla — forkés verbatim dans rig/mixin/client/. Tests : - ./gradlew compileJava : BUILD SUCCESSFUL - ./gradlew test --tests "com.tiedup.remake.rig.*" : 15/15 GREEN (TiedUpArmaturesTest 4 + GlbJointAliasTableTest 4 + GltfToSkinnedMeshTest 6 = 14 rig + 1 utilitaire)
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 1.0.2-rc1+
Building
# 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:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
./gradlew build
The built JAR will be in build/libs/.
Development
# 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 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