Class NameGrammarTemplate
- Namespace
- FishMMO.Shared.NameGeneration
- Assembly
- FishMMO.Shared.dll
The universal vocabulary every generator mode shares: the meaning tables that turn syllables into a gloss ("silver-", "of ancient", "light"), the title grammar (deeds, places, outcomes), the item vocabulary, and the city and POI tables that are not tied to one race or biome.
Exactly one of these is active; the last one loaded wins and registers itself with NameGrammar.
[CreateAssetMenu(fileName = "Name Grammar", menuName = "FishMMO/Naming/Name Grammar", order = 4)]
public class NameGrammarTemplate : CachedScriptableObject<NameGrammarTemplate>, ICachedObject
- Inheritance
-
ObjectScriptableObjectNameGrammarTemplate
- Implements
- Inherited Members
-
ScriptableObject.SetDirty()ScriptableObject.CreateInstance<T>()Object.GetEntityId()Object.GetInstanceID()Object.GetHashCode()Object.InstantiateAsync<T>(T)Object.InstantiateAsync<T>(T, Transform)Object.InstantiateAsync<T>(T, Vector3, Quaternion)Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)Object.Instantiate(Object, Vector3, Quaternion)Object.Instantiate(Object, Vector3, Quaternion, Transform)Object.Instantiate(Object)Object.Instantiate(Object, Scene)Object.Instantiate<T>(T, InstantiateParameters)Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)Object.Instantiate(Object, Transform)Object.Instantiate<T>(T)Object.Instantiate<T>(T, Vector3, Quaternion)Object.Instantiate<T>(T, Vector3, Quaternion, Transform)Object.Instantiate<T>(T, Transform)Object.Destroy(Object)Object.DestroyImmediate(Object)Object.DontDestroyOnLoad(Object)Object.DestroyObject(Object)Object.FindObjectsOfType<T>()Object.FindObjectsByType<T>(FindObjectsSortMode)Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)Object.FindObjectOfType<T>()Object.FindFirstObjectByType<T>()Object.FindAnyObjectByType<T>()Object.FindFirstObjectByType<T>(FindObjectsInactive)Object.FindAnyObjectByType<T>(FindObjectsInactive)Object.FindObjectsByType<T>()Object.FindObjectsByType<T>(FindObjectsInactive)Object.ToString()Object.nameObject.hideFlags
Fields
BattleQualifiers
public string[] BattleQualifiers
Field Value
- string[]
BiomeMeaningCodas
public List<StringMapping> BiomeMeaningCodas
Field Value
BiomeMeaningOnsets
[Header("Biome meaning — scanned in order; first match wins")]
public List<StringMapping> BiomeMeaningOnsets
Field Value
CityPrefixes
[Header("Cities")]
[Tooltip("Leading words for city names, e.g. 'Old', 'North'.")]
public string[] CityPrefixes
Field Value
- string[]
CitySuffixMeanings
[Tooltip("City suffix → meaning, e.g. 'hold' → 'stronghold'.")]
public List<StringMapping> CitySuffixMeanings
Field Value
ComposedAdjectives
public string[] ComposedAdjectives
Field Value
- string[]
ComposedQualifiers
public string[] ComposedQualifiers
Field Value
- string[]
DeedObjects
public string[] DeedObjects
Field Value
- string[]
DeedVerbs
[Header("Titles — legends")]
public string[] DeedVerbs
Field Value
- string[]
EraQualifiers
public string[] EraQualifiers
Field Value
- string[]
FallbackCitySuffixes
[Tooltip("Used when a race has no suffixes for the requested city type.")]
public string[] FallbackCitySuffixes
Field Value
- string[]
GenericOccupations
[Tooltip("Trades any race may practise, used when a race lists none of its own.")]
public string[] GenericOccupations
Field Value
- string[]
ItemEpithets
public string[] ItemEpithets
Field Value
- string[]
ItemGenericNouns
[Tooltip("Nouns used when the item type has no entry above.")]
public string[] ItemGenericNouns
Field Value
- string[]
ItemHeroRelations
[Tooltip("Patterns relating an item to a person: {0} = item noun, {1} = character name.")]
public string[] ItemHeroRelations
Field Value
- string[]
ItemLegendaryPrefixes
public string[] ItemLegendaryPrefixes
Field Value
- string[]
ItemPlaceRelations
[Tooltip("Patterns relating an item to a place: {0} = item noun, {1} = place name.")]
public string[] ItemPlaceRelations
Field Value
- string[]
ItemTypeNouns
[Tooltip("Item type (lowercase ItemType name) → nouns for '<Noun> of <Root>' names.")]
public List<StringListMapping> ItemTypeNouns
Field Value
ItemTypeSuffixes
[Header("Items")]
[Tooltip("Item type (lowercase ItemType name) → name endings, e.g. 'weapon' → bane, cleaver, fang.")]
public List<StringListMapping> ItemTypeSuffixes
Field Value
MeaningCodas
[Tooltip("Name ending → meaning fragment, e.g. 'iel' → 'light'.")]
public List<StringMapping> MeaningCodas
Field Value
MeaningMiddles
[Tooltip("Middle syllable → connective, e.g. 'al' → 'of ancient'.")]
public List<StringMapping> MeaningMiddles
Field Value
MeaningOnsets
[Header("Character meaning — scanned in order; first match wins")]
[Tooltip("Name start → meaning fragment, e.g. 'Ael' → 'silver-'.")]
public List<StringMapping> MeaningOnsets
Field Value
MeaningTitleBias
[Tooltip("Meaning keyword → title category it leans toward (honorific / epithet / rank / legend).")]
public List<StringMapping> MeaningTitleBias
Field Value
OrdinalTakingHonorifics
[Tooltip("Honorifics that may take an ordinal: King, Third of his Name — but never Sir.")]
public string[] OrdinalTakingHonorifics
Field Value
- string[]
Ordinals
[Header("Titles — ordinals and pronouns")]
public string[] Ordinals
Field Value
- string[]
Outcomes
public string[] Outcomes
Field Value
- string[]
POITypeSuffixes
[Header("Points of interest")]
[Tooltip("POI type (lowercase POIType name) → type-specific suffixes, e.g. 'shrine' → Shrine, Altar, Fane.")]
public List<StringListMapping> POITypeSuffixes
Field Value
PlaceEpithetPatterns
[Header("Titles — composition")]
[Tooltip("{0} = place name. Example: 'of {0}', 'bane of {0}'.")]
public string[] PlaceEpithetPatterns
Field Value
- string[]
PlaceTakingHonorifics
[Tooltip("Honorifics that may take 'of <place>': Lord of Ashford, but never Sir of Ashford.")]
public string[] PlaceTakingHonorifics
Field Value
- string[]
PossessivePronouns
public string[] PossessivePronouns
Field Value
- string[]
TitleTemplates
[Header("Titles — compositions")]
[Tooltip("How titles are assembled, by category and register. Empty falls back to the built-in set.")]
public List<TitleTemplate> TitleTemplates
Field Value
UniversalPlaces
public string[] UniversalPlaces
Field Value
- string[]
Methods
OnLoad(string, string, int)
Virtual method called when a ScriptableObject is successfully added to the cache. Derived classes can override this method to add custom logging, initialization, or other specific logic that should occur upon caching.
public override void OnLoad(string typeName, string resourceName, int resourceID)
Parameters
typeNamestringThe name of the type (e.g., "RaceTemplate") under which the object is currently being cached.
resourceNamestringThe name of the ScriptableObject asset (e.g., "HumanRace").
resourceIDintThe deterministic ID generated for the resource instance.
OnUnload(string, string, int)
Virtual method called when a ScriptableObject is successfully removed from the cache. Derived classes can override this method to add custom logging, cleanup, or other specific logic that should occur upon uncaching.
public override void OnUnload(string typeName, string resourceName, int resourceID)