{
  "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.",
  "uiLocation": "Other → Name Filter Settings",
  "uiSubtitle": "\"Settings for filtering names in the world\"",
  "editor": "JSON + ADD ITEM (empty `{}` by default)",
  "sizeLimits": [
    {
      "field": "`nameFilterSettings` (entire section)",
      "limit": "50,000 chars",
      "sections": [
        "other/nameFilterSettings"
      ]
    },
    {
      "field": "`nameFilterSettings.*.replacements.*` (each replacement)",
      "limit": "64 chars",
      "sections": [
        "other/nameFilterSettings"
      ]
    }
  ],
  "related": "randomNames - the name pools generators draw from before this filter applies; npcs - replacements substitute at NPC name generation time",
  "wikiUrl": "/other/nameFilterSettings",
  "schema": {
    "_type": "record",
    "domain": "string",
    "codomain": {
      "_type": "required",
      "fields": {
        "replacements": {
          "_type": "array",
          "of": "string"
        }
      }
    }
  },
  "body": "## Example\r\n\r\n```json\r\n{\r\n  \"Marcus\": {\r\n    \"replacements\": [\"Alex\", \"Ethan\", \"Jason\", \"Ryan\", \"Owen\", \"Nathaniel\", \"Adrian\", \"Colin\"]\r\n  },\r\n  \"Elara\": {\r\n    \"replacements\": [\"Thea\", \"Cora\", \"Nova\", \"Vega\", \"Astra\", \"Selene\", \"Orion\", \"Cassie\"]\r\n  },\r\n  \"Ironfoot\": {\r\n    \"replacements\": [\"Anvildrang\", \"Broadback\", \"Coalvein\", \"Cragmor\", \"Deepholm\", \"Redforge\"]\r\n  }\r\n}\r\n```\r\n\r\n## Entry shapes\r\n\r\nLeave as `{}` if you have no naming constraints. There are two entry shapes:\r\n\r\n- **Name replacement:** map a banned name to lore-appropriate substitutes. The engine substitutes during narration.\r\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."
}