The Hack Conflict Detection Utility (HCDU) is an essential tool when using mods, but it does have some shortcomings
- it doesn't consider STR#, OBJD, OBJf or other resources
- it can't be told which folder to start in
- it can't be told to ignore known conflicts (eg all the InTeenimater flavour paks)
- it reports conflicts at the resource (BHAV, BCON and STR#) level and not at the package level (it's usually enough to know that "InTeenimater_FlavorPak_BackToSchool.package" conflicts with "InTeenimater_B.package" without giving the eleven resources that conflict)
The HCDU Plus application is my attempt to remedy these.
Version 1.1 and onwards of HCDU Plus permits mods in a specific folder to be checked for conflicts against themselves and those already in the Downloads folder. This makes checking for conflicts in newly added mods a lot easier.
Intended Usage
- Start HCDU Plus
- Click the "Downloads Folder..." button (or type Alt+D or Ctrl+D) and browse to The Sims 2 Downloads folder
- Leave "Scan Folder" blank
- Click the "SCAN" button - this will perform a full conflict scan on the Downloads folder
- Resolve any reported conflicts as necessary. DON'T add acceptable conflicts to the Known Conflicts list
- Create a test folder as a subfolder of the Downloads folder
- Put mods for testing into the test folder
- Click the "Scan Folder" button (or type Alt+S or Ctrl+o) and browse to your test folder
- Click the "SCAN" button - this will perform a full conflict scan between mods in the test folder and a scan for conflicts between mods in the test folder and those in the downloads folder, but it will NOT report conflicts between mods already in the Downloads folder (which is why we don't need to add those as known conflicts)
- Resolve any conflicts for the mods in the test folder
- Move mods from the test folder into the main Downloads folder/sub-folders
Version 1.0 Details
Applies to later versions as well
Before using HCDU Plus it is necessary to tell it where to find the objects.pacakge file for the latest expansion you have installed. From the "File" menu, select "Configuration..." and either enter or browse to the install location (where the CSBin, TSBin and TSData sub-directories are located) - for UC this will end "Fun with Pets\SP9"
To scan a folder (and its sub-folders) for conflicting mods, from the File menu, select "Select Folder..." (or click the "Select Folder" button or type "Alt+S" or type "Ctrl+O") and browse to find the required starting folder. If this folder has been scanned recently, it can quickly be re-selected from the "File", "Recent Folders..." sub-menu.
Once the starting folder has been selected, click the "SCAN" button (or type "Alt+C").
The application will start scanning the mods in the selected folder and sub-folders, looking for conflicts. As conflicts are found they are displayed, to stop the scan, click the "Cancel" button.
The display shows pairs of mods that conflict, to see which resources within that pair of mods conflict, hover the mouse over them.
The HCDU Plus application can be taught to ignore known conflicts (by default it knows about InTeenimater conflicts). To tell the app to ignore a specific pair of mods, right click on either of the mods in the pair and select "Add As Known Conflict".
To change the known conflicts, from the File menu, select "Known Conflicts" (or type "Ctrl+K").
To delete a known conflict pair, select the pair and press the Delete key. To manually add a new pair, type the required filenames/patterns into the blank bottom line. To edit an existing pair, select the required filename/pattern and change it
The "By Resource" tab can be used to see which resources are conflicting in which mods (packages).
The conflict report can be saved to the clipboard (File menu, Save To Clipboard - Ctrl+S) or to file (File menu, Save As... - Ctrl+Alt+S)
- Alt+C - Scan
- Alt+F - File menu
- Alt+H - Help menu
- Alt+S - Select folder
- Alt+F4 - Exit
- Ctrl+K - Known conflicts (opens editing dialog)
- Ctrl+O - Open folder (select package)
- F1 - Help (about)
HCDU Plus report
Mods conflict report for 'D:\Users\William\Documents\EA Games\The Sims™ 2 Ultimate Collection\Downloads' at 11/12/2020 14:52
CJ\CJ-NoHobbyAnimations.package --> Hacks\Hobby Idle Anim Fix.package
BHAV: 0x060A - Hobby - Enthusiasm Weighted Random Hobby Idle (0x7FD46CD0)
Hacks\No_Finals_at_Night.package --> InTeen\InTeenimater_B.package
STR: 0x012D - Dialog prim string set (0x7F17E3A4)
InTeen\InTeenimater_B.package --> WH_PayBook\WH_PayBook_C.package
STR: 0x012F - Call Named Tree prim string set (0x7F8F4EB6)
InTeen\InTeenimater_B.package --> WH_Stuff\GamePlay\WH_BetterScopeRoom.package
STR: 0x012D - Dialog prim string set (0x7F01EC29)
InTeen\InTeenimater_B.package --> WH_Stuff\WH_CustomAging.package
BCON: 0x201C - Social - Proposition - Req. Rels. (0x7F01EC29)
BHAV: 0x1054 - Sub - Decrement Age Days Left (0x7F07FBBC)
TRCN: 0x201C - (0x7F01EC29)
WH_PayBook\WH_OptionalPayBonus_A.package --> WH_UniOfLife\UniversityOfLife.package
STR: 0x012D - Dialog prim string set (0x7F8F4EB6)
zzzTestStuff\WH_BuySecretMapsAsSouvenirsAnywhere.package --> zzzTestStuff\WH_BuySecretMapsAsSouvenirsAnywhereAlways.package
BHAV: 0x1005 - CT - Set Selection (0x7F29D4F1)
BHAV: 0x1005 - CT - Set Selection (0x7F53D8AD)
BHAV: 0x1005 - CT - Set Selection (0x7F53EFE7)
zzzTestStuff\WH_BuySecretMapsAsSouvenirsAnywhereAlways.package --> zzzTestStuff\WH_BuySecretMapsAsSouvenirsOnHoliday.package
BHAV: 0x1005 - CT - Set Selection (0x7F29D4F1)
BHAV: 0x1005 - CT - Set Selection (0x7F53D8AD)
BHAV: 0x1005 - CT - Set Selection (0x7F53EFE7)
Equivalent HCDU report
Report Start 11/12/2020 14:53:03
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Hobby - Enthusiasm Weighted Random Hobby Idle
Group ID: 0x7FD46CD0
Instance ID: 0x0000060A
Packages Containing This Procedure:
\downloads\CJ\CJ-NoHobbyAnimations.package
\downloads\Hacks\Hobby Idle Anim Fix.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: CT - InTeenimater - Can Propose?
Group ID: 0x7F01EC29
Instance ID: 0x0000270B
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_NoAgeOfConsent.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Pregnancy State - Update Flags & Walk
Group ID: 0x7F1D0F49
Instance ID: 0x0000102F
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\WH_Stuff\WH_Memory_ImPregnant_InTeen.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: College - Move In TEST
Group ID: 0x7F3FDB15
Instance ID: 0x00001013
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_CollegeAdmissions.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Function - Get My Job Category
Group ID: 0x7F441294
Instance ID: 0x00002022
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_NoTeenJobsForElders.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Move In - College TEST
Group ID: 0x7F441294
Instance ID: 0x0000205D
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_CollegeAdmissions.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: CT - Object Menu Subqueue
Group ID: 0x7F4437F2
Instance ID: 0x00002054
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Ownable - School Carpool TEST
Group ID: 0x7F4EA230
Instance ID: 0x0000208F
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Ownable - Take To School TEST
Group ID: 0x7F4EA230
Instance ID: 0x0000208A
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Ownable - WooHoo TEST
Group ID: 0x7F4EA230
Instance ID: 0x0000209A
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Dresser - Plan Outfit - TEST
Group ID: 0x7FE10572
Instance ID: 0x00002008
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\PostInTeen\PregnancyWearAnyOutfitEP5_InTeen.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Push Play In TEST
Group ID: 0x7FE10572
Instance ID: 0x0000201B
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Sub - Decrement Age Days Left
Group ID: 0x7F07FBBC
Instance ID: 0x00001054
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\WH_Stuff\WH_CustomAging.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Function - Main
Group ID: 0x7FF4DCC2
Instance ID: 0x00001001
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: School - Hail All Students
Group ID: 0x7F4EA230
Instance ID: 0x000020CD
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Try for Baby TEST
Group ID: 0x7FCBB499
Instance ID: 0x0000102A
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Dresser - Change Into - TEST
Group ID: 0x7FE10572
Instance ID: 0x00002004
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\PostInTeen\PregnancyWearAnyOutfitEP5_InTeen.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Move Out TEST
Group ID: 0x7F441294
Instance ID: 0x00002035
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_NoAgeOfConsent.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Closet - Try For Baby - TEST
Group ID: 0x7FE10572
Instance ID: 0x000020B8
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Try for Baby - Test
Group ID: 0x7F628A40
Instance ID: 0x00001032
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Attempt To Get Pregnant TEST
Group ID: 0x7F5A0600
Instance ID: 0x0000200C
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Try For Baby - TEST
Group ID: 0x7FE6B74C
Instance ID: 0x0000203F
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Hammock - Try for Baby - TEST
Group ID: 0x7F4437F2
Instance ID: 0x0000212E
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Social - Hammock - Try for Baby - TEST
Group ID: 0x7F01EC29
Instance ID: 0x000024C1
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Social - Hammock - SubQueue Try for Baby - TEST
Group ID: 0x7F01EC29
Instance ID: 0x000024C2
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_SilentPregnancy.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: Interaction - Walk to School - TEST
Group ID: 0x7F01EC29
Instance ID: 0x0000253D
Packages Containing This Procedure:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: CT - Set Selection
Group ID: 0x7F29D4F1
Instance ID: 0x00001005
Packages Containing This Procedure:
\downloads\zzzTestStuff\WH_BuySecretMapsAsSouvenirsAnywhere.package
\downloads\zzzTestStuff\WH_BuySecretMapsAsSouvenirsAnywhereAlways.package
\downloads\zzzTestStuff\WH_BuySecretMapsAsSouvenirsOnHoliday.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: CT - Set Selection
Group ID: 0x7F53D8AD
Instance ID: 0x00001005
Packages Containing This Procedure:
\downloads\zzzTestStuff\WH_BuySecretMapsAsSouvenirsAnywhere.package
\downloads\zzzTestStuff\WH_BuySecretMapsAsSouvenirsAnywhereAlways.package
\downloads\zzzTestStuff\WH_BuySecretMapsAsSouvenirsOnHoliday.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BHAV
Procedure Name: CT - Set Selection
Group ID: 0x7F53EFE7
Instance ID: 0x00001005
Packages Containing This Procedure:
\downloads\zzzTestStuff\WH_BuySecretMapsAsSouvenirsAnywhere.package
\downloads\zzzTestStuff\WH_BuySecretMapsAsSouvenirsAnywhereAlways.package
\downloads\zzzTestStuff\WH_BuySecretMapsAsSouvenirsOnHoliday.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BCON
Group ID: 0x7F01EC29
Instance ID: 0x0000201C
Packages Containing This Constant File:
\downloads\InTeen\InTeenimater_B.package
\downloads\WH_Stuff\WH_CustomAging.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: BCON
Group ID: 0x7FBE051B
Instance ID: 0x00002007
Packages Containing This Constant File:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: TTAB
Group ID: 0x7F4EA230
Instance ID: 0x00000002
Packages Containing This Menu File:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: TTAB
Group ID: 0x7F859641
Instance ID: 0x00000081
Packages Containing This Menu File:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_ResidentialGraduates.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: TTAB
Group ID: 0x7FF4DCC2
Instance ID: 0x00000001
Packages Containing This Menu File:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: TTAB
Group ID: 0x7F01EC29
Instance ID: 0x00000081
Packages Containing This Menu File:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: TTAs
Group ID: 0x7F4EA230
Instance ID: 0x00000002
Packages Containing This Menu Strings File:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: TTAs
Group ID: 0x7F859641
Instance ID: 0x00000081
Packages Containing This Menu Strings File:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_ResidentialGraduates.package
*** POSSIBLE CONFLICT DETECTED ***
File Type: TTAs
Group ID: 0x7FF4DCC2
Instance ID: 0x00000001
Packages Containing This Menu Strings File:
\downloads\InTeen\InTeenimater_B.package
\downloads\InTeen\InTeenimater_FlavorPak_BackToSchool.package
End Of Report
38 possible conflicts detected.
Source code can be downloaded from GitHub
- Added an option to extract .package files from .zip files within the Scan sub-directory.
Version 4.0
- Recompiled to fix compression and SimPe issues - see here
- Added support for detecting conflicts for TXMT and TXTR resources.
- Added support for detecting conflicts for IMG and UI resources.
- Added All and None to the Resources menu.
- Option to include known conflicts into the scan report, that is, ignore the Known Conflicts list. Enabling this option prevents adding new known conflicts.
- Check boxes to include the SavedSims sub-folder into either the Downloads or Scan file lists.
- Option to include .noload files into the Downloads or Scan file lists. This permits mods to be included as part of the scan but not loaded by the game - useful for modders.
- Ability to paste into the conflicts table (eg from direct from tables like these)
- Fixed the fix for the fix for the bug with loads earlier/later reporting!
Version 2.3
- Fixed the fix for the bug with loads earlier/later reporting.
- Fixed a bug with loads earlier/later reporting.
- GUID conflicts with game objects in the main objects.package file are now reported. These will usually be "default replacements", but may be errors.
- Fixed (hopefully) the "index out of range" errors
- Added checks for GZPS conflicts
- Fixed issue when a known conflict is entered as blank
- Added a Reset button to the Known Conflicts dialog to reload the defaults
- Added a right-click context menu to the Known Conflicts dialog to remove an entry
Version 1.5
- Added "Ignore Store Version Conflicts" to Conflicts menu - if checked, mods that conflict over the STR# 0xFF648785 resource will not be reported (this STR# is used only by Store downloads to record version info)
- Added "Ignore Castaways Conflicts" to Conflicts menu - if checked, mods that conflict over the STR# 0x0001 resource in group 0x7FC078F3 will not be reported (this STR# is used only by Castaways conversions)
Version 1.4
- Improved error handling
- Improved resource usage
Version 1.3
- Error report now includes filename if an invalid package file is encountered
- Invalid package files can be ignored (not recommended, better to move them out of the Downloads area and rescan)
- Added "Check For GUID Conflicts" to Conflicts menu - if checked, mods that use the same GUID as another mod will be reported. Note, this can report a lot of CC mods by the same author as conflicting.
Version 1.2
- Application window is now resizable
- Added Conflicts menu
- Known Conflicts moved from File menu to Conflicts menu
- Added "Ignore Internal Conflicts" to Conflicts menu - if checked, mods that conflict with themselves will not be reported
- Added "Ignore HomeCrafter Conflicts" to Conflicts menu - if checked, mods that conflict over the STR# 0x007B resource will not be reported (this STR# is used only by HomeCrafter)
- Added "*-STORE.package" to the default list of known conflicts - these are store packages and recolours tend to contain duplicate identical resources
Version 1.1
- Added Scan Folder feature
- Initial release
- Version 4.1 HcduPlusV4.1.zip
- Version 3.3 HcduPlusV3.3.zip
- Version 3.2 HcduPlusV3.2.zip