[Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.72 (Buttplug.IO) - Latest Update: 20.04.2024

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
markus
Explorer At Heart
Explorer At Heart
Posts: 656
Joined: Tue Nov 18, 2008 11:09 pm

[Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.72 (Buttplug.IO) - Latest Update: 20.04.2024

Post by markus »

Banner04.jpg
Banner04.jpg (289.72 KiB) Viewed 39012 times
Hi everyone! :wave:

Phew, ... so here it is! :-)

Dear community,

this is not the first time I ever released a project, but to be honest, no project before was that important to me, no project I have ever released was that big.
This really is an amazing moment for me, ... this 'baby' of mine which I call Awakening grew for a while now, and now I think it's time to share it with you.

As the title of this thread says, it's the basic version.


If you haven't already / if you don't mind reading it / if you are really interested in Awakening, you might consider to read the announcement thread of it here first:
[Tease AI Awakening] Announcement - A Sharp Awakening
viewtopic.php?t=24827


Some remarks about the development:

Of course I was aware when I started this project that it will be a huge one, the most complex I ever did.
In the beginning I made surprisingly fast and good progress in implementing everything.
At this point I was mostly busy with coding, tested new implemented commands only one by one.
This changed once I was that far that I really could start playing sessions with it, ... so I've started to 'stumble' over situations where commands worked in combinations.
From that point on it was more testing than coding, reproducing bugs, correcting them, sorting out one possible problem after the other.
After a while I've invited 2 people from this community to a closed test forum to help me test this even more deeply, and of course they found this or that which had to be corrected, some things which they have expected a bit differently, they came up with ideas and suggestions and so on... so again it took me a while to work on all that.



Why just 2 testers and not all I could get?

I really was that damn lucky that I have 'won' 2 experts with a huge background when it comes to Tai as testers (see the credits).
And it turned out that it was just the right balance, I have got a lot of feedback and bugreports, sometimes those piled up, but it was always doable, with too much testers I might would have been overwhelmed.
Now I think most major problems are found, solved and out of the way, I can 'risk' to receive more feedback and such without getting 'battered to death' by all of those.
With this release, now every one of you is invited to post feedback, bugreports, input, ideas and so on.



Why it took so long to be released?

The main work/coding on this was done in around 5 months, but I have underestimated the 'after-care' of this.
All those inputs, feature-requests, bug-reports, the finetuning and so on took much more time than the main developing itself.





Why I release such a 'basic version'?

If you take in account the remarks above, ... it simply take a long time until everything which is implemented is also deeply tested back and forth.
So in this 'basic version' there are a lot of features missing (i.e. the tagging of pictures, you would still need the original TAI for that), the support for Fury, a lot of ideas and feature wishes from the announcement thread or from the closed test forum are not implemented yet as well as a lot of ideas and plans I have myself for it for the future.

Now here comes the catch, ... if I really would wait to release something until everything is done (AND tested thoroughly), until I would really call it 'final', until 'everything' is implemented then it might would take another whole year (if not even longer), ... BUT on the other hand, it is already in a state you can play and have fun with it, at least I hope so. ;-)
(I call it 'basic beta version', others maybe would call it alpha/beta/whatever - version, ... doesn't matter, it's simply not the 'final' one).

So I think that a release of that 'basic version' doesn't hurt, as long as you understand that this isn't a 'final' version!

Back to the question 'Why I release such a 'basic version'?' ... to summarize:
- As mentioned above, ... it should have reached a state which allows you to have fun with it, I almost felt kinda guilty the last few months playing and having fun with it and not shared it (but as long as there were known (more or less critical) issues, they had to be sorted out first.
- It maybe can help to get personalities updated to a better performance (i.e. using the @RapidCodeOn command on large scripts/a lot of lines), and allows now more complex scripts to run, ... both are points that are related to the 'line-eating-problem' of the original Tai, that problem was the main reason why I have started this project in the first place btw. and should be gone for good with Awakening.
- It has some new commands implemented which hopefully inspires the one or other scripter to play around with these new commands to create new scripts using these new commands.
(Some of these new commands were requested by the testers, I already saw an amazing script which uses the new censor-bars in a very creative and great way ;-) )
- I hope that the better performance leads to more interest in Tai in general, which hopefully leads to more people who get interested in creating scripts on their own.

To the scripters/content creators:
I have so much plans for Awakening, there is so much on my To-Do-List, ... but what's really keep Tai alive is the content for it!
So if anyone of you (especially those who already shared some scripts or a whole personality) ... if you feel the need of a new command or feature which would be needed to realise your ideas, please don't drop such ideas only because they are not possible yet, instead I'd like to invite you to drop me a line so we can see/discuss what could be done! :-)

- And last but not least, I really wanna have this thing running by a lot of people to make sure that the 'base-code' is stable and solid before I move on to expand/enhance this project any further.





Documentation:
As basic as this version is, the documentation is as basic as well.
To get an overview of what is possible and so on you'd have to look up at least 3 resources:
- The guide in the original Tai
- The release notes of the unofficial patch
- The release notes of Awakening



Feedback:
Awakening is (and will ever be!) freeware, no finacial interests behind this.
But if you play with it and you feel like you would want to 'pay' for it, ... well, ... there is actually a currency in which you could 'pay' for it, ... and that currency is feedback, that is activity in the forum, comments, ideas, self-written scripts and so on.
The forum sometimes lacks of activity and feedback in general, but we need to be more active to keep it attractive, interesting and alive, my forum posts and this project is my try to help with that, but everyone of you can help on that matter, ... and I mean not only specifically Awakening, there are a lot of other great projects presented in this forum which lacks of feedback, ... so, if you download and play some of these, please consider to spend at least some minutes to write some lines of feedback, such a few minutes are a very low 'price' compared to the countless hours the developers spend on their projects!

Such a feedback doesn't even have to be positive as long as it's kind of fair/constructive/reasoned.



Bug-Reports:
The most important thing about any bug-report is that I am able to reproduce the bug you have.
So please put some effort in your bug-report, describe the problem as detailed as possible, add the matching log-files to your bug-report (of course for privacy reasons you could send them via PM to me), ... and last but not least, try to reproduce them on your own, ... if you are able to reproduce such bugs/problems and can describe exactly the way I can reproduce them, that would be very helpful.

Exceptions (such typical Windows-Error-Messages):
If you ever get such an error-message, please make a screenshot, copy & paste the text which is given in that error-message, note down time and date, and then send me all that plus the matching log-files so I can investigate.
---> Hint: Usually such an error-message should not break the session, if you are stuck and it doesn't move on, you can try to type something which will cause a response or you could try to use the debug-menu 'skip module'.




So, ... what's left to say:
I am curious about your feedback, comments and so on, ... hopefully you can enjoy and have fun with it! :-)
And as always: Play safe and sane!



Credits:
First I want, ... no, ... I feel like I MUST give credits to those 2 guys helping me testing this in the closed testing.
Huuuuuuuuuge credits and thanks to Daragorn and genome231 (!!!)
Not only that you both found possible problems and bugs, ... not only that you came up with great feature-ideas, ... not only that you gave me so much and useful feedback and input.
No, ... what really impressed me the most is the fun I got along the way, it was just a joy to 'work' with you both on this and have your support all the time!
Hey you both, don't you come to the idea that this is over now (it just has started ;-) ... , ... more features, more devolping, more everything, ... more testing is required! :-D

Secondly I want to thank everybody who contributed content to Tai in general, there are the scripters of those well known personalities:
- avatarbr - House of Tease viewtopic.php?t=16957
- PtheV - Miss Blue viewtopic.php?t=20069
- 1885 - Fury viewtopic.php?t=22426&sid=6bca47efc7a0a ... b09260edfe
- genome231 - Masturbatrix viewtopic.php?t=23629&sid=6bca47efc7a0a ... b09260edfe
- Xero - Bound to her will viewtopic.php?p=296068&hilit=bound+to+her#p296068
- 1885 - The initial persoanlity 'Wicked Tease'


Third, ... to everybody else who is at least 'somehow' involved in Tai in general, ... may it just a simple, single script which that one has shared, ... or if it's even just feedback or ideas.

Fourth, 1885 for the original Tai, ... (yeah, ... just fourth, ... hey, he get's all the credits in the splash screen already :-D )

Newest Credits:
Big/Huge/Massive Credits to LostInTheFog3131 who provided the knowlege, the API and the idea about the Remote Toy Control (Buttplug.IO) feature, this would never become reality without him! (!!!)



Release notes:
Spoiler: show
[Tease AI Awakening] - A Sharp Awakening 0.2.56 - Release notes
----------------------------------------------------------------


This version of Awakening is still WiP (work in progress), by far not done, and since it has not everything which is planned included,
I wouldn't even call it an alpha-version (of the final version), for now I call it 'basic-version'.


So be 'warned':

- All contacts videos are muted for now, volume adjustment will come later, but honestly, I would recommend to have them muted anyway
- It hasn't all features you know from the original TAI
- It's not that completly beginner-friendly as the final version is planned to be, if you are new to TAI in general, then it might be a good idea to start getting to know the original TAI first
- It's not compatible to Fury (and to those new commands from the Fury-Patch) ... yet (!)
- It's maybe not totally fail-safe/bullet-proof (not everything which a user could do wrong is handled yet)


How to install (HIGHLY recommended way, if you have a 'Tai-Play-Folder'):
Create a backup of your 'Tai-Play-Folder' and then just unzip the downloads there, so if something doesn't work as expected,
it doesn't do something in your play-folder (Awakening doesn't write anything outside the folder in which the exe is located).


