Ludeon Forums

Ludeon Forums

  • May 25, 2022, 04:28:28 AM
  • Welcome, Guest
Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2 3 ... 10
 on: Today at 02:40:46 AM 
Started by G_entlemen - Last post by G_entlemen

 on: May 24, 2022, 05:05:23 PM 
Started by Basker_ville - Last post by Basker_ville
Back in 2016 there was a forum post titled: "Could not get new name" endless loop in Vanilla. It was posted here in Mod Bugs but was found to be a vanilla issue. Has this bug reared its ugly head again?

In the parameters of vanilla RimWorld I couldn't replicate this error, but the problem sometimes arises when mods use custom RulePackDefs referenced in CultureDefs or PawnKindDefs. Is this an underlying vanilla issue or a shared mod error?

After a certain buffer number of spawns, when a PawnKindDef is spawned which references a nameMaker/nameMakerFemale (via PawnKindDef) or a pawnNameMaker/pawnNameMakerFemale (via CultureDef), a red error appears in the console. Consecutive spawns past that present more red errors. The first line of the stack trace for one example reads:

Could not get new name (first rule pack: VFEC_NamerPersonClassicalFemale)

Despite the error, the pawn IS named correctly. The trouble is the barrage of red errors in the console.

To replicate:
0. Use either Qux's "Faction Samurai" or "Vanilla Factions Expanded - Classical"
1. Start New Game
2. Debug mode
3. Execute raid with faction...
4. Any of the Roman or Samurai factions (x10000 points)

After that bulk of spawns, this "buffer" will either be almost or slightly overcome. After repeating step 4, the console will be absolutely flooded with red errors.

Full StackTrace (of one VFEC example):

HugsLib Log (after doing step 4 twice):

This error presents itself in several mods: "Vanilla Factions Expanded - Classical" and "Faction Samurai" are two examples, and it's a problem I myself ran into while making a mod. While VFEC and Faction Samurai use CultureDefs to name their units, I tried using CultureDefs, PawnKindDefs, and "Humanoid Alien Race" AlienRace.ThingDefs. I experienced the same issue as the two aforementioned mods with Culture and PawnKind Defs, but the race-based nameGenerator worked as expected with no such error.

There are a number of aspects to this error which have made it baffling to me:
  • The buffer of spawns before any errors are generated. Generally one 10000 pt raid will slightly overcome the buffer, and it can also be overcome by individually spawning pawns. Adding more names in the string text file does not seem to affect this, but when I tried giving a PawnKindDef just one unique name, that PawnKindDef produced an error after just one spawn. Then after adding thousands of more entries to that file, that PawnKindDef still produced an error after only one spawn. Whatever size the buffer, errors don't occur until it is overcome, and then errors occur after every new spawn.
  • While rarely a pawn spawns with the wrong name, the pawn will almost always spawn with the correct name despite this error message.
  • Sometimes this error occurs multiple times per spawn.
  • The error log frequently refers to RulePackDefs for previously spawned units rather than for the unit that was just spawned. I was able to notice this point in my own unreleased mod with a variety of custom PawnKindDefs and RulePackDefs.

Other Notes:
One example with VFEC's Central Republic:
First x10000 pt raid
   0 errors out of 108 new pawns
Second x10000 pt raid
   190 errors out of 178 new pawns

"Vanilla Factions Expanded - Vikings" after 15 x10000 point raids does NOT present this error. VFEV just uses pawnNameMaker through a CultureDef to name its units, unlike Faction Samurai and VFEC which use both pawnNameMaker and pawnNameMakerFemale. However, when I tried commenting out VFEC's pawnNameMakerFemale, the very first x10000 point raid uncharacteristically generated 78 red errors out of 174 spawns.

Name Generation - Referring to RulePackDefs:
   CultureDefs use <pawnNameMaker> and <pawnNameMakerFemale>
   PawnKindDefs use <nameMaker> and <nameMakerFemale>
   Races use <nameGenerator> and <nameGeneratorFemale>
