[Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

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

User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by FrozenWolf »

leezer3 wrote: Sat May 01, 2021 3:36 pm A suggestion:
You're spending a lot of time messing around with casing in filenames, and this can only get worse if other authors start pushing personalities.

It might be easier to just write a path insensitive combining function and use that instead.
https://github.com/leezer3/OpenBVE/blob ... em/Path.cs

Feel free to hijack these (they're C# but should be trivial to port to Java)
(I'm assuming this is targetted at me!)

I don't know how much time you think I've spent patching scripts to resolve case sensitive issues with filenames, but it's really not that much. Most of the media cross referencing was related to finding unused media and incorrect paths to media, and there were only a handful of case problems.

I do appreciate the suggestion for a generic solution within TAJ, it's something I've considered before. The actual implementation could be quite a significant change to TAJ and the APIs that bridge between JavaScript and Java. As (I believe) there are only a handful of Linux/iOS users, in the short term I just want to help them in the short term by spending a couple of hours patching scripts. I think the generic solution is more likely to take in excess of 40 hours; the implementation is fairly trivial but I anticipate the testing time to be significant. Perhaps you've got a better idea than me that'll be quicker/easier to implement.
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by FrozenWolf »

Ingvald_Alex wrote: Tue May 04, 2021 7:15 am Suddenly, the program freeze again. I have the latest version of the program with all the new fixes.

Log:
Spoiler: show

Code: Select all

03:35:47 AM CHAT: 03:35 AM Anna: I've stored so much frustration in my agonized family jewels today
03:35:58 AM CHAT: 03:35 AM Anna: And now I get to decide what to do about that...
03:36:05 AM CHAT: 03:36 AM Anna: I love this moment *wickedly grins*
03:36:16 AM CHAT: 03:36 AM Anna: I want you to stroke now but I guess we need to make some room on that penis first *grin*
03:36:25 AM INFO: Calculating mood for 843 and strictness 2
03:36:25 AM INFO: Feel like punishing chance: 21
03:36:25 AM INFO: Daily merit change modifier: 33
03:36:25 AM INFO: Calculating mood for 843 and strictness 2
03:36:25 AM INFO: Calculating mood for 843 and strictness 2
03:36:28 AM CHAT: 03:36 AM Anna: You may remove all clamps from your prick toy
03:36:37 AM CHAT: 03:36 AM Anna: Tell me when you are ready to continue
03:37:26 AM CHAT: 03:37 AM Alex: Yes Princess
03:37:28 AM CHAT: 03:37 AM Anna: Much better isn't it?
03:37:31 AM INFO: Current orgasm points 15/53.642082744805094
03:37:31 AM INFO: Calculating mood for 843 and strictness 2
03:37:35 AM CHAT: 03:37 AM Alex: No Princess
03:37:36 AM CHAT: 03:37 AM Anna: That prick looks like it's about ready to explode lmfao
03:37:44 AM CHAT: 03:37 AM Anna: Go ahead and fetch your shoelace
03:37:50 AM CHAT: 03:37 AM Anna: Tell me when you are ready to continue.
03:38:35 AM CHAT: 03:38 AM Alex: Yes Princess
03:38:36 AM CHAT: 03:38 AM Anna: Wonderful
03:38:40 AM CHAT: 03:38 AM Anna: Now take that rope and tie up your balls
03:38:46 AM CHAT: 03:38 AM Anna: Do it real nice and tight
03:38:52 AM CHAT: 03:38 AM Anna: But don't cut off the blood flow
03:38:58 AM CHAT: 03:38 AM Anna: Tell me when you are ready to continue
03:40:19 AM CHAT: 03:40 AM Alex: I am on the edge
03:40:19 AM INFO: Calculating mood for 843 and strictness 2
03:40:19 AM INFO: Changing merits (level 0) by -21
03:40:19 AM INFO: Calculating mood for 822 and strictness 2
03:40:22 AM CHAT: 03:40 AM Alex: I am sorry Princess
03:40:24 AM CHAT: 03:40 AM Anna: Just breathe in and out, relax the muscles in that fuckstick
03:40:33 AM INFO: Calculating mood for 822 and strictness 2
03:40:33 AM CHAT: 03:40 AM Anna: Are you having trouble keeping up slave?
03:40:36 AM CHAT: 03:40 AM Alex: No Princess
03:40:38 AM CHAT: 03:40 AM Anna: Oh good *mischievous grin*
03:40:42 AM CHAT: 03:40 AM Anna: Then we can continue
03:40:47 AM CHAT: 03:40 AM Anna: If you aren't done yet don't bother me.
03:40:52 AM CHAT: 03:40 AM Alex: Yes Princess
03:40:58 AM CHAT: 03:40 AM Alex: Yes Princess
03:41:04 AM CHAT: 03:41 AM Alex: Yes Princess
03:41:16 AM CHAT: 03:41 AM Alex: Done Princess
03:41:25 AM CHAT: 03:41 AM Alex: I am on the edge
03:42:02 AM CHAT: 03:42 AM Alex: Yes Princess
03:42:03 AM CHAT: 03:42 AM Alex: No Princess
03:42:11 AM CHAT: 03:42 AM Alex: I had an orgasm
Princess
03:42:03 AM CHAT: 03:42 AM Alex: No Princess
03:42:11 AM CHAT: 03:42 AM Alex: I had an orgasm
Another Log:
Spoiler: show

Code: Select all

10:26:39 AM INFO: Loaded 68 vocabularies.
10:26:39 AM INFO: Loaded 14 responses.
10:26:41 AM CHAT: Launching Spicy 0.1.5.1
10:26:42 AM INFO: Loaded 3 rooms
10:26:42 AM INFO: Loaded 2 end games
10:26:43 AM INFO: Mood after startup routine
10:26:43 AM INFO: Lust: 28
10:26:43 AM INFO: Happiness: 18
10:26:43 AM INFO: Anger: 23
10:26:43 AM INFO: Pushed 8 to result 17
10:26:43 AM INFO: Loaded 0 e stim modes
10:26:44 AM INFO: [Dildo] Longest: none
10:26:44 AM INFO: [Dildo] Shortest: none
10:26:44 AM INFO: [Dildo] Smallest: none
10:26:44 AM INFO: [Dildo] Thickest: none
10:26:44 AM INFO: [ButtPlug] Smallest: none
10:26:44 AM INFO: [ButtPlug] Biggest: none
10:26:44 AM INFO: Loaded 0 chastity cages
10:26:44 AM INFO: Loaded 0 dildos
10:26:44 AM INFO: Loaded 0 buttplugs
10:26:44 AM CHAT: [Vivienne]: Is there anything else I can do for you?
10:26:49 AM CHAT: 10:26 AM Alex: Session
10:26:49 AM INFO: Calculating mood for 822 and strictness 2
10:26:49 AM CHAT: [Vivienne]: Establishing session with Princess
10:26:56 AM INFO: Calculating mood for 822 and strictness 2
10:26:56 AM INFO: Starting session with mood: 1
10:26:56 AM INFO: Calculating mood for 822 and strictness 2
10:26:57 AM CHAT: 10:26 AM Anna: Hello slave
10:26:59 AM CHAT: 10:26 AM Alex: Hello Princess
10:27:00 AM INFO: Executing start and adding to history
10:27:00 AM INFO: Calculating mood for 822 and strictness 2
10:27:03 AM CHAT: 10:27 AM Anna: Are you as happy to see me as I am to see you?
10:27:11 AM CHAT: 10:27 AM Alex: Yes Princess
10:27:11 AM INFO: Calculating mood for 822 and strictness 2
10:27:13 AM CHAT: 10:27 AM Anna: I'm glad to hear that slave
10:27:16 AM INFO: Random toy interact
10:27:17 AM INFO: Random toy buttplug done
10:27:17 AM INFO: Random toy collar done
10:27:17 AM INFO: Looking into redistributing clamps that have been on for too long
10:27:17 AM INFO: Random toy pain done
10:27:17 AM INFO: Calculating mood for 822 and strictness 2
10:27:17 AM INFO: Annoyed by talking chance: 10
10:27:17 AM INFO: Calculating mood for 822 and strictness 2
10:27:17 AM INFO: Calculating mood for 822 and strictness 2
10:27:17 AM INFO: Feel like punishing chance: 21
10:27:17 AM INFO: Daily merit change modifier: 22
10:27:17 AM INFO: Feels like punishing so +50 spider gag chance
10:27:19 AM CHAT: 10:27 AM Anna: Go ahead and get your ball gag
10:27:25 AM CHAT: 10:27 AM Anna: Tell me when you are ready to continue.
10:27:34 AM CHAT: 10:27 AM Alex: I am on the edge
10:27:34 AM INFO: Calculating mood for 822 and strictness 2
10:27:34 AM INFO: Changing merits (level 0) by -17
10:27:34 AM INFO: Calculating mood for 805 and strictness 2
10:27:39 AM CHAT: 10:27 AM Anna: Just breathe in and out, relax the muscles in that tiny pecker
10:27:49 AM INFO: Calculating mood for 805 and strictness 2
10:27:49 AM CHAT: 10:27 AM Anna: Are you having trouble keeping up toy?
10:27:53 AM CHAT: 10:27 AM Alex: No Princess
10:27:55 AM CHAT: 10:27 AM Anna: Oh good *swallows*
10:27:58 AM CHAT: 10:27 AM Anna: Then we can continue
10:28:01 AM CHAT: 10:28 AM Anna: Are you done yet?
10:28:03 AM CHAT: 10:28 AM Alex: Yes Princess
10:28:06 AM CHAT: 10:28 AM Alex: Yes Princess
10:28:15 AM CHAT: 10:28 AM Alex: Yes Princess
s Princess
10:28:06 AM CHAT: 10:28 AM Alex: Yes Princess
10:28:15 AM CHAT: 10:28 AM Alex: Yes Princess
As I understand it, the program freezes when you accidentally click on "Edge" and then answer "No" to the question "Are you having trouble keeping up toy?"
It seems to originate from the random toy interaction. I wonder if the answer 'I am on the edge' is being chewed up by the unauthorised edge handler and causes subsequent answers to "Are you done yet" to be missed. I'll take a look.
Ingvald_Alex wrote: Tue May 04, 2021 7:15 am How do I stop "Edge a ton", but continue the session? More than 20 edges in a row is too much! Last time there were 37 edges...

And please add a "Safeword". With which you can either stop the session completely if something went wrong, or switch to another action.
The safeword is a great idea for some of those particularly challenging sessions. Maybe this is something that GodDragon can incorporate.
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by FrozenWolf »

Ingvald_Alex wrote: Thu May 06, 2021 2:30 pm One more freeze.

Log:
Spoiler: show

Code: Select all

05:26:13 PM INFO: Trying to run module \Session\Modules\Pain\NoChastity\BallCrusherPlay.js
05:26:13 PM INFO: Trying to run module \Session\Modules\Pain\NoChastity\ParachutePlay.js
05:26:13 PM INFO: Trying to run module \Session\Modules\Pain\Neutral\EStimPlay.js
05:26:13 PM INFO: Trying to run module \Session\Modules\Pain\Dynamic\BallBusting.js
05:26:13 PM INFO: Unable to find module for category Pain to run
05:26:13 PM INFO: Stuck in module Pain loop . Trying tease now
05:26:13 PM INFO: Pushed 2 to result 2
05:26:13 PM INFO: Pushed 7 to result 9
05:26:13 PM INFO: Pushed 1 to result 10
05:26:13 PM INFO: Trying to run module \Session\Modules\Tease\NoChastity\AssWorship.js
05:26:13 PM INFO: Trying to run module AssWorship from category 6 and was in previous module is false
Exception in thread "Thread-29" java.lang.NullPointerException
	at me.goddragon.teaseai.api.picture.PictureSet.getRandomPictureForTagStates(PictureSet.java:88)
	at me.goddragon.teaseai.api.picture.PictureSet.getRandomPictureForTagStates(PictureSet.java:54)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$414$1020AA$\^eval\_.showDommeTaggedImageForPictureTag(<eval>:34)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$412$\^eval\_.:scopeCall(<eval>)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$412$\^eval\_.:program(<eval>:10)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$339$2711A$\^eval\_.runModuleCategory(<eval>:72)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$411$\^eval\_.:program(<eval>:4)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$339$2711A$\^eval\_.runModuleCategory(<eval>:72)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$409$\^eval\_.:program(<eval>:6)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$339$2711A$\^eval\_.runModuleCategory(<eval>:72)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$408$\^eval\_.:program(<eval>:4)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$339$2711A$\^eval\_.runModuleCategory(<eval>:72)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$406$\^eval\_.:program(<eval>:3)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$339$2711A$\^eval\_.runModuleCategory(<eval>:72)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$289$\^eval\_.:scopeCall-9(<eval>)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$289$\^eval\_.:program(<eval>:179)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$249$\^eval\_.:program(<eval>:91)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$241$5149$\^eval\_.startSession(<eval>:131)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$233$\^eval\_.:program(<eval>:38)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$46$\^eval\_.:scopeCall(<eval>)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$46$\^eval\_.:program(<eval>:148)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.startPersonality(ScriptHandler.java:144)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.startPersonality(ScriptHandler.java:126)
	at me.goddragon.teaseai.api.session.Session$1.run(Session.java:41)
05:28:48 PM CHAT: 05:28 PM Alex: No Mistress
05:28:52 PM CHAT: 05:28 PM Alex: Yes Mistress
05:28:53 PM CHAT: 05:28 PM Alex: I am sorry Mistress
05:28:55 PM CHAT: 05:28 PM Alex: I am on the edge
05:28:57 PM CHAT: 05:28 PM Alex: I am on the edge
ss
05:28:55 PM CHAT: 05:28 PM Alex: I am on the edge
05:28:57 PM CHAT: 05:28 PM Alex: I am on the edge
That looks like a bug in TAJ that you've found. TAJ was unable to find suitable images matching one or more tags, and then there's a small arithmetic mistake which results in a null pointer. Should be a simple fix at least :-).
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by FrozenWolf »

Those are some good thoughts and and suggestions. I'll address a couple of them.
Helequin wrote: Sat May 08, 2021 5:12 am I am also seeing black images when the domme reaches for URL files at times. I began with the Spicy starter pack, so the url files are reddit based and set-up right. What I'm noticing in the downloaded pictures files there are a number of mp4 files, likely due now to the prevalence of "gifs" which are not at all actual gifs. Also quite a few broken imgur images, but not sure there's anything which can be done about that.
Unfortunately, that might be the case for non tumblr URLs. I haven't had the chance to look into other remote image sources yet. TAJ does need some enhancements in that area, something that GodDragon is aware of. It certainly doesn't help when those sites occasionally update their web page format. It's interesting if we're now seeing more mp4 files cropping up. I'm expecting webp and webm to start appearing at some point.
Helequin wrote: Sat May 08, 2021 5:12 am Last point, I said yes to the domme asking for verbal humiliation and she immediately took it to a more intense level than I thought she meant. Limits in these areas can always be really hard to quantify as there is a huge range of what might be considered humiliation, but is there a way to set this back to 'Maybe' instead of 'Yes'?
If you close down TAJ completely, you can then edit the file:
Personalities/Spicy/System/Variables/verbalhumiliation.var
and change the content from this:

Code: Select all

1
false
to this:

Code: Select all

2
false
The '2' is the equivalent of MAYBE.
leezer3
Explorer
Explorer
Posts: 38
Joined: Sat Mar 28, 2020 10:31 am

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by leezer3 »

FrozenWolf wrote: Sat May 08, 2021 4:22 pm (I'm assuming this is targetted at me!)

I don't know how much time you think I've spent patching scripts to resolve case sensitive issues with filenames, but it's really not that much. Most of the media cross referencing was related to finding unused media and incorrect paths to media, and there were only a handful of case problems.

I do appreciate the suggestion for a generic solution within TAJ, it's something I've considered before. The actual implementation could be quite a significant change to TAJ and the APIs that bridge between JavaScript and Java. As (I believe) there are only a handful of Linux/iOS users, in the short term I just want to help them in the short term by spending a couple of hours patching scripts. I think the generic solution is more likely to take in excess of 40 hours; the implementation is fairly trivial but I anticipate the testing time to be significant. Perhaps you've got a better idea than me that'll be quicker/easier to implement.
Both you and GodDragon TBQH, it's sometimes unclear as to the distinction between who decides on what feature :-P
I suspect (although I haven't really looked into the codebase with regards to paths) that it'll have the same issue with personality modules, variables and anything similar.

The linked C# code is over 12 years old & pretty well tested at this point (thousands of downloads a month, reasonable proportion of Linux etc.), but I absolutely take your point- If you want unit tests or validation, then it'll be a pig of a job to deal with.

---

Less controversial things:
It seems to me that the waitForCumAnswer function is bugged.
https://github.com/GodDragoner/Spicy-TA ... asm.js#L43
The only response this will accept without punishment is the thank-you.

Whilst it's unclear as to the intent of the rule, it would seem to me that the *logical* progression should be as follows:
Sub gives initial cum response.
Answer loops for N time (few seconds), waiting for the thank-you response.
Dom punishes if appropriate thanks is not given in this timescale.

It also feels as though the final else block should be a query as to whether the sub has cum or not, as opposed to dishing out a punishment for a 'wrong' response.
Ingvald_Alex
Explorer
Explorer
Posts: 70
Joined: Mon Mar 22, 2021 8:02 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by Ingvald_Alex »

What do I need to change if I have a girlfriend or get married? But the sessions were when I was Single.

What if I don't want a session. Boring and even more so yesterday was already. How to skip or change to another?
Last edited by Ingvald_Alex on Tue May 11, 2021 10:35 am, edited 1 time in total.
Kirishima
Explorer
Explorer
Posts: 11
Joined: Sat Jan 26, 2019 10:01 am

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by Kirishima »

I don't see CEI anywhere mentioned, so I'd like to throw that one in aswell ;)
Ingvald_Alex
Explorer
Explorer
Posts: 70
Joined: Mon Mar 22, 2021 8:02 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by Ingvald_Alex »

Kirishima wrote: Tue May 11, 2021 10:23 am I don't see CEI anywhere mentioned, so I'd like to throw that one in aswell ;)
There is CEI here. Alternatively, walk several times to the edge without permission and she will make you eat everything. Moreover, CEI is among the limits in setting limits and when you first start the program.

https://prnt.sc/12st3kc
Kirishima
Explorer
Explorer
Posts: 11
Joined: Sat Jan 26, 2019 10:01 am

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by Kirishima »

Ingvald_Alex wrote: Tue May 11, 2021 10:30 am
Kirishima wrote: Tue May 11, 2021 10:23 am I don't see CEI anywhere mentioned, so I'd like to throw that one in aswell ;)
There is CEI here. Alternatively, walk several times to the edge without permission and she will make you eat everything. Moreover, CEI is among the limits in setting limits and when you first start the program.

https://prnt.sc/12st3kc
Alright Cool, I was going off of the feature list, installing it right now.
Kirishima
Explorer
Explorer
Posts: 11
Joined: Sat Jan 26, 2019 10:01 am

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by Kirishima »

Edit: I solved the issue I had.
Kirishima
Explorer
Explorer
Posts: 11
Joined: Sat Jan 26, 2019 10:01 am

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by Kirishima »

Hey, probably known issue but a lot of the tumblr links just show that the tumblr has been suspended cuz of TOS breach
Ingvald_Alex
Explorer
Explorer
Posts: 70
Joined: Mon Mar 22, 2021 8:02 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by Ingvald_Alex »

New freeze.

Log:
Spoiler: show

Code: Select all

09:54:57 AM CHAT: 09:54 AM Justine: Now take that rope and tie up your balls
09:55:03 AM CHAT: 09:55 AM Justine: Do it real nice and tight
09:55:07 AM CHAT: 09:55 AM Justine: But don't cut off the blood flow
09:55:12 AM CHAT: 09:55 AM Justine: Tell me when you are ready to continue
09:56:27 AM CHAT: 09:56 AM Alex: Yes Mistress
09:56:27 AM INFO: Random toy balls done
09:56:27 AM INFO: Calculating mood for 537 and strictness 2
09:56:27 AM INFO: Feel like showing power: 67
09:56:27 AM INFO: Min time between stroking passed: 30
09:56:27 AM INFO: Calculating mood for 537 and strictness 2
09:56:27 AM INFO: Calculating mood for 537 and strictness 2
09:56:27 AM INFO: Choosing module based on the following chances:
09:56:27 AM INFO: Tease: 40
09:56:27 AM INFO: Sissy: 0
09:56:27 AM INFO: Pain: 50
09:56:27 AM INFO: Slave: 50
09:56:27 AM INFO: Humiliation: 0
09:56:27 AM INFO: Selector is 98
09:56:27 AM INFO: Unable to find module for category Slave to run
09:56:27 AM INFO: Stuck in module Slave loop . Trying tease now
09:56:27 AM INFO: Pushed 2 to result 2
09:56:27 AM INFO: Pushed 7 to result 9
09:56:27 AM INFO: Pushed 1 to result 10
09:56:27 AM INFO: Trying to run module \Session\Modules\Tease\NoChastity\EnduranceStrokes.js
09:56:27 AM INFO: Trying to run module EnduranceStrokes from category 6 and was in previous module is false
09:56:30 AM CHAT: 09:56 AM Justine: Let's train that subservient cock with some more endurance strokes toy
09:56:39 AM CHAT: 09:56 AM Justine: Show me you can handle it *grin*
09:56:46 AM CHAT: 09:56 AM Justine: Start stroking that frustrated pecker nice and slow toy LOL
09:56:56 AM INFO: Calculating mood for 537 and strictness 2
09:56:59 AM CHAT: 09:56 AM Justine: Hold back that edge while staring at my ass bimbo *evil grin*
Exception in thread "Thread-29" java.lang.NullPointerException
	at me.goddragon.teaseai.api.picture.PictureSet.getRandomPictureForTagStates(PictureSet.java:88)
	at me.goddragon.teaseai.api.picture.PictureSet.getRandomPictureForTagStates(PictureSet.java:54)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$447$1020AA$\^eval\_.showDommeTaggedImageForPictureTag(<eval>:34)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$445$\^eval\_.:program(<eval>:237)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$383$2711A$\^eval\_.runModuleCategory(<eval>:72)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$336$\^eval\_.:scopeCall-9(<eval>)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$336$\^eval\_.:program(<eval>:185)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$282$\^eval\_.:program(<eval>:91)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$280$5149$\^eval\_.startSession(<eval>:131)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$271$\^eval\_.:program(<eval>:38)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.evalScript(ScriptHandler.java:171)
	at me.goddragon.teaseai.api.scripts.nashorn.RunFunction.call(RunFunction.java:30)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker.JSObjectLinker.jsObjectScopeCall(JSObjectLinker.java:254)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$46$\^eval\_.:scopeCall(<eval>)
	at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$46$\^eval\_.:program(<eval>:148)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
	at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:456)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:413)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:409)
	at jdk.scripting.nashorn/jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:157)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.runScript(ScriptHandler.java:190)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.startPersonality(ScriptHandler.java:144)
	at me.goddragon.teaseai.api.scripts.ScriptHandler.startPersonality(ScriptHandler.java:126)
	at me.goddragon.teaseai.api.session.Session$1.run(Session.java:41)
