How kakrain/kenshipatcher works
Kenshi Patcher is a Windows desktop tool for filtering and merging Kenshi mod records into patch files. A modder selects mods in the UI and runs or updates patches; the patcher reads patch definitions, parses and evaluates their expressions, selects and merges records, and writes patch output with dependency metadata. The graph includes the documented v16/v17 support and humanoid/animal handling as capabilities, but their implementation details were not sampled. Relationships for those capabilities are therefore omitted; unsampled source is not treated as inspected.
Main entry points: Patcher.cs Patch Runner · Expression.cs Expression Evaluator · MainForm.cs Patch Manager · Parser.cs Expression Parser
Components 20
Desktop UI
- Application Entry
Program.cs - Patch Manager
Forms/MainForm.cs - Rule Configuration
Forms/KPatcherConfigForm.cs
Patch Rules
- Rule Dispatcher
PatchModel/PatcherNodeFactory.cs - Rule Operations
PatchModel/PatcherNode.cs - Expression Parser
ExpressionReader/Parser.cs - Lexer
ExpressionReader/Lexer.cs - Token Model
ExpressionReader/Token.cs - Expression Evaluator
ExpressionReader/Expression.cs - Value Caster
ExpressionReader/ValueCaster.cs - Missing Record Error
ExpressionReader/MissingRecordException.cs
Patch Engine
- Patch Runner
PatchModel/Patcher.cs - Mod Records
Metadata
- Mod File Metadata
Meta/MetaInfo.cs - Dependency Snapshot
Meta/MetaFile.cs - Metadata Reader
Meta/MetaReader.cs - Metadata Writer
Meta/MetaWriter.cs
Other components
- Modder
- Mod Repository
- Kenshi .mod Files
Connections 24
- Modder → Patch Manager: selects mods
Readme.md - Application Entry → Patch Manager: launches
Program.cs - Patch Manager → Mod Repository: loads mods
Forms/MainForm.cs - Patch Manager → Patch Runner: runs patches
Forms/MainForm.cs - Patch Manager → Mod File Metadata: loads metadata
Forms/MainForm.cs - Patch Runner → Rule Dispatcher: creates rules
PatchModel/Patcher.cs - Rule Dispatcher → Rule Operations: constructs nodes
PatchModel/PatcherNodeFactory.cs - Rule Operations → Expression Parser: parses expressions
PatchModel/PatcherNode.cs - Patch Runner → Expression Parser: parses definitions
PatchModel/Patcher.cs - Expression Parser → Lexer: requests tokens
ExpressionReader/Parser.cs - Lexer → Token Model: creates tokens
ExpressionReader/Lexer.cs - Expression Parser → Expression Evaluator: builds expressions
ExpressionReader/Parser.cs - Expression Evaluator → Patch Runner: resolves records
ExpressionReader/Expression.cs - Expression Evaluator → Value Caster: uses conversions
ExpressionReader/Expression.cs - Expression Evaluator → Missing Record Error: raises error
ExpressionReader/Expression.cs - Expression Evaluator → Rule Configuration: requests options
ExpressionReader/Expression.cs - Patch Runner → Mod Records: filters and merges
- Patch Runner → Dependency Snapshot: builds snapshot
PatchModel/Patcher.cs - Patch Runner → Metadata Reader: reads prior metadata
PatchModel/Patcher.cs - Patch Runner → Metadata Writer: writes metadata
PatchModel/Patcher.cs - Metadata Reader → Dependency Snapshot: parses snapshot
Meta/MetaReader.cs - Dependency Snapshot → Mod File Metadata: stores entries
Meta/MetaFile.cs - Mod File Metadata → Kenshi .mod Files: records file details
Meta/MetaInfo.cs - Patch Runner → Kenshi .mod Files: writes patch output