What it does is setting the properties of the selected Blueprint in the crafting menu.
Code: Select all
newmem:
mov [rdx+44],0 // INT crafting time: 0 minutes
mov [rdx+50],0 // FLOAT kerosene liters required
mov [rdx+54],0 // FLOAT gunpowder KG required
mov [rdx+58],0 // BOOL requires light?
mov [rdx+59],0 // BOOL locked?
mov [rdx+64],0 // CraftingLocation: Anywhere=0
mov [rdx+68],0 // BOOL requires lit fire?
For example, if the blueprint requires 50 kg of gunpowder and you do not have any gunpowder with you then you will not be able to craft that item. Setting that requirement to zero will enable you to craft it without the required gunpowder.
I have also set the crafting time to zero (minutes) even though it will not craft it instantly because of the game animations, it beats having to craft if to several game hours because the requirement (like the wolfskin jacket) might need you to spend some time to create.
RDX is where the BlueprintItem class is stored and those fields are offsets of that base address as seen here:
Code: Select all
public class BlueprintItem : MonoBehaviour // TypeDefIndex: 8168
{
// Fields
[HideInInspector] // RVA: 0x5000 Offset: 0x4400 VA: 0x180005000
public GearItem[] m_RequiredGear; // 0x18
[HideInInspector] // RVA: 0x5000 Offset: 0x4400 VA: 0x180005000
public int[] m_RequiredGearUnits; // 0x20
[HideInInspector] // RVA: 0x5000 Offset: 0x4400 VA: 0x180005000
public ToolsItem m_RequiredTool; // 0x28
[HideInInspector] // RVA: 0x5000 Offset: 0x4400 VA: 0x180005000
public ToolsItem[] m_OptionalTools; // 0x30
public GearItem m_CraftedResult; // 0x38
public int m_CraftedResultCount; // 0x40
public int m_DurationMinutes; // 0x44
public string m_CraftingAudio; // 0x48
public float m_KeroseneLitersRequired; // 0x50
public float m_GunpowderKGRequired; // 0x54
public bool m_RequiresLight; // 0x58
public bool m_Locked; // 0x59
public bool m_AppearsInStoryOnly; // 0x5A
[TooltipAttribute] // RVA: 0x16D140 Offset: 0x16C540 VA: 0x18016D140
public SkillType m_AppliedSkill; // 0x5C
[TooltipAttribute] // RVA: 0x16D1B0 Offset: 0x16C5B0 VA: 0x18016D1B0
public SkillType m_ImprovedSkill; // 0x60
public CraftingLocation m_RequiredCraftingLocation; // 0x64
public bool m_RequiresLitFire; // 0x68
private static List<string> m_UnlockedBlueprints; // 0x0
...
And "mov [rdx+44],0" (+44 hex is the offset for crafting time) is just setting the crafting time property of that blueprint to zero minutes.
If you are able to craft everything anytime even without a workbench, then the cheat is working as expected. When I start a new game, I would just start crafting those warm clothes to test the cheat.