This is a featured upload! It showcases the best talent and creativity available on MTS and in the community.
Version 2 Released
Contains new features which may be required by some mods.
Don't forget to remove version 1 when you upgrade!
Description
The XML Injector for The Sims 4 is a mod library to allow mods that would normally require a script for simple changes to instead use a custom snippet. The library provides the scripting, and the modder can release their mod without having to concern themselves with writing, compiling and maintaining a script. Currently the XML Injector snippet handles adding interactions to game objects in a variety
of ways with a simple XML definition.
Player Info
If you just play the game then you only need to download and install this library mod if another mod you download tells you that you must have this installed. On it's own this mod does nothing, it works in the background to make other modders able to code their mods more easily.
If another mod does inform you that this mod is required for it to work, then you should proceed to download and install this. You do not need to download the Modder's Documentation file, this contains the technical information for modders to reference.
Installation is simple. The file you download will contain two files, a script named XmlInjector_Script_v2.ts4script and XmlInjector_Test_v2.package.
Extract both of these files from the download file into your game Mods folder. You should install it directly into your Mods folder, and not a subfolder, in order to ensure that it can be easily located if you need to upgrade the script to a newer version.
The current version of the XML Injector is version 2, and denoted by the _v2 in the filenames. It has been written to work with the most recent game patch, 1.50.67 (February 21, 2019).
Once both files are installed, you must also ensure that script mods are enabled in your game options. This is very important as, though the XML Injector allows other mods to eliminate their scripts, the XML Injetor does the scripting for them and so script mods must be allowed in your game.
After installing the XML Injector, you should test to make sure it is working properly. The included test package adds several test interactions to several game objects. Choosing one of these "XML Injector Test" interactions from the pie menu should display a notification that the XML Injector is working properly. If you do not see these test interactions then the XML Injector is not installed properly and will not work for mods that depend on it.
The "XML Injector Test" test interactions can be selected from any of the following six locations in the game.
On a household's mailbox
Any of the game's computer objects
Clicking on any Sim
In the "Friendly" chat choices when clicking on another Sim
From a Sim on the relationship panel
From the "Household" phone category
There is not really any need to test more than one of these choices, any single one should suffice. The test is primarily in so many places in order to serve as a useful reference for modders to see how to code their own mods.
Once you have verified that the XML Injector is working, you may remove the XmlInjector_Test_v2.package file and test interactions will no longer appear on your pie menus.
The script file should remain in your Mods folder. If the script is removed, other mods which depend on it will no longer operate properly.
You should check back here occasionally, particularly a day or two after game updates if it stops working, to see if the mod has been updated with any important additions or fixes for new game patches. In the future, a mod you download may specify that it requires features from a version newer than the one you have installed, and again this is an important reason to keep the mod installed in the main Mods folder so it can always be located easily and the version number verified.
Modder Info
The primary purpose of this mod is to eliminate the need for modder's to write, compile and maintain their own scripts for the simple tasks of modifying the game's XML tunings (e.g. _super_affordances list). It currently supports:
Add interactions to game objects. The game objects can be selected by instance number, an existing interaction (e.g. sink_washHands), or a partial name search.
Add interactions to the Sim's object.
Add interactions to the relationship panel.
Add interactions to the phone panel.
Add interactions to AffordanceLists ("Friendly" mixers, etc.)
Version 2
Test that XML Injector v2 or higher is installed.
Test that that the installed version of XML Injector supports your mod.
Add loot actions to LootActions and RandomWeightLoot tunings.
Add buffs to traits.
Add name and object relationship components to game object tunings.
Add states and state_triggers to object tunings.
By offloading these tasks to a shared script, controlled by a simple XML snippet that you include in your mod package, this eliminates the need for you to include a script. In addition, if future game updates alter the method that these XML tunings must be modified in a script, this library will be promptly updated with any necessary fixes - and no changes will be required to your mod.
The majority of the documentation for the library is contained in the Modder's Documentation. This contains the following resources:
A PDF document with the technical details on creating an XmlInjector snippet tuning, including several examples.
The raw XML and STBL files contained in the test package.
A tuning description file for the XmlInjector snippet. If you use the TS4 Tuning Description Browser, you can place this file into your snippets folder where you have stored the EA TDesc files to view it within the browser.
The script source files for reference. At least one other script modder should acquaint themselves with the code (feel free to ask me any questions on how something works!) in the event that I am unable to update it myself for whatever unplanned and involuntary reason.
Once you've setup your mod to use an XmlInjector snippet, you should inform players who download your mod to obtain and install a copy of the XML Injector from this download page. Do not distribute the library with your own mod. This ensures that players have only one copy of the script installed, and that they can easily determine if they have the latest version installed and know where they can get the most recent updates if required.
The XML Injector can be extended to update other tunings. If you have any ideas, feel free to ask if they can be implemented. Ideal candidates for new features would be common tuning changes that would otherwise create the possibility of mod conflicts without a script. More complex or rare changes would not receive any priority for implementation as the mods that make those complex changes are likely to require a script for other reasons. The main goal is to allow other mods to be implemented and distributed without requiring their own scripts.
If you have any questions or run into technical difficulties, please post here on the mod library's discusion thread. In addition, some alternative methods of contacting me are given in the PDF documentation.
Thank you to all the modders who have tested, and given me ideas and encouragement for implementing this library snippet!
Thank you to Triplis for joining the development team and creating new features for future XML Injector versions!
You must have the expansion, game version or stuff packs listed below installed to use this custom content. Please see the post text for any exceptions.
Built with Game Version: 1.50.67
Key: - File was updated after upload was posted
Filename - Tip: You can click the magnifying glass to see the archive contents
Since Scumbumbo hasn't been around lately (that I'm aware of) and I have some familiarity with the tool, I looked into this being broken after the September 5th patch. Deaderpool ended up pointing me in the direction of what had changed in the official code causing the error I was seeing and I applied what appears to be the needed fix to the mod. What was broken seems to be working now.
So I'm posting a message to share the fixed version, one the injector itself and one the modder's documentation, including the uncompiled files with the one I changed.
If you are a modder, I recommend testing this with your mods that need it before notifying people about the change. That way if there's something still broken that I missed, you can catch it first.
- Triplis
♫ Improvising into a corner ♫
♫ No rhyme or rhythm in this verse cause I'm in a corner ♫
@Triplis
Your updated versions of the injector seems to be working perfectly well in my game. I have already gone ahead an commented on my mod that requires this that you have created an updated version.
Since Scumbumbo hasn't been around lately (that I'm aware of) and I have some familiarity with the tool, I looked into this being broken after the September 5th patch. Deaderpool ended up pointing me in the direction of what had changed in the official code causing the error I was seeing and I applied what appears to be the needed fix to the mod. What was broken seems to be working now.
So I'm posting a message to share the fixed version, one the injector itself and one the modder's documentation, including the uncompiled files with the one I changed.
If you are a modder, I recommend testing this with your mods that need it before notifying people about the change. That way if there's something still broken that I missed, you can catch it first.
Since Scumbumbo hasn't been around lately (that I'm aware of) and I have some familiarity with the tool, I looked into this being broken after the September 5th patch. Deaderpool ended up pointing me in the direction of what had changed in the official code causing the error I was seeing and I applied what appears to be the needed fix to the mod. What was broken seems to be working now.
So I'm posting a message to share the fixed version, one the injector itself and one the modder's documentation, including the uncompiled files with the one I changed.
If you are a modder, I recommend testing this with your mods that need it before notifying people about the change. That way if there's something still broken that I missed, you can catch it first.
- Triplis
Unfortunately, as of the new update it isn't working for me anymore.
I don't understand people saying this doesn't work on the "latest update". Isn't the latest update the RoM patch? That's what Triplis's update was made for isn't it? It's working perfectly well in my game which is fully patched.
I don't understand people saying this doesn't work on the "latest update". Isn't the latest update the RoM patch? That's what Triplis's update was made for isn't it? It's working perfectly well in my game which is fully patched.
I should rephrase, the mod itself is working. However, when installed none of my sims are able to use any work out equipment. I have no idea how the two are related. I only know that after going through my mods, that turned out to be the culprit.
#99 19th Sep 2019 at 4:05 AM
Last edited by Ayradyss : 19th Sep 2019 at 4:17 AM.
Posts: 104
Hmm. Dunno. It appears to be working just fine here. I just took a few Sims to the gym to do a little testing and they used the treadmills, wall-climber, weight bench and punching bag without any issues.