{"tab":"other","section":"nameFilterSettings","title":"Name Filter Settings","summary":"Keyed map of name replacement rules. Each key is a name (or name fragment); its value provides a list of allowed replacements. When a generated name matches a key, the AI substitutes one from the replacements array.","kind":"schema","uiLocation":"Other → Name Filter Settings","uiSubtitle":"\"Settings for filtering names in the world\"","editor":"JSON + ADD ITEM (empty `{}` by default)","related":[{"section":"randomNames","note":"the name pools generators draw from before this filter applies"},{"section":"npcs","note":"replacements substitute at NPC name generation time"}],"wikiUrl":"/other/nameFilterSettings","schema":{"_type":"record","domain":"string","codomain":{"_type":"required","fields":{"replacements":{"_type":"array","of":"string"}}}},"sizeLimits":[{"id":"nameFilterSettingsSection","group":"Settings Caps","label":"`nameFilterSettings` (entire section)","measure":"prettyJson","enforced":150000,"display":150000,"sections":["other/nameFilterSettings"]},{"id":"nameFilterReplacement","group":"Settings Caps","label":"`nameFilterSettings.*.replacements.*` (each replacement)","measure":"rawChars","enforced":64,"display":64,"sections":["other/nameFilterSettings"]}],"blocks":[{"type":"example","lang":"json","code":"{\n  \"Marcus\": {\n    \"replacements\": [\"Alex\", \"Ethan\", \"Jason\", \"Ryan\", \"Owen\", \"Nathaniel\", \"Adrian\", \"Colin\"]\n  },\n  \"Elara\": {\n    \"replacements\": [\"Thea\", \"Cora\", \"Nova\", \"Vega\", \"Astra\", \"Selene\", \"Orion\", \"Cassie\"]\n  },\n  \"Ironfoot\": {\n    \"replacements\": [\"Anvildrang\", \"Broadback\", \"Coalvein\", \"Cragmor\", \"Deepholm\", \"Redforge\"]\n  }\n}"},{"type":"prose","md":"## Entry shapes\n\nLeave as `{}` if you have no naming constraints. There are two entry shapes:\n\n- **Name replacement:** map a banned name to lore-appropriate substitutes. The engine substitutes during narration.\n- **Word/phrase deletion:** set `replacements` to `[\"\"]` to delete a phrase outright instead of replacing it. Useful for stripping recurring AI tics or undesired in-world phrases."}],"body":"## Example\n\n```json\n{\n  \"Marcus\": {\n    \"replacements\": [\"Alex\", \"Ethan\", \"Jason\", \"Ryan\", \"Owen\", \"Nathaniel\", \"Adrian\", \"Colin\"]\n  },\n  \"Elara\": {\n    \"replacements\": [\"Thea\", \"Cora\", \"Nova\", \"Vega\", \"Astra\", \"Selene\", \"Orion\", \"Cassie\"]\n  },\n  \"Ironfoot\": {\n    \"replacements\": [\"Anvildrang\", \"Broadback\", \"Coalvein\", \"Cragmor\", \"Deepholm\", \"Redforge\"]\n  }\n}\n```\n\n## Entry shapes\n\nLeave as `{}` if you have no naming constraints. There are two entry shapes:\n\n- **Name replacement:** map a banned name to lore-appropriate substitutes. The engine substitutes during narration.\n- **Word/phrase deletion:** set `replacements` to `[\"\"]` to delete a phrase outright instead of replacing it. Useful for stripping recurring AI tics or undesired in-world phrases."}