Description

Name Forging is a grammar-aware procedural name generator for Minecraft with built-in grammar and localization support.
Instead of stitching random words together, it generates natural-sounding names, supports adjective/noun agreement, grammatical cases, and multiple languages.
The mod adds a name generator button to the world creation screen, provides the /namegen command, and exposes an API that other mods can use.
Features
- Pattern-based generator — Create names using templates such as
{adj} {noun}or{noun.gen} {noun}with weighted word selection, grammatical agreement, and case support. - World creation button — Generate a world name with a single click. Choose whether names are generated automatically when opening the screen, only when pressing the button, or disable the feature entirely through the config.
/namegencommand — Generate names directly in chat. Generated names are clickable for easy copying.- API for mod developers — Generate names for towns, settlements, waystones, NPCs, or any other custom content.
- Data Pack friendly — Generators and language data are completely separated. Adding support for a new language is as simple as creating a new localization file.
- Repeat protection — Prevents recently generated names from appearing again (last 16 results).
Included Generators
The mod currently includes one built-in generator.
| Generator | Languages | Description | Example |
|---|---|---|---|
| Fantasy | English, Russian | Fantasy-inspired locations and kingdoms | Ancient Hollow, Silent Valley, Lands of Shadows |
More generators will be added in future updates.
Usage
World Creation
Click the 🎲 button next to the world name field to generate a new name.
Command
/namegen
or
/namegen name_forging:fantasy
Configuration
Generation behavior can be configured using:
worldNameModeworldNameGenerator
For Mod Developers
Optional<String> name = NameForgingApi.generate(
ResourceLocation.fromNamespaceAndPath(
"name_forging",
"fantasy"
)
);
Name generation happens entirely on the client, just like any other text entered by the player. The generated name is then sent to the server as a regular string.
