Nona's Sims

Modding and Troubleshooting The Sims 3

Tutorial: Tuning mods and Commodity Kinds

You can get more information about ITUN resources at Simlogical: ITUN modding discussion

An updated list of Commodity Kinds is also available at Simlogical: Commodity Kinds

The purpose of this post  is to explain ITUN mods and how Commodity Kinds are used when making them. Somebody over at MTS asked me for a list of Commodity Kinds, and I figured, while I’m at it, I might as well explain a little bit in case there’s somebody out there wanting to learn more about tuning mods. It’s not exactly a tutorial, so sorry about it! I wasn’t sure what else to call it.

Introduction

If you’ve ever used a “no autonomous” (or less/more autonomous) mod, then you’ve used a mod that alters an ITUN resource. ITUN resources are generally found in the GameplayData.package, but they are also present in the EA Premium Content items. ITUN resources are what allow (or disallow) your sims to use interactions autonomously. You can use ITUN resources to increase/decrease motives or skills when doing an interaction, or to make certain sims more/less likely to use a certain interaction autonomously. To do this, you need to advertise a certain commodity. Commodity kinds are defined in the core, in Sims3GameplaySystems.dll.

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>

Since I’m focusing on commodity kinds in this post, I’ve highlighted the output in orange text. This is what causes skills and motives to change when performing an interaction. This is also where you “advertise” an interaction for a sim.  If you wanted your Butler to be less likely to repair a broken hot tub, you could decrease the number in advertised=”200″  to something smaller. Making the number negative would be similar to removing autonomy for the repair hot tub interaction for the butler.

If you look at the top of the quote, you’ll notice this is where you can make interactions available for other age groups, as well turn of autonomy completely, or make the interaction not available to player sims, etc. All ITUN resources follow the same format. To make the cow plant safe for active sims, for example, I changed DisallowPlayerSim=”False” to DisallowPlayerSim=”True” in the Eat Cake ITUN, making the interaction not available to active sims.

Commodity Kinds

Finally, the purpose of this post! Below you’ll find a list of all commodity kinds defined in the core as of patch level 1.63-1.67.  Click for more 😉