If you don't have a 'Tai-Play-Folder':
Important here is that you'd still need the original Tai in order to create files.
Awakening uses basically the same folder structure as the original Tai, i.e. the path to the URL-files is:
YourTAIfolder/Images/System/URL Files/
That is the same path in the original Tai as well as in Awakening

Here is what you need to do to get it going:

URL-Files
----------------------------------------------------
Path: YourTAIfolder/Images/System/URL Files/
You can either use the original Tai to create those files and then copy them to the according folder in Awakening,
or you could search the Milovana Forum, there were some URL files posted, ... or do both.
Also I've zipped some URL files which can be found in the Awakening main folder 'URL Files Examples.zip' to make it easier, those would have to be placed in the path mentioned above.

Now you have to assign genres to those URL-files:

In the original Tai you have a genre and a URL file to select for that genre.
The downside of that system is, you can only have one url-file per genre, ... my system is more flexible, so you can have as much URL-files as you want assigned to a genre.
Plus you can assign one URL-file to more than just one genre, i.e. you have a really good softcore-url-file, you might wanna assign it to 'general' as well.

The picture 'SettingsURLGenres.jpg' should illustrate that.






LocalImageTags.txt
----------------------------------------------------
Path: YourTAIfolder/Images/System/
Now for this one you'll need definatly the original Tai in order to tag some of your local images, once created, copy it to the according folder in Awakening,


Personalities
----------------------------------------------------
Path: YourTAIfolder/Scripts/
Download the personalities of your choice and install like descriebed in the release threads of those personalities






About the settings (remarks for users who are new to Tai, experiencend users can skip this point and just set the settings):
----------------------------------------------------
Of course you can check out each and every setting, but I've tried to come up with some good default settings.
So, you can for starters ignore the most of them, but here are some you'd definatly need/should set on your own:

'Domme' - Tab:
--------------------
- Domme Media Directory
- Domme Name

'Sub' - Tab:
--------------------
- Sub Names

'Contacts' - Tab:
--------------------
You may read the description of the personality you want to play to find out if the contacts are needed, but the most popular personalities make use of the first 3 contacts.
So I highly recommend to set for the first 3 contacts:
- Name
- Contact Media Directory


