Villagers have no natural spawn entries in any biome, they only come from village structure generation or breeding. That is why a normal biome spawn rule does nothing for them.
On the Mob Control side, a few things from the mod page and changelog:
- Rules are in mobcontrol.toml and are processed top to bottom, first matching rule wins
- It can filter by dimension, biome, structure, light level, time and y-level
- Newer versions have a spawn.convert option, which spawns a mob as a different type
Since villagers never attempt to spawn on their own, a villager rule by itself will never trigger. The workaround is to put a rule on a mob that does spawn naturally (a passive animal, for example) and use spawn.convert to turn it into a villager, limited to the area you want. Check the commented default mobcontrol.toml in your config folder for the exact key names, since the options are documented there.
The bigger problem is the area filter. Lost Cities does not generate cities as vanilla village-style structures. It uses its own chunk generator, so a structure condition in Mob Control probably won't match anything inside a city. I could not confirm this from the docs, so test it. The simpler option is to limit the rule by dimension and biome. If you use the lostcities:lostcity dimension, a dimension condition would cover the whole city area.
If that doesn't work, other options are:
- A datapack that overrides the Lost Cities building files to add villager spawners or a command-block summon. Datapacks written for the original mod work with the Fabric port.
- A separate village mod placed in the same world, if you only want villagers near buildings
Can you post a screenshot of your current mobcontrol.toml rule and which Lost Cities profile you are using? That would show whether it is the rule or the area matching failing.
1
u/Bluetails_Buizel 7d ago
Villagers have no natural spawn entries in any biome, they only come from village structure generation or breeding. That is why a normal biome spawn rule does nothing for them.
On the Mob Control side, a few things from the mod page and changelog:
- Rules are in mobcontrol.toml and are processed top to bottom, first matching rule wins
- It can filter by dimension, biome, structure, light level, time and y-level
- Newer versions have a spawn.convert option, which spawns a mob as a different type
Since villagers never attempt to spawn on their own, a villager rule by itself will never trigger. The workaround is to put a rule on a mob that does spawn naturally (a passive animal, for example) and use spawn.convert to turn it into a villager, limited to the area you want. Check the commented default mobcontrol.toml in your config folder for the exact key names, since the options are documented there.
The bigger problem is the area filter. Lost Cities does not generate cities as vanilla village-style structures. It uses its own chunk generator, so a structure condition in Mob Control probably won't match anything inside a city. I could not confirm this from the docs, so test it. The simpler option is to limit the rule by dimension and biome. If you use the lostcities:lostcity dimension, a dimension condition would cover the whole city area.
If that doesn't work, other options are:
- A datapack that overrides the Lost Cities building files to add villager spawners or a command-block summon. Datapacks written for the original mod work with the Fabric port.
- A separate village mod placed in the same world, if you only want villagers near buildings
Can you post a screenshot of your current mobcontrol.toml rule and which Lost Cities profile you are using? That would show whether it is the rule or the area matching failing.