Ideas

canelacaliente's avatar
canelacaliente
Seasoned Ace
8 days ago
Status:
Reviewed

[DU] [BDK] Cleaner-Bot Fails to Clean Dust Due to Object Reference Error

1. Summary

Cleaner-Bots (and potentially other Utili-Bots) fail to clean dust piles due to an object reference error in the dust commodity system. When a bot attempts to clean, the cleaning bot does the action to clean the dust but nothing happens, while trying to resolve lot-level participants for the dust statistic modification, leaving dust piles uncleaned and bots stuck in failed cleaning loops. This bug happens frequently but doesn't always occur.

2. Description of the Bug

When a Cleaner-Bot routes to and attempts to clean a dust pile, the game's loot system triggers loot_Bots_Cleaning_FloorLoot to modify the dust commodity statistic. However, the system fails to resolve the lot-level participant for this action because the object reference becomes None (non-existent or corrupted). This prevents the dust from being cleared and causes the cleaning action to fail.

Technical Failure Point:

  • The error occurs in resolver.py at line 372 in _get_lot_level_from_object
  • The system attempts to read the secondary_id property from a None object reference
  • This happens during participant resolution for StatisticChangeOp on the commodity_Dust statistic

3. Steps to Reproduce

  1. Prerequisites:
    • Have a household with a Cleaner-Bot Servo
    • Allow dust to accumulate naturally or use dust system cheats
    • Ensure the lot has valid dust piles
  2. Reproduction Steps:
    1. Activate the Cleaner-Bot or wait for it to autonomously begin cleaning
    2. Observe the bot routing to a dust pile
    3. Watch as the bot begins the cleaning interaction
    4. Result: The cleaning action fails silently or the bot becomes stuck
    5. Background: The game log will contain the resolver.py exception with the 'secondary_id' AttributeError

4. Technical Evidence

<report> <version>2</version> <sessionid>6210c0b29095379668e4c8a3</sessionid> <type>desync</type> <sku>ea.maxis.sims4_64.15.pc</sku> <createtime>2025-10-07 02:45:44</createtime> <buildsignature>Local.Unknown.Unknown.1.118.257.1020-1.300.000.223.Release</buildsignature> <categoryid>resolver.py:372</categoryid> <desyncid>6210c0b29095379668e4c8a3</desyncid> <systemconfig/> <screenshot/> <desyncdata>Exception when applying action <StatisticChangeOp <class 'sims4.tuning.instances.commodity_Dust'> ParticipantType.ObjectLotLevel> for loot loot_Bots_Cleaning_FloorLoot(loot_actions=(<StatisticChangeOp <class 'sims4.tuning.instances.commodity_Dust'> ParticipantType.ObjectLotLevel>,), run_test_first=False, tests=CompoundTestList([])) (AttributeError: 'NoneType' object has no attribute 'secondary_id')
Traceback (most recent call last):

 File "T:\InGame\Gameplay\Scripts\Server\interactions\utils\loot_basic_op.py", line 266, in resolve_participants
 File "T:\InGame\Gameplay\Scripts\Server\event_testing\resolver.py", line 1562, in get_participants
 File "T:\InGame\Gameplay\Scripts\Server\event_testing\resolver.py", line 372, in _get_lot_level_from_object
AttributeError: 'NoneType' object has no attribute 'secondary_id'rtim=0
Client Session Time: 48.77
 
Num Save Errors: 0
 
Num Load Errors: 0
 
Current Game State: 0x96d01090
 
LoadingScreenActiveFlag: 1
 
Origin Version: 13,566,0,6079
 
Modded: False
 
SystemInfo: Windows 11 10.0.26100 GPU: NVIDIA GeForce RTX 3050 Ti Laptop GPU 32.0.15.7270, GUID: C42BB5F6-9FB4-11EF-984E-B45CECEBCF08
 
</desyncdata> </report>

5. Player Impact

  • Broken Gameplay Mechanic: Cleaner-Bots cannot perform their primary function of cleaning dust
  • Frustration: Players who purchased or built Servos specifically for cleaning find them non-functional
  • Dust Accumulation: Without working bots, players must manually clean dust piles or live with accumulating dirt
  • Wasted Resources: Time and simoleons invested in obtaining and upgrading Cleaner-Bots are wasted

6. Additional Notes

The error occurs specifically in the participant resolution system when trying to apply lot-level statistic changes, indicating a potential issue with how the game tracks object-to-lot relationships during bot cleaning operations.

1 Comment