Tease AI Scripting Overview Part 6: Modules and Misc

Webteases are great, but what if you're in the mood for a slightly more immersive experience? Chat about Tease AI and other offline tease software.

Moderator: 1885

Post Reply
User avatar
1885
Explorer At Heart
Explorer At Heart
Posts: 648
Joined: Fri Jul 08, 2011 4:27 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Tease AI Scripting Overview Part 6: Modules and Misc

Post by 1885 »

Welcome to Part 6 of the Tease scripting overview. Today we'll be taking a closer look at the remaining Linear-type scripts for this program - Module, Link and End. First, let's take another quick look at what they are and what they require:

Modules: Once the domme decides she's taunted the user enough as he strokes, the program seamlessly switches to a randomly selected Module. A module can be as simple as telling the sub to stop stroking/get to the edge, or it can be much more complicated by creating multiple paths, using media in different ways, playing games, nearly anything you can think of. The user will be stroking at the start of every Module, and must not be stroking when the Module ends. Therefore, each Module requires either @StopStroking or an @Edge Command for each possible path.

Links: When a Module ends, it moves directly into a Link script. Link scripts are buffers that give the domme a chance to wind the user down from the last Module, or build him up for the next round of Taunts. While I mainly use these for taunts that take up too many lines to make good Stroke Taunts, you can use the same Commands available to all Linear scripts to make anything you want. Link scripts always lead to the next round of Stroke Taunts, so each Link requires @StartStroking on the line before each @End it may contain.

End: Once the domme has decided she's toyed with the user enough, she will load up a random End script at the end of a Module rather than moving to a Link script. End scripts have a few unique commands, most notably @DecideOrgasm, which lets the program reach different conclusions over multiple playthroughs based on the domme's settings. More on this below.

So now that we're familiar with the different kinds of Linear scripts, let's take a closer look at Modules and what kind of possibilities they represent. I did mention that Modules can be as simple as the domme telling the user to stop stroking or edge, so let's see how that looks:

Image

This simple 3-line script is a complete and functional Module as it meets all the requirements - @StopStroking or @Edge command, and all paths end with an @End Command. It's not the most interesting thing in the world, but not all Modules have to be. In fact, this is a pretty good Module to have, because it will progress the tease without ever seeming repetitive. That being said, I think we can improve it a little with use of the @Chance() Command. @Chance() is very similar to @Goto(), but instead of automatically going to the specified line, it has a specified chance of either going to the specified line, or the next line in the script as usual. Let's demonstrate by putting it into practice:

Image

So as you can see in this example, after the domme says the user's name in the first line of the script, there is a 50% chance she'll keep going and tell him to edge. If the program lands on the other 50%, she'll jump to the specified line and make him stop. Whatever number you enter after @Chance is what percentage chance the domme will jump to that line. So @Chance90(This Line Here) is very likely to jump to (This Line Here), while @Chance05(This Line Here) is very unlikely to jump there. (The number after @Chance must be a two-digit number 01-99)

If this was the only Module we had, we would know the domme was either going to make us edge or stop stroking after each Taunt cycle, but we'd never know which one in advance. So the @Chance() Command is a very easy way to mix up even the simplest of scripts.

Now some of you may be wondering - What happens if the user gets close to the edge during the Stroke Taunt cycle? There's two kinds of Modules in the Module folder. Normal Modules that begin when the Stroke Taunt cycle ends, and Modules that have names that end in "_EDGING.txt" that are selected when the user says he's on the edge during the Stroke Taunt cycle. I prefer to make a copy of every Module I write, and make a small edit to beginning before saving it to "ModuleName_EDGING.txt". The reason for doing this is that it doesn't make sense for the domme to tell the sub to get close (as certain Modules will do) when he's already said he was, and scripters may want to create Modules concerning the user's lack of stamina, etc.

The only difference between regular Modules and _EDGING Modules is that while regular Modules must contain @StopStroking or an @Edge Command, _EDGING Modules must contain @StopStroking or the _EDGING Module-specific Command @EdgeDecide. (@EdgeDecide simply lets the domme decide to tell the sub to stop stroking, or tell him to hold it)

So now you know a little more about Modules, but what can they REALLY do? How do you really bring out the power of the software? The biggest thing I've tried to do is simply let each scripter use their imagination, and then give them the tools to have that imagination realized. I think the creative process often begins with the question of "Can I do this?", so instead of dry explanations of Commands and what they do, let's just ask some questions and see what the answer is:

