Links
Tags
Creators
Details
0.9.8
Compatibility
Changes

Without Honor: NPCs, Update 0.9.8
A patch about things that had been getting in the way for a while: pauses in actions that didn't pause, dialogues that wouldn't save because of their size, and presets that arrived on someone else's server without their images. Plus a big pass on animation - with bendy-lib installed NPCs finally bend their knees and elbows in Emotecraft animations, and ETF/EMF support means resource packs like Just Expressions and Fresh Animations: Player Extension now work on them.
Important: the network protocol version was bumped again. Client and server must run the same mod version.
Pauses and queues
- Pause works in triggers. A trigger block used to run the whole chain in one go: the pause was skipped and every command fired at once. It now waits honestly - including when the NPC isn't linked to the trigger or isn't loaded.
- Pause in the on-death reaction plays out to the end. The tail of the action list used to die with the NPC.
- Monologues queue up. Two in a row no longer overwrite each other: the first finishes, the second continues. And a monologue that locks controls no longer knocks you out of an open chest - it waits until you close the window.
- Speech bubbles queue too. Each one lives out its full duration and the next waits its turn. Nothing gets cut off mid-sentence.
Large dialogues, profiles and media transfer
- The size limit is gone. Dialogues and profiles of any size save and transfer: data travels in parts and is compressed on the way, with a progress readout for longer uploads. A dialogue of forty thousand characters used to simply vanish along with your edits.
- Images and skins travel with the preset. Export puts them in a folder next to the file, and import only sends the server what it's missing. The file used to carry names alone, so on a new server the preset opened empty.
- Name clashes resolve themselves: if a file with that name already exists but holds something else, yours arrives under a free name and the links inside the preset are corrected automatically. Other people's files are never overwritten.
Settings for server owners
There's now a separate server config: the maximum size of a single upload (32 MB by default, up to 256), the size cap for one image, and the total number of images in a world. The client sees your server's real settings and warns you up front instead of failing halfway.
Skins
- HD support: 128Γ128, 256Γ256 and 512Γ512.
- The built-in vanilla skins (Steve, Alex, Ari and the rest) now come from the game's own resources. That means resource packs can see them: if a pack redraws the player skins, your NPC picks that version up. They also appear instantly and work offline.
Respawn where they were created
The new default respawn place is where the NPC was placed, not where it died. The spot is remembered per character, survives moves and deaths, and never ends up in an export file.
About existing worlds: NPCs whose respawn place was never set by hand will switch to their creation point - for ones already placed, that's wherever they stand now. If you want the old behaviour for someone, pick "Where it died" in their respawn settings.
Animation and resource packs
- Bends in emotes. With bendy-lib installed, NPCs bend their knees, elbows and torso in Emotecraft animations, exactly like the player next to them. Limbs used to stay straight no matter how expressive the gesture was.
- Resource pack compatibility. With ETF and EMF installed, packs like Just Expressions and Fresh Animations: Player Extension now work on NPCs.
Also fixed
- Fixed various bugs in the code that you probably never noticed - but they were there. New ones possibly added. This is the way!
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:z3LQpsHg:4dN0ou3t"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:z3LQpsHg:4dN0ou3t"
}