*Many mods use <nameGenerator> in Humanoid Alien Races to generate names without this issue.

Normally it would take a long amount of time to hit the spawn buffer, so it's difficult to test this error without using debug mode commands. Has anyone using these mods with a long-running save file experienced this error?

 on: May 24, 2022, 10:53:03 AM 
Started by Basker_ville - Last post by Basker_ville
PawnKindDef fields allow for a lot of customization with variables like forcedHair, fixedGender, etc. but I'd like to also set body types, head tattoos, body tattoos, and facial hair for some custom PawnKindDefs. Is that something that can be done? If not would it be possible to make a comp for PawnKindDef that could achieve the same ends?

 on: May 24, 2022, 06:28:06 AM 
Started by songyj11 - Last post by songyj11
My words can be weird because I use a translator.

1) Circumstances
An error occurred when the pawn created in debug mode or the pawn that first appeared on the map was enslaved.
No mod. Just use Royalty and Ideology DLCs.
I tried reinstalling the game, doing steam integrity check, restoring to default setting, and tested it on other computers.

2) What Happened
An error log has occurred.
Error occurred in both normal play and debug mode.
The error occurred only on the newly appeared pawn before saving. If I load the saved file after the pawn appears, there is no error.

3) Expectation
Error logs should not occur.

4) To enslave pawns created in debug mode or newly created pawns on maps.

5) I want to attach the saved file, but as described, there was no error in the saved file, so I couldn't attach it.