Can I create, show, change, compare and store variables?

Image

Yes you can! (Also note the Command @NullResponse which lets you run Commands without the domme outputting anything to the screen)

Can I save my place in a Module and return back to it after some more Stroking?

Image

Absolutely!

Can I play videos during Modules? Can I specify what kind?

Image

Why not! While we're on the subject of Video, let's take a quick look at the Video Settings tab:

Image

Tease AI lets you set different Video paths for different genres. This allows the program to be specific about its Taunts at appropriate times, but we'll get more into that in a moment.

For the time being, let's get back to our Linear scripts. I can sit here and post examples of different Commands in action, but that's not really all that useful. I will be working on a list of all Commands and Command Filters. That way scripters can have a handy reference to see everything that's possible, and I will also do what I can to incorporate that guide in to Tease AI itself.

So let's take a quick look at End scripts, and more importantly how its @DecideOrgasm Command works. Here's one of my current End scripts:

Image

The @DecideOrgasm Command works similar to a @Goto() Command in some respects. When @DecideOrgasm is called, the domme will decide to Allow, Ruin or Deny the sub's orgasm based on her various settings and random chance. Once she has her mind set up, a state is set in the program, and the program goes to the line that represents that state (Orgasm Allow), (Orgasm Deny), (Orgasm Ruin). After jumping to the appropriate line, the program will resolve the state on the next @Edge Command. @Edge, @EdgeNoHold, and @EdgeHold are all viable here, but @EdgeToRuin is not necessary on the (Orgasm Ruin) branch, because the program is resolving the state. (You may use @EdgeToRuinSecret options if you don't want the domme spilling the beans in advance) The domme uses Keywords automatically once you get close, and these Keyowrds are appropriately chosen for the orgasm state. This way you can have her say "cum for me" or "ruin your orgasm" in many different ways.

You'll probably notice a couple of other commands, one of which is @EndTease. This is used as the second to last line in every End script, and let's the program know the tease is over.

The second Command is @SendDailyTasks. This Command can only be used during End scripts. (The user can also request Daily Tasks instead of greeting the domme and beginning the tease, but that is handed internally by the program) When used, the domme will "send" the user a custom list of tasks she would like his to do for the day. This letter is created by combining a series of List-type scripts located in the domme's Tasks folder. These lists can be filtered by the orgasm state, and any usual Command Filter. Here's a look a one of the Task notes I received after being allowed to cum by the domme:

Image

I personally think this is a pretty awesome feature of the program. I know there's nothing quite like opening up tasks for the day, wondering how challenging they'll be, what little touches the domme will leave behind in the note, and the ache of anticipation as I start reading. Tease AI generates these Tasks from 9 different lists, each representing a different body of the letter. With Command Filters and Keywords in play, all notes will be random, but feel tailor-made. The more contributions the community makes to these Tasks, the more varied and amazing they'll become.

As I mentioned, you also don't need to wait to complete a tease to get these lists. If you would just like to hop on to Tease AI and request a list of tasks for the day from your domme, she'll be more than happy to provide you with one.

While we're on the subject of awesome features, let's talk about how Tease AI can generate teases from any Video in your collection: As you noticed in the Video Settings panel, you can set paths for different genres for videos. This has a few uses. First and most simply I'm going to have an App that let's you play and generate random things. Say you want to play a JOI video, but you want it to be a surprise. Just load up Tease AI, open the Randomize App and click Random JOI. Boom, random JOI video from your collection and you can just stroke for it without having to engage the domme.

But what else this allows us to do is create Command Filters for some Video Teases. Tease AI currently has the following three Video Teases:

Avoid the Edge: The domme will randomly choose a Video from the paths you have set up and selected. You will then be tasked to stroke. If you tell her you're close, the domme will pause the video automatically and run through a randomly selected special script to taunt you or cool you down. Then when the script ends the video automatically resumes playing and you go back to stroking. The game will end once the video reaches the end.

Red Light, Green Light: The domme will randomly choose a Video from the paths you have set up and selected. When the domme says "Red Light", the video pauses automatically and you have to stop stroking. When she says "Green Light" the program resumes and you can go back to stroking. The game will end once the video reaches the end.

Censorship Sucks: The domme will randomly choose a Video from the paths you have set up and selected. You will then start stroking, but occasionally the domme will put a black bar that says "CENSORED" over the action. The bar will never show up in the same place, or be the same size. Any time the censor bar is covering up anything sexy, you have to stop stroking. The game will end once the video reaches the end.

