Skip to content

Oops19/TS4-TuningInspector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔍 Tuning Inspector

A utility mod that inspects loaded tuning files by converting them into Python objects. Most settings defined in XML are readable this way — but not editable. This mod provides read-only access to tuning data.

🎯 Audience

  • Mod authors who create or patch tuning files can use this tool to verify their changes.
  • Mod authors who copy EA tuning wholesale to change a single line are also welcome — but please reconsider. Mods that break with every TS4 update hurt the player experience. Use Patch-XML to create resilient mods that don’t break the game.

This mod is not intended for regular gameplay. It does not alter game behavior and is purely diagnostic.

🧑‍💻 Usage

If you're modifying location tests (e.g., for beach towels), it's easy to change the XML — but harder to confirm if your edits work in-game.

Use the following commands to inspect tuning objects:

  • inspect - suntan_BeachTowel - the mod will figure out that you meant manager 'interaction'.
  • inspect INTERACTION suntan_BeachTowel - to look at the tuning. You will notice that there are 'test_globals'.
  • inspect INTERACTION suntan_BeachTowel test_globals - to drill down into the test_globals property. You will notice that 'LocationTest' is one of the possible tests.
  • inspect INTERACTION suntan_BeachTowel test_globals.LocationTest - to drill further down into the test_globals and then into the LocationTest property.

To inspect module based tunings x-inspect must be used:

  • x-inspect SocialMediaTunables SOCIAL_MEDIA_POST_REACTIONS - 'Alpha' short name support for module based classes.
  • x-inspect SocialMediaTunables - List all available tunables.
  • x-inspect automation.constants._Constants/_Lot_Descriptions - Show tunings for 'automation/constants.py; class Constants: class LotDescriptions'
  • x-inspect social_media.social_media_tuning._Social_Media_Tunables SOCIAL_MEDIA_POST_REACTIONS
  • x-inspect SocialMediaTunables TYPES_OF_POSTS content - 'Alpha' short name support for module based classes.

Each command drills deeper into the tuning structure:

  • The mod auto-detects the manager (e.g., INTERACTION)
  • You can explore nested properties like test_globals and LocationTest

Some tests are converted into runtime objects and may not appear in the tuning. Patch-XML can patch these during load-time. LiveXML makes patching such tests more difficult.

🔄 Compatibility

This mod is incompatible with Scumbumbo’s Inspector, which uses the same inspect cheat command.

Scumbumbo’s tool requires editing and reloading scripts repeatedly — something I’ve done many times and didn’t enjoy. This version accepts Python objects (classes, tuples, etc.) directly as parameters, eliminating the need for constant script edits.

📜 Short Names

  • "SocialMediaTunables": "social_media.social_media_tuning.SocialMediaTunables"
  • "LocalizationStrings": "automation.constants.Constants", "LocalizationStrings"
  • "Interactions": "automation.constants.Constants", "Interactions"
  • "ObjectDefinitions": "automation.constants.Constants", "ObjectDefinitions"
  • "ResourceIds": "automation.constants.Constants", "ResourceIds"
  • "LotDescriptions": "automation.constants.Constants", "LotDescriptions"
  • "ClubSeeds": "automation.constants.Constants", "ClubSeeds"
  • "Recipes": "automation.constants.Constants", "Recipes"
  • "Situations": "automation.constants.Constants", "Situations"
  • "SituationJobs": "automation.constants.Constants", "SituationJobs"
  • "Buffs": "automation.constants.Constants", "Buffs"
  • "Misc": "automation.constants.Constants", "Misc"
  • "ClubTunables": "clubs.club_tuning.ClubTunables"
  • "BroadcasterClubRule": "clubs.club_tuning.BroadcasterClubRule"
  • "CommandTuning": "server_commands.sim_commands.CommandTuning"
  • "UiTuning": "ui.ui_tuning.UiTuning"
  • "TelemetryTuning": "telemetry_helper.TelemetryTuning"
  • "AdoptionService": "adoption.adoption_service.AdoptionService"
  • "BalanceSystemTuning": "balance_system.balance_system_tuning.BalanceSystemTuning"
  • "PassiveBalloons": "balloon.passive_balloons.PassiveBalloons"
  • "Career": "careers.career_tuning.Career"
  • "CASStoriesTuning": "cas.cas_tuning.CASStoriesTuning"
  • "CASTuning": "cas.cas_tuning.CASTuning"
  • "BaseCivicPolicyProvider": "civic_policies.base_civic_policy_provider.BaseCivicPolicyProvider"
  • "Photography": "crafting.photography.Photography"
  • "Recipe": "crafting.recipe.Recipe"

When using the full qualified names make sure to use '_a' for 'A'. The attribute is always converted to upper case.


📝 Addendum

🔄 Game compatibility

This mod has been tested with The Sims 4 1.120.117, S4CL 3.17, TS4Lib 0.3.42. It is expected to remain compatible with future releases of TS4, S4CL, and TS4Lib.