'Images' - Tab:
--------------------
This might be the most time-consuming settings, but I highly recommend to take your time set URL-files for all the genres as well as the 'Genre Images'.
As mentioned above, some examples for the URL-files are included (but have to be moved manually to the 'YourTAIfolder/Images/System/URL Files/' folder.
For the 'Genre Images', I would recommend to find at least a handfull, maybe 10 pictures which are matching the genre-description, ... you can always add pictures to those folders later on.

'Video' - Tab:
--------------------
Like for the images:
I would recommend to find at least a handfull, maybe 10 videos which are matching the genre-description, ... you can always add videos to those folders later on.
The 'CHC Player' settings are not used by any other personality than AliceMerged / AliceAwaked.








Keyboard Shortcuts
----------------------------------------------------
F1 - Toggles the Picture / Video Path Display
F2 - Toggles the Content Video time- and position display
F3 - Toggles the Chatbox visible (only in Fullscreen), will automatically displayed again as soon as domme is typing
F4 - Toggles the Stroke Pattern Display

CTRL + L - ContentPlayer Fast Forward
CTRL + K - ContentPlayer Fast Backward
CTRL + N - ContentPlayer / CHCPlayer Toggle Slow Motion
CTRL + A - ContentPlayer / CHCPlayer Switch Aspect Ratio
CTRL + C - Toggle Video Controls On/Off
CTRL + Return - Toggle Pause On/Off

CTRL + Y 'Enjoy the view' ... -> See this as a 'feature-preview / experimental', ... this feature is by far not finished, but for me the interesting part of that was to zoom and move a picture without any performance issues.
CTRL + X Cancel the 'Enjoy the view'



Keyboard Shortcuts - Debug
----------------------------------------------------
CTRL + F9 - Run Script
CTRL + F10 - Start
CTRL + F12 - Reset


CTRL + F11 - Toggle the Script-Debug:

Double-click on a line will set the selected line as the current line of the script.
When you are in Pause (and only then) a single click on a line displays that line in a textbox, here you can edit that line, hit return will save it into memory, but not to your harddisk! (!!!), so even if that script (i.e. a linkfile) will be revisited again, the modified line is still modified.

If you edit a taunt line in the stroke cycle, the difference to the above is that it will not be saved to the taunt-files in memory and you can also not set a line as the current line with a double-click.

Anyway, edits to scripts as well as to taunt-files will be reviewed once you close Awakening.
At this point the changes will be displayed and you can choose to save them to your script-file or not.
It's also possible to edit the made change again, the edited line is displayed in a textbox, what will be saved to the script is what is written in this textbox, so if you decide to 'edit the edit' it's possible here.

A backup of every script will be made in 'YourPersonalityFolder/ScriptsBackup/' with the same folder structure as the original file was in.
The name of the backup file will get a date and time in the beginning, so if the original file is i.e. called 'GeneralMod56.txt', the backup file could
be named i.e. '2022_08_22___13_35_51_GeneralMod56.txt'.

Remark: This feature is meant for on-the-fly script-corrections, mostly like typos in the scripts or other 'small' things, and not for scripting itself, for that a good texteditor (i.e. Notepad++) is much better.
You have the possibility while the 'review' is running to mark a script to be opened in your default text-editor, so if you plan to do some more changes to a script, you might activate that so you can edit the script later on (again, Notepad++ is highly recommended to be used as your default text-editor).






For the @PlayCHC command (until now only used in AliceMerged / AliceAwaked) you'll need Beatmeter-Videofiles.

In Awakening the location of these beatmeter files has to be set in the settings, so there is no copy and paste needed if you have them already, just set the path to them and you are fine.

Can be downloaded here, 191 files, for easier downloading they are seperated in 8 packages, each package can be unzipped individual -> this means if you haven't downloaded them but want to start playing right away, you can just download one package and you are ready to go, but I highly recommend to download them all, the more you have, the more variety you have:

(BeatMeterPack01.zip till BeatMeterPack08.zip are the same as posted in the AliceMerged thread, so if you have them already downloaded there, you can just use them, no need to download them again).

BeatMeterPack01.zip:
https://mega.nz/file/nEgHVAYS#lbgePAj1b ... DDFSkklM0U

BeatMeterPack02.zip
https://mega.nz/file/adwBiKpT#9EULAKU4t ... lVEbg83Bqw

BeatMeterPack03.zip
https://mega.nz/file/nZxnzA7K#S2rM1KPhl ... XMP0InjPHQ

BeatMeterPack04.zip
https://mega.nz/file/6VgRwCyA#_dn7xxN32 ... wSy_Go1UNk

BeatMeterPack05.zip
https://mega.nz/file/PJoRmIIT#z1Z5shsYW ... 4qAVMxFSJE

BeatMeterPack06.zip
https://mega.nz/file/DZoFnQwK#eALFSh1Fm ... LntIWTubtY

BeatMeterPack07.zip
https://mega.nz/file/HIoXRSJC#YpMV8ZOqR ... WknwBZcasU

BeatMeterPack08.zip
https://mega.nz/file/rNwjkaRA#T_vxeiKYE ... K6aPV6cAeE




And here are some new beatmeters (another 92 files, this package can only be unzipped if every file is downloaded):

bms_2019.zip.001:
https://mega.nz/file/vBpRTJoA#AxJpguy5r ... 40Fz4cB1-g

bms_2019.zip.002:
https://mega.nz/file/7FZTEKzA#_gBMJikmJ ... a5U7aLNHHU

bms_2019.zip.003:
https://mega.nz/file/TFIXQSxb#_0jhPT4KA ... ML_5pk6Fz4

bms_2019.zip.004:
https://mega.nz/file/vRJW1BgD#1DXRYiTM6 ... cPHKKADlG0





The next part is more for the scripters or the people who are interested in what is new/changed 'technically' and 'script-wise', ... like new features and commands and such...




New features/commands:

Video categories and their filter:
----------------------------------------------------
Bisexual -> @VideoBisexual
Feet -> @VideoFeet
Gay -> @VideoGay
Shemale -> @VideoShemale


Contacts 4-6
----------------------------------------------------
Works the same as with the other ones, @AddContact4, @Contact4 ...


Stroke cycle
----------------------------------------------------
- I.e. @StrokeFaster will be filtered if you already at max pace
- It's possible to use @Wait(X) commands in the stroke cycle, personally I wouldn't use it in the last line of a set of taunt lines, because there should be enough time till the next set of taunt lines will come up. So my recommendation would be to NOT use it in a one-liner taunt, only in the first line of a two liner, and only in the first and second line of a three liner, ... but it's possible to use it also in the last lines.
- Which one of the 3 Stroke-Taunts files will be choosen for a taunt has a chance given in percent.
This chance was in the original hardcoded to around 77% for choosing the first Taunt-File, you can set that chance now in the settings.


Clear CallReturn-Stack With Calls (Activated Equal To Original TAI)
----------------------------------------------------
I was told that in the original Tease AI the stack of scripts which are called with @CallReturn are cleared when using other call-commands.
In my opinion, when using a @CallReturn it should 'Return' to the point a @CallReturn was used, no matter what.
So this is optional now, uncheck this option only if you know what you are doing, ... mostly interesting for scripters anyway.


Modules Folder
----------------------------------------------------
You can put a script ending with '_HUB.txt' in that folder which would be selected in the situation it would normaly would choose a random module.




Commands - New
----------------------------------------------------
@CensorVideos(X,Y) I.e.: @CensorVideos(Hardcore,Softcore) Y is optional, can be 'bigbar'
@CensorVideosOff
@SlowMotionOn -> To be used in combination with @PlayVideoNoWait(X)
@SlowMotionOff
@PauseVideo -> A running beatmeter will be paused as well
@ContinueVideo -> If a running beatmeter was paused by @PauseVideo it will continue
@CensorBarOn
@CensorBarOff

@Censorbar1On(x_position,y_position,width,height,Text) -> Text is optional, values in percent
@Censorbar1Off
There are 8 of such bars, so from @Censorbar1On till @Censorbar8On
@CensorbarAllOff

@ShowFeetImage
@EdgeTaunts(X) X is the filename of a vocabulary file without the leading # and without .txt ending
I.e.: The vocabulary file is #EdgeTauntsPersona13.txt then the command is @EdgeTaunts(EdgeTauntsPersona13)
@EdgeHoldTaunts(X) X is the filename of a vocabulary file without the leading # and without .txt ending

@AddContact4
@AddContact5
@AddContact6
@RemoveContact4
@RemoveContact5
@RemoveContact6

@SetAdditionalStrokeTime(X) -> I.e.: @SetAdditionalStrokeTime(180 seconds)
The difference between this new command and the old @AddStrokeTime(X) is that the old one can be used only in a running Stroke Cycle,
while the new @SetAdditionalStrokeTime(X) can be used before a Stroke Cycle starts.
It sets the additional stroke time for the next upcoming stroke cycle only.

@StrokeChange
-> If you have selected to use Stroke Patterns in the settings then this command picks a new stroke pattern (to be used in the taunt files only)
The @StrokeChange command also works as a filter in the stroke taunts, so if you provide taunt files which contains @StrokeChange,
those lines will be filtered if the user has not activated in the settings to 'Use Stroke Pattern'.


@MetroPatternOn(X) X -> BPM -> Beats Per Minute, can be max 320
Plays a random picked pattern from the file System/StrokePattern/StrokePattern.txt
You can stop this MetroPattern-Command with the old @MetronomeOff or with the new @MetroPatternOff

@MetroPatternOff
The difference to @MetronomeOff is, @MetronomeOff will stop the playing pattern immediately, while @MetroPatternOff wait until the whole Pattern is played through and stops then.
Also it waits until the Pattern is played through before it moves on to the next script line.

@DisplayPatternOn
@DisplayPatternOff

@JumpDommeSlideshow(X,Y)
X -> 0 till 6, 0 is the domme, 1-6 are the contacts
Y -> 1 till 99 -> the position of the given slideshow in percent

@ShowWait -> Will not work in the Stroke cycle

@WaitAudio -> The script pauses until the given audio file has finished playing

@Worship(Feet)


@ShowNotTaggedImage -> To be used without a @Tag in the same line.
This shows a picture from the file '\Images\System\LocalImageTags.txt' which has no given tag
(See also the @ShowTaggedImage entry in 'Commands - Differences to the Original Tai')


@NullNextDommeImage -> to be used to display the next image of the domme slideshow without any text, to be used (and works only anyway) in a @NullResponse-line, works also with contacts, i.e.:
Worship me, worship my body. @Wait(3)
@NullResponse @NullNextDommeImage @Wait(2)
@NullResponse @NullNextDommeImage @Wait(2)
@Contact2 Now my turn ...
@Contact2 @NullResponse @NullNextDommeImage @Wait(2)
@Contact2 @NullResponse @NullNextDommeImage @Wait(2)


@PermaRapidCodeOn -> Once used, every @NullResponse line will be handled as if you would use a @RapidCodeOn in or before that @NullResponse line
@PermaRapidCodeOff
@ModuleRapidCodeOn -> Same as @PermaRapidCodeOn, but will be reseted once a module/script has ended
@ModuleRapidCodeOff

@SetTeaseTime(X) -> I.e.: @SetTeaseTime(15 minutes)


@SetVarString[]
-> I.e.:
@NullResponse @SetVar[Strokes]=[#Random(10,30)]
@NullResponse @SetVar[Speed]=[#Random(60,100)]
@NullResponse @SetVar[Timer]=[Strokes]

The problem is this line:
@NullResponse @SetVar[Timer]=[Strokes]

Correct would be:
@NullResponse @SetVar[Timer]=[#Var[Strokes]]

This line is from the original Tai command guide:
"You can also set string Variables this way, such as @SetVar[MyString]=[lasagna]"

Now different versions of Tai give different results, ... when we take the example from the guide '@SetVar[MyString]=[lasagna]'
In the before-Fury-original-Tai-versions the value of the variable is: '0' (if the variable 'lasagna' doesn't exist)... so it didn't worked as it was explained in the guide, but that way it's used by some personalities.
Also it's impossible to assign a string to a variable with @SetVar[], it ONLY reads it's value if it's exist.

But in Fury, the value of the variable is: 'lasagna' ---> like described in the guide.

That means, using different versions of Tai leads to different results, ... which could lead to incompatibility.

I've thought a while about it and implemented this compromise to be as much compatible as possible to existing scripts/personalities AND to be able to assign a string to a variable:
Let's say the variable 'Strokes' exists, THEN @SetVar will read it's value, if the variable does not exists, the value would be the given string.

The downside of this compromise is that if you would want to assign at another place of the personality the word 'Strokes' to any other variable, it would not be possible since the variable 'Strokes' exists and the value of it would be taken instead the word 'Strokes'. (This is only for @SetVar, @InputVar would work).
To bypass this problem I've added the command @SetVarString[], so even if the variable 'Strokes' exists, with @SetVarString[Whatever]=[Strokes] would work.




@Insert(X)

Attention!!!
Here is a golden rule for using the @Insert(X) - command:
If you use inside of a @Insert - script headlines, like in the @Goto or @Chance command, THEN you should use this @Insert only once per script,
otherwise the inserted headline(s) would be inserted twice (or as often as you use the @Insert).
So you would end up with non-unique headlines.
Even better, don't use headlines at all in a @Insert-script, you could, but then you have to do it with care as described above.


I.e.: @Insert(questions/done)
-> Would insert the content of the file which is located in the personality-folder/Insert/questions/done.txt

Also you could use the wildcard * ... i.e.: @Insert(questions/sure/*)
-> Would insert the content of a random selected file out of the foler personality-folder/Insert/questions/sure/

It's not really a 'command' as you know them from the original Tai, ... it's more of a 'parser-command'.
Those insert-files must be text-files (.txt) located in the folder 'Insert' in your personality folder.

I.e., what I use often is this in many scripts:


@RT(Done?,Are you done?,Tell me when you are done!,Ready?,Are you ready?,Let me know when we can continue)
[done,ready,yes,continue] @RT(Okay,Alright,Ok,Good,Fine,Nice,Sweet,Perfect) ...
@DifferentAnswer Tell me when you are done, #PetName


Now instead of adding this all over the place, you could make a textfile with that content named 'done.txt' inside the 'Insert' folder, and instead of adding the above to your script, you could add the line:
@Insert(done)
instead.

In general this @Insert command makes sense when you use some script-lines more often.
Let's say I want to change/add something to those 3 script lines later on, I would have to replace them in all scripts I have used them in.
The advantage now is that if I used @Insert(done) instead, I just have to edit that insert-file.

Important to know about this, you can only have one of such @Insert per line, ... AND the WHOLE line will be exchanged with the content of that given file.
So this makes no sense:
@NullResponse @RapidCodeOn @CBT @LockImages @Insert(done)
Because that whole line would be replaced by the content of the done.txt file.
All the other commands would be ignored.

You can imagine it as copy & paste, ... where @Insert(done) is used, it's like you mark that line, delete it, and paste a text there, ... also you could think of it as a 'placeholder'.

This replacement of those @Insert - commands happens when the scripts are loading into memory at the startup.

In general (in most cases), you might could gain the same result using a @CallReturn, but the pros on this might be that it is a bit more performant (you skip all that stuff what happens in the background when using a @CallReturn), ... and well, ... the syntax is a bit easier I guess.



Commands - Not new but implemented while not listed in the guide of the original Tai
----------------------------------------------------
@RandomTease -> The main domme will be one from the 'Random Domme' directory.
The folder structure MUST be like this:

general randomdomme directory
-dommename1
--folder1
--folder2
--folderX
-dommename2
--folder1
--folder2
--folderX

... and so on...
The name of the domme will be taken from the folder name.

@DommeTease -> Resets the @RandomTease command and switches back to the 'normal' main domme.




Commands - Differences to the Original Tai
----------------------------------------------------
@RemoveDomme -> If the domme leaves the chat, the contact which has joined last will be set as the main-domme

@PlayCensorshipSucks -> Not hardcoded anymore, Script is in 'Game Modules' Folder
@PlayRedLightGreenLight -> Not hardcoded anymore, Script is in 'Game Modules' Folder
@PlayAvoidTheEdge -> Not hardcoded anymore, Script is in 'Game Modules' Folder
@PlayRiskyPick -> Not hardcoded anymore, Script is in 'Game Modules' Folder
-> RiskyPick will not be implemented, it leads to quite a simple script in the 'Risky Pick Replacement' folder, a better replacement is on the to-do-list, if someone can provide a better replacement I'd be up for it

@ShowTaggedImage -> If used without a @Tag in the same line, the original Tai pulled one path out of the '\Images\System\LocalImageTags.txt' file, doesn't matter if the picture is tagged or not.
In Awakening only one of the actually tagged pictures will be pulled from that file.
To show a not tagged picture from that file there is the new command implemented '@ShowNotTaggedImage'

@EdgingHold -> Renamed to @ScriptHoldingEdge (old name has collided somewhere and has lead to problems, sorry for that)

@DommeTag() -> If ImageTags.txt is not present in the current folder, tagged images from other folder will be taken
---> This one is an important one, now you can tag all your domme images accordingly, but if you only tag one folder of domme images accordingly and leave others out (for maybe tag them later), you will still get some tag domme-pictures from another folder with the matching tag.


@PornAllowedOff -> ToDo, not implemented yet, a different way is planned for this
@PornAllowedOn -> ToDo, not implemented yet, a different way is planned for this

@Wait(X) -> Can be used in the Stroke cycle.

@PlayVideoNoWait(Dropped) -> You can drag and drop videos.
Script-Example:

Drag and Drop a video here now!
@RT(Done?,Are you done?,Tell me when you are done!,Ready?,Are you ready?,Let me know when we can continue) @RapidTextOff
[done,ready,yes,continue] @RT(Okay,Alright,Ok,Good,Fine,Nice,Sweet,Perfect) ...
@DifferentAnswer Tell me when you are done, #PetName
Let's see ...
@NullResponse @RapidCodeOn @PlayVideoNoWait(dropped)
(loopDragAndDrop)
Do something @Wait(#Random(10,20))
@NullResponse @RapidCodeOn @Goto(loopDragAndDrop)

(Video Ended)
Let's continue...



Commands - Differences to the Original Tai -> If 'Show Hint Marks For Interactivity' is activated
----------------------------------------------------
Sometimes as a scripter you want to hide what would have displayed with the 'Show Hint Marks For Interactivity'-option.
In the custom mode i.e. you may use it in a guessing game, displaying the 'answer' would spoil it.

@CustomMode(chemise, Goto, Right, HideAnswer)
-> HideAnswer will hide the custom mode even if 'Show Hint Marks For Interactivity' is activated

@Timeout(10, GotoLine, HideTimeout)




Filter
----------------------------------------------------
@NotWhileLocked
Valid if images are locked
-> To be used i.e. in Edge-Taunt files, example:
@NotWhileLocked Stare at this #Ass and get closer for me @ShowButtImage
Line will be filtered if images are locked.

@StrokeChange -> See the remarks of the @StrokeChange-Command

@GroupContains(
In example:

@NullResponse @AddContact4 @AddContact2
Without contains
@Group(D1) @Contact1 @RT(Can,May) I @RT(borrow, use) #SubName @RT(for a while, a little)?
@Group(D2) @Contact2 @RT(Can,May) I @RT(borrow, use) #SubName @RT(for a while, a little)?
@Group(D3) @Contact3 @RT(Can,May) I @RT(borrow, use) #SubName @RT(for a while, a little)?
#OfCourse
---> Since the group is "D24" no line is valid

With contains
@GroupContains(D1) @Contact1 @RT(Can,May) I @RT(borrow, use) #SubName @RT(for a while, a little)?
@GroupContains(D2) @Contact2 @RT(Can,May) I @RT(borrow, use) #SubName @RT(for a while, a little)?
@GroupContains(D3) @Contact3 @RT(Can,May) I @RT(borrow, use) #SubName @RT(for a while, a little)?
#OfCourse
---> Line with "D2" is valid

@VideoIsPaused
@VideoIsSlowMotion
@VideoIsPlaying
@VideoIsNotPlaying

@PaceSlowest / @Pace1
@PaceFastest / @Pace8

@MetroIsRunning -> Detects if ANY metronome is running or not
@MetroIsNotRunning -> Detects if ANY metronome is running or not

@FeetWorship

@VarExists(X)


System Keywords
----------------------------------------------------
#TeaseTimeMinutes
#VideoGenres
#StrokeCycleTime
#SubBirthdayYear -> Unlike in the Original Tai #SubAge is calculated
#DomBirthdayYear -> Unlike in the Original Tai #DomAge is calculated
#DomHonorifices -> Found in Miss Blue, it's #DomHonorific + "es" i.e. Mistress -> Mistresses
#LastJoined -> Returns the name of the contact who has joined the chat last


Debug menu
----------------------------------------------------
Should be self explaining, except the 'Slow Script'.
This is meant to watch a script with CTRL+F11, if you have in example a part of a script introduced with @NullResponse @RapidCodeOn followed by a lot of commands, then without that
slow script you wouldn't be able to watch since it would be simply too fast.




Support for wrong syntax
----------------------------------------------------
@CustomMode(ModeText, Normal)
-> Clears all active CustomModes

-> This is used in many scripts when the scripter has set a CustomMode with a vocab file as the keyword. i.e:
@CustomMode(#Beg, Goto, Begging)
And then wanted to clear that CustomMode, but this never worked, at least not in the unofficial patch and also not in Fury.

DON'T use this syntax, it's simply wrong!
I have just added this for compatibility reasons since those scripts are out there and in use, ... it's added to repair a mistake from the past so to say.

The correct way to clear that CustomMode is this:
@CustomMode(#Beg, Normal)

I am not sure if that was working in the original Tai, but in Awakening it works.





Settings
----------------------------------------------------

Stroke patterns:

In some Cock-Hero videos there are beatmeters.
They indicate such stroke patterns like '1115' -> would mean 3 slow strokes, then 5 fast ones.
They will be used only in the stroke cycle (using @StartStroking).
In the file System/StrokePattern/StrokePattern.txt you'll find some.
This file can be edited to create your own stroke pattern.
Every time a @StartStroking command is given it selects one of the lines of that pattern file randomly as the stroke pattern to use.
For a little more insight you may check the discussion about it in the announcement thread:
viewtopic.php?p=319135#p319135

What's discussed there is to have the possibilty to have longer pauses.
I.e.: like '113':
That would mean that the random-selected pace if you would run it without stroke-patterns activated is what a '1' represents.
And the '3' represents a longer pause.
While testing I found the downside of this is that you can only create longer pauses, but not shorter pauses.
So I came up with the idea to have another 'base'-value, in my solution '5' represents the random-selected pace instead of '1', ... so:
5 -> the same as the random-selected pace
38 -> One faster than the random-selected pace, one slower than the random-selected pace.

Then I've stumbled about the Technical Froms project in the forum and thougth it would be nice to have the possibility to give Stroke-Patterns the way those technical forms are done.
Now, as some other features in this Basic-Release of Awakening, you might consider this as well as sort of a 'feature-demonstration', ... not implemented in every detail, ... but the technical base of it is there and ready.

So what's already working is to create such patterns in a Masu-way, see the StrokePattern.txt for examples.
In any other projects I saw, such Masu-beats were simply audio files, here you can 'control' the metronome to do this, so you can define 'emphasis' beats, pauses, patterns, speed and also add a description of that 'Masu-Form' which could be displayed.
(Btw.: I am aware that these examples in the StrokePattern.txt are not descriebed the Masu-way, that would be with some AND in between, I just like it better how they are).

If someone would really like to create a whole Technical-Forms-Game with Awakening, then there might have to be some additional commands added to this, ... I'd be open minded.



Update to 0.3.72 - Change Log:
viewtopic.php?p=362352#p362352


Update to 0.3.70 - Change Log:
viewtopic.php?p=362004#p362004


Update to 0.3.50 - Change Log:
viewtopic.php?p=356321#p356321


Update to 0.3.37 - Change Log:
viewtopic.php?p=353164#p353164

Update to 0.3.33 - Change Log:
viewtopic.php?p=352806#p352806


Update to 0.3.32 - Change Log:
viewtopic.php?p=352583#p352583


Update to 0.3.31 - Change Log:
viewtopic.php?p=352466#p352466




Update to 0.3.17 - Change Log

This post got too big, so I cannot post the changelog in here anymore, it is, as always, part of the download.
And you could find it in the release post in this thread:
viewtopic.php?p=347839#p347839




Update to 0.3.01 - Change Log
Spoiler: show

[Tease AI Awakening] - A Sharp Awakening 0.3.01 - Change Log
----------------------------------------------------------------
Small fix: @CheckDate considers a missing date variable as 'time is up' now
----------------------------------------------------------------

Update to 0.3.00 - Change Log
Spoiler: show


[Tease AI Awakening] - A Sharp Awakening 0.3.00 - Change Log
----------------------------------------------------------------

- EStim support for audio driven EStim-Devices: In the Advanced Settings -> EStim:

- Selectable audio files playing along with the metronome.
- Selectable audio files playing instead of the beatmeter.
- New Commands:
- @PlayEStimAudio[X] -> Same syntax as @PlayAudio[X]
- @StopEStimAudio

On-the-fly volume change for EStim sounds:

CTRL + W - @PlayEStimAudio-Command and when instead of a beatmeter a soundfile is played - Volume Up
CTRL + E - @PlayEStimAudio-Command and when instead of a beatmeter a soundfile is played - Volume Down
CTRL + R - Metronome EStim Audio Up
CTRL + T - Metronome EStim Audio Down
CTRL + U - Metronome Emphasis EStim Audio Up
CTRL + I - Metronome Emphasis EStim Audio Down

Note:
In the main Awakening folder there is now a picture 'Shortcuts.jpg' which shows all the shortcuts for a better overview.

Audio files for EStim are NOT included!
If someone can provide some good metronome-EStim sounds, I'd like to include them.
Soundfiles as Beatmeter replacement will not be included.
You can find a lot in the 'On Video' Section of the Milovana forum:
viewforum.php?f=25&sid=2812eec22e4481a5e9c08a8f08b87503

In example here:
viewtopic.php?t=24722

... and here:
viewtopic.php?p=341861#p341861






- New Filter:
@WhoIsTyping(X) -> X can be D,1,2,3,4,5,6
I.e.:
@WhoIsTyping(1) is valid if Contact1 is typing


- @ImageBar2On( vanished when showing a content picture -> fixed!

New filter:
@NotFullScreen
@FullScreen

I.e.:
@NullResponse @NotFullScreen @ImageBar1On(5,64,15,37) @Wait(3)
@NullResponse @NotFullScreen @ImageBar2On(20,64,15,37) @Wait(5)

@NullResponse @FullScreen @ImageBar1On(5,50,15,37) @Wait(3)
@NullResponse @FullScreen @ImageBar2On(20,50,15,37) @Wait(5)



- New Command:
@NullLine

Usually if in a vocabulary file different filters leading to different results but no condition is valid, then an error message is printed in the chat ' NO_POSSIBLE_LINES: '
But if you want to return 'nothing' from a vocabulary file in special cases, you can add a line with @NullLine, i.e.:
@Flag(MyFlagName) @DommeTag(Face)
@NotFlag(MyFlagName) @NullLine


- New Command:
@HideChatMessage
This hides the chat messages about joining or leaving the chat room when using i.e.: @AddContact1 @RemoveDomme
I.e.:
@NullResponse @AddContact1
@NullResponse @RapidCodeOn @RemoveDomme @HideChatMessage


- Modified random number generation

- Added missing System-Keywords #SubWritingTaskMin and #SubWritingTaskMax

- Added a white background with black text option for the chat, this is a temporary solution until the customizable UI is done.

- Several small fixes and performance-enhancements

----------------------------------------------------------------


Update to 0.2.90 - Change Log
Spoiler: show

[Tease AI Awakening] - A Sharp Awakening 0.2.90 - Change Log
----------------------------------------------------------------

- New Command:

@ExpireFlag(X,Y)

I.e.: @ExpireFlag(MyFlagName,30 seconds)
This sets a Flag which automatically expires after the given time.
You can only set one Flag per command.
You could achieve the same as with a combination of @SetDate and @Variable[#DateDifference(...
So there are no 'new' things you could do with this command, it just makes scripting a bit easier.


- Added TTS - Text To Speech for system- and emote- messages in the Advanced Settings -> Misc -> 'Chat-System-And-Emote-Messages'

- Lazy Sub App - Buttons and Font a bit bigger

- The search for missing folders at startup, the scan for the beatmeter folder was missing, fixed.

- Added the missing command @SendDailyTasks

- Added ClearModes to the Debug -> Commands menu

- @WritingTaskRandom(X)
This command is enhanced with an additional parameter 'Y', so now it's:
@WritingTaskRandom(X,Y) -> With Y you can set the amount of lines to write, use with care, there is a reason why the user can set the boundaries in the settings.
An example could be for tasks OUTSIDE a session.

- @Censorbar1On( -> Added: In the part where you define the text you can also use the dollar-sign '$' to indicate a new line (line break).
Goes for all @CensorbarXOn

- Those Censorbars have now priority over ImageBars, so they can overlay an ImageBar.

----------------------------------------------------------------




Update to 0.2.85 - Change Log
Spoiler: show

[Tease AI Awakening] - A Sharp Awakening 0.2.85 - Change Log
----------------------------------------------------------------

- New Commands:
@SetImageBar1Image[X]
---> The same syntax as in the @ShowImage[X] command. This preload the given image and assign it to the matching picturebox.

@ImageBar1On(x_position,y_position,width,height)
---> Works the same as the @Censorbar1On.

@ImageBar1Off
@ImageBarAllOff

There are 8 of such bars, so from @SetImageBar1Image[X] till @SetImageBar8Image[X] and from @ImageBar1On till @ImageBar8On



- Drag and Drop for dropped videos and @InputVarDroppedFolderPath[X] works now for all the video-views and picture-boxes for the Main Domme, for all Contacts and for Content.

- @PlayCHC
While it switches from one video to the next one, the pause function is deactivated in order to prevent a possible crash if the pause is used in the wrong moment.

- New Commands:
@SubNameTemp(X)
@SubNameReset
@PetNameTemp(X)
@PetNameReset
When ever #SubName / #PetName is used, the given temp-name will be used instead.

- When in fullscreen a censorbar is dislayed over the chatbox, it wasn't visible for a fraction of a second. -> Fixed.

- Introduced in 0.2.77:
- Added RapitTextOff to the debug menu, will also reseted when a script ends.
---> Took back that it automatically will be reseted when a script ends.


Update to 0.2.77 - Change Log
Spoiler: show

[Tease AI Awakening] - A Sharp Awakening 0.2.77 - Change Log
----------------------------------------------------------------

- Fixed @RuinedMode(

- List Subfolders with 'Add Media Directory' for Contacts.
The default (that is how it was before this update) is that this is activated (the hook is set).
To deactivate can make sense if you have picture-sets and videos for one model, to 'balance' the chances.
I.e.: You have one folder with videos, let's call this example model 'Alice', so the video folder could be named 'Alice Videos', in this folder there are videos, but no subfolders.
Then you have a folder called 'Alice Picture Sets' with let's say 50 subfolders, each subfolder with a picture-set.
---> This is btw. the best and recommended way to sort your media.
Now you could add the folder 'Alice Videos' 3 times, since there are no subfolders it doesn't matter if the hook is set or not.
Then deactivate 'List subfolders' and add 'Alice Picture Sets' one time, the list then looks like this:
Alice Videos
Alice Videos
Alice Videos
Alice Picture Sets
---> This means that the chance that one of the picture-sets is picked randomly is 1 out of 4.
If you have 'List subfolders' activated, you still would have 3 times the video folder in the list, but also all the 50 picture folders, then the chance that a video is picked for display would be very low.


- Added RapitTextOff to the debug menu, will also reseted when a script ends.


Update to 0.2.75 - Change Log
Spoiler: show
[Tease AI Awakening] - A Sharp Awakening 0.2.75 - Change Log
----------------------------------------------------------------

- Fixed reported crash problem at startup.

Update to 0.2.74 - Change Log
Spoiler: show

[Tease AI Awakening] - A Sharp Awakening 0.2.74 - Change Log
----------------------------------------------------------------

- New Command: @InputVarDroppedFolderPath[X] -> X -> The name for the variable to save the folder path to.
The user is expected to drag and drop a folder over the part of the program where the domme media is displayed.
That way the user can enter folder-paths without the risk of typos.

I.e.:
Now drag and drop that folder over me! @InputVarDroppedFolderPath[UnseenFolderPath]
Here we go... @PlayVideo[#Var[UnseenFolderPath]*.*]


- Removed some entries which were not needed anymore from the error-log
- Changed priority from @PermaRapidCodeOn and @ModuleRapidCodeOn over @RapidTextOn


Update to 0.2.72 - Change Log
Spoiler: show

[Tease AI Awakening] - A Sharp Awakening 0.2.72 - Change Log
----------------------------------------------------------------

- New Commands: @PlayAudioLoop[X] @AudioLoopPause(Y)
@PlayAudioLoop[X] works the same as the old @PlayAudio[X] but it plays the soundfile in an endless loop until another soundfile is played with @PlayAudio[X]
@AudioLoopPause(Y) is optional, here you can set a pause/delay until the loop plays the soundfile again, the value 'Y' is a value in MILLISECONDS
IMPORTANT NOTE:
@PlayAudioLoop[X] as well as the a while ago implemented command @WaitAudio are working with .mp3 files only, wave-files are not supported with these 2 commands.


- New Commands: @PlaySecondAudio[X] and @StopSecondAudio
@PlaySecondAudio[X] works the same as the old @PlayAudio[X], it plays the soundfile in a second Audio Player, so that you can play 2 different sound-files at the same time.
Use with care and only if you really need 2 sound-files played at the same time!
Hint: @WaitAudio does not wait for sound-files played with this second Audio Player.


- @CensorVideos(X,Y) I.e.: @CensorVideos(Hardcore,Softcore) Y is optional, can be 'bigbar'
This command is enhanced with an additional parameter 'CensorBarText', so now it's:
@CensorVideos(X,Y,Z) I.e.: @CensorVideos(Hardcore,Softcore,bigbar,CensorBarText Censored for bad behaviour)

Besides the video categories you can also add CHCPlayer as a parameter to censor the videos played with the @PlayCHC command.

So the censor label would have written on it 'Censored for bad behaviour' instead of just 'Censored'.
In the part where you define the text with CensorBarText you can also use the dollar-sign '$' to indicate a new line, so this:
@CensorVideos(Hardcore,Softcore,bigbar,CensorBarText Censored $ for $ bad $ behaviour)
Would lead to the label displayed something like this (the forum displays it not centered to the middle exactly, just to give you an idea):
Censored 
  for 
  bad 
behaviour



- New Settings Tab: Advanced Settings
-- -> Two Dommes At Once (In A Set Of Pictures) -> Exchange Words (i.e. I, me, -> We, us)
The tai2dommesAtOnce.txt Feature was already introduced in the unofficial patch, from the release notes of it:

------------------------------
- Two dommes in one picture
------------------------------
If you use picture sets showing 2 girls at once, now you can add a textfile to the picture set folder:
tai2dommesAtOnce.txt
TAI will check if that textfile is present in the current domme picture set folder,
if it is, it will set a tempflag named 'tai2dommesAtOnce', if not the flag will be deleted.
I.e.:
@Flag(tai2dommesAtOnce) @NullResponse @Chance30(SwitchTheDomme)
...
(SwitchTheDomme)
Hey Marsha, wanna take the keyboard for a while?
@NullResponse @DommeNameTemp(Marsha) @DommeAvatarTemp[rndAva\marsha02.jpg]
------------------------------


Now with the new 'Exchange Words' setting activated some words will be automatically exchanged (if that flag 'tai2dommesAtOnce' is set), 'I' becomes 'We' and so on.
Note: There are exceptions implemented in order to not replace i.e. 'I', such a case is i.e. 'I think', this 'I' in 'I think' will not be
replaced since 'We think' sounds just wrong.
I am already stumble from time to time over new word combination which I will continuously add to this.




- Fixed problems deleting images with the Del-Key

- Fixed a small issue using @StopVideo without a playing video

- Locked Image disappear when playing a video -> Fixed

- Unhandled Exception when you try to display a 'bad' (bad -> like in: corrupt/broken/not valid) picture. -> Fixed

- With the arrow-key 'Down' you can go through your last inputs, arrow-key 'Up' allows to go back to the before shown input.
These inputs are displayed in the chat, so with enter you will send that input.

- Added links to the menu


Update to 0.2.67 - Change Log
Spoiler: show
[Tease AI Awakening] - A Sharp Awakening 0.2.67 - Change Log
----------------------------------------------------------------
- Fix for sound-problem using Bluetooth earphones
- Refresh URL-Files -> Fixed
- Unhandled Exception using @ChatImage[ when the image doesn't exist -> Fixed
- Added Time and Position to Domme Video Path Display (F1)
- Added functionality to #TagGarment

- Added Del-Key (Delete) functionality
---> Deletes/moves the shown picture.
If it's a local file, it will be moved to the folder:
YourAwakeningInstallation/Images/DeletedImages
If it's a blog-image, it will be removed from the url-files as well as from the 'Session Images'.
In both cases the file 'YourAwakeningInstallation/Images/DeletedImages/DeletedImagesLog.txt' holds all the necessary information if you accidentally deleted an image.

Update to 0.2.64 - Change Log
Spoiler: show
[Tease AI Awakening] - A Sharp Awakening 0.2.64 - Change Log
----------------------------------------------------------------
- On some rare occasions TempFlags weren't deleted by using @DeleteFlag(X) -> Fixed
- Cosmetic correction: The Script-Edit-And-View-Window (CTRL+F11) sometime became too big -> Fixed
----------------------------------------------------------------
Update to 0.2.63 - Change Log
Spoiler: show
[Tease AI Awakening] - A Sharp Awakening 0.2.63 - Change Log
----------------------------------------------------------------
- Fixed Lazy Sub App + @Timeout problem
- @CountVar[ can now handle multiple timers at the same time
----------------------------------------------------------------
Update to 0.2.62 - Change Log
Spoiler: show

Update to 0.2.62
----------------------

Contains fixes for:
viewtopic.php?p=337590#p337590
viewtopic.php?p=337912#p337912



[Tease AI Awakening] - A Sharp Awakening 0.2.62 - Change Log
----------------------------------------------------------------
Commands - New (requested)
----------------------------------------------------
@JumpVideoReverse(X) -> X -> Percent
I.e.: Let's say a video has 10 minutes duration, the @JumpVideo(20) command would jump 20% of the video, so you end up at 02:00/10:00.
The @JumpVideoReverse(20) jumps to the percent of what is left from the video, so you end up at 08:00/10:00.
-> So the @JumpVideoReverse(20) does exactly the same as @JumpVideo(80)

----------------------------------------------------
Lazy Sub App
----------------------------------------------------
You will have to set it up in the settings.
It has 24 free definable buttons.
Hint: If you don't need so much buttons, you simply can resize the window of the Lazy Sub App.
See the screenshot to get an idea of that.
And you can move it around to place it where you want to have it placed.

LazySubExamples.jpg
LazySubExamples.jpg (177.87 KiB) Viewed 36702 times







Download:

https://markusawakening.itch.io/tease-ai-awakening




Best greetings,
Markus
Last edited by markus on Sat Apr 20, 2024 10:20 am, edited 33 times in total.
User avatar
rayray77
Explorer
Explorer
Posts: 68
Joined: Thu Nov 27, 2014 11:58 am

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by rayray77 »

I'm so glad I looked into this forum today. Had a feeling this thing would drop pretty soon and what better date to pick than 11.11.22 :-D

Everything about this sounds so promising. I love it.
I can't contribute anything to it right now (scripts or personalities), but I hope I will in the future.

Massive respect for getting to this point on your huge project as well as the testers, who stick with it to help you :-)

PS: Typing that message with the read-me must have taken hours too :lol:
Daragorn
Explorer At Heart
Explorer At Heart
Posts: 559
Joined: Fri Nov 06, 2015 1:16 pm
Gender: Male
Sexual Orientation: Straight
I am a: Submissive

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by Daragorn »

It was an honor to be selected for the beta test, actually so i am the one having to thank you for that opportunity.

I don't want to create too much hype on this, but i think markus is being way too cautious in defining this as just a "basic" version; sure, there are some commands from TAI that might have not been fully implemented yet (in any case, all minor things that definitely doesn't impact the flow of a session that much, if any at all), or things that are missing from TAI (such as the tagging) but the pros are immense.

I have stopped using the original TAI since months and have been using only Awakening in the last months (and using it a lot :lol: ), well apart for the taggings if/when i needed to (that's the only reason i still have TAI installed) so that should be a statemenent good enough to demonstrate that this is all but "basic": it is a fully working version and most of you probably wouldn't even notice if there are commands still not implemented.

To give you a few examples of what is in there in Awakening that was not in TAI (or was working poorly):
-urls are now fully functional again
-animated gifs finally work properly instead of freezing up all the time
-you can select different TTS voice for each of the domme and contacts (for me, who am a big fan of TTS, this was a HUGE improvement to increase immersivity)
-you can have up to 6 different glitter contacts (a lot of room for new/further scripts/idea to implement here)
-the program is way more stable than TAI
-the program is WAY more responsive than TAI
-(for more advanced users) there is the chance to edit scripts on the fly with an AWESOME editor which has helped me tremendously in fixing typos and errors in my scripts (i can't stress enough how useful it has been to me)
-you can now have a metronome that instead of following the usual steady patterns feels like playing a masu game (i really love this....well...actually i managed to convince him to implement it) which gives a lot more diversity to the stroking cycles

There are sure many other things that i can't come up with now but...

TlDR: try it, you won't be disappointed
Markopolo
Explorer
Explorer
Posts: 5
Joined: Mon May 17, 2021 7:31 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by Markopolo »

Thank you for your work. :-)

When I try to start it and accept the Terms and Conditions a small "start screen" appears and it crashes directly. Do I need to set up anything else before starting? I'm running it on Win 10 by the way, but changing to compatibility mode doesn't help. :weep:
User avatar
genome231
Explorer At Heart
Explorer At Heart
Posts: 687
Joined: Wed Nov 12, 2014 8:35 am

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by genome231 »

Hi :wave:

Gonna be a short post as I am on the phone.

Oh my oh my oh my. What a day!
Lost for words on this one.
Awakening gives that same feeling of "getting a new toy on christmas as a kid that was top on the list".
Awakening is THAT good!

Was a lot of fun testing and playing, so a thousand thanks having me as a tester. Like Daragorn wrote: It was an honor :-)

Also it gave me an early opportunity to start the process of optimizing Masturbatrix early!
I am pretty far in the process. All the big stuff is there.
So much new stuff has been added that Masturbatrix is practically something different.
Hopefully I will have something to share soon'ish which should highlight some of the cool new stuff that is now possible.

Best of the best of the very best regards
Genome
Tribute to 1885 & those involved with Tease-AI.
Thank you for spending time on this awesome project! :-)
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 656
Joined: Tue Nov 18, 2008 11:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by markus »

rayray77 wrote: Fri Nov 11, 2022 1:13 pm and what better date to pick than 11.11.22 :-D
Take a look at the time the zip file was created, for a short moment I was about to zip it again 4 minutes later (would have been at 11:11), but I thought 'nah'. ;-)
PS: Typing that message with the read-me must have taken hours too :lol:
I did this step-by-step, over the time of developing, not all at once, ... but yes, counting all together it did take some hours for sure.


Daragorn wrote: Fri Nov 11, 2022 4:20 pm (i really love this....well...actually i managed to convince him to implement it)
And I can clearly remember me biting in my table with that @StrokeChange request! :lol:


genome231 wrote: Fri Nov 11, 2022 6:56 pm I am pretty far in the process. All the big stuff is there.
So much new stuff has been added that Masturbatrix is practically something different.
Hopefully I will have something to share soon'ish which should highlight some of the cool new stuff that is now possible.
Sounds amazing, and to be honest, I had the feeling that once this is out, you'd announce an update for Masturbatrix. :yes:





Markopolo wrote: Fri Nov 11, 2022 4:41 pm When I try to start it and accept the Terms and Conditions a small "start screen" appears and it crashes directly. Do I need to set up anything else before starting? I'm running it on Win 10 by the way, but changing to compatibility mode doesn't help. :weep:
Hi!

I am running this on Win7, there shouldn't be anything to 'set-up' first.
Please describe how exactly 'it crashes', ... do you get any error-message?
(If yes -> a screenshot and the log files might be helpful, just send them via PM to me).

I guess after some more people tried this out we will see if that's a problem with Win10 or not.
( Anyone has it running on Win10 ??? )



Best greetings,
Markus
lavolp
Curious Newbie
Curious Newbie
Posts: 2
Joined: Tue Jul 05, 2022 10:45 pm
Gender: Male
Sexual Orientation: Open to new ideas!
I am a: Switch

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by lavolp »

I get an error saying it can't find the path to "choose contact 1 special test audio file.txt.". It's in the blackjerk files.
The wierd thing is that i followed the path and it looks like it's there.
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 656
Joined: Tue Nov 18, 2008 11:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by markus »

lavolp wrote: Fri Nov 11, 2022 10:59 pm I get an error saying it can't find the path to "choose contact 1 special test audio file.txt.". It's in the blackjerk files.
The wierd thing is that i followed the path and it looks like it's there.
This sounds more like a script-problem than a problem with Tai Awakening itself, so this might be the wrong thread for this problem.
I'll send you a PM.

Best greetings,
Markus
User avatar
Lestat
Explorer At Heart
Explorer At Heart
Posts: 215
Joined: Wed Oct 21, 2009 9:53 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Location: Switzerland

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by Lestat »

I didn't use TAI since a long time, so I don't remember everything, especially the scripts but...

I used "A Sharp Awakening" twice, yesterday and today, and it runs smoothly :-) One thing I really miss is the "Lazy sub" controls to answer without typing. Hope it can be implemented without much troubles because it's really convenient imho ^^

Also in House of Tease the metronome sound sometime disappear.

Good work :clap:
Gentleman by day :oldtimer: Philosopher by night :hmmm: Pervert by choice :shutup2: Rebel by fate :punk:
Markopolo
Explorer
Explorer
Posts: 5
Joined: Mon May 17, 2021 7:31 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by Markopolo »

markus wrote: Fri Nov 11, 2022 7:35 pm
Markopolo wrote: Fri Nov 11, 2022 4:41 pm When I try to start it and accept the Terms and Conditions a small "start screen" appears and it crashes directly. Do I need to set up anything else before starting? I'm running it on Win 10 by the way, but changing to compatibility mode doesn't help. :weep:
I am running this on Win7, there shouldn't be anything to 'set-up' first.
Please describe how exactly 'it crashes', ... do you get any error-message?
(If yes -> a screenshot and the log files might be helpful, just send them via PM to me).
I guess after some more people tried this out we will see if that's a problem with Win10 or not.
( Anyone has it running on Win10 ??? )
Best greetings,
Markus
Sadly there is no error message. It just closes not even a second after I see this start screen with the sunset. I guess I have to wait and see if I am the only one with this problem.
Limwenia
Explorer
Explorer
Posts: 6
Joined: Sat Jul 03, 2021 2:26 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by Limwenia »

I just want to say congratulations with your major release, I'm really looking forward to playing with it and seeing how it'll evolve! Congratulations, and thank you once again for everything you do around here! :love:
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 656
Joined: Tue Nov 18, 2008 11:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by markus »

Markopolo wrote: Sat Nov 12, 2022 3:27 pm Sadly there is no error message. It just closes not even a second after I see this start screen with the sunset. I guess I have to wait and see if I am the only one with this problem.
I've just looked up that part of code and to be honest, right now, I have not the slightest idea why it close the app in your case.
I will try to put some more error-logging into it for the next update, but for now, like you mention, we have to wait and see if that happens only to you or if others have the same problem, sorry.


Lestat wrote: Sat Nov 12, 2022 1:49 pm I didn't use TAI since a long time, so I don't remember everything, especially the scripts but...

I used "A Sharp Awakening" twice, yesterday and today, and it runs smoothly :-)
Ah, that's great to hear, actually it was one of my hopes that with this project some people start to get interested (again) in the amazing concept of Tai and those great personalities out there! :-)

One thing I really miss is the "Lazy sub" controls to answer without typing. Hope it can be implemented without much troubles because it's really convenient imho ^^
This is the second request for the lazy-sub app I've got today, ... tztz... all those lazy subs out there! :-D ;-)

But seriously, ... to implement such a thing will take it's time/work, it's on the to-do-list, but it might take a while, until then you'll have to be a bit less lazy I think. ;-)
Also in House of Tease the metronome sound sometime disappear.
What exactly you mean by that?
Does it stutter? If not: In House of Tease the Metronome is not used all over the place, so sometimes the domme tells you to start stroking without a metronome playing.
Good work :clap:
Much appreciated, thx! :-)


Limwenia wrote: Sat Nov 12, 2022 6:12 pm I just want to say congratulations with your major release, I'm really looking forward to playing with it and seeing how it'll evolve! Congratulations, and thank you once again for everything you do around here! :love:
Just let me know what you think about it once you've actually played with it. ;-)



Best greetings,
Markus
SuccubiHunterRPG
Explorer At Heart
Explorer At Heart
Posts: 123
Joined: Tue Aug 23, 2022 8:42 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by SuccubiHunterRPG »

Hey Markus

Great work I am so excited to try this

As you know through our private messages I have been building a game using the old TeaseAi, Whilst not a dom personality as Tease AI was designed for I really liked some of the tools Tease AI gave. Unfortunately Tease AI is buggy and I love some of the features you have added to Awakening and as such I am very keen to ensure compatibility.

I have already reported one differences between the original and Awakening that is making my scripts incompatible and thanks for committing to fixing this, it's great you are so receptive.

This next one is not a big issue and I can easily work around it, it appears that Awakening does not like too many variables set on the one command line.

Truthfully I should not be setting more than one variable on a command line anyway. However I have done it extensively because I use variables a LOT and despite using @RapidCodeOn and @NullResponse I found that the old version of Tease AI ran a lot faster if I combined them on one line where I could.

In testing Awakening I found some parts of my game were not working and I created this test script which shows that it fails after creating 12 variables (or maybe it is the amount of text in a line)
Spoiler: show
(LoopTestScript)
Deleting variables to create a proper test
@DeleteVar[Test1]
@DeleteVar[Test2]
@DeleteVar[Test3]
@DeleteVar[Test4]
@DeleteVar[Test5]
@DeleteVar[Test6]
@DeleteVar[Test7]
@DeleteVar[Test8]
@DeleteVar[Test9]
@DeleteVar[Test10]
@DeleteVar[Test11]
@DeleteVar[Test12]
@DeleteVar[Test13]
@DeleteVar[Test14]
@DeleteVar[Test15]
Proving variables are deleted
@ShowVar[Test1]
@ShowVar[Test2]
@ShowVar[Test3]
@ShowVar[Test4]
@ShowVar[Test5]
@ShowVar[Test6]
@ShowVar[Test7]
@ShowVar[Test8]
@ShowVar[Test9]
@ShowVar[Test10]
@ShowVar[Test11]
@ShowVar[Test12]
@ShowVar[Test13]
@ShowVar[Test14]
@ShowVar[Test15]
Creating variables singularly
@SetVar[Test1]=[1]
@SetVar[Test2]=[2]
@SetVar[Test3]=[3]
@SetVar[Test4]=[4]
@SetVar[Test5]=[5]
@SetVar[Test6]=[6]
@SetVar[Test7]=[7]
@SetVar[Test8]=[8]
@SetVar[Test9]=[9]
@SetVar[Test10]=[10]
@SetVar[Test11]=[11]
@SetVar[Test12]=[12]
@SetVar[Test13]=[13]
@SetVar[Test14]=[14]
@SetVar[Test15]=[15]
Showing variables are created
@ShowVar[Test1] Test1
@ShowVar[Test2] Test2
@ShowVar[Test3] Test3
@ShowVar[Test4] Test4
@ShowVar[Test5] Test5
@ShowVar[Test6] Test6
@ShowVar[Test7] Test7
@ShowVar[Test8] Test8
@ShowVar[Test9] Test9
@ShowVar[Test10] Test10
@ShowVar[Test11] Test11
@ShowVar[Test12] Test12
@ShowVar[Test13] Test13
@ShowVar[Test14] Test14
@ShowVar[Test15] Test15
Deleting Variables
@DeleteVar[Test1]
@DeleteVar[Test2]
@DeleteVar[Test3]
@DeleteVar[Test4]
@DeleteVar[Test5]
@DeleteVar[Test6]
@DeleteVar[Test7]
@DeleteVar[Test8]
@DeleteVar[Test9]
@DeleteVar[Test10]
@DeleteVar[Test11]
@DeleteVar[Test12]
@DeleteVar[Test13]
@DeleteVar[Test14]
@DeleteVar[Test15]
Proving variables are deleted
@ShowVar[Test1]
@ShowVar[Test2]
@ShowVar[Test3]
@ShowVar[Test4]
@ShowVar[Test5]
@ShowVar[Test6]
@ShowVar[Test7]
@ShowVar[Test8]
@ShowVar[Test9]
@ShowVar[Test10]
@ShowVar[Test11]
@ShowVar[Test12]
@ShowVar[Test13]
@ShowVar[Test14]
@ShowVar[Test15]
Creating variables in bulk
@SetVar[Test1]=[1] @SetVar[Test2]=[2] @SetVar[Test3]=[3] @SetVar[Test4]=[4] @SetVar[Test5]=[5] @SetVar[Test6]=[6] @SetVar[Test7]=[7] @SetVar[Test8]=[8] @SetVar[Test9]=[9] @SetVar[Test10]=[10] @SetVar[Test11]=[11] @SetVar[Test12]=[12] @SetVar[Test13]=[13] @SetVar[Test14]=[14] @SetVar[Test15]=[15]
Showing variables are created
@ShowVar[Test1] Test1
@ShowVar[Test2] Test2
@ShowVar[Test3] Test3
@ShowVar[Test4] Test4
@ShowVar[Test5] Test5
@ShowVar[Test6] Test6
@ShowVar[Test7] Test7
@ShowVar[Test8] Test8
@ShowVar[Test9] Test9
@ShowVar[Test10] Test10
@ShowVar[Test11] Test11
@ShowVar[Test12] Test12
@ShowVar[Test13] Test13
@ShowVar[Test14] Test14
@ShowVar[Test15] Test15
Looping @Goto(LoopTestScript)
I probably don't expect you to fix it but it would be great if you can advise the restrictions so I know what to look for. I'm quite logical but I have never done any programing so looking at the code will do me no good :)

As an FYI for everyone else out there the other difference I found is that Markus implemented @jumpVideo as you would expect where JumpVideo(20) jumps to 20% of the way through the video, the old version with SweetPatch took it to 80% or 20% left
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 656
Joined: Tue Nov 18, 2008 11:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by markus »

SuccubiHunterRPG wrote: Sat Nov 12, 2022 8:44 pm it appears that Awakening does not like too many variables set on the one command line.

Truthfully I should not be setting more than one variable on a command line anyway. However I have done it extensively because I use variables a LOT and despite using @RapidCodeOn and @NullResponse I found that the old version of Tease AI ran a lot faster if I combined them on one line where I could.

In testing Awakening I found some parts of my game were not working and I created this test script which shows that it fails after creating 12 variables (or maybe it is the amount of text in a line)
First of all, in Awakening you don't have to worry about the time it takes for @NullResponse lines, as long as you use @RapidCodeOn, if that is activated each line has a delay of one milli-second, so let's say you have 1000 lines of code, you'll end up in one second of delay (plus the time the CPU might take to compute all of this).

So putting everything in just one line to raise the performance - like you did it for the original Tai - is not necessary anymore. :-)


Secondly, I must ask this: Did you have had all those commands in just ONE line????

Let me explain:
In Awakening there is actually a 'safe-net' (Daragorn came up with that term ;-) ) ... anyway, ... there IS a limit for how much commands per line can be used, now in the current version this is limited to 20 commands per line.

I could raise this limit, that wouldn't technically be a problem, ... but honestly,... from scripter to scripter, ... do yourself a favor and use one command per line, that would make your scripts much better readable/maintainable. ;-)


Best greetings and happy scripting,
Markus
SuccubiHunterRPG
Explorer At Heart
Explorer At Heart
Posts: 123
Joined: Tue Aug 23, 2022 8:42 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Basic Version

Post by SuccubiHunterRPG »

Thanks for the info

I agree that it's not ideal, I only did it because it made such a difference in the old version.

I will break up my scripts where necessary until I'm ready to abandon compatibility with the old version at which point I will break it up completely.
markus wrote: Sat Nov 12, 2022 9:24 pm
SuccubiHunterRPG wrote: Sat Nov 12, 2022 8:44 pm it appears that Awakening does not like too many variables set on the one command line.

Truthfully I should not be setting more than one variable on a command line anyway. However I have done it extensively because I use variables a LOT and despite using @RapidCodeOn and @NullResponse I found that the old version of Tease AI ran a lot faster if I combined them on one line where I could.

In testing Awakening I found some parts of my game were not working and I created this test script which shows that it fails after creating 12 variables (or maybe it is the amount of text in a line)
First of all, in Awakening you don't have to worry about the time it takes for @NullResponse lines, as long as you use @RapidCodeOn, if that is activated each line has a delay of one milli-second, so let's say you have 1000 lines of code, you'll end up in one second of delay (plus the time the CPU might take to compute all of this).

So putting everything in just one line to raise the performance - like you did it for the original Tai - is not necessary anymore. :-)


Secondly, I must ask this: Did you have had all those commands in just ONE line????

Let me explain:
In Awakening there is actually a 'safe-net' (Daragorn came up with that term ;-) ) ... anyway, ... there IS a limit for how much commands per line can be used, now in the current version this is limited to 20 commands per line.

I could raise this limit, that wouldn't technically be a problem, ... but honestly,... from scripter to scripter, ... do yourself a favor and use one command per line, that would make your scripts much better readable/maintainable. ;-)


Best greetings and happy scripting,
Markus
Post Reply

Who is online

Users browsing this forum: No registered users and 75 guests