Personality(ScriptHandler.java:126)
	at me.goddragon.teaseai.api.session.Session$1.run(Session.java:41)
What is the difference between Atonement and Pay Fine? In fact, punishment points are removed for gold in both places. Only in the first case, Domina's mood also worsens and it is more expensive. But in essence, the result in both cases is the same - gold instead of punishment. And why then the Atonement?
User avatar
Helequin
Experimentor
Experimentor
Posts: 1095
Joined: Sat Sep 09, 2006 11:59 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Location: Canada

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by Helequin »

Some more generic feedback/suggestions after playing about and some poking around in Spicy's files. Again will toss it in spoilers for neatness.

Brainwashing
Spoiler: show
At least the videos Spicy has grabbed for me really should be tied to the Sissy limit. Might also be worth considering how long the videos for this should be. Spicy defaults to 45 min sessions and one of the videos in the fold is 24 minutes long, so a session can easily be dominated by one brainwash.

Like the idea of the hypno/brainwashing though, and it could be expanded beyond the sissy content too.
Blowjob Stuff
Spoiler: show
I actually appreciate that the blowjob training and tasks are not locked behind the sissy limit. This one can be a tricky distinction to make in tease format, but to me there is a definite difference between being made to suck off a domme's strap-on or being attracted to a trans woman and being into sissification. Of course the main difference is theme, tone and presentation.