None,
Time = 3,
Bladder = 17774806,
Hunger,
Energy,
Hygiene,
Fun,
Dirtiness,
Decoration = 18193954,
Fatigue = 17774812,
Work,
GoHome,
Politeness,
Social,
TeenHangOut,
ComeAndSee,
MoodAngry,
MagicFatigue,
AuraPower = 32525516,
Juiced = 21952334,
Orientation = 26116570,
ServoBot = 22636759,
BatteryPower = 22636765,
Maintenence = 22636772,
TraitAbsentMinded = 286210276,
TraitAdventurous = 294052151,
TraitAmbitious = 286210277,
TraitAngler,
TraitAntiTV,
TraitArtistic,
TraitAthletic,
TraitBookworm,
TraitBrave,
TraitCantStandArt,
TraitCharismatic,
TraitChildish,
TraitClumsy,
TraitCommitmentIssues,
TraitComputerWiz,
TraitCouchPotato,
TraitCoward,
TraitDaredevil,
TraitDisciplined = 292210008,
TraitDislikesChildren = 286210293,
TraitEasilyImpressed,
TraitEvil,
TraitExcitable,
TraitFamilyOriented,
TraitFlirty,
TraitFriendly,
TraitFrugal,
TraitGenius,
TraitGood,
TraitGoodSenseOfHumor,
TraitGreatKisser,
TraitGreenThumb,
TraitGrumpy,
TraitHandy,
TraitStayInside,
TraitHeavySleeper,
TraitHopelessRomantic,
TraitHotheaded,
TraitHydrophobic,
TraitInappropriate,
TraitInsane,
TraitKleptomaniac,
TraitLightSleeper,
TraitLoner,
TraitLoser,
TraitLovesTheOutdoors,
TraitLucky,
TraitMeanSpirited,
TraitMooch,
TraitNaturalCook,
TraitNeat,
TraitNeurotic,
TraitNeverNude,
TraitNoSenseOfHumor,
TraitOverEmotional,
TraitPartyAnimal,
TraitPerfectionist,
TraitPhotographersEye = 294130956,
TraitPyromaniac = 286210331,
TraitSchmoozer,
TraitSlob,
TraitSnob,
TraitUnflirty,
TraitUnlucky = 286210337,
TraitVegetarian,
TraitVirtuoso,
TraitWorkaholic,
TraitAsianCulture = 293457600,
TraitEgyptianCulture = 293457616,
TraitFrenchCulture = 293457632,
TraitSavvySculptor = 288678840,
TraitEnvironmentallyConscious,
TraitPerceptive = 291187660,
TraitBornSalesman = 293783832,
TraitEccentric = 294129485,
TraitDramatic = 294801418,
TraitXFactor,
TraitNurturing,
TraitRebellious,
TraitImaginaryFriend = 292691847,
TraitLazyPet = 297551209,
TraitLazyHorse = 297541497,
TraitNoisyPet = 297622241,
TraitLoyalPet,
TraitHunterPet,
TraitNeatPet,
TraitNonDestructivePet,
TraitAdventurousPet,
TraitAggressivePet,
TraitDestructivePet,
TraitFriendlyPet,
TraitHyperPet,
TraitPiggyPet,
TraitPlayfulPet,
TraitQuietPet,
TraitSkittishPet,
TraitHydrophobicPet,
TraitLikesSwimmingPet,
TraitAgilePet,
TraitBravePet,
TraitFastPet,
TraitGentlePet,
TraitNervousPet,
TraitHatesJumpingPet = 297622263,
TraitIndependentPet = 297622290,
TraitAnimalLover = 297622265,
TraitCatPerson,
TraitDogPerson,
TraitEquestrian,
TraitMeanPet,
TraitCluelessPet = 297622271,
TraitGeniusPet,
TraitProudPet,
TraitShyPet,
TraitUntrainedHorse,
TraitDiva = 299981099,
TraitSocialButterfly = 297859162,
TraitNaturalBornPerformer = 297859172,
TraitLycanthropyHuman = 291181605,
TraitLycanthropyWerewolf,
TraitVampire = 298442872,
TraitFairy = 291204611,
TraitWitch = 291266005,
TraitSupernaturalSkeptic,
TraitBrooding = 291204612,
TraitGatherer = 295331128,
TraitSupernaturalFan = 293647183,
TraitNightOwl = 295603568,
TraitProper,
TraitLovesTheCold = 297760726,
TraitLovesTheHeat = 297760739,
TraitIrresistible = 290128992,
TraitAvantGarde = 290992986,
TraitInfluenceNerd = 294380009,
TraitInfluenceRebel = 294380034,
TraitInfluenceSocialite = 294380050,
TraitSociallyAwkward = 294537723,
TraitMermaid = 294334031,
TraitSailor = 294342223,
TraitLovesToSwim = 293699151,
TraitFutureSim = 290391512,
TraitRobotMode,
TraitUnstable = 290391520,
TraitStinkySim,
TraitWonderlandSim,
TraitBotFan,
TraitRobotModeOn,
ServoBotPainter = 292365333,
ServoBotLove = 292365342,
ServoBotChef = 291072229,
ServoBotCleaner = 292365356,
ServoBotEvil = 292365365,
ServoBotFriendly = 292365371,
ServoBotFisher = 292365381,
ServoBotGardner = 292365387,
ServoBotHandiBot = 292365393,
ServoBotEmotion = 292365400,
ServoBotMusician = 292365414,
ServoBotNanny = 291072230,
ServoBotSentience = 292365425,
ServoBotMoodAdjuster,
ServoBotHumor,
ServobotAfraidOfHumans,
ServobotAbilityToLearn,
AnsweringPhone = 17774885,
DaredevilOnDare,
DefendAgainstBurglar,
LookAtFire,
ExtinguishSelf,
JoinProtest,
LookAtProtest,
ReactToContractions,
DesperateSocial,
LookAfterBabyOrToddler,
LookAfterChild,
AdmonishedChild = 17779009,
MidlifeCrisis,
SavedByDogFromFire,
LookAfterDog = 19585945,
LookAfterCat,
LookAfterHorse,
ReactToNegativeAction = 17774896,
SwimmingInPoolMotive,
BeAppropriateInVisit,
PrepareForParty,
BeHostAtParty,
ChildEnjoyParty,
TeenEnjoyParty,
AdultEnjoyParty,
BeAtPicnic,
Mourn,
PrepareForFuneral,
BeHostAtFuneral,
BeGuestAtFuneral,
PrepareForForeignVisitors = 26637100,
BeHostOfForeignVisitors,
EnjoyForeignVisitation,
BeGhostly = 17774909,
BeMummy = 23707613,
BeFrankenstein = 19183698,
BeDaycareProblemChild,
StayAtVenue = 17774910,
BeInPark,
BeInGym,
BeInLibrary,
BeInArtGallery,
BeAtSwimmingPool,
GhostBusting,
DoLocationOpportunity,
EatOutside,
BeSuspicious,
BeMaid = 18706978,
BeBonehilda = 33284187,
BeBonehildaGoofOff = 17989281,
BabysitterClean = 18706979,
BeRepairman = 18707012,
BeScenarioFirefighter = 19312829,
BeGhostbuster = 19313265,
KeepSwimming,
BeInDojo,
BeInMarket,
BeInChineseGarden,
BeInNectary,
BeInSalon,
BeInLaundromat,
BeAtBakeSale,
BeInConsignmentStore,
BeAngryGhost,
BeInDiveBar,
BeInCocktailLounge,
BeInDanceClub,
VampireThirst,
BeButler,
BeBartender,
BeDancer,
BeAtTeenParty,
BeAtBachelorParty,
BeAtSlumberParty,
HavingMoodSwing,
BeInDogPark,
BeInCatJungle,
BeInPetStore,
BeInEquestrianCenter = 19313296,
BeInHorseRanch,
BeAToad,
BeAZombie,
BeInPotionShopConsignmentStore,
BeInWerewolfBar,
BeInMausoleum,
BeInArboretum,
BeInGypsyCaravan,
BeInVaultOfAntiquity,
AlienBrainPower = 19313408,
BeAtSpringFest,
BeAtSummerFest,
BeAtFallFest,
BeAtWinterFest,
BeAlienVisitor,
BeAtPoolParty,
TrickOrTreatVandal,
BeAtBeach,
BeAtCostumeParty,
BeAtJuiceKeggerParty = 19313424,
BeAtTailgatingParty,
BeAtBonfire,
BeAtVideoGameLANParty,
BeAtMasqueradeBall,
BeAtVictoryParty,
BeProtestOrganizer,
BeAtImprovedProtest,
BeAtHungerStrike,
BeAtRowdyProtest,
StayAtDorm = 19313440,
StayAtFrat,
StayAtSorority,
BePlantSim = 22999969,
AcademicPerformance = 21570553,
BeInRebelHangout = 24109076,
BeInUniversityHangout = 24109136,
BeInNerdShop = 24109120,
BeInArcade = 24109155,
BeInCoffeeShop = 24109169,
BeInStudentUnion = 30448459,
BeUninhibited = 26796918,
UniversityStudy = 24730495,
BeUniversityMascot = 31296869,
BeAtAcademicLecture = 26796919,
BeAtAcademicBusinessLab = 30441132,
BeAtAcademicTechnologyLab,
BeAtAcademicScienceLab,
BeAtAcademicFineArtsLab,
BeAtAcademicCommunicationsLab,
BeAtAcademicPhysEdLab,
MermaidDermalHydration = 24698543,
BeResortMaintenance,
BeAtResort,
BeTimeTraveler = 30441138,
BeInBotEmporium = 22464715,
BeInCommunityLivingCenter,
BeInCafeteria,
BeInGalleryShop,
BeInRecreationPark,
BeInWasteland,
BeInFutureBar,
BeAtDerelictFutureBeach = 22464721,
RoleTourist = 23094981,
RoleExplorer,
RoleSpecialMerchant,
RoleLocationMerchant,
RoleTattooArtist,
RoleStylist,
RoleBartender = 23094991,
RolePaparazzi = 23094988,
RoleBouncer = 23094990,
RolePianist = 23094992,
RoleProprietor,
RoleKissingBoothAttendant,
RoleBaristaBartender,
RoleHobbyShopMerchant,
RolePerformObjectService,
RoleTimeTraveler = 23094997,
RoleCafeteriaWaiter,
RoleFutureHobo,
BeAFireFighter = 23094987,
BeAGhostHunter = 23094989,
BeInFirefighterEmergency = 26982099,
SkillAthletic = 554645830,
SkillCharisma,
SkillCooking,
SkillDancing,
SkillDiving,
SkillFishing,
SkillGardening,
SkillGuitar,
SkillHandiness,
SkillLogic,
SkillPainting,
SkillPottyTrain,
SkillLearnToTalk,
SkillLearnToWalk,
SkillChess,
SkillHacking,
SkillMooch,
SkillVideoGame,
SkillWriting,
SkillXylophone,
SkillHomework,
SkillPegBox,
SkillAirGuitar,
SkillBlocks,
SkillChildCooking,
SkillCollecting,
SkillPhotography,
SkillFoosball,
SkillMartialArts = 559354903,
SkillSnakeCharming,
SkillNectar = 560747331,
SkillTattooing,
SkillTrampoline = 555898246,
SkillSculpting = 555910285,
SkillStyling,
SkillInventing = 556843407,
SkillConsignment,
SkillGnubb,
SkillPiano,
SkillClubDancing,
SkillShuffleboard,
SkillBartending,
SkillRockBand = 554837462,
SkillBassGuitar = 556843414,
SkillDrums,
SkillDarts,
SkillBubbles,
SkillArcadeMachine,
SkillChildGardening,
SkillChildAthletic,
SkillChildGuitar,
SkillChildPiano,
SkillChildBassGuitar,
SkillChildDrums,
SkillSandbox = 569003212,
SkillLearnToDrive,
SkillBallet,
SkillScouting,
SkillHopscotch = 557468881,
SkillRiding = 565286339,
SkillJumping,
SkillRacing,
SkillWildlifeFriend,
SkillTrick,
SkillCatHunting,
SkillDogHunting,
SkillGolfing,
SkillGambling,
SkillPerformanceArtist = 565286349,
SkillMagic,
SkillEntertainer,
SkillPool,
SkillKaraoke,
SkillDJTurntable,
SkillDominoes,
SkillSpellcraft,
SkillBroomRiding,
SkillSpellcasting,
SkillLycanthropy,
SkillFairyMagic = 568868543,
SkillSkating = 565296879,
SkillSnowboarding = 565286360,
SkillHorseshoes = 564043375,
SkillBallFighting = 563228269,
SkillPingPong = 556842610,
SkillBowling = 554813657,
SkillStreetArt = 557983959,
SkillScience = 565286361,
SkillInfluenceNerd = 558038573,
SkillInfluenceRebel,
SkillInfluenceSocialite,
SkillSocialNetworking,
SkillScubaDiving = 563228272,
SkillFirewalking,
SkillWaterskiing,
SkillWindsurfing,
SkillBotBuilding = 558038577,
SkillFuture,
SkillLaserHarp,
SkillBugEating,
HorseWinnied = 26257291,
DogDestruction = 27889056,
CatScratch,
HorseExercise,
HorseThirst,
LieDown,
BeDog,
BeCat,
BeHorse,
HorseStamp,
HorseBegForHarvestable,
PetSkillFatigue = 27889072,
WhackedOut,
StallionOffered,
BeStrayPet = 31779840,
RoleDeer = 17416992,
RoleRaccoon = 17417015,
RoleWildHorse,
PetStartle,
CatPresentPrey = 17417024,
HorseSaddled,
BoxStallBoredom,
Temperature,
AvoidExtremeWeather,
SpringAppropriateness,
SummerAppropriateness,
FallAppropriateness,
WinterAppropriateness,
SummerHoliday,
WinterHoliday = 17417040,
FallHoliday,
SpringHoliday,
BreatheFreely = 17775937,
BeAtDiveLot,
PostureNone = 68107553,
Standing,
Sitting,
Relaxing,
Sleeping,
CarryingChild,
BeingCarried,
WalkingToddler,
InCrib,
InHighChair,
PutDownBaby,
PutDownToddler,
Lounging,
Picnicing,
Swinging,
PostureSocializing,
PostureInRabbitHole,
SwimmingInPool,
SittingInCar,
CarryingObject,
TendingTable,
Riding = 69400590,
BeingRidden = 69326238,
InHotTub = 83276248,
TendingBar = 68107574,
InActorTrailerPosture = 70721891,
InTreehouse = 68107575,
InFairyHouse = 81167054,
InRockingChair = 75521576,
Seesaw = 81334649,
HoldingCane = 82908540,
CarryingPet,
TiedToPost,
SittingOnGround,
InBoxStall,
Pounce,
AtBoxStallGate,
PetBedPosture,
CatCondoLevel2Posture,
CatCondoLevel3Posture,
CatCondoLevel4Posture,
LeadingHorse,
HorseBeingLed,
PetHousePosture,
PetSurfaceSitting,
PetSurfaceLieDown,
CatInBag,
PetBedPostureLinked,
AttendingKissingBooth = 82908559,
Skating,
HoldingUmbrella,
HoldingBackpack,
ScubaDiving = 82908672,
SittingInBoat,
AttendingServiceObject,
ManningHelm,
BeachTowelPosture,
PoolBarPosture,
HoldingJetpack = 82908563,
CarryingHoloPet = 82908688,
NextToTarget = 84884788,
IsTarget,
FacingTarget,
TargetFacing,
MutualFacing,
InFrontOfSurfaceForTarget,
ChairNotScootedIntoSurface,
ChairScootedIntoSurface,
MayCarryChild,
ToddlerCanExitPosture,
TargetInInventory,
ContainerParentedToTarget,
PreferIfCurrentPosture,
IsSim,
ContainerParentedToExtendedTarget,
IsTargetGroup,
CanGroupChat,
IsTargetGroupAndHasTwoSeats,
ScoredByTargetInteraction,
ChairIsNotBarstool,
NextToSim,
RelieveNausea = 51330368,
Last