6) Error Logs
When colonist enslave pawn:
JobDriver threw exception in initAction for pawn Joshua driver=JobDriver_EnslavePrisoner (toilIndex=10) driver.job=(PrisonerEnslave (Job_4910) A=Thing_Human36685)
System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Pawn_ApparelTracker.UnlockAll () [0x00000] in <99518a644a3e4a7ea3fde566568df84a>:0
  at RimWorld.GenGuest.EnslavePrisoner (Verse.Pawn warden, Verse.Pawn prisoner) [0x000b5] in <99518a644a3e4a7ea3fde566568df84a>:0
  at RimWorld.InteractionWorker_EnslaveAttempt.Interacted (Verse.Pawn initiator, Verse.Pawn recipient, System.Collections.Generic.List`1[T] extraSentencePacks, System.String& letterText, System.String& letterLabel, Verse.LetterDef& letterDef, Verse.LookTargets& lookTargets) [0x001ff] in <99518a644a3e4a7ea3fde566568df84a>:0
  at RimWorld.Pawn_InteractionsTracker.TryInteractWith (Verse.Pawn recipient, RimWorld.InteractionDef intDef) [0x00186] in <99518a644a3e4a7ea3fde566568df84a>:0
  at RimWorld.Toils_Interpersonal+<>c__DisplayClass11_0.<TryEnslave>b__0 () [0x00041] in <99518a644a3e4a7ea3fde566568df84a>:0
  at Verse.AI.JobDriver.TryActuallyStartNextToil () [0x001de] in <99518a644a3e4a7ea3fde566568df84a>:0
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
Verse.AI.JobUtility:TryStartErrorRecoverJob (Verse.Pawn,string,System.Exception,Verse.AI.JobDriver)
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
RimWorld.Toils_Interpersonal/<>c__DisplayClass0_0:<GotoInteractablePosition>b__0 ()
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
Verse.AI.JobDriver:Notify_PatherArrived ()
Verse.AI.Pawn_PathFollower:PatherArrived ()
Verse.AI.Pawn_PathFollower:StartPath (Verse.LocalTargetInfo,Verse.AI.PathEndMode)
RimWorld.Toils_Interpersonal/<>c__DisplayClass1_0:<GotoPrisoner>b__0 ()
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
Verse.AI.JobDriver:DriverTick ()
Verse.AI.Pawn_JobTracker:JobTrackerTick ()

When Use Debug Enslave function:
Root level exception in OnGUI(): System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.Pawn_ApparelTracker.UnlockAll () [0x00000] in <99518a644a3e4a7ea3fde566568df84a>:0
  at RimWorld.GenGuest.EnslavePrisoner (Verse.Pawn warden, Verse.Pawn prisoner) [0x000b5] in <99518a644a3e4a7ea3fde566568df84a>:0
  at Verse.DebugToolsPawns.Enslave (Verse.Pawn p) [0x0002f] in <99518a644a3e4a7ea3fde566568df84a>:0
  at Verse.Dialog_DebugOptionLister+<>c__DisplayClass8_0.<DebugToolMapForPawns>b__0 () [0x00063] in <99518a644a3e4a7ea3fde566568df84a>:0
  at Verse.DebugTool.DebugToolOnGUI () [0x00018] in <99518a644a3e4a7ea3fde566568df84a>:0
  at Verse.DebugTools.DebugToolsOnGUI () [0x00007] in <99518a644a3e4a7ea3fde566568df84a>:0
  at RimWorld.UIRoot_Play.UIRootOnGUI () [0x000be] in <99518a644a3e4a7ea3fde566568df84a>:0
  at Verse.Root.OnGUI () [0x0003d] in <99518a644a3e4a7ea3fde566568df84a>:0
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
Verse.Root:OnGUI ()[/size]

 on: May 24, 2022, 05:09:43 AM 
Started by K4nna - Last post by K4nna
So, (not(Abstract="True")) doesn't work. I have almost the same result by using (not(@Name="FurnitureBase")) (only the 'drape' is not patched, without mods). But it could be good to know the syntax for filter Abstract.

Edit: I also search to add a condition 'don't have <CostList>', (not(CostList)) doesn't work :/

 on: May 24, 2022, 03:53:53 AM 
Started by K4nna - Last post by K4nna
Thank you, the syntax is good.
But it doesn't works as intended, I think I have to filter by 'Abstract="True"'

 on: May 24, 2022, 03:36:02 AM 
Started by K4nna - Last post by Multistream
<xpath>Defs/ThingDef[minifiedDef="MinifiedThing" and (not(comps/li/compClass="CompQuality"))]</xpath>

On the second question, copying or storing a value isn't possible in vanilla, you can do that with XML Extensions mod if you are fine with using it as a dependency

 on: May 24, 2022, 02:30:54 AM 
Started by K4nna - Last post by K4nna

I have a patch like that:
Code: [Select]
<li Class="PatchOperationAdd">
<xpath>/Defs/StatDef[defName="PruningSpeed" or defName="MeditationFocusGain"]</xpath>

The effect is a bit too strong, I want to reduce the weight of the statFactors, in the same way it's done for <capacityFactors>. But nothing working, I can't find a good syntax, and that is never done in the game files, so maybe I just can't do that.

Any idea please?

 on: May 23, 2022, 11:37:32 PM 
Started by K4nna - Last post by K4nna

How is the correct syntax for my xpath please?

<xpath>/Defs/ThingDef[ ??? ]</xpath>

I want to select all ThingDef who have <minifiedDef>MinifiedThing</minifiedDef>, but who don't have <compClass>CompQuality</compClass> (select all the minifiable buildings who don't have quality).

I tried various things without find the good one :/

Also, can I use PatchOperation to add a new node who use the same value of another node? (add <WorkToMake> with the same value of <WorkToBuild>). I think no, but maybe...?

 on: May 23, 2022, 03:51:32 PM 
Started by sumghai - Last post by sumghai
Replimat has been updated for RimWorld 1.3.3326 - see first post for download link.
Code: [Select]
Version 1.3.2 - 21 May 2022
- Updated for 1.3.3326
- Updated compatibility patches and functions
  - Fixed an issue where the Vanilla Cooking Expanded patch was referencing content from Vanilla Plants Expanded
  - Fixed NullReferenceException error preventing pawns from using Replimat Terminals when Alpha Animals or Vanilla Genetics Expanded mods are active
- Updated translations
  - Annotated comments for Czech translations

(Announcement delayed due to Ludeon Forums downtime of 21~24 May 2022)

Pages: [1] 2 3 ... 10