Hmmm, perhaps 'Attracted to Trans' could eventually be another limit and give Spicy more ways to tease and train the sub for blowjob and anal without sissification.
Domme Slideshow
Spoiler: show
It appears Spicy basically does not show any nudity except for when doing worship. I totally understand where this is coming from in D/S terms, but I'd suggest making this a configurable option. Not everyone goes for the clothed = powerful image.

On a practical side, picture sets of models can be 100 or so images but only be fully clothed for the first five or ten. This turns Spicy into more of a static image than immersive domme moving and changing positions, at least for the tagged sets I have.

Poking around it looks like TAI is grabbing a random fully clothed image as it stands now. The ideal would probably be some sort of progressive advance through the images as a sort of strip tease if nudity was going to be shown.
Playing Help Me Cum Please!
Choosing a Goddess - a set for anyone to play
The 1000th Reply Celebration Challenge and it's Finale - an ongoing challenge to try
Co-author of Kyla's Party - webtease based on Help me Cum Please.


Miss Elyna's Cum Challenge Winner
bkrop
Explorer
Explorer
Posts: 15
Joined: Sun Feb 28, 2021 1:40 pm

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by bkrop »

How do i like restart the whole script.
like start all the setup again from the beginning?
Ingvald_Alex
Explorer
Explorer
Posts: 70
Joined: Mon Mar 22, 2021 8:02 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: [Tease AI Java] Spicy (Open Alpha | 16.12 | v0.1.5.1)

Post by Ingvald_Alex »

Dragon God, do something with duration: edge training, edge a ton and others. Since the session can take up to 3 hours, although initially the session was supposed to last 60 or 90 minutes. Plus, some practices, due to such a duration, are exhausting in the trash, so they also have a negative effect on the cardiovascular system. Gradually, the program becomes impossible to use.
Post Reply