Chatting Villagers
No reviews yet
Villagers speak context-aware lines in chat, matched to biome, time of day, weather, profession and situation, and hold short conversations with each other — server-side, so your friends don't need to install anything.
Includes quality of life improvements and small tweaks to enhance and customize gameplay.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
About
Description
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 short conversations with each other, and lines can optionally appear as speech bubbles above their heads.
The mod runs entirely on the server. Every player sees the same lines, including players who have not installed it — real chat messages with finished text are sent, not translation keys. Vanilla clients display everything correctly.
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.
Commands
| Command | Effect | Permission |
|---|---|---|
/chattingvillagers on |
off |
toggle |
/chattingvillagers status |
Show your own setting | everyone |
/chattingvillagers frequency quiet |
normal |
busy |
/chattingvillagers bubbles on |
off |
Speech bubbles on/off globally |
/chattingvillagers chat on |
off |
Chat output on/off (off = bubbles only) |
/chattingvillagers reload |
Reload config and text catalogue | 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.
Edit and extend the lines — no recompiling
The entire text catalogue ships as JSON and is written to config/chattingvillagers/dialogue/<language>/ on first start. Change lines, delete them, add your own, then reload them in a running game with a single command. Your own files are never overwritten by an update.
Included per language:
| Pool | Entries |
|---|---|
| Solo lines | 767 |
| Conversations | 238 (616 lines) |
| Reactions | 421 |
| Total | 1804 spoken lines |
The format is deliberately simple — an entry, its conditions, a weight, the text:
{
"id": "farmer_morning",
"type": "solo",
"conditions": {
"profession": ["farmer"],
"timeOfDay": ["morning"]
},
"weight": 1,
"text": "Out in the field early - that's how I like it."
}
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. Any additional .json file in a language folder is loaded automatically as a new pool of solo lines.
/chattingvillagers debug helps here: it shows the nearest villager's context and how many lines and conversations currently match.
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.
Conversations and reactions
Two villagers standing close enough start a short exchange: A says something, B replies after a slightly randomised delay, and the longer ones run to eight 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 briefly. The head shake and sound still play as usual, and villagers with a profession open their trading menu exactly as before.
Speech bubbles
Optionally, the spoken line also appears above the villager. The bubble faces the player, moves along, and disappears by itself. This is server-side too — all players see it, no client mod required. 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 |
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 |
portalScanRadius |
4 |
Range of portal detection (0 = off) |
frequencyPreset |
normal |
Active preset (display only) |
Compatibility
- Minecraft 1.21.1, Fabric — Fabric API required, Java 21
- Other players do not need the mod; the server is enough
- No mixins into vanilla behaviour: 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
- A key bind as an alternative to the on/off command
- 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.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources