CryptikLemur.Pickle.Ref
1.8.0
dotnet add package CryptikLemur.Pickle.Ref --version 1.8.0
NuGet\Install-Package CryptikLemur.Pickle.Ref -Version 1.8.0
<PackageReference Include="CryptikLemur.Pickle.Ref" Version="1.8.0" />
<PackageVersion Include="CryptikLemur.Pickle.Ref" Version="1.8.0" />
<PackageReference Include="CryptikLemur.Pickle.Ref" />
paket add CryptikLemur.Pickle.Ref --version 1.8.0
#r "nuget: CryptikLemur.Pickle.Ref, 1.8.0"
#:package CryptikLemur.Pickle.Ref@1.8.0
#addin nuget:?package=CryptikLemur.Pickle.Ref&version=1.8.0
#tool nuget:?package=CryptikLemur.Pickle.Ref&version=1.8.0
Pickle
Pickle runs Gherkin scenarios inside a live RimWorld session. Your tests click the real UI, wait on real game state, and assert against the running simulation.
It is a test runner for mod authors, not a mod for players.
Example
Feature: drafting
Scenario: a drafted colonist waits for combat
Given the save "test-colony" is loaded
Given a colonist "Soldier" exists
When I draft "Soldier"
And I wait 30 ticks
Then "Soldier" is drafted
And "Soldier" has job "Wait_Combat"
The steps behind those lines are plain C#:
[PickleSteps]
public class DraftingSteps {
[When("I draft {string}")]
public void Draft(PickleContext ctx, string nickname) {
PawnLookup.RequireLiving(nickname).drafter!.Drafted = true;
}
}
Install
Pickle needs RimWorld 1.6 and one patching library. Either Harmony or Concord works. Pickle prefers Concord when both are active, and logs which one it used.
- Subscribe to Pickle on the Steam Workshop, or unzip a
release into
Mods/. - Enable Pickle and a patching library in the mod list.
- Start a new mod from the
template, or add a
Pickle/folder to an existing one.
Open the runner from the debug actions menu.
Writing steps in C#
Feature files alone need no build. To write your own step definitions, reference the
CryptikLemur.Pickle.Ref
package from a steps project:
<PackageReference Include="CryptikLemur.Pickle.Ref" Version="1.*"
ExcludeAssets="runtime" PrivateAssets="all" />
The package holds a compile-time reference assembly only. ExcludeAssets="runtime"
keeps it out of your output, because the Pickle mod supplies the real Pickle.dll at
run time. See the authoring guide.
Documentation
| Guide | Covers |
|---|---|
| Getting started | Adding a suite to your mod |
| Built-in steps | Every step Pickle ships |
| Authoring | Writing your own steps, tags, fixtures, and waits |
| Running tests | The runner, the browser dashboard, and seeds |
| Autorun and CI | Command-line flags and pipelines |
| Reports | What each run writes, and what a failure captures |
| Releasing | How a release is cut and published |
Building Pickle
npm --prefix Dashboard ci && npm --prefix Dashboard run build
dotnet build
Pickle embeds the dashboard bundles as resources, so build them first. Pickle still builds without them, and the dashboard serves a placeholder.
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
-
.NETFramework 4.7.2
- Krafs.Rimworld.Ref (>= 1.6.4633)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.8.0 | 112 | 8/31/2026 |
| 1.7.0 | 94 | 8/31/2026 |
| 1.6.0 | 102 | 8/31/2026 |
| 1.5.11 | 97 | 8/31/2026 |
| 1.5.10 | 96 | 8/31/2026 |
| 1.5.9 | 103 | 8/31/2026 |
| 1.5.8 | 104 | 8/31/2026 |
| 1.5.7 | 100 | 8/31/2026 |
| 1.5.6 | 93 | 8/31/2026 |
| 1.5.5 | 95 | 8/31/2026 |
| 1.5.4 | 104 | 8/31/2026 |
| 1.5.3 | 129 | 8/31/2026 |
| 1.5.2 | 112 | 8/30/2026 |
| 1.5.1 | 96 | 8/30/2026 |
| 1.5.0 | 98 | 8/30/2026 |
| 1.4.0 | 97 | 8/29/2026 |
| 1.3.2 | 105 | 8/29/2026 |
| 1.3.1 | 98 | 8/29/2026 |
| 1.3.0 | 100 | 8/29/2026 |
| 1.2.0 | 143 | 8/29/2026 |