Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
LibVilNam
Cross-mod village name generation compatibility library.
Welcome to [YOUR VILLAGE NAME HERE], village-chief-sama! UwU
What in the alphabet-soup am I looking at?
VibVilNam is a village names library (that's actually just its name, except it's written in the Linux naming convention, so everything is shortened to 3 characters max, and „Library” goes first not last - just like „C Library” becomes „LibC”), that any other mod can use to attach names to villages in a cross-compatible way.
And what the hell does that mean?
Imagine you have one mod that places some kind of transportation markers in villages (maybe the transportation method is walking and the marker is a minimap waypoint; maybe it's a waystone mod; maybe it's a train station attached to a procedurally generated network) and another mod that welcomes you when you enter a village (maybe something like Traveller's Titles, but for villages; maybe something sign-based). Now, wouldn't it be oh' so nice if the mod said „Welcome to (village X)!” and then the transportation marker was also called „(village X)”? Unfortunately, this isn't possible today.
...Unless the mod integrates with LibVilNam! That's right! Tired of multiple mods giving conflicting village names, when running large enough modpacks? We're here to the rescue! LVN provides a library that other mod authors can hook into to make their village names consistent with all other mods that also support LibVilNam (see list below). In some cases, the mods themselves may not even have to support LVN directly, as we have an as-of-yet-short (but steadily growing) list of official integrations with popular mods, for which we maintain support inside LibVilNam itself.
Do you only have a single village-naming mod? LibVilName can be useful, too! Most name-generating mods just blindly toss together an adjective/noun and a city-like word, and form a name from them (for example, Sunnyvale, Steamtown, Icetopia, etc.). This is fine, but it quickly gets repetitive and boring. LVN uses a different technique, called a Markov Chain, which is kinda like a small LLM (well, if it's small, then that's no longer a Large Language Model, but you get the idea). It trains its understanding on how a given language connects its syllables in a provided dataset (see Configuring LibVilNam below on how to provide it) and then tries to extrapolate from there. All this means that you get much more realistic-sounding and unique names, and you also have a lot of control over the style of generated names (just use a different training dataset), letting you fairly easily change eg. languages or even go back to those old repetitive names (if you liked them, for some reason). [ Note, that Markov Chains don't support any fancy LLM optimization concepts like Attention (which sits at the core of every modern chatbot), which theoretically makes them less memory-efficient than an LLM (if one was to use a Markov Chain to generate a full paragraph, they'd need exabytes of RAM), but they need very little memory overhead (your dataset itself kinda is the model - no need to load tens of GBs of model weights into a GPU), which in practice makes them far better than LLMs for generating short one-word sequences (like a village name) - thanks to this, LVN runs fully locally on your CPU, and you don't need to (can't, actually) put any AIslop-API tokens anywhere. ]
Download
- From Modrinth
- On GitHub, please build from source or download a release.
- CruseForge support is not planned.
Supported mods
Below is the list of supported mods. If a mod is marked as [AUTO], no extra config will be needed, and it picks up LibVilNam (or LibVilNam (or 3rd-party integrator) picks it up) automatically.
1st-party support
These are the mods that use LibVilNam directly, either by relying on it as a direct dependency or as an extra possible integration:
Nothing here yet! Built a mod with LibVilNam support? Please open a pull request to this file, we'd love to showcase you as our first consumer!
2nd-party support
LibVilNam itself integrates with those mods via Mixins:
- Blay's Waystones [AUTO]
- Railways Untold [AUTO]
3rd-party support
The following mods offer integration between LibVilNam and some other mods:
Nothing here yet! Built a mod with LibVilNam support? Please open a pull request to this file, we'd love to showcase you as our first consumer!
Usage - For regular players
Most basic usage of LibVilNam is laughably simple. For most mods (those marked as [AUTO] above), all you need is to install LVN and the chosen mod, and you can enjoy shared village names between mods. Sometimes, you may need to install an extra mod (those in the 3rd-party support list above) to bridge the gap, or to change some config value to explicitly enable LVN support (if there is no [AUTO] marking). That's mod-specific, so it's not documented here.
For advanced use, however, see below:
Configuring LibVilNam
LibVilNam's config file depends on your modding platform. On Forge, you'll find it at ~/.minecraft/config/lvn-common.toml and for Fabric, it's ~/.minecraft/config/lvn.properties (Linux client via the official Minecraft launcher for both - adjust for your OS, client/server situation, and launcher yourself). Wherever your file is, it will contain the following keys:
padding: How many extra chunks in every direction should a village claim as its own territory? This is done to account for mods that spawn structures close to (but not inside) villages, like Railways Untold stations. Defaults to3(configurable1-5), on top of rounding-up to the nearest chunk outside of the village's bounding box (core behavior, cannot be configured).do_villagelike: Should „village-like” structures (ie. those that generally have some humanoid-ish inhabitants and don't seem like some ancient ruins, such as Woodland Mansions or Bastions) also be given names, or do we only assign names to actual villages? Will look for structures in both#minecraft:villageand#lvn:villageliketags iftrue, only for#minecraft:villageiffalse. If you want more fine-grade control over what structures count as villages, you can edit the aforementioned tags using a datapack.dataset: The dataset on which LibVilNam trains its Markov Chain village name generator. Words are space-separated. Defaults to one that gives you Polish-sounding names, see below for defaults.lang: Dash-delimited locale code for the language in which the dataset above is written. If using a fantasy language, pick an IRL one with the closest-matching alphabet. Don't worry, it doesn't need to be a strict subset/superset of letters (even the good'ol English should be enough for most cases), just don't do anything too stupid, like a dataset in Japanese and a Greek alphabet. Defaults topl-PLto match the dataset above.
Picking a dataset
By default, LibVilNam trains its Markov Chain on this dataset. It's a hand-curated list of over four thousand various Polish geographical place-names (villages, cities, wojweództwos, gminas, and powiats - and some words may be parts of street-names, too, because of how the data was obtained). We decided to go this route, instead of training it on eg. American or British places, because:
- This mod was initially developed for GhostLand 8, and GhostLand is a Polish community/modpack/SMP/Discord/I-don't-really-know-what-GhostLand-is-tbh-it's-kinda-like-modern-Xbox-branding-where-it's-everything-all-at-once, and we wanted the names to be more familiar this edition; something to differentiate it from prior editions with village names (6 and 7), where all names were generically-American (see: how most name generators work, above - and coincidentally, this also seems to be how USA invents its counties).
We technically could've just used this dataset on GhostLand alone, but I spent too much time on making it usable and wanted to show off. - We wanted to leverage this project cultural advantage to provide a genuinely unique experience to our users. Kinda like in The Witcher, you don't really have generic-ass goblins or slimes, that you'd find in all repetitive MMOs or Gatcha games, but rather monsters that draw inspiration from our local Polish/slavic folklore, which most players enjoy, due to a certain exploratory factor. Likewise, because of the author's familiarity with the Polish language (given how she grew up here all her life), names generated by LibVilNam can sound uniquely-Polish, which lets you explore the depths of this language and should as such be more enjoyable.
...in theory. In practice, we understand that some players may not want to deal with having to pronounce „Sokołobrychodnorostrów” (*real name produced by our generator during development). For that reason, we offer the ability to change how the generator works by using a different dataset. The exact instructions for doing that are above, here I'd like to instead focus on obtaining it. In general, you have 2 routes: either you download a database from your local government and try to massage the data yourself (unless your gov't provides more useful stuff than ours), or you head over to SamCodes Markov, press Settings, set Length Range 3-23 + Order 3 + Prior 0.00 + Backoff 0 (that's the params used by LibVilNam), and start messing around with pre-made datasets until you find one that generates names that look like something you might want to use. If you need a starting point, we found that their „Currencies” dataset produces some interesting results, that look great as some sort of non-descript fantasy language (at least if you assume that „Mark” means city/town/village/etc. in that language, as that suffix seems somewhat common).
In-game commands
/lvn-getvillageto figure out in what village are you right now, and if in a village at all (using all 4 available strategies for locating villages)/lvn-renameto rename the village you're currently at (determined by the 1st strategy printed by the command above)
World files
LibVilNam persists its village names between restarts in ~/.minecraft/saves/[world name]/lvn/[dimension namespace]/[dimension id].csv. For example, for villages located in the minecraft:overworld dimension of the „My Forever World” world, the path will be: ~/.minecraft/saves/My Forever World/lvn/minecraft/overworld.csv.
Usage - For consumers
There is no developer guide or community yet. All I can say is use Modrinth Maven to add a dependency, and then check out our public API on on GitHub to figure out how to interact with it (it's really simple, I promise). An instance of the API can be obtained via hub.guzio.lvn.internal.Main.i().getAPI() (that's the 1st and last time one should ever interact with the internal package, as everything else there is highly platform- and version-dependent - meanwhile, public methods in hub.guzio.lvn.API (except for its constructor) and hub.guzio.lvn.Village are guaranteed to follow SemVer).
License
- The code and the binaries are licensed under MIT. There are two MIT licenses applied to this project, one governs most of the code and the other one applies to Felix's Markov Chain library that this project hard-embeds inside (not a soft-dependency via Gradle due to the fact that his generator needed some extensive modifications to be usable here (this is why I also included myself as the 2026 and onwards contributor in the license, which is not against the MIT license, as both the original author's copyright note and the disclaimer are preserved as needed) and it's not like I'm concerned about updates, given that it seems to be abandonware)
- Yes, that means that you can use this in modpacks. Yes, even in packs outside Modrinth (yep, even CF - just use a direct-file-inclusion), although in that case (to comply with MIT license requirements), you'd need to credit this mod, by „including its license in derived work”. Ideally, that'd be a simple link to the license, with the author's and the mod's name, directly in your pack's README's license footnote (like this one) - not buried deep within 2 layers of ZIPs (first the pack, then the mod), even if that's technically still inclusion.
- Do not reupload (or recompile+upload, unless significant changes were made (and/or this mod got abandoned and you want to keep it updated), as part of a complete fork) this mod as-is onto other hosts, notably 9Minecraft (*including a virus doesn't count as „significant changes”) or CurseForge. No, CurseForge, I don't care how technically legal it would be under MIT. If you refuse to take down any impersonators, then let me call this little string of text „legally binding” (Because it technically says License above, so can we really be sure that it's not as valid as the
LICENSEfile on GitHub or the linked license on Modrinth? I mean... Of course it's not (this is merely an explainer footnote), but - you know - can you really be sure? How brave would you be to passage over this vail of legal gray-zone, CurseForge?) and see how you roll... - The built-in training dataset for the Markov Chain is licensed under
CC BY-NC 4.0. - The logo is vibe-drawn by NanoBananna because I had absolutely no idea* what would I even want this project's logo to look like (but I still wanted to add something), let alone would I have the abilities to make it look in any way decent. Since I don't hold any emotional attachment to slop, you're free to do whatever with it; I hereby release it under
CC BY 4.0(which is basically MIT for images). The only reason why I'm not going with a full-onCC0 Public Domainis that just in case this logo ends up being a B-Roll in some rant about AI, I want my project credited(listen, you don't get a lot of opportunities for advertising as a Minecraft mod; gotta be desperate and go with an all-press-is-good-press approach, especially with how the actual mod was made by a human!, so no „vibe-coding” ick/turnoff happens). - You cannot directly reuse the LibVilNam name (at least add some suffix, or something) for any fork or (especially) unrelated projects.
Words of encouragement
*If you happen to have more of an idea than I did, and also managed to realize said idea (or would just like to humanize the current realization of NanoBannana's „idea” - cuz tbh it pulled-off quite a nice design overall (with the Markov literal-Chain and a sort of emblem-style design), it's just laughably in cohesive (2 out of the 3 generated name examples on the sign are explicitly not the kind of name generation this mod does; the chain is contorted into an abomination; the book looks nothing like Minecraft) and soulles), a pull request with your logo would be hugely welcome! Even more-so if you release the artwork under CraftLDAP-style logo-licensing mentality, ie. license it under CC BY-NC-ND 4.0 with the willingness to lower the requirements for good-faith derivative works (one of which would have to be LibVilNam itself, otherwise I'd literally be legally unable to use it) or something more permissive than this (I just would prefer to avoid stuff that don't allow for derivatives (though any contribution is appreciated and I'm sure an arrangement can be worked out), as I think that goes against the spirit of any creative works - there is a reason why I publish everything under MIT).
That's all!
Hope you enjoy this silly little project :3


