跳到正文

Chatting Villagers

作者:draysus

Villagers speak context-aware lines in chat, matched to biome, time of day, weather, profession and situation, and hold short conversations with each other. You can build your own sentences database. English and German version included.

收藏

截图

介绍

中文介绍正在准备中,下面暂时显示原文。

Chatting Villagers

Villagers who finally have something to say.

Villagers speak context-aware lines in chat — as Name: line, in a colour of your choosing — matched to their profession, biome, the time of day, the weather and their situation. Two villagers standing close together hold conversations with each other, and lines can optionally appear as speech bubbles above their heads.

Every line lives in plain JSON files you can edit, extend, sort into categories and switch on or off with a single config line. Use the 2,500+ built-in lines, trim them to your taste, or replace them entirely with your server’s own lore.

All logic runs on the server and only real chat messages with finished text are sent, no translation keys. On Fabric, players without the mod can join and see everything. On NeoForge and Forge, server-only use has not been verified yet. To be safe, install the mod on clients there as well.

 


 

New in 1.1.0 – The Village Talks Back

  • Now on Fabric, NeoForge and Forge – for Minecraft 1.20.1, 1.21.1 and 1.21.11 (see Compatibility)
  • Line categories: control exactly which kinds of lines are loaded, from the built-in catalogue and your own files (see below)
  • Fully custom dialogue: replace the built-in lines with your own, ideal for roleplay servers
  • 735 new lines per language, over 2,500 in total, with new lines for every profession, every biome, times of day, weather, caves, the Nether and the End
  • 136 new conversations, from quick two-liners to stories of up to ten lines
  • Village mysteries: emeralds go missing, someone rings the bell at midnight, poppies appear on doorsteps… the villagers have their theories. Listen closely.
  • Village life: the fisherman and the smiths can’t stand each other, the armorer and the weaponsmith are rivals, the librarian is fed up with people breaking his lectern, and everyone keeps an eye on the emerald market
  • Villagers who trade now talk, too: now and then they say something when you open their trading menu

Existing installations receive the new lines automatically with the update. Your own edits stay untouched.
 
 


 
 

Language

English and German are included. English is the default. To switch, edit config/chattingvillagers.json:

"language": "de_de"
- or:
"language": "en_us"

Then run /chattingvillagers reload or restart the server. The language folder is created automatically on first use.

Because finished text is sent to clients, the language is a server setting, not a per-player one: everyone on a server sees the same lines. Additional languages are just another folder under config/chattingvillagers/dialogue/. No code changes needed, and translations are very welcome.

 


 

Shape your own line pool: categories and custom dialogue

Chatting Villagers is built to be your village’s voice. Every entry, whether built in or written by you, can carry an optional "category". One line in the config decides which categories are loaded:

"disabledCategories": ["popculture", "insider", "realworld"]

Lines without a category are always loaded. Change the list, run /chattingvillagers reload, done. No restart needed.

Built-in categories

Category Contains
popculture References to films, series, books, games and anime
insider Community in-jokes and memes (mostly from German internet culture)
realworld Rare comments on real-world events
(none) Everything that stays inside the Minecraft world: professions, biomes, village life, mysteries

Disable all three and your villagers never break the fourth wall.

Your own categories

Categories are just text, so you can invent your own and switch them as you like:

  • winterfest, harvest_festival: seasonal event lines you enable for a week
  • war_arc, plague_arc: story arcs on your roleplay server that end at some point
  • kingdom_north, kingdom_south: different lore per server or map
  • spoilers: lines that should only appear after players reached a certain point

All conditions (profession, biome, time of day, weather, dimension, state) work inside every category. A winterfest line can be limited to farmers in snowy biomes at night, for example.

Build your own line database

Option A – add to the built-in lines: drop new .json files into config/chattingvillagers/dialogue/<language>/ next to the existing ones. Optionally disable the built-in categories you don’t want.

