Toys&Love - Mod Author's Documentation (2024)

Table of Contents

  1. Other Resources

  2. Compile Requirements

  3. API - Toy Handling

  4. API - Love Scenes

  5. API - Visual/Sound Effects Functions

  6. API - Utility

  7. Mod Events

  8. Keywords - Buffs

  9. Keywords - Effects

  10. Keywords - Escape Methods

  11. Keywords - Transform Effect

  12. Levelled Item Lists / Merchant

Other Resources

  1. Toys Features

  2. <-- methods of using Toys&Love

  3. API functions & more, verbosely documented in ToysFramework.psc

  4. Making a Toy Box - Guide To Making a Toy Box

    1. Toy Box Template (plugin) - download from Toys Framework page

  5. Toy Story Mod - as a demo. It has MCM Test and documentation in code

  6. Devious Toys Generator - download

Compile Requirements (also to access properties in the CK)

Notes:

Most requirements below are also needed to open Script Properties in the Creation Kit (CK). Missing these requirements will result in the CK error "Errors encountered while attempting to reload the script"

  • You need source (psc) for the compiler. You need compiled pex for the CK

  • For SE... You also need to be aware of which source file folder is pointed to by your Creation Kit .ini settings. The default is not the same as LE, and this is often a source of confusion. Toys&Love SE distributes its source in the default location, but some mods distruute in the old LE location, in which case you must move the source

  1. SkyUI_5.1_SDK

    1. in addition to the SDK, you need SKI_ConfigManager.psc, SKI_WidgetBase, SKI_WidgetManager from Github (schlangster/skyui). You will need to compile these to supply pex files for the CK (see notes above)

      1. If you want to skip Github or not setup for compiling, download the package... SkyUI Widget Source (for mod Authors), from the Toys&Love download page. You need to extract into the correct 2 folders manually... location varies thus don't install with a mod manager. For SE, the default is Data\Scripts for the .pex and Data\Source\Scripts for the .psc

      2. Yes the SDK is very old, and that's correct. Only the DLL changed in recent years

  2. JContainers - source comes with user release but does not install into the default location (see notes above)

  3. NiOverride - source does not come with Racemenu it's a separate download

  4. FNIS, including FNIS Creature Pack

  5. Soft Dependencies (a Soft Dep is a mod optional to the user, but still a hard requirement to compile):

    1. Sexlab source

    2. Sexlab Arousal source (most any variant)

    3. WildLife source

    4. Creature Framework source

Toy Setup & Properties

For those accustomed to DD, take note... this is very different... A Toys toy uses a single "Armor item" in CK. There is no chance of toy "breakage" (no hidden/broken Toy syndrome) due to this. Mod authors can make custom Toys with minimal effort. The steps follow.

Cloning or Creating a new Toy:

Toys&Love - Mod Author's Documentation (1)
  • Make a copy of an existing similar toy from Toys (the Armor and Armor Addon items in CK)

  • Update the properties on the ToysProperties script, within the armor item (there are only 9 properties)

    • It's easier to start with a clone, but If creating from scratch, you will need to add the ToysProperties script to the toy. Never modify the ToysProperties script, only fill/change the properties. You can add your own separate scripts if needed

    • Mandatory Properties:

      • Lib... Always ToysFramework

