Chatting Villagers

Quick rating

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.

QoL & Tweaks
Mod Loaders
Fabric
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

About

Project Details

Type
Mod
Latest Version
chattingvillagers-1.0.0.jar
Authors

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.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID

Resources

External Links

Source Issues Wiki Discord

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
chanceFactorMorningNight 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

  • 2026-08-03_17.12.10_ergebnis.png
    2026-08-03_17.12.10_ergebnis.png 2026-08-03_17.12.10_ergebnis.png
  • 2026-08-03_14.10.18_crp.png
    2026-08-03_14.10.18_crp.png 2026-08-03_14.10.18_crp.png
  • 2026-08-03_14.06.45.png
    2026-08-03_14.06.45.png 2026-08-03_14.06.45.png
  • 2026-08-03_18.42.39.png
    2026-08-03_18.42.39.png 2026-08-03_18.42.39.png
  • 2026-08-03_17.10.52_ergebnis.png
    2026-08-03_17.10.52_ergebnis.png 2026-08-03_17.10.52_ergebnis.png
  • 2026-08-03_14.11.17.png
    2026-08-03_14.11.17.png 2026-08-03_14.11.17.png
  • 2026-08-04_01.33.07_ergebnis.png
    2026-08-04_01.33.07_ergebnis.png 2026-08-04_01.33.07_ergebnis.png

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

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Downloads
Last Updated
Created
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works