I'll probably create more Video Teases during open development if I think of some, but already you can see that Tease AI gives you a very wide variety of options of what's possible in scripts. So wide in fact, you may notice a potential problem - How are you supposed to keep track of what scripts you're set up for and which ones you're not? What if you download a bunch of scripts, but one script uses Hentai images and you don't have any, or a Video genre you don't have, or gets even more specific and uses Images with specific Local Image Tags? Once you have a lot of scripts, how are you supposed to keep 'em separated? We could call The Offspring and ask them - they'd probably know, but there's a much easier way. Tease AI will handle this process for you automatically - with zero additional effort required from scripters. Let's take a look at the Scripts tab in the settings menu:

Image

The scripts tab allows you to see all the scripts you have at a glance, manually selecting and de-selecting each one you'd like the program to use. Tease AI looks at all the Commands in any given script, and automatically knows if a requirement needs to be listed, which it then displays in the requirements window. Scripters don't need to worry about this at all, Tease AI does it on its own. Furthermore, you can simply click the "Select Available" button, and Tease AI will automatically select the scripts you meet the requirements for, and de-select the ones you don't. The process couldn't be easier, so as a user you never have to worry about which one of your scripts you meet the requirements for and which ones you don't.

At this point, there's not really much more I can say about scripting. There's details that need to be expounded on for sure, but that can wait for a proper Tease AI Guide. With a week to go until the first public build, I'm going to focus on crunching to create additional content to launch with. I'll also be working on the Command and Filter Command guide, which I feel is the last essential piece of this overview series. In the meantime I'll gladly answer any questions or comments you have, otherwise - the countdown is on :smile:
Image
desertfox
Explorer At Heart
Explorer At Heart
Posts: 365
Joined: Mon Dec 03, 2012 7:26 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by desertfox »

One question/suggestion for videos, would it be possible to write in a module somewhere a command to bring up a specific video, with possibly a specific start and end time? I think of the idea perhaps if you have a cock hero video loaded and you want to play a particular scene, or you have a video of the domme performing a specific act that was part of a conversation?

Another suggestion would be, could you add any ambient or triggered audio tracks as well? Might be you want the domme to set the mood with some music or even something (which might be comical) like angry mood music if she gets angered, or just anything, like she might tell you to relax and play some soothing music. I think it could be interesting for a domme to have a background audio track she plays when she starts or is about to start teasing.

I've found that the offline tease/guidesme's that use some ambient audio really add a lot to the experience and I could see them fitting in here if people wanted to provide the content along side their modules.
User avatar
1885
Explorer At Heart
Explorer At Heart
Posts: 648
Joined: Fri Jul 08, 2011 4:27 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by 1885 »

qwerty359 wrote:First of all, this program looks amazing and I can't wait to play around with it. One concern I have with the video and picture stuff you've shown so far is that I (and I assume many others) don't have huge directories full of categorized porn anymore, everything is online. Is there a way to have a tease load a random video from a site like xhamster, either in a specific category that you already have defined or with a specified search string?
I looked into this idea early on, and decided it was beyond my capacity to implement with any kind of professional standards. Images I can mess with online and off, video will have to be offline only for now. But even if you don't use video at all, that's just one facet of the program. There's still a lot you can do.
desertfox wrote:One question/suggestion for videos, would it be possible to write in a module somewhere a command to bring up a specific video, with possibly a specific start and end time? I think of the idea perhaps if you have a cock hero video loaded and you want to play a particular scene, or you have a video of the domme performing a specific act that was part of a conversation?
You can currently load specific images (like you would a traditional webtease) and specific videos. I'm sure loading videos to start at a certain time is doable, but I'll have to add that feature during open development.
desertfox wrote:Another suggestion would be, could you add any ambient or triggered audio tracks as well? Might be you want the domme to set the mood with some music or even something (which might be comical) like angry mood music if she gets angered, or just anything, like she might tell you to relax and play some soothing music. I think it could be interesting for a domme to have a background audio track she plays when she starts or is about to start teasing.

I've found that the offline tease/guidesme's that use some ambient audio really add a lot to the experience and I could see them fitting in here if people wanted to provide the content along side their modules.
This is doable as well. I don't actually know why you'd ever want to give the domme her own theme music (I keep imagining this scenario where you piss her off and suddenly the Imperial March from Star Wars starts playing). But hey. If you want it, you got it - I'll put in the ability to play specified audio :-)
Image
tBone
Explorer At Heart
Explorer At Heart
Posts: 316
Joined: Thu Oct 29, 2009 1:40 am

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by tBone »

