Description
Bug Report
Endpoint: POST /api/v1/jobs/make/equip?map_id=0&pawn_id=587&item_id=5149
Response:
{
"success": false,
"errors": [
"Failed to determine equip job for item: Gun_Revolver"
],
"warnings": [],
"timestamp": "2026-07-22T09:25:00.7258498Z"
}
Description
The /api/v1/jobs/make/equip endpoint fails when trying to equip a weapon (e.g. Gun_Revolver) to a pawn. The error "Failed to determine equip job for item: Gun_Revolver" is returned.
The same pawn can successfully equip the item via the /api/v1/pawn/job endpoint, which works for both weapons and apparel.
Root Cause (suspected)
In ColonistService.cs:218-226, the equip logic only checks two utilities:
if (EquipmentUtility.CanEquip(foundThing, pawn) == true) { ... }
if (ApparelUtility.HasPartsToWear(pawn, foundThing.def) == true) { ... }
Neither EquipmentUtility.CanEquip nor ApparelUtility.HasPartsToWear handles weapons — weapons are not apparel. For weapons, RimWorld uses a different equip mechanism, so both utilities return false and job stays null.
The /api/v1/pawn/job endpoint doesn't have this issue because it uses the generic JobDef name (e.g. Equip) directly without pre-checking via utility classes.
Environment
RIMAPI mod for RimWorld
Endpoint: POST /api/v1/jobs/make/equip
Issue ready. The problem is in ColonistService.cs:218-226 — the equip logic only checks EquipmentUtility.CanEquip and ApparelUtility.HasPartsToWear, neither of which handle weapons since they aren't apparel.
Steps to Reproduce
Have a pawn (pawn_id=587) and a weapon (item_id=5149, defName Gun_Revolver) in the map.
Send: POST /api/v1/jobs/make/equip?map_id=0&pawn_id=587&item_id=5149
Observe the 400 error with the message above.
Expected Behavior
The pawn should be ordered to equip the weapon, same as when using /api/v1/pawn/job endpoint.
Expected Behavior
No response
Actual Behavior
No response
Relevant Log Output
RimWorld Version
1.6
RIMAPI Version
1.0.0
Mod List
No response
Code of Conduct
Description
Bug Report
Endpoint:
POST /api/v1/jobs/make/equip?map_id=0&pawn_id=587&item_id=5149Response:
{ "success": false, "errors": [ "Failed to determine equip job for item: Gun_Revolver" ], "warnings": [], "timestamp": "2026-07-22T09:25:00.7258498Z" }Description
The /api/v1/jobs/make/equip endpoint fails when trying to equip a weapon (e.g. Gun_Revolver) to a pawn. The error "Failed to determine equip job for item: Gun_Revolver" is returned.
The same pawn can successfully equip the item via the /api/v1/pawn/job endpoint, which works for both weapons and apparel.
Root Cause (suspected)
In ColonistService.cs:218-226, the equip logic only checks two utilities:
if (EquipmentUtility.CanEquip(foundThing, pawn) == true) { ... }
if (ApparelUtility.HasPartsToWear(pawn, foundThing.def) == true) { ... }
Neither EquipmentUtility.CanEquip nor ApparelUtility.HasPartsToWear handles weapons — weapons are not apparel. For weapons, RimWorld uses a different equip mechanism, so both utilities return false and job stays null.
The /api/v1/pawn/job endpoint doesn't have this issue because it uses the generic JobDef name (e.g. Equip) directly without pre-checking via utility classes.
Environment
RIMAPI mod for RimWorld
Endpoint: POST /api/v1/jobs/make/equip
Issue ready. The problem is in ColonistService.cs:218-226 — the equip logic only checks EquipmentUtility.CanEquip and ApparelUtility.HasPartsToWear, neither of which handle weapons since they aren't apparel.
Steps to Reproduce
Have a pawn (pawn_id=587) and a weapon (item_id=5149, defName Gun_Revolver) in the map.
Send: POST /api/v1/jobs/make/equip?map_id=0&pawn_id=587&item_id=5149
Observe the 400 error with the message above.
Expected Behavior
The pawn should be ordered to equip the weapon, same as when using /api/v1/pawn/job endpoint.
Expected Behavior
No response
Actual Behavior
No response
Relevant Log Output
RimWorld Version
1.6
RIMAPI Version
1.0.0
Mod List
No response
Code of Conduct