Toys&Love - Mod Author's Documentation (2)
  • ModelForToy... your toy's Armor item

  • ToyBox... shortname for your Toy Box, for example "Classic"

  • Optional Properties

    • ArousalStrength... A value, normally between 1 and 5. This is only used if you've included the ToysEffect_Rousing keyword. 1 for minor rousing, 5 for something like a very nasty plug

    • KeyConsumed... Set true if you want the specified key to be consumed on use

    • KeyForToy... The specified key. Leave empty if the toy is not to be removed using a key. You can use one of the 4 Toys keys, or your mod's own custom key

    • ModelTransformed... must be filled if you have included one of the Transformation Effect keywords. This is the toy that a transformation will swap to. See more re. Transformation section below

    • Timer... must be filled if you have included the Timed Transform Effect

    • 4 Properties for Buffs... Includes flat, max, and scaling to Rousing and/or XP. see ToysHandler.psc for details

  • Add Mandatory Keywords

    • ToysToy... this tells Toys that your toy is a Toys toy. This keyword must be present

    • ToysType_<bodypart>... One of the Toys Types must be included. There can be more than one. (example: a Toy that serves as both a blindfold and a gag, would occupy both Mouth and Eyes. This determines the slot. The same slot must be used by your Armor Item and Armor Addon. Toys Types are in the table (see pic)

Toys&Love - Mod Author's Documentation (3)
  • Non-Toys Keywords. Normally you will want to include VendorNoSale, and MagicDisallowEnchanting. These keywords are not part of Toys but make sense to use

  • Add a Restrictive Keyword if necessary

    • ToysNoRemoval... toy cannot be unequipped, hidden, or stored by another mod

    • ToysPermitStore... toy can only be hidden or moved temporarily into storage by another mod

  • Add a Gender Compatibility Keyword if necessary

    • no keyword... Female Only (default). Males won't be able to equip

    • ToysGender_MaleFemale... toy can be equipped by either male or female

    • ToysGender_MaleOnly... toy can be equipped only by male

  • Optional Keywords (effects etc.) - All other keywords are optional and are detailed in the sections that follow

API - Toy Handling

Toy Handling Functions are listed here.

Full details can be seen in the verbosely documented ToysFramework.psc

  1. GetToy() - Selects a toy from available Toy Boxes, specifically, or randomly, considering available slots, preference, and gender compatibility

  2. HandleToy() - Equips, swaps, unequips, and stores a toy, playing nice with other mods (includes being "DD aware") and considering gender compatibility

  3. ReserveSlots() - Temporarily reserves open toy slots for use by only your mod

  4. IsSlotsReserved() - Check to see if slots are already reserved by another mod

  5. UnequipToys() - Unequips toys using keywords

  6. HideToys() - Temporarily hide toys for a short scene

  7. UnHideToys() - Unhide any hidden toys

  8. UnStoreToys() - Re-equip all toys the mod stored

  9. IsSlotAvailable() - Checks a slot to see if can be used. This is "DD aware"

  10. IsToyCompatible() - Checks Toy for compatibility with player/NPC gender

Use Toy Story for the following:

  • Example calls made to the API in Toy Story's TStoryMain.psc

  • Each API has a test that can be triggered by Toy Story's MCM

  • Mod Event Notifications can be turned on to see Mod Events firing

API - Love Scenes

Toy Handling Functions are listed here.

Full details can be seen in the verbosely documented ToysFramework.psc

Just want to play a Love Scene? All you need is Loving().

  1. Loving() - Start a Love Scene. By default matchmaking using close actors is automatic, or supply actors, # actors, tags, and more

  2. EndLove() - End scene early. You supply the descriptive "LoveName"

  3. SquirtingEffect() - does 5 things... Rousing decrease, Squirt visual, Squirt sound, Denial, and Random Facial Expressions. Useful if making a custom scene. Not required if using Loving() as the squirting is built-in

  4. SpontaneousO() - Trigger the same Spon O scene that Toys&Love does

  5. FondleThySelf() - Trigger the same Fondle that Toys&Love Fondle hotkey does

  6. GetRousing() - Returns the Rousing Level

  7. ArousalIncrease() - Use to cause extra Rousing appropriate for the toys worn

  8. ArousalAdjust() - Rousing is changed by a fixed amount

  9. GetArousalStr() - returns the current sum of Rousing Strength for arousing toys worn

  10. GetThermalStr() - returns the current sum of Thermal Strength for thermal toys worn

  11. GetOversexedVal() - returns the current oversexed value. When fully decayed it's 0

  12. GetOversexedMax() - returns the current oversexed max (the user can change this in MCM)

  13. CureOversexed() - sets Oversexed to 0. Useful for a mod to provide a cure. This is what the Oversexed Cure Potion does which can be used by mods

  14. Cumming() - Apply cum to specified body area(s)

  15. GetCumTimeRemain() - The time remaingnig on cum. 0 tells you there's none

  16. SceneIsActive() - true if the specified Scene is active

  17. SceneIsQueued() - true if Scene is queued

  18. SceneHasTag() - true if Scene has the tag

  19. LoveEffectsEnable() - Love Effects on/off

Furniture Love

  1. Furniture Love Objects - Custom locations can use vanilla game items (65 Base Types), including vanilla invisible markers (chair, table, or wall)

    1. Valid Base Types are documented within the ToysStoreFurn() function in ToysLoveLib.psc, and are also in ToysFurnList FormList

  2. Loving() parameter LoveSpot - If it's a valid ObjectRef for Furniture Love, will use it. If none, Loving() will auto-detect based on the MCM chance setting

  3. CloseMarkers() finds valid furniture for Furniture Love

API - Visual/Sound Effects Functions

See within ToysFramework.psc for more detail

  • Facial Expressions

  • Spontaneous org*sm

  • Rousing Increase

  • Rousing Adjust

  • Squirt Visual & Sound

  • org*sm Sound

  • Moan Sound

  • Scream Sound

  • Pant Sound

  • Wuusssh Effect (sound & physics)

  • Pulsate

API - Utility

See within ToysFramework.psc for more detail

  • Toys Version

  • VIMH aka. Voice in My head

  • Initialize Player for a Scene / un-Initialize Player After a Scene

  • Busy Check

  • Set Busy

  • Wait for Toy Boxes to Load / Check if Loaded

  • Get XP

  • Actor Scale Normalize

Mod Events

There are 40ish Mod Events. They are listed with details under the heading "Mod Events" in ToysFramework.psc. Here are a few examples...

  • Love Scene modEvents - ToysLoveSceneInfo ToysLoveStageEnd Toysvagin*lPenetration ToysClimax ToysClimaxNPC ToysLoveSceneEnd - each return the "LoveName" you passed

  • Generic Scene modEvents - start/end, org*sm, stumble and fall. Scene start includes the scene name, which can be provided from the content mod calling the scene

  • Toys Effects modEvents - most effects

  • Misc modEvents - squirting, key drop, signing, fondle, toys worn change

Keywords - Buffs

  • Each Buff has self-explanatory ToysBuff_ keywords

  • Properties are used to set up the amount. The amount can be scaled to Rousing

For additional detail see ToysFramework.psc

Keywords - Effects

  • Love Effects - ToysEfffect_Proposition, ToysEfffect_Uncontrolled, and ToysEfffect_UnctonrolledOrgy - these make the toy trigger the love scenes

  • Denial - toy denies climax

  • Blind - use keyword ToysEfffect_Blind

    • Add this effect to any toy. Normally a blindfold

    • Chance that you idle/walk/run/sprint with animations that simulate blindness. MCM has chance slider

    • stumble/fall animations, which are more frequent if you "try" to sprint

  • Mouth Wide Open - use keyword ToysEfffect_MouthOpen

  • Magical Wrist Binding - use keyword ToysEfffect_MagicBind

    • Add this effect to any toy. Normally wrist cuffs, but could be anything, it's magic!

    • Chance (in MCM) that your arms/wrists are restrained, but not sufficient enough to disallow regular combat and any other activity. The magic allows you to "break out" of the pose

    • Chance (in MCM) that your arms/wrists are restrained in Hard Core mode. Hardcore mode is essentially the Arm Binding effect explained below

    • Uses 8 different styles of animations

    • Sliders in MCM allow you to adjust chance for normal mode, and Hard Core mode. If Hard Core is set to 100, you've essentially converted the toy to be the same as one using the Arm Binding effect. If set to 0 you've turned it off

  • Hard Core Magical Wrist Restraints - is part of Magical Wrist Binding, see above

  • Arms Binding - use keyword ToysEfffect_ArmBind

    • Add this effect to any toy. Normally toys such as Armbinder or wrist cuffs

    • Forces bound arms/wrists position animations

    • In combat, you can kick

    • Effect can only be stopped by removing or transforming the toy

  • Yoke Binding - use keyword ToysEfffect_YokeBind

    • Add this effect to any yoke toy

    • Forces bound arms/wrists animations positioned for a yoke

    • In combat, you can kick

    • Effect can only be stopped by removing or transforming the toy

  • Sounds for chains and bells are added to toys using an Enchantment effect, see examples on toys such as Wrist Cuffs (this is the only effect using an Enchantment instead of keyword)

Keywords - Escape Methods

  • Keyless: add the ToysKeylessRemoval keyword

  • Keys: fill the property KeyForToy

  • Custom Key: fill the property KeyForToy with your own key

  • org*sm Fall Off Effect: add the ToysEffect_org*smFallOff keyword

  • Hit Fall Off Effect: add the ToysEffect_HitFallOff keyword

Keywords - Transform Effect

  • RousingTransfom - swap toy when rousing exceeds the trigger point. User can change in MCM, by Group

  • RousingUnTransform - swap the toy when the rousing goes back below that trigger point. Normally you'd swap it back to the original, but it can be to any model

  • HitTransform - swap the toy after X hits. User can change in MCM. This is global for all toys using this effect

  • LockJamTransform - swap the toy when a failed attempt to unlock occurs

  • TimedTransform - swap to the toy when the timer you've set expires

You can use these 5 transform methods in any combo. A toy could start as one that melts from rousing. Stage 2, the melted, could then transform upon X hits to stage 3. Stage 3 could then use one of the escape methods below to remove.

ModelTransformed... (property on the toy) is the toy that a transformation will swap to

Timer... (property on the toy) is game hours for the timer used for TimedTransform

Beyond a toy armor item to swap to, these are all you need. One of the keywords, and fill the property.

Think of the swapped or transformed toy as a new stage. It would be a toy that looks similar but is modified in some way (sometimes does not need to look different at all) to look melted from rousing, broken, etc. Each stage can have its own different set of keywords for effects, and other settings. So in addition to looking different, it could, for example, cause armor to strip (Strip Effect), make you crawl (Crawl Effect), have higher or lower rousing strength, anything you can define for a toy. This includes the following Escape Methods (next section).

Levelled Item Lists / Merchant

Toy boxes are loaded into several Levelled Item Lists at run time, for the purpose of setting up vendors/merchants. This includes a master list, giving you all toys from all toy boxes installed, and another master which lets you get toys randomly from all toy boxes. For more check the following containers, to see how they are setup

  • ToysMastALLContainer - all toys from all boxes

  • ToysMastRandomContainer - this sample is selecting 15 random, from all toy boxes

Toys&Love - Mod Author's Documentation (2024)
Top Articles
Yasmin Levy - Profile
Die sephardische Sängerin Yasmin Levy: "In meinen Liedern gibt es keinen Kampf" | Qantara.de
Bild Poster Ikea
Pet For Sale Craigslist
7 Verification of Employment Letter Templates - HR University
Faridpur Govt. Girls' High School, Faridpur Test Examination—2023; English : Paper II
Jazmen Jafar Linkedin
Chambersburg star athlete JJ Kelly makes his college decision, and he’s going DI
Team 1 Elite Club Invite
DEA closing 2 offices in China even as the agency struggles to stem flow of fentanyl chemicals
Air Canada bullish about its prospects as recovery gains steam
Chalupp's Pizza Taos Menu
Best Theia Builds (Talent | Skill Order | Pairing + Pets) In Call of Dragons - AllClash
Rochester Ny Missed Connections
When Is the Best Time To Buy an RV?
What to do if your rotary tiller won't start – Oleomac
Mlb Ballpark Pal
Cooktopcove Com
Summer Rae Boyfriend Love Island – Just Speak News
Dit is hoe de 130 nieuwe dubbele -deckers -treinen voor het land eruit zien
The Superhuman Guide to Twitter Advanced Search: 23 Hidden Ways to Use Advanced Search for Marketing and Sales
Mani Pedi Walk Ins Near Me
Locate At&T Store Near Me
Directions To Advance Auto
R Personalfinance
My Homework Lesson 11 Volume Of Composite Figures Answer Key
How to Watch the Fifty Shades Trilogy and Rom-Coms
Riherds Ky Scoreboard
2013 Ford Fusion Serpentine Belt Diagram
Mj Nails Derby Ct
Hampton University Ministers Conference Registration
Kingdom Tattoo Ithaca Mi
Prey For The Devil Showtimes Near Ontario Luxe Reel Theatre
Amelia Chase Bank Murder
Jesus Revolution Showtimes Near Regal Stonecrest
Cal State Fullerton Titan Online
Best Town Hall 11
Riverstock Apartments Photos
Rainfall Map Oklahoma
Beaver Saddle Ark
The Legacy 3: The Tree of Might – Walkthrough
Santa Cruz California Craigslist
Zasilacz Dell G3 15 3579
Red Dead Redemption 2 Legendary Fish Locations Guide (“A Fisher of Fish”)
Sams Gas Price Sanford Fl
Pekin Soccer Tournament
Academic Calendar / Academics / Home
Petra Gorski Obituary (2024)
Best Haircut Shop Near Me
Skyward Cahokia
La Qua Brothers Funeral Home
Latest Posts
Article information

Author: Dan Stracke

Last Updated:

Views: 6045

Rating: 4.2 / 5 (43 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Dan Stracke

Birthday: 1992-08-25

Address: 2253 Brown Springs, East Alla, OH 38634-0309

Phone: +398735162064

Job: Investor Government Associate

Hobby: Shopping, LARPing, Scrapbooking, Surfing, Slacklining, Dance, Glassblowing

Introduction: My name is Dan Stracke, I am a homely, gleaming, glamorous, inquisitive, homely, gorgeous, light person who loves writing and wants to share my knowledge and understanding with you.