This is getting pretty amazing.
MyFreeCams: Great free cam site! Lot of girls who love teasing!

Protip: Use https://mega.co.nz/ for uploads.
Won't need to upload it anywhere else because it doesn't have the shitty restrictions all the others have. Besides emp, some people like seeding there, so keep that.
User avatar
jackstock
Explorer At Heart
Explorer At Heart
Posts: 711
Joined: Sat Apr 28, 2012 1:05 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above
Location: Canada

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by jackstock »

you're a madman. keep going.
User avatar
Trusfrated
Explorer At Heart
Explorer At Heart
Posts: 450
Joined: Mon Nov 08, 2010 8:41 am
Gender: Male

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by Trusfrated »

1885 is the Tony Stark of interactive teasing.
ImageImage
User avatar
marspank
Explorer At Heart
Explorer At Heart
Posts: 840
Joined: Mon Sep 19, 2011 12:11 am
Gender: Male
Sexual Orientation: Straight
I am a: Submissive
Location: East Coast US

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by marspank »

How do you ask for daily tasks? I can't seem to find the right key words. :-P

I can get them if I ask right when I open the program, but not if I have already interacted.
Datta. Dayadhvam. Damyata.
User avatar
1885
Explorer At Heart
Explorer At Heart
Posts: 648
Joined: Fri Jul 08, 2011 4:27 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by 1885 »

marspank wrote:How do you ask for daily tasks? I can't seem to find the right key words. :-P

I can get them if I ask right when I open the program, but not if I have already interacted.
Currently you can only get daily tasks by asking for them before you start, or if called during an End script after the orgasm decision
Image
xeenith
Explorer
Explorer
Posts: 67
Joined: Thu Apr 18, 2013 11:13 am

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by xeenith »

is there a way to control the min-max of the silent metronom ?
User avatar
1885
Explorer At Heart
Explorer At Heart
Posts: 648
Joined: Fri Jul 08, 2011 4:27 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by 1885 »

xeenith wrote:is there a way to control the min-max of the silent metronom ?
Not currently, but I'll try to add something once I've squashed the remaining bugs
Image
izura
Curious Newbie
Curious Newbie
Posts: 4
Joined: Mon Jun 10, 2019 7:19 pm
Gender: Male
Sexual Orientation: Straight
I am a: Submissive
Dom/me(s): looking for

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by izura »

How do you create flag files and can you generate random numbers ?
Temeya
Explorer
Explorer
Posts: 6
Joined: Wed Apr 08, 2020 5:23 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by Temeya »

To set a flag use the SetFlag() command (written as: @SetFlag(flagNameHere)). Removing a flag you've previously set is basically the same thing (Ex: @DeleteFlag(flagNameHere). To use a flag, use the @Flag command filter (Ex: @Flag(flagNameHere)). For more information, go to the Command Learning Guide, located in the main menu under tools. Set and Delete will be under Commands and @Flag will be under command filters. If you'd like an example or a more detailed explanation, let me know.

As for generating random numbers, that depends on what you need them for. You can use the #Random keyword to choose a random whole number between two specified numbers (written as #Random(number1, number2)). Using this command will make the number show up on the screen. However, I think you can save this number in a variable too. I've not actually used it this way in anything that I've written, but I did a quick test and it seemed to work. Here's what I tried: SetVar[randomnumber]=[#Random(1, 10). I previously had randomnumber set to something else and this changed it without throwing an error, so I'm pretty sure it worked. Someone else can feel free to correct me if I'm confused/mistaken though.

I hope this helps!

P.S. More information on #Random() go to the System Keywords section in the Command Learning Guide. Most of what I know comes either from there or from using previously created files as examples. I read somewhere, though, that a few of the commands in the Learning Guide are bugged (I don't remember which), so I rely more on example files when troubleshooting.
future2020tense
Curious Newbie
Curious Newbie
Posts: 1
Joined: Mon Jan 11, 2021 3:24 am

Re: Tease AI Scripting Overview Part 6: Modules and Misc

Post by future2020tense »

1885, this thing you have made is amazing!!! is there another programmer here that enjoys sissy stuff? say deepthroating and anal playing with dildos and other toys? adding the power for her to have this control over us would be.... wow
Post Reply

Who is online

Users browsing this forum: No registered users and 25 guests