ITUN Modding Discussion and Explanation by Nona Mena
*** Read the whole tutorial in http://www.simlogical.com/ContentUploadsRemote/uploads/1588/ITUN_Modding_Discussion_Explanation.pdf ***
This thread is dedicated to discussing ITUN modding. It is inspired by the post at my blog: Tutorial: Tuning mods and Commodity Kinds. I've answered a number of questions about ITUN resources in PMs or at my blog, so I've decided to finally just try to centralize all the information.
ITUN resources are specially formatted XMLs that create tuning for interactions. All interactions that can be performed autonomously must have an ITUN resource. Mods that allow/disallow autonomy, alter age restrictions on interactions, change advertisement, increase/decrease motive gain, and alter pregnancy restrictions (this list may not include all possibilities) are all ITUN mods (there are a few exceptions to some mods regarding motive gains).
Example ITUN
Here’s an example of what an ITUN resource looks like. Notice that it is written mostly in plain English, so pretty much anybody with a package editor and text editor can make ITUN mods (the same is true for XML mods). This is the RepairHotTub_HotTubBase ITUN resource found in the GameplayData.package.
<?xml version=”1.0″?>
<base>
<Interaction name=”Sims3.Gameplay.Objects.Plumbing.HotTubBase+RepairHotTub+Definition” />
<Object name=”Sims3.Gameplay.Objects.Plumbing.HotTubBase” />
<CodeVersion name=”BaseGame” considerCodeVersion=”False” />
<Current_Tuning>
<Disallow DisallowAutonomous=”False” DisallowUserDirected=”False” DisallowPlayerSim=”False” />
<BaseAvailability>
<AgeSpecies AgeSpeciesValue=”T,Y,A,E” />
<MotiveThreshold MotiveThresholdType=”None” MotiveThresholdValue=”0″ MotiveBelowCheck=”False” />
<MoodThreshold MoodThresholdType=”None” MoodThresholdValue=”0″ />
<SkillThreshold SkillThresholdType=”Handiness” SkillThresholdValue=”0″ />
<CareerThreshold CareerThresholdType=”Undefined” CareerThresholdValue=”0″ IncludePastCareers=”False” />
<Lot AllowNonGreetedSimsIfObjectOutside=”False” AllowNonGreetedSimsIfObjectOutsideUserDirected=”True” AllowGreetedSims=”True” AllowOnCommunityLots=”True” AllowOnAllLots=”False” />
<World RestrictionType=”None” Types=”" Names=”" />
<Room AllowInTombRoomAutonomous=”False” />
<Misc DisallowedIfPregnant=”False” DisallowedFromInventory=”False” />
</BaseAvailability>
<Check type=”All” value=”0″ />
<Tradeoff name=”RepairHotTub”>
<Localization autoGenerate=”True” />
<Time value=”1″ addRoute=”True” />
<Exit funExit=”False” stressExit=”True” interruptible=”True” />
<RouteLeadIn allowed=”False” />
<AskJoinInteraction joinable=”False” />
<ScoringFunction alwaysChooseBest=”False” name=”" specificCommodity=”None” />
<ActionTopic name=”" ActionTopicUnavailableAfterActionFinishes=”False” />
<Output>
<Change type=”TraitHandy” advertised=”200″ locked=”True” actual=”200″ updateType=”ImmediateDelta” timeDependsOn=”False” updateEvenOnFailure=”True” updateAboveAndBelowZero=”Either” />
<Change type=”SkillHandiness” advertised=”200″ locked=”False” actual=”0″ updateType=”ContinuousFlow” timeDependsOn=”False” updateEvenOnFailure=”False” updateAboveAndBelowZero=”Either” />
<Change type=”BeRepairman” advertised=”200″ locked=”True” actual=”200″ updateType=”ContinuousFlow” timeDependsOn=”False” updateEvenOnFailure=”False” updateAboveAndBelowZero=”Either” />
<Change type=”BeButler” advertised=”200″ locked=”True” actual=”200″ updateType=”ContinuousFlow” timeDependsOn=”False” updateEvenOnFailure=”False” updateAboveAndBelowZero=”Either” />
</Output>
</Tradeoff>
<Notes Notes=”" />
</Current_Tuning>
</base>
You can find explanations of various fields below.
This is a work in progress. If you have questions, comments, suggestions, criticisms and/or corrections please feel free to share them.
Remember: Changing an ITUN is not a guarantee that your change will work. Many times, the restrictions for an interaction are hard-coded. If you want to know for sure that a restriction is hard-coded, you have to use ILSpy (or some other decompiler) to look at the core libraries and find out.