Option B – your lines only: set "builtInDialogue": false in the config, delete the mod’s line files from the language folder, add your own and reload. The mod then never recreates its own lines. Only names.json and messages.json are kept, because villager names and command texts depend on them.

The file name decides the type, everything else is up to you:

File name starts with Loaded as
conversations… (e.g. conversations_tavern.json) Conversations between two villagers
reactions… (e.g. reactions_guards.json) Right-click reactions
anything else (e.g. lore_kingdom.json) Solo lines

A solo line with a category:

{
  "id": "winter_farmer_1",
  "type": "solo",
  "category": "winterfest",
  "conditions": { "profession": ["farmer"], "biome": ["snowy"] },
  "weight": 1,
  "text": "Three more nights until the Winterfest. I've saved my best pumpkins."
}

A conversation, where {other} is replaced with the partner’s name:

{
  "id": "tavern_rumor_1",
  "type": "conversation",
  "category": "kingdom_north",
  "conditions": { "timeOfDay": ["evening"] },
  "weight": 1,
  "lines": [
    { "speaker": "A", "text": "Have you heard, {other}? The king's banners were seen at the river." },
    { "speaker": "B", "text": "Then we'd better hide the emeralds." }
  ]
}

Save, run /chattingvillagers reload, and your villagers speak your world’s story.

 


 

Commands

Command Effect Permission
/chattingvillagers on / off / toggle Villager chat for yourself everyone
/chattingvillagers status Show your own setting everyone
/chattingvillagers frequency quiet / normal / busy How often villagers talk OP (level 2)
/chattingvillagers bubbles on / off Speech bubbles on/off globally OP (level 2)
/chattingvillagers chat on / off Chat output on/off (off = bubbles only) OP (level 2)
/chattingvillagers reload Reload config, categories and all line files OP (level 2)
/chattingvillagers debug Show the nearest villager’s context OP (level 2)

Any player can mute village chat for themselves with /chattingvillagers off. Everyone else keeps receiving it. The setting is stored per player UUID and survives restarts.

 


 

The built-in catalogue

The catalogue is written to config/chattingvillagers/dialogue/<language>/ on first start. Your own files and edits are never overwritten by an update. New lines arrive in separate files such as solo_update1.json.

Included per language:

Pool Entries
Solo lines 899
Conversations 374 (1,109 lines)
Reactions 531
Total 2,539 spoken lines

Empty or missing conditions mean “always fits”. The weight controls how often a line comes up: 1 for normal lines, 0.2 or 0.1 for rare ones. Handy for the references and easter eggs hidden throughout the catalogue.

/chattingvillagers debug shows the nearest villager’s context and how many lines and conversations currently match. Very useful while writing your own.

 


 

Context-aware lines

Every line can carry conditions; when several fit, one is drawn at random by weight. Taken into account:

  • Time of day: morning, day, evening, night, plus finer markers for waking and going to bed.
  • Weather at the villager’s position: clear, rain, thunder. A villager under a roof inside a rainy area still counts as being in the rain.
  • Profession: all 13 vanilla professions, plus jobless villagers, nitwits and wandering traders.
  • Biome: 34 categories, from desert and taiga to mushroom fields, dripstone caves and deep dark.
  • Dimension and location: Overworld, Nether (with dedicated crimson, warped, soul sand and basalt lines), the End. The mod also distinguishes underground from surface: standing indoors under a roof still counts as the surface, deep below with no sky gets cave lines.
  • Nearby portals: a Nether or End portal next to a villager gets commented on.
  • State: low health, recently hurt, currently trading, alarmed by the village bell.

Conversations and reactions

Two villagers standing close enough start an exchange: A says something, B replies after a slightly randomised delay. Most conversations are short, the longest run to ten lines. Names are inserted via placeholders, so they genuinely address each other. Conversations end cleanly if a participant dies, changes dimension or wanders off, and each pair has its own cooldown.

