IrishMorales / storyteller-dlc-pawns

A Rimworld mod that adds the storytellers & DLC characters as pawns who can visit, join, or fight your colony
MIT License
0 stars 0 forks source link

[Sample issue] "Could not get new name" error when spawning storytellers in Dev Mode #1

Closed IrishMorales closed 2 hours ago

IrishMorales commented 2 hours ago

Mod version: 1.0.0

Rimworld version: 1.5

Steps to recreate the bug:

What happened:

What you expected to happen instead:

What DLCs are you playing with?

What other mods are you playing with? (If many, only list the ones you suspect might be related)

Error message (From Dev Mode > Debug log): Could not get new name (first rule pack: NamerStorytellerCassandraClassic)

Error trace (From Dev Mode > Debug log > Copy to clipboard):

Command line arguments: -logfile /tmp/rimworld_log_1000
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Message (string)
Verse.Root:CheckGlobalInit ()
Verse.Root:Start ()
Verse.Root_Entry:Start ()

RimWorld 1.5.4243 rev952
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Message (string)
RimWorld.VersionControl:LogVersionNumber ()
Verse.Root:CheckGlobalInit ()
Verse.Root:Start ()
Verse.Root_Entry:Start ()

Created WorkshopItem for 1180721235 but there is no folder for it.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
Verse.Steam.WorkshopItem:MakeFrom (Steamworks.PublishedFileId_t)
Verse.Steam.WorkshopItems:RebuildItemsList ()
Verse.Steam.WorkshopItems:.cctor ()
Verse.ModLister:RebuildModList ()
Verse.ModLister:.cctor ()
Verse.ModsConfig:.cctor ()
Verse.LoadedModManager:InitializeMods ()
Verse.LoadedModManager:LoadAllActiveMods (bool)
Verse.PlayDataLoader:DoPlayLoad ()
Verse.PlayDataLoader:LoadAllPlayData (bool)
Verse.Root/<>c:<Start>b__6_1 ()
Verse.LongEventHandler:RunEventFromAnotherThread (System.Action)
Verse.LongEventHandler/<>c:<UpdateCurrentAsynchronousEvent>b__28_0 ()
System.Threading.ThreadHelper:ThreadStart_Context (object)
System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object)
System.Threading.ThreadHelper:ThreadStart ()

Initializing new game with mods:
  - Ludeon.RimWorld
  - metasequoia.StorytellerAndDLCPawns
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Message (string)
Verse.Game:InitNewGame ()
Verse.Root_Play/<>c:<Start>b__1_2 ()
Verse.LongEventHandler:RunEventFromAnotherThread (System.Action)
Verse.LongEventHandler/<>c:<UpdateCurrentAsynchronousEvent>b__28_0 ()
System.Threading.ThreadHelper:ThreadStart_Context (object)
System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object)
System.Threading.ThreadHelper:ThreadStart ()

Could not get new name (first rule pack: NamerStorytellerCassandraClassic)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
RimWorld.NameGenerator:GenerateName (Verse.Grammar.GrammarRequest,System.Predicate`1<string>,bool,string,string)
RimWorld.NameGenerator:GenerateName (Verse.RulePackDef,System.Predicate`1<string>,bool,string,string,System.Collections.Generic.List`1<Verse.Grammar.Rule>)
RimWorld.PawnBioAndNameGenerator:NameResolvedFrom (Verse.RulePackDef,bool,System.Collections.Generic.List`1<Verse.Grammar.Rule>)
RimWorld.PawnBioAndNameGenerator:GenerateFullPawnName (Verse.ThingDef,Verse.RulePackDef,RimWorld.Pawn_StoryTracker,RimWorld.XenotypeDef,Verse.RulePackDef,RimWorld.CultureDef,bool,Verse.Gender,RimWorld.PawnNameCategory,string,bool)
RimWorld.PawnBioAndNameGenerator:GeneratePawnName (Verse.Pawn,RimWorld.NameStyle,string,bool,RimWorld.XenotypeDef)
RimWorld.PawnBioAndNameGenerator:GiveShuffledBioTo (Verse.Pawn,RimWorld.FactionDef,string,System.Collections.Generic.List`1<RimWorld.BackstoryCategoryFilter>,bool,bool,RimWorld.XenotypeDef,bool)
RimWorld.PawnBioAndNameGenerator:GiveAppropriateBioAndNameTo (Verse.Pawn,RimWorld.FactionDef,Verse.PawnGenerationRequest,RimWorld.XenotypeDef)
Verse.PawnGenerator:TryGenerateNewPawnInternal (Verse.PawnGenerationRequest&,string&,bool,bool)
Verse.PawnGenerator:GenerateNewPawnInternal (Verse.PawnGenerationRequest&)
Verse.PawnGenerator:GenerateOrRedressPawnInternal (Verse.PawnGenerationRequest)
Verse.PawnGenerator:GeneratePawn (Verse.PawnGenerationRequest)
Verse.PawnGenerator:GeneratePawn (Verse.PawnKindDef,RimWorld.Faction)
Verse.DebugToolsSpawning/<>c__DisplayClass0_0:<SpawnPawn>b__2 ()
LudeonTK.DebugTool:DebugToolOnGUI ()
LudeonTK.DebugTools:DebugToolsOnGUI ()
RimWorld.UIRoot_Play:UIRootOnGUI ()
Verse.Root:OnGUI ()
IrishMorales commented 2 hours ago

This is a sample issue to show the standard format for creating new issues.

This is a real bug, and it happens because Rimworld tries to get a new name when spawning so that no two pawns have the same name. It tries to get the name in Names/Storytellers/CassandraClassic, but there is only one option ("Cassandra Classic") so it throws an error.

For this mod, however, it makes sense that the options for Cassandra's name should be restricted to just "Cassandra Classic". However, no two Cassandras should spawn at the same time when playing normally (event logic prohibits this), so this won't be fixed since this should never happen when playing normally.