📦 Dependencies

Download the ZIP file - not the source code. Required components:

If not already installed, download and install TS4 and the listed mods. All are available for free.

📥 Installation

  • Locate the localized The Sims 4 folder (it contains the Mods folder).
  • Extract the ZIP file directly into this folder.

This will create:

  • Mods/_o19_/$mod_name.ts4script
  • Mods/_o19_/$mod_name.package
  • mod_data/$mod_name/*
  • mod_documentation/$mod_name/* (optional)
  • mod_sources/$mod_name/* (optional)

Additional notes:

  • CAS and Build/Buy UGC without scripts will create Mods/o19/$mod_name.package.
  • A log file mod_logs/$mod_name.txt will be created once data is logged.
  • You may safely delete mod_documentation/ and mod_sources/ folders if not needed.

📂 Manual Installation

If you prefer not to extract directly into The Sims 4, you can extract to a temporary location and copy files manually:

  • Copy mod_data/ contents to The Sims 4/mod_data/ (usually required).
  • mod_documentation/ is for reference only — not required.
  • mod_sources/ is not needed to run the mod.
  • .ts4script files can be placed in a folder inside Mods/, but storing them in _o19_ is recommended for clarity.
  • .package files can be placed in a anywhere inside Mods/.

🛠️ Troubleshooting

If installed correctly, no troubleshooting should be necessary. For manual installs, verify the following:

  • Does your localized The Sims 4 folder exist? (e.g. localized to Die Sims 4, Les Sims 4, Los Sims 4, The Sims 4, ...)

    • Does it contain a Mods/ folder?
      • Does Mods/o19/ contain:
        • ts4lib.ts4script and ts4lib.package?
        • {mod_name}.ts4script and/or {mod_name}.package
  • Does mod_data/ contain {mod_name}/ with files?

  • Does mod_logs/ contain:

    • Sims4CommunityLib_*_Messages.txt?
    • TS4-Library_*_Messages.txt?
    • {mod_name}_*_Messages.txt?
  • Are there any last_exception.txt or last_exception*.txt files in The Sims 4?

  • When installed properly this is not necessary at all. For manual installations check these things and make sure each question can be answered with 'yes'.

  • Does 'The Sims 4' (localized to Die Sims 4, Les Sims 4, Los Sims 4, The Sims 4, ...) exist?

    • Does The Sims 4 contain the folder Mods?
      • Does Mods contain the folder _o19_?
        • Does _19_ contain ts4lib.ts4script and ts4lib.package files?
        • Does _19_ contain {mod_name}.ts4script and/or {mod_name}.package files?
    • Does The Sims 4 contain the folder mod_data?
      • Does mod_data contain the folder {mod_name}?
        • Does {mod_name} contain files or folders?
    • Does The Sims 4 contain the mod_logs ?
      • Does mod_logs contain the file Sims4CommunityLib_*_Messages.txt?
      • Does mod_logs contain the file TS4-Library_*_Messages.txt?
        • Is this the most recent version or can it be updated?
      • Does mod_logs contain the file {mod_name}_*_Messages.txt?
        • Is this the most recent version or can it be updated?
    • Doesn't The Sims 4 contain the file(s) last_exception.txt and/or last_exception*.txt ?
  • Share the The Sims 4/mod_logs/Sims4CommunityLib_*_Messages.txt and The Sims 4/mod_logs/{mod_name}_*_Messages.txt file.

If issues persist, share: mod_logs/Sims4CommunityLib_*_Messages.txt mod_logs/{mod_name}_*_Messages.txt

🕵️ Usage Tracking / Privacy

This mod does not send any data to external servers. The code is open source, unobfuscated, and fully reviewable.

Note: Some log entries (especially warnings or errors) may include your local username if file paths are involved. Share such logs with care.

🔗 External Links

Sources Support Donations

⚖️ Copyright and License

You may use and adapt this mod and its code — even without owning The Sims 4. Have fun extending or integrating it into your own mods!

Oops19 / o19 is not affiliated with or endorsed by Electronic Arts or its licensors. Game content and materials © Electronic Arts Inc. and its licensors. All trademarks are the property of their respective owners.

🧾 Terms of Service

  • Do not place this mod behind a paywall.
  • Avoid creating mods that break with every TS4 update.
  • For simple tuning mods, consider using:
  • To verify custom tuning structures, use:

🗑️ Removing the Mod

Installing this mod creates files in several directories. To fully remove it, delete:

  • The Sims 4/Mods/_o19_/$mod_name.*
  • The Sims 4/mod_data/_o19_/$mod_name/
  • The Sims 4/mod_documentation/_o19_/$mod_name/
  • The Sims 4/mod_sources/_o19_/$mod_name/

To remove all of my mods, delete the following folders:

  • The Sims 4/Mods/_o19_/
  • The Sims 4/mod_data/_o19_/
  • The Sims 4/mod_documentation/_o19_/
  • The Sims 4/mod_sources/_o19_/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages