Tags
Creators
Details
1.0.4
Compatibility
Required content
Changes
Changelog — CobbleBetterNPC 1.0.4
General Changes
- The built-in UI editor has been removed. This enables greater customization freedom through JSON files, eliminating restrictions previously imposed by the visual interface.
Commands
-
/cbn reloadnow works correctly: it reloads presets, dialogues, and NPC classes, and automatically respawns all registered NPCs while preserving their UUID, position, and skin (if previously assigned). -
New command:
/cbn set skin player <name>
Applies and persists the skin of a player (by username) to the NPC currently being looked at by the executor. -
The
/cbn editorcommand has been removed.
JSON File Format
NPC Files (config/CobbleBetterNPC/NPC/*.json)
-
Required field:
"id"must be present and globally unique. Example:
"id": "cobblebetternpc:command"
If missing or duplicated, the NPC will not load. -
resourceIdentifieris required for custom skins:
Must be one of the following to ensure proper skin and model compatibility:"resourceIdentifier": "cobblemon:standard""resourceIdentifier": "cobblemon:pikachu"
Other values may cause model or skin loading failures.
-
Optional — Presets:
"presets": [ "cobblebetternpc:looks_around" ] -
Optional — Maximum distance from spawn:
"maxDistanceFromSpawn": 20If the NPC moves farther than this distance (in blocks), it is removed and respawned at its original spawn position. Default value:
30.0. -
Default values (no need to include unless overriding):
"isMovable": false, "canDespawn": false, "isInvulnerable": true, "isLeashable": false, "allowProjectileHits": false, "hideNameTag": false
Dialogue Files (config/CobbleBetterNPC/Dialogues/*.json)
- The
facesblock has been removed:
It is no longer required or processed. Obsolete example:To apply a specific player’s skin to an NPC, use the command:"faces": { "npc": "cobblemon:red_02", "player": "player.face()" }
/cbn set skin player <player_name>.
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:aJnNiXsu:3CnyvEMP"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:aJnNiXsu:3CnyvEMP"
}