Right-click a jobless villager or nitwit (one that only shakes its head in vanilla) and it answers every time. Villagers with a profession open their trading menu exactly as before, and now and then (25 % by default) they also say something fitting to their trade. The head shake, sounds and trading itself are untouched.

Speech bubbles

Optionally, the spoken line also appears above the villager, using vanilla text displays. The bubble faces the player, moves along, and disappears by itself. Bubbles are non-persistent and cleaned up consistently: on expiry, on death, on server shutdown, and orphans are removed on load. Nothing accumulates in your world save.

If you’d rather keep chat clear, turn chat output off and run the mod with speech bubbles only.

Anti-spam: chat stays readable

Villagers speak only within a configurable radius of a player, checks run at intervals rather than every tick, each villager has a cooldown, not everyone speaks at once, there’s a hard per-player cap on messages per minute, the same line is never repeated twice in a row, nights are quieter by default, and sleeping villagers, babies and zombie villagers stay silent.

Three frequency presets change all the relevant values together: quiet, normal and busy. Switchable in game, no config editing required.

 


 

Villager names

The displayed name is the villager’s custom name. The Villager Names mod by Serilum assigns those automatically and pairs very well with this one. It is not required: without a custom name, the mod falls back to the profession name (Farmer, Librarian, Wandering Trader …), and failing that, to “Villager”. Name colour and text colour are configured separately.

 


 

Configuration

config/chattingvillagers.json, created with defaults on first start. All values can be applied in a running game with /chattingvillagers reload.

Setting Default Meaning
masterEnabled true Master switch
language en_us Language folder for the text catalogue
builtInDialogue true false = use only your own line files
disabledCategories [] Categories that are not loaded (built-in or your own)
chatColor / nameColor white / gold Colour of the text and the name
radius 16.0 Hearing range around the player, in blocks
speakIntervalTicks 100 Check interval
speakChance 0.35 Chance to speak per interval
villagerCooldownSeconds 45 Per-villager cooldown
maxMessagesPerPlayerPerMinute 6 Per-player rate limit
chanceFactorMorning … Night 1.0 / 1.0 / 1.0 / 0.3 Factor per time of day
conversationsEnabled true Villager conversations
conversationChance 0.15 Chance of a conversation
conversationRadius 5.0 Maximum distance between participants
pairCooldownSeconds 120 Per-pair cooldown
conversationLineDelayTicks 40 Pause between lines
bubblesEnabled true Speech bubbles
bubbleLifetimeTicks 60 How long a bubble is shown
chatMessagesEnabled true Chat output
reactionsEnabled true Right-click reactions
reactionCooldownTicks 30 Cooldown between reactions
tradeReactionChance 0.25 How often trading villagers react (0 = never)
portalScanRadius 4 Range of portal detection (0 = off)
frequencyPreset normal Active preset (display only)
     

 


 

Compatibility

Minecraft Fabric NeoForge Forge Java
1.20.1 ✅ – ✅ 17
1.21.1 ✅ ✅ ✅ 21
1.21.11 ✅ ✅ – 21
  • Please download the file that matches both your Minecraft version and your mod loader
  • The Fabric version requires the Fabric API
  • Fabric: installing the mod on the server is enough, players don’t need it
  • NeoForge / Forge: install it on the server and, to be safe, on the clients too
  • No mixins at all: trading, professions, breeding and gossip are untouched
  • Data packs and world generation are not affected
  • Fully compatible with Villager Names by Serilum (optional, not required)

Planned

  • Optional data pack support for the line catalogue
  • More languages, contributions welcome

License

MIT: use it, change it, put it in your modpack. A credit is always appreciated.

常见问题

Chatting Villagers 支持哪些 Minecraft 版本?

Chatting Villagers 支持 Minecraft Java 版 1.20.1–1.21.11,共 3 个版本,可用的加载器:Fabric / Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。

Chatting Villagers 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分