I'm having a serious issue with the Settings/Personality GUI. My Tease AI Java seems broken even after a fresh install.
When taking my first steps into making a personality I copied the programstart.js from the Mischevious personality and edited it to my own needs. Turning it into:
I then edited the personalityutils.js's setUpGUI() function to add my own elements. Like so:
Code: Select all
function setUpGUI()
{
/* if (getVar("apathylevel", null) == null) {
setVar("apathylevel", 4);
}
registerVariable("apathylevel", "Apathy Level", "How mean/aggresive the dom will be. Can be a number between 1-10. WARNING: 8-10 will be very intense. Don't be afraid to start with a lower level like 3-6.");
addSpinner("Personality Settings", "apathylevel", 1, 10); */
/* if (getVar("orgasmchance", null) == null) {
setVar("orgasmchance", 70);
}
registerVariable("orgasmChance", "Orgasm Chance", "The average percent chance the domme will allow an orgasm. NOTE: This isnt the exact percent chance. That will vary some with the domme's mood and apathy level.");
addSpinner("Personality Settings", "orgasmChance", 1, 100); */
/* if (getVar("ruinchance", null) == null) {
setVar("ruinchance", 22);
}
registerVariable("ruinChance", "Ruin Chance", "The average percent chance the domme will ruin an orgasm. NOTE: This is the percentage an orgasm" +
"will be ruined after the domme has decided you will cum. Basically, to have an orgasm ruined, first the dom would have to decide to let you cum. Furthermore, " +
"if orgasm chance is 50% and orgasm ruined chance is 50%, 25% of the time you will get a ruined orgasm. This isnt the exact percent chance. That will vary some with the domme's mood and apathy level.");
addSpinner("Personality Settings", "ruinChance", 1, 100); */
/* if (getVar("minsessionlength", null) == null) {
setVar("minsessionlength", 15);
}
registerVariable("minsessionlength", "Minimum Session Length", "The minimum time in minutes that a session will last. NOTE: Session length will vary between min and max length based on domme's mood " +
"and apathy level. If either are left blank, the session will last the length as preferred tease duration.");
addSpinner("Personality Settings", "minsessionlength", 1, 300); */
if (getVar("maxsessionlength", null) == null) {
setVar("maxsessionlength", 180);
}
registerVariable("maxsessionlength", "Maximum Session Length", "The maximum time in minutes that a session will last. Set this to the longest possible time you have for the session. " +
"This does not increase the average session length! It only limits the domme if her intention was to go longer.");
addSpinner("Personality Settings", "maxsessionlength", 30, 300);
/* if (getVar("minstrokinglength", null) == null) {
setVar("minstrokinglength", 2);
}
registerVariable("minstrokinglength", "Minimum Stroking Length", "The minimum time in minutes that a stroking cycle will last. NOTE: Stroking cycle length will vary between min and max length based on domme's mood " +
"and apathy level.");
addSpinner("Stroking Settings", "minstrokinglength", 1, 60);
if (getVar("maxstrokinglength", null) == null) {
setVar("maxstrokinglength", 5);
}
registerVariable("maxstrokinglength", "Maximum Stroking Length", "The maximum time in minutes that a stroking cycle will last. NOTE: Stroking cycle length will vary between min and max length based on domme's mood " +
"and apathy level.");
addSpinner("Stroking Settings", "maxstrokinglength", 1, 60);
if (getVar("minholdinglength", null) == null) {
setVar("minholdinglength", 5);
}
registerVariable("minholdinglength", "Minimum Edge Holding Length", "The minimum time in seconds that an edge holding cycle will last. NOTE: Edge holding cycle length will vary between min and max length based on domme's mood " +
"and apathy level. The domme will choose closer to the minimum most of the time unless they are pissed so make the maximum your absolute max limit.");
addSpinner("Stroking Settings", "minholdinglength", 5, 1200);
if (getVar("maxholdinglength", null) == null) {
setVar("maxholdinglength", 120);
}
registerVariable("maxholdinglength", "Maximum Edge Holding Length", "The maximum time in seconds that an edge holding cycle will last. NOTE: Edge holding cycle length will vary between min and max length based on domme's mood " +
"and apathy level. The domme will choose closer to the minimum most of the time unless they are pissed so make the maximum your absolute max limit.");
addSpinner("Stroking Settings", "maxholdinglength", 5, 1200);
if (getVar("tauntfrequency", null) == null) {
setVar("tauntfrequency", 3);
}
registerVariable("tauntfrequency", "Taunt Frequency", "The frequency of taunts (0-5) that the domme will say while you are stroking or edging. NOTE: Inputting 0 will disable taunts entirely");
addSpinner("Stroking Settings", "tauntfrequency", 0, 5); */
if (getVar("assImagesEnabled", null) == null) {
setVar("assImagesEnabled", true);
}
registerVariable("assImagesEnabled", "Ass", "Should the domme display images from the 'Images\Amelie\Ass' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "assImagesEnabled")
if (getVar("boobsImagesEnabled", null) == null) {
setVar("boobsImagesEnabled", true);
}
registerVariable("boobsImagesEnabled", "Boobs", "Should the domme display images from the 'Images\Amelie\Boobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "boobsImagesEnabled")
if (getVar("thighsImagesEnabled", null) == null) {
setVar("thighsImagesEnabled", true);
}
registerVariable("thighsImagesEnabled", "Thighs", "Should the domme display images from the 'Images\Amelie\Thighs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "thighsImagesEnabled")
if (getVar("feetImagesEnabled", null) == null) {
setVar("feetImagesEnabled", true);
}
registerVariable("feetImagesEnabled", "Feet", "Should the domme display images from the 'Images\Amelie\Feet' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "feetImagesEnabled")
if (getVar("femdomImagesEnabled", null) == null) {
setVar("femdomImagesEnabled", true);
}
registerVariable("femdomImagesEnabled", "Femdom", "Should the domme display images from the 'Images\Amelie\Femdom' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "femdomImagesEnabled")
if (getVar("ruinedOrgasmsImagesEnabled", null) == null) {
setVar("ruinedOrgasmsImagesEnabled", true);
}
registerVariable("ruinedOrgasmsImagesEnabled", "Ruined Orgasms", "Should the domme display images from the 'Images\Amelie\Ruined Orgasms' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "ruinedOrgasmsImagesEnabled")
if (getVar("cbtImagesEnabled", null) == null) {
setVar("cbtImagesEnabled", true);
}
registerVariable("cbtImagesEnabled", "CBT", "Should the domme display images from the 'Images\Amelie\CBT' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "cbtImagesEnabled")
if (getVar("povImagesEnabled", null) == null) {
setVar("povImagesEnabled", true);
}
registerVariable("povImagesEnabled", "POV", "Should the domme display images from the 'Images\Amelie\POV' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "povImagesEnabled")
if (getVar("futaImagesEnabled", null) == null) {
setVar("futaImagesEnabled", true);
}
registerVariable("futaImagesEnabled", "Futa", "Should the domme display images from the 'Images\Amelie\Futa' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "futaImagesEnabled")
if (getVar("trapsImagesEnabled", null) == null) {
setVar("trapsImagesEnabled", true);
}
registerVariable("trapsImagesEnabled", "Traps", "Should the domme display images from the 'Images\Amelie\Traps' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "trapsImagesEnabled")
if (getVar("handjobsImagesEnabled", null) == null) {
setVar("handjobsImagesEnabled", true);
}
registerVariable("handjobsImagesEnabled", "Handjobs", "Should the domme display images from the 'Images\Amelie\Handjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "handjobsImagesEnabled")
if (getVar("blowjobsImagesEnabled", null) == null) {
setVar("blowjobsImagesEnabled", true);
}
registerVariable("blowjobsImagesEnabled", "Blowjobs", "Should the domme display images from the 'Images\Amelie\Blowjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "blowjobsImagesEnabled")
if (getVar("assjobsImagesEnabled", null) == null) {
setVar("assjobsImagesEnabled", true);
}
registerVariable("assjobsImagesEnabled", "Assjobs", "Should the domme display images from the 'Images\Amelie\Assjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "assjobsImagesEnabled")
if (getVar("thighjobsImagesEnabled", null) == null) {
setVar("thighjobsImagesEnabled", true);
}
registerVariable("thighjobsImagesEnabled", "Thighjobs", "Should the domme display images from the 'Images\Amelie\Thighjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "thighjobsImagesEnabled")
if (getVar("boobjobsImagesEnabled", null) == null) {
setVar("boobjobsImagesEnabled", true);
}
registerVariable("boobjobsImagesEnabled", "Boobjobs", "Should the domme display images from the 'Images\Amelie\Boobjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "boobjobsImagesEnabled")
if (getVar("footjobsImagesEnabled", null) == null) {
setVar("footjobsImagesEnabled", true);
}
registerVariable("footjobsImagesEnabled", "Footjobs", "Should the domme display images from the 'Images\Amelie\Footjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "footjobsImagesEnabled")
if (getVar("fuckingImagesEnabled", null) == null) {
setVar("fuckingImagesEnabled", true);
}
registerVariable("fuckingImagesEnabled", "Fucking", "Should the domme display images from the 'Images\Amelie\Fucking' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "fuckingImagesEnabled")
if (getVar("analImagesEnabled", null) == null) {
setVar("analImagesEnabled", true);
}
registerVariable("analImagesEnabled", "Anal", "Should the domme display images from the 'Images\Amelie\Anal' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "analImagesEnabled")
if (getVar("otherImagesEnabled", null) == null) {
setVar("otherImagesEnabled", true);
}
registerVariable("otherImagesEnabled", "Other", "Should the domme display images from the 'Images\Amelie\Other' folder? " +
"This is meant for images that do not fall under any other category. If enabled, make sure the folder is not empty!");
addCheckbox("Image Settings", "otherImagesEnabled")
if (getVar("analVideosEnabled", null) == null) {
setVar("analVideosEnabled", true);
}
registerVariable("analVideosEnabled", "Anal", "Should the domme display images from the 'Videos\Amelie\Anal' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "analVideosEnabled")
if (getVar("assjobsVideosEnabled", null) == null) {
setVar("assjobsVideosEnabled", true);
}
registerVariable("assjobsVideosEnabled", "Assjobs", "Should the domme display images from the 'Videos\Amelie\Assjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "assjobsVideosEnabled")
if (getVar("blowjobsVideosEnabled", null) == null) {
setVar("blowjobsVideosEnabled", true);
}
registerVariable("blowjobsVideosEnabled", "Blowjobs", "Should the domme display images from the 'Videos\Amelie\Blowjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "blowjobsVideosEnabled")
if (getVar("boobjobsVideosEnabled", null) == null) {
setVar("boobjobsVideosEnabled", true);
}
registerVariable("boobjobsVideosEnabled", "Boobjobs", "Should the domme display images from the 'Videos\Amelie\Boobjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "boobjobsVideosEnabled")
if (getVar("cbtVideosEnabled", null) == null) {
setVar("cbtVideosEnabled", true);
}
registerVariable("cbtVideosEnabled", "CBT", "Should the domme display images from the 'Videos\Amelie\CBT' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "cbtVideosEnabled")
if (getVar("footjobsVideosEnabled", null) == null) {
setVar("footjobsVideosEnabled", true);
}
registerVariable("footjobsVideosEnabled", "Footjobs", "Should the domme display images from the 'Videos\Amelie\Footjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "footjobsVideosEnabled")
if (getVar("fuckingVideosEnabled", null) == null) {
setVar("fuckingVideosEnabled", true);
}
registerVariable("fuckingVideosEnabled", "Fucking", "Should the domme display images from the 'Videos\Amelie\Fucking' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "fuckingVideosEnabled")
if (getVar("handjobsVideosEnabled", null) == null) {
setVar("handjobsVideosEnabled", true);
}
registerVariable("handjobsVideosEnabled", "Handjobs", "Should the domme display images from the 'Videos\Amelie\Handjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "handjobsVideosEnabled")
if (getVar("povVideosEnabled", null) == null) {
setVar("povVideosEnabled", true);
}
registerVariable("povVideosEnabled", "POV", "Should the domme display images from the 'Videos\Amelie\POV' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "povVideosEnabled")
if (getVar("ruinedOrgasmsVideosEnabled", null) == null) {
setVar("ruinedOrgasmsVideosEnabled", true);
}
registerVariable("ruinedOrgasmsVideosEnabled", "Ruined Orgasms", "Should the domme display images from the 'Videos\Amelie\Ruined Orgasms' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "ruinedOrgasmsVideosEnabled")
if (getVar("thighjobsVideosEnabled", null) == null) {
setVar("thighjobsVideosEnabled", true);
}
registerVariable("thighjobsVideosEnabled", "Thighjobs", "Should the domme display images from the 'Videos\Amelie\Thighjobs' folder? " +
"If enabled, make sure the folder is not empty!");
addCheckbox("Video Settings", "thighjobsVideosEnabled")
}
Running TAJ like this had some strange results.
1) The Appearance tab in the settings menu did not have the default "Twilight" theme anymore.
2) The personality tab only contained the variables sub-tab. Even the tab from Mischevious was gone.
Following this I commented out the parts of programstart.js that loaded chatutils.js and personalityutils.js.
Now the theme was back and the Mischevious sub-tab loaded correctly, but my amelie sub-tab now contained the following:
"Debug Mode" and "Rapid Testing" came from chatutils.js that should no longer be loaded and should have been in the "Debug Settings" tab, not general settings. "Ass" was one of my additions to personalityutils.js that again should no longer be loaded and should have been in the "Image Settings" tab, not general settings.
After this I decided to just delete the entire TAJ folder and start fresh. I renamed the programstart.js to test.js to make sure it didn't load on the new TAJ setup, but the same problems described in the above two paragraphs remained even with the new install and the programstart.js disabled.
One small thing of note is that the " 'Images\Amelie\Ass' " part of the description of the "Ass" setting is displayed as " 'ImagesAmelieAss' ". Not sure if that's in anyway relevant though.
I have no idea where to go from here, so any advice would be very much appreciated.