If you want to get an idea of how the various commodity kinds are used, look through the GameplayData.package with S3PE. I recommend downloading Notepad++, which is a free text editor with some extra useful features for modders. It’s a very small program, and lightweight, so you don’t have to worry about it clogging up your system. Additionally, if you export all the resources in s3pe to a folder (Ctrl+A, wait a few moments, right click ang to Export to File), you can search that whole folder at once with Notepadd++. This will make it easy for you to find whatever you need.

Advertisements

April 25, 2012 - Posted by | Tutorial | , , , , , , , , , , , , , ,

17 Comments »

  1. I read your post, and I noticed you use S3PE…. Now I have to ask you, when you use it, does it take a lot of GB? sorry if it’s off topic but when I used it to compress my .package files my GB number went from 40.9 free to 3.02 free. Does that happen to you? If not could you maybe help me? I’m new to the system and don’t know much about it, and again sorry if I’m off topic. Thanks 🙂

    Comment by Zoromasey | May 8, 2012 | Reply

    • Hey Nona, I found your blog from your custom food script on MTS (love it, BTW!). To Zoromasey, I think I might know why S3PE took up so much hard drive space (or solid state drive space) for you. If you used the import as dbc function, S3PE by default autosaves the merged package after each package is imported to a temp folder.

      To save this space on your HDD/SSD when merging, check (in S3PE) Settings > Prompt for dbc autosaving. This option will prompt you to autosave before merging; click “no” when the prompt comes up. Only do this if you are merging small packages or if you have a decent (≥8 GB) amount of RAM.

      The other option is to clean out your temp folder periodically after merging files (probably a good idea anyway). You can do this manually (C: > Users > Your Username > AppData > Local > Temp) or you can use a third-party program like CCleaner or BleachBit to do it for you.

      Personally, I never autosave when merging using the “as dbc” function since I don’t have to do it often. I usually just use the Import > From package option to add new files to my already merged packages, since it’s pretty much the same thing (you can also do this to delete individual packages from merged ones).

      Comment by Iggysaurus | May 13, 2012 | Reply

  2. Hi, Thanks for leaving a comment 🙂

    Hmm, that does sound strange. However, you may want to use s3rc from MATY to compress your merge packages after you merge them in s3pe. You can get s3rc here: http://www.moreawesomethanyou.com/smf/index.php/topic,15129.0.html

    Put the package file in the same directory as s3rc.exe and then drag it over s3rc. If the file is really large, it will take a while for the program to work, but it will close when it’s done and your package will be smaller.

    Comment by Nona | May 8, 2012 | Reply

  3. Hi Nona,

    I was going to post my questions about ITUN modding at ModTheSims when I came upon your page. As it’s the closest thing I have found to a tuning tutorial that addresses ITUNs (and not XMLs), I figured maybe you would know.

    I would like to know more specifically about how the “locked”, “updateType” and “timeDependsOn” arguments are used.

    I noticed timeDependsOn seems to be invariably set to “False”, but I’m unsure what this does. Most of the time, we have “updateType=ContinuousFlow”, but I saw some instances where it was set as “updateType=ImmediateDelta”. My guess is that with ContinuousFlow the value in “actual=…” is applied gradually over a period of time while with ImmediateDelta it is applies instantly (correct me if I’m wrong). My question is, in the case of ContinuousFlow, over how long a period is the value applied? a sim-hour?

    So in the case of the examples below, that would mean the sim temperature would drop/rise by 50 if the sim eats ice cream (or snow cone) or drink a hot beverage for 1 hour. Since these interaction last way less that 1hr, the actual temperature drop/rise in much less.

    As for the “locked=False/True” argument, I also fail to see what it does. I do not really see a clearly consistent pattern with the kind of commodities advertised. Motives such as hunger, fun, or temperature tend to be set to false, but then again they are sometimes set to true (see examples below).

    From: EatIceCreamMorsel_IceCreamItem:

    From: DrinkHotBeverage_Cup:

    Okay, I’m going to stop here this already long post! I’m hoping you (or anyone else) can help me… thank you!

    Comment by Datch | December 12, 2012 | Reply

    • Hmm… the actual code bits in the examples didn’t show up and I can’t seem to be able to edit my previous post. Maybe the comment box thinks my examples are like html formatting or something… let’s try it without the brackets. I hope I won’t have to try that 5 times… would be pretty embarrassing 😉

      From: EatIceCreamMorsel_IceCreamItem:

      Change type=”Temperature” advertised=”0″ locked=”False” actual=”-15″ updateType=”ContinuousFlow” timeDependsOn=”False” updateEvenOnFailure=”False” updateAboveAndBelowZero=”Either” /

      From: DrinkHotBeverage_Cup:

      Change type=”Temperature” advertised=”20″ locked=”True” actual=”20″ updateType=”ContinuousFlow” timeDependsOn=”False” updateEvenOnFailure=”False” updateAboveAndBelowZero=”Either” /

      Comment by Datch | December 12, 2012 | Reply

      • The general understanding in the modding community for “locked” is that it means that the advertised change is the same as the actual change.

        You are corrected about UpdateType. ContinuousFlow means the change will happen slowly but continuously and ImmediateDelta means the change will happen immediately. It is generally understood that timeDependsOn means whether how long they are doing the interaction will affect the change.

        Now:
        “My question is, in the case of ContinuousFlow, over how long a period is the value applied? a sim-hour?”

        This depends entirely on the interaction. Generally speaking, it is part of the script. Sometimes there is a tuning value for how the interaction should take in a separate XML. Take for example the Water Trough. It has a tunable called kDrinkTime (in the WaterTrough+DrinkWater_0x1cc7a50554d0bd7c XML) which sets how long the horse will use the Drink interaction on the Water Trough. Then look at the DrinkWater_WaterTrough ITUN. It has:

        Change type=”HorseThirst” advertised=”250″ locked=”True” actual=”250″ updateType=”ContinuousFlow” timeDependsOn=”False” updateEvenOnFailure=”False” updateAboveAndBelowZero=”Either”

        The horse will gain 250 thirst over 30 mins.

        Comment by Nona | December 12, 2012 | Reply

  4. Thanks for your answer, things are much more clear now! When you say “Generally speaking, it is part of the script”, you mean the period over which the value is applied is not tunable (or discoverable) via the Gameplaydata package?

    I am trying to tune the different ways to cool off or warm up in Seasons as the effects those have on my game are abysmally small or inexistent (I thought swimming in pool or ocean should cool sims off, but nothing happens at all). Or maybe the fact that the cooling off/warming up is so slow is linked to me using Relativity… I tuned the sprinkler ITUN as well as the concession stand XML, but then instead of cooling down to 0, my sims got all the way to being frostbitten (in a heat wave, LOL), I guess I overdid it! My logic would tell me to change updateAboveAndBelowZero to Above, but I have serious doubts about this since I have never seen this argument being anything else than Either…

    So I guess I’m going to go back to poking around in my packages and do more trial (and hopefully less error!). Thanks a lot for your help, Nona.

    Comment by Datch | December 12, 2012 | Reply

    • There is usually a tunable for how long an interaction should take in the GameplayData. It’s just in an XML and not in the ITUN. I have found that my sim’s temperature does go up and down while doing certain interactions. Are you using my “What’s my temperature” mod to check?

      Yeah don’t change updateAboveAndBelowZero to Above, that won’t work. You want it to be Either. Anyhow, I was looking into this (temperature stuff) but I got sidetracked by other problems, so I hope you can sort it out. Feel free to stop by simlogical chat if you want chat about it. I’m in Germany so time zones may be off.

      Comment by Nona | December 13, 2012 | Reply

      • Thanks for the tip, I got sidetracked too trying to make the Wood Fire Oven from Monte Vista work first getting interactions on it, and now getting the accessories to show up…. and I promised myself that for once I’ll actually play sims during my time off instead of spending days modding/fixing it… it doesn’t start well ahah!

        Yes I do use your mod to monitor the sims temperature… which is impossible to quantify otherwise (thanks for this mod btw!)

        Yes, I verified that updateAboveAndBelowZero does nothing 😉 I did manage to make a working mod for the ice cream/snow cone, sprinkler, slippy slide, and cold/hot drink interactions. What I would like to do now is add a cap when the temperature reaches zero so that sims don’t freeze to death by 35C from too much sprinkler or don’t burst in flames from 3 coffees in a row 🙂 I’m not sure that can be done via ITUN or XML tuning though and that’s what I’m limited to in terms of skills, unfortunately. Also what annoys me to no end is that sims temperature keeps going up while they are swimming while it should cool them off. I think it’s a bug with my own game, rather than a feature. I’ve found quite a few ITUNs and XMLs related to swimming (both in pool and ocean), some of them even have a temperature output but none of them seems to relate to the swimming activity. I think I may have to modify a file related to the swimming posture, but I haven’t found it in GameplayData. Well, I’m off for another dive into GameplayData to see if I can find anything useful. It’s probably too late for Simlogical chat in Germany now 🙂

        Do you think I should make a post on Simlogical with my questions/issues? It seems to be quite over-simplistic modding compared to the other posts in the forum there…

        Comment by Datch | December 14, 2012 | Reply

    • I’ve been meaning to make this post on simlogical because it would be great there. So, thanks to you finally prompting me (I’ve also ahd PMs aboutt hese topics) to take action, I’ve made the thread: ITUN modding discussion http://www.den.simlogical.com/denforum/index.php?topic=1588.0

      Commodity kinds list: http://www.den.simlogical.com/denforum/index.php?topic=1587.0

      I didn’t realize it before, but what you want might work with: updateAboveAndBelowZero=”DontDecreaseBelowZero” and updateAboveAndBelowZero=”DontIncreaseAboveZero”

      There’s more information on the ITUN modding discussion thread 🙂 feel free to post there 🙂 It’s a lot easier for these types of discussion to happen on forums than on blogs.

      Comment by Nona | December 14, 2012 | Reply

      • I can anticipate that the ITUN discussion thread is going to be very useful to many! I’ll try these new arguments for updateAboveAndBelowZero, and will post further questions/comments on Simlogical! Thank you for your help 🙂

        Comment by Datch | December 14, 2012 | Reply

  5. Hello Nona,

    thank you for this nice Tutorial.
    I also try to make an Itun-mod but have some problems to make this.
    Its a changed mod for “Take unpaid Time off”.
    We’ve also known that’s only possible for adult sims to stay home
    or take some free days via phone.I did miss a those interaction for children or teens.
    Thats why i want to change.

    I changed the age class and name,but after i take the resource into
    my mods folder and i start the game,i didn’t find the interaction for child
    or teen.What make i wrong?

    If you want i can send you the package via email.

    It would be nice if someone here,can help me.

    Thanks for reading.

    Luise

    Comment by luise | July 22, 2014 | Reply

    • Hi Luise,

      Such a mod will probably require a script mod because children and teens do not have an occupation. The interaction is hard coded so that it is only available to sims with an occupation.

      Comment by Nona | July 23, 2014 | Reply

      • Dear Nona,
        Thank you so much for your quick answer.:-)
        Wich Program could show a hard coded interaction,like this?
        And second answer is: would you make a script modding tutorial or adivse a tutorial?
        Im quite interesting about your side.
        For sure if you have time.
        I have understanding if not.

        Luise

        Comment by luise | July 23, 2014 | Reply

        • Hi Luise, to look at the coding for the game you need to extract the core dlls. Use the “Getting Started” section of the following tutorial: Tutorial: Sims 3 Pure Scripting Modding. Once you’ve extracted the dlls, you can open them in ILSpy or Reflector (or some other decompiler).

          Comment by Nona | July 27, 2014 | Reply

  6. Hey Nona – Thank you for this post!

    I’m belatedly new to modding while familiar with C .NET (though incredibly rusty). Not getting Sims 4 and decided I should learn some modding to make the game more enjoyable. I’m used to having API libraries available to look up value choices and stuff. You providing this is AMAZING and I can’t believe you are the only place where it can be found.

    I was wondering how you got all this information? I found Skills and Traits being delineated in their own xml enum file, but xml commodities like “Hunger” or “BeInBar” I can’t find anywhere.

    I really want to TRY and figure out how to do a “InGroup” commodity, but not knowing where to start looking makes it like searching for a needle in a hay stack.

    Comment by Christina | July 26, 2014 | Reply

    • Hi Christina,

      The commodity kinds are found in the core dlls of the game. To extract the core dlls, use the “Getting Started” section of the following tutorial: Tutorial: Sims 3 Pure Scripting Modding. After you’re done extracting the dlls, use Reflector or ILSpy (or some other decompiler) to decompile and view the code. I use ILSpy because it’s free and it does what I need.

      You will find the commodity kinds in the Sims3GameplaySystems dll.

      Comment by Nona | July 27, 2014 | Reply


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: