// Management · RimWorld Mod

Colonist History (1.6 Port)

by Lejunior

1.61.41.31.21.1
Steam ↗

== UNOFFICIAL 1.6 PORT == Original mod "Colonist History" by 民火 (tammybee). Ported and optimized for RimWorld 1.6 by lejunior4. I am not the original author. All credit for the original concept and implementation goes to 民火. Original mod: --- Records information about your coloni

== UNOFFICIAL 1.6 PORT ==
Original mod "Colonist History" by 民火 (tammybee).
Ported and optimized for RimWorld 1.6 by lejunior4.
I am not the original author. All credit for the original concept and implementation goes to 民火.

Original mod: https://github.com/tammybee/RimWorldMod_ColonistHistory

---

Records information about your colonists at regular intervals, viewable as tables and time-series graphs.

# Features
- Automatic recording at a configurable interval (default: every 24h).
- "Colonist History" tab with three sub-pages:
- Home: manually trigger a recording and export data as XML.
- Table: browse recorded snapshots per colonist over time.
- Graph: visualize any numeric stat as a time-series graph.

## Recorded Information
- Skill levels (integer and real number)
- Hediffs (injuries, diseases, implants…)
- Primary equipment
- Biological age
- Statistics — Misc (kills, damage dealt, meals cooked…)
- Statistics — Time (time hunting, constructing, hauling…)

Supports RecordDef added by other mods.

# Settings
- Recording interval: from 1 hour to 60 days.
- Lightweight save mode (experimental): only saves differences to reduce file size.
- Show/hide colonists from other factions.
- Graph curve width, zero-fill options, and per-category output toggles.

---

# Changes in this port (vs original)

## RimWorld 1.6 Compatibility
- Replaced removed API calls (SaveGameFilesUtility, GenFilePaths.FolderUnderSaveData).
- Fixed DoWindowContents abstract base call removed in 1.6.
- Added missing Unity DLL references (IMGUIModule, TextRenderingModule).
- Wrapped ColonistBar and WorldGrid accesses with null guards.
- Cached reflection calls (VisibleHediffGroupsInOrder) for stability.

## Performance Optimizations
- GameComponentTick() reduced from 60 checks/sec to 1 check/sec (−98% CPU overhead).
- ColonistHistoryDataList.AvailableRecords now cached and only rebuilt on changes.
- LightWeightSaver rewritten with local dictionaries (no shared state, no manual Clear()).
- FirstRecordTick computed with a direct loop instead of LINQ allocations.
- ExistExtraNoPlayerFactions uses index-based loops to avoid iterator allocations.

## New Features
- Redesigned graph selector: searchable, grouped by category, with current stat highlighted.
- "Normalize by days in colony" option: divides Misc and Time stats by the colonist's days in colony, making veterans and newcomers fairly comparable.
- Graph updates immediately when toggling normalization.
- Save folder is auto-created on first export if it doesn't exist.

## Translations
- Full translation added for all languages supported by the base game.
- All mod-specific UI text (tabs, buttons, dialogs, tooltips) is fully localized.