Many thanks for your help
Tease Ai scripting: The HELP CORNER
Moderator: 1885
-
mslave1969
- Explorer

- Posts: 27
- Joined: Wed Nov 29, 2006 3:51 pm
- Location: U.K
- Contact:
Re: Tease Ai scripting: The HELP CORNER
I was thinking about changing the boxes to days chastity instead of edges, will give your suggestion a try! Where do I find the place to say how many bronze tokens I have, so I can test?
Many thanks for your help
Many thanks for your help
-
fusiontermite
- Explorer

- Posts: 91
- Joined: Thu Feb 01, 2018 7:05 pm
- Gender: Male
- Sexual Orientation: Straight
- I am a: Submissive
Re: Tease Ai scripting: The HELP CORNER
Hello everybody
I have a couple of questions regarding dates in Tease AI and thought it would make sense to have them answered all in one place (maybe others will find it useful too
):

I have a couple of questions regarding dates in Tease AI and thought it would make sense to have them answered all in one place (maybe others will find it useful too
- (How) can I set a random date?
- (How) can I change a date?
- (How) can I set a date that is e.g. 15 minutes before or after a certain date? (which is the same as changing, I know: @ChangeDate[date2]=[date1]-[15 minutes])
- (How) can I print the system date? (e.g. so that the domme can say "Today is the 15th September")
- (How) can I access the system date (e.g. so that the domme would know when it's the first of the month; ideally the values would be accessible as variables, so that you could use them, e.g. to calculate or print them ("It's the #DayOfMonth of the month, that means #DayOfMonth days of chastity" + @SetVar[days]=[#DayOfMonth]; I remember seeing "@DayOfMonth" and similar, but don't remember their exact function)
- (How) can you use variables when setting a date? (e.g. so that you could have a mechanism that determines the number of days in chastity and then sets a date that is 5 days from then; maybe @SetDate(#var) works, I didn't check; this would of course allow random dates)
- What commands are there in relation to dates?
- @SetDate
- @CheckDate
- @DateDifference (command filter)
Re: Tease Ai scripting: The HELP CORNER
OK, let's see...
@SetDate(YourDateVariableName, 10 minutes)
Let's take a look at the @SetDate -command, if you use it, it will set a date which is the date right now plus the given time span,... so:
@SetDate(YourDateVariableName, 2 days)
Let's say right now is 28.08.2020 20:27:58 ... then that command would save the date 30.08.2020 20:27:58
You can give negative values to set the date before now, i.e.:
@SetDate(YourDateVariableName, -2 days)
Would save it as 26.08.2020 20:27:58
(When you create/set a date, it's saved in the system/variables folder of that personality, open it with a text editor to see how it looks)
#CurrentTime
#CurrentDay
#CurrentMonth
#CurrentYear
#CurrentDate
#CurrentHour
Just give them a try.
@Variable[#DateDifference(mar_LastOrg,hours)]<[28] @NullResponse @Goto(backNextDay)
So, let's say you want to lock up someone for 2 hours, you would use:
@SetDate(marCockcageHours, 2 hours)
Then you can check if right now has reached that set date
@CheckDate(marCockcageHours,PossibleToUnlock)
... If 2 hours are over, it would jump to (PossibleToUnlock)
Some answers are quite short, but maybe it's all you need to get into the right direction,
just experiment with that.
If you need some more help, just ask again!
Btw.: If you not already use the text-editor 'Notepad++', then you should download and use it,... it has the function to find something inside files,... you can serach for i.e.: '@SetDate(' ... select 'find in files', ... select the script folder of your personality and hit 'find all',... that way you will find every '@SetDate(' commands in the whole persoanlity,... that way you can find quite quickly many examples of how a command is used.
(I use this function really often, it's super-useful).
Best greetings,
Markus
@SetDate(YourDateVariableName, #Random(60, 85) seconds)
Simply set it anew:
- (How) can I change a date?
@SetDate(YourDateVariableName, 10 minutes)
I didn't even knew there is a @ChangeDate command, i guess it's not really needed.
- (How) can I set a date that is e.g. 15 minutes before or after a certain date? (which is the same as changing, I know: @ChangeDate[date2]=[date1]-[15 minutes])
Let's take a look at the @SetDate -command, if you use it, it will set a date which is the date right now plus the given time span,... so:
@SetDate(YourDateVariableName, 2 days)
Let's say right now is 28.08.2020 20:27:58 ... then that command would save the date 30.08.2020 20:27:58
You can give negative values to set the date before now, i.e.:
@SetDate(YourDateVariableName, -2 days)
Would save it as 26.08.2020 20:27:58
(When you create/set a date, it's saved in the system/variables folder of that personality, open it with a text editor to see how it looks)
These commands I've found:
- (How) can I print the system date? (e.g. so that the domme can say "Today is the 15th September")
#CurrentTime
#CurrentDay
#CurrentMonth
#CurrentYear
#CurrentDate
#CurrentHour
Just give them a try.
I think those commands above could simply used as variables
- (How) can I access the system date (e.g. so that the domme would know when it's the first of the month; ideally the values would be accessible as variables, so that you could use them, e.g. to calculate or print them ("It's the #DayOfMonth of the month, that means #DayOfMonth days of chastity" + @SetVar[days]=[#DayOfMonth]; I remember seeing "@DayOfMonth" and similar, but don't remember their exact function)
@SetDate(marCockcageHours,#Var[marCCHours] hours)
- (How) can you use variables when setting a date? (e.g. so that you could have a mechanism that determines the number of days in chastity and then sets a date that is 5 days from then; maybe @SetDate(#var) works, I didn't check; this would of course allow random dates)
Well, the #DateDifference (not @DateDifference) could be used like this:
- What commands are there in relation to dates?
- @SetDate
- @CheckDate
- @DateDifference (command filter)
@Variable[#DateDifference(mar_LastOrg,hours)]<[28] @NullResponse @Goto(backNextDay)
So, let's say you want to lock up someone for 2 hours, you would use:
@SetDate(marCockcageHours, 2 hours)
Then you can check if right now has reached that set date
@CheckDate(marCockcageHours,PossibleToUnlock)
... If 2 hours are over, it would jump to (PossibleToUnlock)
Some answers are quite short, but maybe it's all you need to get into the right direction,
just experiment with that.
If you need some more help, just ask again!
Btw.: If you not already use the text-editor 'Notepad++', then you should download and use it,... it has the function to find something inside files,... you can serach for i.e.: '@SetDate(' ... select 'find in files', ... select the script folder of your personality and hit 'find all',... that way you will find every '@SetDate(' commands in the whole persoanlity,... that way you can find quite quickly many examples of how a command is used.
(I use this function really often, it's super-useful).
Best greetings,
Markus
-
fusiontermite
- Explorer

- Posts: 91
- Joined: Thu Feb 01, 2018 7:05 pm
- Gender: Male
- Sexual Orientation: Straight
- I am a: Submissive
Re: Tease Ai scripting: The HELP CORNER
Hey
Thanks a lot for this extensive reply!
For example, the domme can put the sub in chastity for a certain period of time (random date). When the asks to be unlocked and the date variable is not reached (@CheckDate), the domme would add a couple of hours, i.e. change the value of the date variable. Setting the value anew, wouldn't help here. That's why I wrote, that what would be needed here is something like @ChangeDate[unlockdate]=[unlockdate]+[#Random(2,10) hours] (which to my knowledge doesn't exist). Btw, it's the time with variables: @SetVar for setting the value anew and @ChangeVar for setting the value of the variable based on the existing value of the same or other variable(s).
I knew these commands (
), but this is an excellent example of how they work together!

Thanks a lot for this extensive reply!
Thanks!markus wrote: Fri Aug 28, 2020 7:09 pm fusiontermite wrote: ↑
Fri Aug 28, 2020 2:04 am
(How) can I set a random date?
@SetDate(YourDateVariableName, #Random(60, 85) seconds)
What I mean is the ability to change the value of a date variable, so that the new value is based on the current value of the date variable (and not of the current date, which it would be when setting the date anew).markus wrote: Fri Aug 28, 2020 7:09 pm (How) can I change a date?
Simply set it anew:
@SetDate(YourDateVariableName, 10 minutes)
For example, the domme can put the sub in chastity for a certain period of time (random date). When the asks to be unlocked and the date variable is not reached (@CheckDate), the domme would add a couple of hours, i.e. change the value of the date variable. Setting the value anew, wouldn't help here. That's why I wrote, that what would be needed here is something like @ChangeDate[unlockdate]=[unlockdate]+[#Random(2,10) hours] (which to my knowledge doesn't exist). Btw, it's the time with variables: @SetVar for setting the value anew and @ChangeVar for setting the value of the variable based on the existing value of the same or other variable(s).
Thanks!markus wrote: Fri Aug 28, 2020 7:09 pm (How) can you use variables when setting a date? (e.g. so that you could have a mechanism that determines the number of days in chastity and then sets a date that is 5 days from then; maybe @SetDate(#var) works, I didn't check; this would of course allow random dates)
@SetDate(marCockcageHours,#Var[marCCHours] hours)
#DateDifference, right, sorry about that!markus wrote: Fri Aug 28, 2020 7:09 pm Well, the #DateDifference (not @DateDifference) could be used like this:
@Variable[#DateDifference(mar_LastOrg,hours)]<[28] @NullResponse @Goto(backNextDay)
So, let's say you want to lock up someone for 2 hours, you would use:
@SetDate(marCockcageHours, 2 hours)
Then you can check if right now has reached that set date
@CheckDate(marCockcageHours,PossibleToUnlock)
... If 2 hours are over, it would jump to (PossibleToUnlock)
I knew these commands (
Thank you!markus wrote: Fri Aug 28, 2020 7:09 pm Some answers are quite short, but maybe it's all you need to get into the right direction,
just experiment with that.
If you need some more help, just ask again!
Re: Tease Ai scripting: The HELP CORNER
Hi again!
Best greetings,
Markus
Can be done already, all it takes is a little bit math:fusiontermite wrote: Mon Sep 28, 2020 6:39 pm What I mean is the ability to change the value of a date variable, so that the new value is based on the current value of the date variable (and not of the current date, which it would be when setting the date anew).
For example, the domme can put the sub in chastity for a certain period of time (random date). When the asks to be unlocked and the date variable is not reached (@CheckDate), the domme would add a couple of hours, i.e. change the value of the date variable. Setting the value anew, wouldn't help here. That's why I wrote, that what would be needed here is something like @ChangeDate[unlockdate]=[unlockdate]+[#Random(2,10) hours] (which to my knowledge doesn't exist). Btw, it's the time with variables: @SetVar for setting the value anew and @ChangeVar for setting the value of the variable based on the existing value of the same or other variable(s).
Code: Select all
Testing dates...
@NullResponse @SetDate(fusionTest01, 6 hours)
#Var[fusionTest01]
Do you ask me to get unlocked?
[yes] Let's see ... @Goto(SubHasAsked)
[no] ok...
@DifferentAnswer Yes or no?
@End
(SubHasAsked)
@NullResponse @CheckDate(fusionTest01)
@NullResponse @SetVar[tempMinutes]=[#DateDifference(fusionTest01,minutes)]
#Var[tempMinutes]
Now you have negative minutes, turn them to a possitive value:
@NullResponse @ChangeVar[posMinutes]=[tempMinutes]*[2]
@NullResponse @ChangeVar[tempMinutes]=[tempMinutes]-[posMinutes]
#Var[tempMinutes] And this is the positive value
@NullResponse @ChangeVar[tempMinutes]=[tempMinutes]+[#Random(60,240)]
#Var[tempMinutes]
@NullResponse @SetDate(fusionTest01, #Var[tempMinutes] minutes)
@NullResponse @DeleteVar[tempMinutes]
@NullResponse @DeleteVar[posMinutes]
#Var[fusionTest01]
@End
(fusionTest01)
Ok, unlock...
@End
Markus
-
fusiontermite
- Explorer

- Posts: 91
- Joined: Thu Feb 01, 2018 7:05 pm
- Gender: Male
- Sexual Orientation: Straight
- I am a: Submissive
Re: Tease Ai scripting: The HELP CORNER
You're right, it can be done. But the amount of work is immense. Just having @ChangeDate[unlockdate]=[unlockdate]+[#Random(2,10) hours] would make things a lot easier (and that is key, because when things are too complicated, people don't use it...).
One of the main restrictions of TAI (and one I really don't understand) is that the start script has to include @StartStroking and the link as well it seems (I tried it with an almost empty link file and it always kept calling the link file until I added the @StartStroking command). @StartStroking should just be a command that plays a metronome and displays taunt lines which CAN be used in EVERY TYPE OF SCRIPT (including modules, called scripts, etc.) but NEVER NEEDS to be used. I really don't see why TAI forces you to have a stroking part after each module. The script writer should be able to decide when and if the sub gets to stroke, so that there could also be a no-stroking session.
- avatarbr
- Experimentor

- Posts: 1239
- Joined: Fri Aug 18, 2006 3:33 am
- Gender: Male
- Sexual Orientation: Straight
Re: Tease Ai scripting: The HELP CORNER
I think the idea was really to create that loop format. If you know some od the 1885's webtease, you will recognize the pattern.fusiontermite wrote: Fri Jan 01, 2021 9:07 pm One of the main restrictions of TAI (and one I really don't understand) is that the start script has to include @StartStroking and the link as well it seems (I tried it with an almost empty link file and it always kept calling the link file until I added the @StartStroking command). @StartStroking should just be a command that plays a metronome and displays taunt lines which CAN be used in EVERY TYPE OF SCRIPT (including modules, called scripts, etc.) but NEVER NEEDS to be used. I really don't see why TAI forces you to have a stroking part after each module. The script writer should be able to decide when and if the sub gets to stroke, so that there could also be a no-stroking session.
![]()
But you can skip that, by calling a Module from the Link file. You can even put a @RamdomModule command in all Link files and should fully skip the stroke/taunt part. But I think, sometimes, TAI can be confused a little and do some strange things.
I think one of the alternative versions have a @MetronomeOn command, where you can do what you wanted.
-
fusiontermite
- Explorer

- Posts: 91
- Joined: Thu Feb 01, 2018 7:05 pm
- Gender: Male
- Sexual Orientation: Straight
- I am a: Submissive
Re: Tease Ai scripting: The HELP CORNER
Thanks for your reply!

The structure I want to have is a completely empty link file and one mod_main file that does everything and is run through again and again until time is up (or the domme decides to end the session, sets a flag and calls end_main). That means that the module file decides about and calls all activities (modules, talk, stroking, etc.).
Thx again

That could be an explanation. But having the mod-link-mod-link loop cycle wouldn't require to start stroking in betweenavatarbr wrote: Fri Jan 01, 2021 11:52 pm I think the idea was really to create that loop format. If you know some od the 1885's webtease, you will recognize the pattern.
The structure I want to have is a completely empty link file and one mod_main file that does everything and is run through again and again until time is up (or the domme decides to end the session, sets a flag and calls end_main). That means that the module file decides about and calls all activities (modules, talk, stroking, etc.).
If I understand correctly, that means that I can just have 1 link file with "@NullResponse @RapidCodeOn @RandomModule" (never seen this command, only @CallRandom (don't use that one either)), which would then call the 1 mod file, thus in effect skipping the link file? Would be great if that's possible, will try it.avatarbr wrote: Fri Jan 01, 2021 11:52 pm But you can skip that, by calling a Module from the Link file. You can even put a @RamdomModule command in all Link files and should fully skip the stroke/taunt part.
Yeah, I like that oneavatarbr wrote: Fri Jan 01, 2021 11:52 pm I think one of the alternative versions have a @MetronomeOn command, where you can do what you wanted.
Thx again
- avatarbr
- Experimentor

- Posts: 1239
- Joined: Fri Aug 18, 2006 3:33 am
- Gender: Male
- Sexual Orientation: Straight
Re: Tease Ai scripting: The HELP CORNER
Yes, if you want to call the same file every time, you can just use the @Call() command, otherside you can use:fusiontermite wrote: Sat Jan 02, 2021 2:46 am
If I understand correctly, that means that I can just have 1 link file with "@NullResponse @RapidCodeOn @RandomModule" (never seen this command, only @CallRandom (don't use that one either)), which would then call the 1 mod file, thus in effect skipping the link file? Would be great if that's possible, will try it.
@NullResponse @RapidCodeOn
@NullResponse @RandomModule
#StartStroking @StartStroking
@End
I think you still need to put the @StartStroking to avoid errors. But would never run that part.
Re: Tease Ai scripting: The HELP CORNER
Hi,
quick question:
When I call a custom script with @Call(Custom/blablba.txt) in a module, what happens with Tease AI when blabla.txt reaches an @End? Does it go to a link, a module or someplace else?
Is it the same when I do the above action during a link?

quick question:
When I call a custom script with @Call(Custom/blablba.txt) in a module, what happens with Tease AI when blabla.txt reaches an @End? Does it go to a link, a module or someplace else?
Is it the same when I do the above action during a link?
- avatarbr
- Experimentor

- Posts: 1239
- Joined: Fri Aug 18, 2006 3:33 am
- Gender: Male
- Sexual Orientation: Straight
Re: Tease Ai scripting: The HELP CORNER
if i remember correctly, if the custom file called don't have a @StartStroking at the end, TAI will consider as a Module, and go to a Link after that.rayray77 wrote: Mon Aug 15, 2022 4:55 pm Hi,
quick question:
When I call a custom script with @Call(Custom/blablba.txt) in a module, what happens with Tease AI when blabla.txt reaches an @End? Does it go to a link, a module or someplace else?
Is it the same when I do the above action during a link?
![]()
I am really not sure, but a Link would call a file and then go back to another Link again. But I remember getting crazy with some of the jumps at some time.
If you want full control, use @CallReturn.
Re: Tease Ai scripting: The HELP CORNER
Hi everyone,
I have some trouble copying a string from one var to another var. I understand it should be possible in Fury. I am running fury Patch 59.0.
So I suspect I am messing up somewhere.
in the next example, I try to copy the content from the variable "TestingLasagna" to the variable "food" using this test script:
I inserted "Coffee"and this was the result:
02:26 PM Eline: First input testinglasagna Variable This icon means your Domme will remember your answer!
02:27 PM Jeff: Coffee
02:27 PM Eline: Then we show the variable: Coffee
02:27 PM Eline: Now, lets copy the testingLasagna string into the new var called food
02:27 PM Eline: Now lets show VAR testingLasagna Coffee en VAR food testingLasagna
So food does not show the content of the variable "testingLasagna" but the name of the variable. Can anyone tell me what I am doing wrong or how i can get the content from one (user inputted) string to another?
I have some trouble copying a string from one var to another var. I understand it should be possible in Fury. I am running fury Patch 59.0.
So I suspect I am messing up somewhere.
in the next example, I try to copy the content from the variable "TestingLasagna" to the variable "food" using this test script:
Code: Select all
First input testinglasagna Variable @InputVar[TestingLasagna]
Then we show the variable: @ShowVar[testingLasagna]
Now, lets copy the testingLasagna string into the new var called food @SetVar[food]=[testingLasagna]
Now lets show VAR testingLasagna @ShowVar[testingLasagna] en VAR food @ShowVar[food]
02:26 PM Eline: First input testinglasagna Variable This icon means your Domme will remember your answer!
02:27 PM Jeff: Coffee
02:27 PM Eline: Then we show the variable: Coffee
02:27 PM Eline: Now, lets copy the testingLasagna string into the new var called food
02:27 PM Eline: Now lets show VAR testingLasagna Coffee en VAR food testingLasagna
So food does not show the content of the variable "testingLasagna" but the name of the variable. Can anyone tell me what I am doing wrong or how i can get the content from one (user inputted) string to another?
Re: Tease Ai scripting: The HELP CORNER
My guess:Hermes888 wrote: Sat Aug 20, 2022 12:42 pm So food does not show the content of the variable "testingLasagna" but the name of the variable. Can anyone tell me what I am doing wrong or how i can get the content from one (user inputted) string to another?
In line 3 >> @SetVar[food]=Var[testingLasagna] <<
Re: Tease Ai scripting: The HELP CORNER
Thanks PtheV, that worked great.PtheV wrote: Sat Aug 20, 2022 1:29 pmI think it should be @SetVar[food]=[#Var[testingLasagna]]rayray77 wrote: Sat Aug 20, 2022 12:53 pmMy guess:Hermes888 wrote: Sat Aug 20, 2022 12:42 pm So food does not show the content of the variable "testingLasagna" but the name of the variable. Can anyone tell me what I am doing wrong or how i can get the content from one (user inputted) string to another?
In line 3 >> @SetVar[food]=Var[testingLasagna] <<
Re: Tease Ai scripting: The HELP CORNER
Can you use commands inside a @RT?
For example: @RT(bla @Wait(10), blabla @Wait(15), blablabla @Wait(20))
My guess is no, since it only outputs a random text... But I wanna make sure
For example: @RT(bla @Wait(10), blabla @Wait(15), blablabla @Wait(20))
My guess is no, since it only outputs a random text... But I wanna make sure

