
Her busts aren’t complete enough for the patch, but “big mode” Maria ensures muscle-lovers are eating well… (by Adjatha)
Oof, this one was a long time coming! There was a real case of “just one more thing” as I was buried deep in the guts of the tease combat systems that kept me from pushing this out earlier, but that delay means you guys get a more robust, more bra-filling TiTS update than ever! The changelog is going to be gigantic, so let me get to it quick-like. All the jabbering about the under-the-hood work will be down below the “read more” link. Check it out if it interests you, or just enjoy all the new content and QoL features!
(Also save often – I was deep in the wires so there might be a short in there causing crashes for a day or two~)
Hotfix #1 Changelog:
- [Live] Cleaned up several lingering “hasLipGloss” checks that were blowing up. Those were one of the old lip gloss functions that have been MOSTLY excised – now fully!
0.9.167 Changelog:
- [Now Public] Mags! Since this patch took a little extra time to get out the door, the birdy blowjobbing mechanic is getting pushed into public hands a patch early!
- [Now Public] Kiro & Amber tentacle feeding!
- [Now Public] Cerulleyan!
- [Backer Exclusive] New Character – Maria! A shark-girl with double dicks you can run into repeatedly across different planets. She’s first encountered on Esbeth’s streets, then in the Novahome hangar on Tarkus! Written by Fr0sty and coded by Leek!
- [Backer Exclusive] Paulette, Zero Plus, and Shekka tentacle feeding scenes have been added! Shekka has completely different scenes for futa vs non, and Paulette also got a scene to offer her a Steelesuit (which she WILL turn down). Paulette & ZP authored by Magenta Needle, Shekka authored by Dreamer44, and all of it coded by me (Fenoxo).
- [Backer Exclusive] New Lip Gloss Items: Stargloss (an aphrodisiac-dispensing lip gloss patterned after the harpy lip gloss from CoC1) and Gloomgloss (a strength-sapping variant of Stargloss for the goths!) Originally written by Hanzo & coded by Leek, then massively reworked by Fenoxo.
- [New Public Content] Chroma Gloss – since we’re piling up a number of special lip glosses with crazy effects, I decided to make a simple, custom-coloring lip gloss for those that want to paint on temporary colors to their heart’s content! Written & coded by Fenoxo.
- [New Ship Busts] K7 Clydesdale with text fixed and Sledgehammer MkII, by Brammer001.
- [New CG] Ula pregnant cunnilingus by ToonNik. I’ll be sharing the full image on Patreon for those who want to see it immediately~
- [Programmer Art Bust] I made a temporary bust for the tentacle tank tentacles out of hue-shifted cockvine seedling busts from Adjatha. (Fenoxo’s bad shopping~)
- [New Rework] Sense Ability – the “Sense” option in combat was a bit overblown in size and data for what it was meant to communicate, and at the same time, it didn’t do a good enough job communicating it at all. I’ve basically rebuilt it from scratch. (Fenoxo)
- Sense now displays likes & dislikes that are most relevant to your character first, then list off the likes & dislikes that don’t apply, just in case you’d like to know for the future.
- “Bonus likes” from Geddanium Ring Piercings and Urtanium Ring Piercings should now display in the sense attack if they are applicable.
- “Hyper” likes & dislikes should now list any parts they currently apply to for clarity.
- Damage type resistances are no longer listed if the NPC has no extra resistance or vulnerability, to remove clutter.
- HP & Shield damage resistances are listed together, shield first. Previously it would only show shield resistances until they were depleted.
- Spacing between sections was cleaned up and should now be consistent for just about every enemy case.
- [Lipstick Rework] To support all the new lip gloss items, a standardized system for managing them was added! (Fenoxo)
- lipstickColor and lipstickIdentifier were added the player character’s data to track information on the currently applied lip gloss.
- A unified lipstick status effect is used for tracking the duration of lip glosses, instead of a mess of ~7 different unique and different statuses.
- A unified system for smudging off some of the duration during oral sex (trigged by “mouth-filling” events) was added instead of a grab-bag of custom code. Lipstick items define how much duration is lost during such acts, and can be configured not to lose any duration.
- Applied lipstick grants a +1 sexiness bonus, though the value can be higher for particularly rare or prized items.
- Most “infinite” lipstick items were converted to single-use items that stack up to 200. Their prices were dropped across the board from ~3000 to ~500 to compensate. Infinite use lipstick items can still be added or brought back, but would ideally by Rare or Custom-tier items obtained from a challenge, not a cheap purchase in a shop.
- Several lipsticks with special tease attacks were folded into the new “Kiss” attack, more on that below…
- [New Tease Attack: Oral] A new “Oral” tease attack was added to the game, driven primarily off of your character’s facial appearance. I had intended to make this just for PCs who had modified their mouth in some slutty way (bigger lips) or were wearing lipsticks, but after further consideration, I left it open to anyone who’d like to make a show of blowing kisses at their enemy mid combat. I’m not 100% sure that the texts I’ve whipped up work that well with turbo-masculine PCs, but I also have a hard time imagining a turbo-masculine mouth tease myself, as a femininity-loving straight(ish) man. (Fenoxo)
- [New Tease Attack: Kiss] We had a lot of lip glosses with different versions of kissing NPCs piling up in the game, each coded in their own special little way, some of which were a little nonsensical and featured things like knocking over the target and slurping on their balls but not actually grappling them? Mid-combat forced fellatio stretched my suspension of disbelief a little too far (and made me wonder why one item would let you suck a cock mid-combat, but the other that healed you on giving BJs wouldn’t – it’d be OP as helllll.) I reworked ALL of them to function off of kissing the target in general, and devised a new “Kiss” attack that anybody should be able to take advantage. However, as you’re in combat, to land a kiss, you’ll need to put your enemy on disadvantageous footing to close in and deliver a fun smooch. One of the following statuses is a prerequisite to going in for a kiss: charmed, trap, stagger, stun, paralyzed, or blinded. You won’t be able to try if you’re blind yourself!
- Kiss attacks deal drug type damage instead of tease type damage when wearing appropriate lip glosses.
- Kiss attacks deal +3 bonus damage relative to other tease attacks.
- [Tease & Lust Damage Mechanics Rework] The underlying mechanics for teasing got a HUGE rework.
- Some bonuses were applied multiple times or in an inconsistent manner with tease & lust damage attacks. This has been corrected.
- Several bonuses to tease damage that were done before the “damage cap” are now applied after.
- “Tease skill” or “To-Hit” for landing teases is based on libido, but a level cap has been applied to it so that extremely libidinous characters are not quite so over-advantaged at low-mid levels. The cap is still generous to allow players a large advantage against even maximally strong-willed foes.
- “To hit” bonuses for tease attacks from likes & dislikes now max out at a +/-20 bonus (instead of +/-50). For a check with a d20 roll, a 50 point bonus was frankly excessive to the point of invalidating anything short of maximally sexy characters.
- Libido no longer factors into base tease damage. Level is factored in instead, in a way that should roughly match the average lust defense as enemy levels rises.
- New sexual like/dislike type: muzzles, for the furry lovers out there.
- Musk bonuses now apply at 1/2 rate for teases. Against blinded targets, the bonuses are applied at 1.5x rate.
- “Shine” bonuses are now applied at full rate for teases. They provide 0 bonus against blinded targets. Current shine bonuses are gained from “Black Latex” skin perk, painted tits, painted cock, or being covered in fluids. A “Glossy Scales” perk is going to be added to several “scaley-type” transformations soon.
- Several new body parts can count for the “Hyper” sexual preference – very plumped vaginas (3+ plumpness rating) and huge balls (7+ inch diameter) are now counted.
- Tripped or staggered enemies are now easier to successfully land teases on (+10 to-hit roll).
- Global bonuses to tease (and other lust-type damage) are now a bit more constrained and logical. Musk bonuses are added to melee-sourced lust damage like whips (and add more against blind foes). Shine bonuses are added to ranged lust damage attacks (unless the target is blind).
- Multiplier-based adjustments to lust damage taken are now totaled and multiplied at once instead of done in sequence. The multiplier value has also been capped at +50% for now, though I’m thinking I may bump it up to +75% in the future. This should make multiple sources of increased lust damage slightly less debilitating, and buff/debuffs like the “Tallavarian Tingler” more survivable.
- Red Myr Venom status now indicates the % bonus to lust damage taken (25%).
- Blue balls lust vulnerability reduced from 25% to 10%.
- Enemy lustDefense was nudged back up slightly.
- [Ancient Bug] I discovered a gigantic and longstanding bug that had somehow escaped notice and repair: many of the global sexual likes/dislikes were not being properly combined into the like/dislike list for most tease attacks, and as such had no effect. For example, an enemy that hates furries would not actually take less lust damage from a furry character. It was an error with using the array.concat(arrayToMergeIn) method in javascript that requires you to use an assignment like array = array.concat(arrayToMergeIn). I felt like I was taking crazy pills for a minute trying to figure that one out, and it seems to have been in the game since at least the conversion to javascript! No longer! (Fenoxo)
- [Ancient Bug] A small bug in the hasPiercing() inventory function meant some special piercings were not properly having their effects applied. As you might imagine, I discovered this while trying to validate the sense menu updates for Geddanium Ring Piercings. This one has also been like this for at least… five years. Well it works now! (Fenoxo)
- [New Unlockable Perks] Vixen Musk & Mare Musk have been added to Foxfire and Horse Pills. (Fenoxo)
- Clawed hands now grant +1 to melee attack damage. (Fenoxo)
- Non-clawed hands now grant +1 to ranged attack damage. (Fenoxo)
- Centaurs & Driders now have a +5 bonus to saving throws against being tripped. (Fenoxo)
- Bipeds now recover from “Staggered” twice as fast. (Fenoxo)
- Monopods (Goo/Nagas) now have a +5 bonus to escaping from Grapples. (Fenoxo)
- Morphology Bonuses codex entry should now collect and list all your present morphology bonuses.
- Ceria’s shop was split into “Lipstick Shop” and “Beauty Mods,” also roughly alphabetized. (Fenoxo)
- The omnisuit should play nicer with worn skin-tight garments – like the hardlight taursuit. (Jacques00)
- Captain Khorgan is now immune to disarm. (Jacques00)
- Fixed a piercing duplication bug. (Jacques00)
- Psionic attribute-swapping dreams now allow you to turn down the alteration. (Jacques00)
- Fixed a soft-lock with Mags. (Jacques00)
- The Rival’s bust should unlock in the gallery even when skipping the tutorial. (Jacques00)
- Fixed a teaching exploit with Venus. (Jacques00)
As you can see from the patch notes – a lot changed, whether it’s a bunch of new content with the tentacles (the final batch, tbh), a new NPC, or just absolutely going insano-mode on lips & teases. It felt like every day I’d be swimming through the code and find something else that I would want to change or rework to function in a more immersive or outright better way. Reworking lip glosses meant making a new tease attack, which meant making sure I had fully loaded the totality of tease attack functions into my brain.
Of course, I wound up finding things like sexiness or musk being added multiple times or in inconsistent ways along the way, or damage multipliers being added in strange places or strange ways. And just when I’d finish one part, my dumb ass would get irritated at the “Sense” screen and concept how I’d want to rework it… when I was supposed to be in bed. Lo and behold, I’m there with my laptop on the sheets until 3am figuring out how to build checking which sexPrefs are applicable to the current player character and sorting them appropriately. And go figure, adding the sexPref-giving piercings means discovering that piercings weren’t even being detected properly!
A LOT has changed. The tease combat experience is likely going to feel a little foreign – but hopefully more responsive and interesting. Kisses requiring setup but delivering bonus damage is a nice touch. Lip glosses that alter the damage type or kisses may give more options for enemies who are tease-resistant but drug-weak. The better sense menu should make it easier to plan your tease attacks at a glance.
Perhaps the part I’m least certain about is all the adjustments and shifts to damage. In my functionality testing, it seemed to work well, but I’ll need your feedback to know if I’ve hit the bullseye or missed the target entirely. I will be spending some more time running a test save through the game before digging back into more active development again just to get a better feel for it myself, but let me know! Is it too easy being a turboslut, even at the endgame? Are you struggling on Phaedra? Is it too good even for high-resolve, low-libido builds or unworthy of even considering against tease-weak foes?
I’m not done noodling in the combat systems by a long shot, and the more data I have, the better. Just be kind about it if you can! 2026 is a rough enough year without biting out each others’ throats. <3
-Fen

Version: 0.9.167-BACKER#7252
Message:
this.hasLipGloss is not a function
Stack:
TypeError: this.hasLipGloss is not a function
at o.value (https://www.fenoxo.com/play/TiTS/backer/main.29ea2d27.js:1:2663390)
at https://www.fenoxo.com/play/TiTS/backer/main.29ea2d27.js:1:19767770
at KC (https://www.fenoxo.com/play/TiTS/backer/main.29ea2d27.js:1:19767789)
at UC (https://www.fenoxo.com/play/TiTS/backer/main.29ea2d27.js:1:19704231)
at e.value (https://www.fenoxo.com/play/TiTS/backer/main.29ea2d27.js:1:18684932)
at Object. (https://www.fenoxo.com/play/TiTS/backer/main.29ea2d27.js:1:18743835)
at https://www.fenoxo.com/play/TiTS/backer/main.29ea2d27.js:1:12709244
at https://www.fenoxo.com/play/TiTS/backer/main.29ea2d27.js:1:11583897
at Object.We (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:555316)
at $e (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:555470)
at https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:573673
at Or (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:573767)
at Rr (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:574181)
at https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:579817
at ze (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:655153)
at https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:575640
at Ar (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:575670)
at Qt (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:563737)
at Kt (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:562963)
at t.unstable_runWithPriority (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:817103)
at Vo (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:583998)
at je (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:654893)
at Yt (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:562756)
at HTMLDivElement.o (https://www.fenoxo.com/play/TiTS/backer/vendors.5bba3213.js:1:48987)
Translation not active.;
Hash mismatches; may indicate a section of the save has been edited:
PC Object, PC Equipment, PC BreastRows, PC Cocks, PC Vaginas, Flags, PC Ship, LocStorage
(19:18:36.930) (UserInterface) info: Pushing “Main Text” to UI state stack, replacing with “Main Menu”.
(19:18:37.945) (UserInterface) info: Pushing “Main Menu” to UI state stack, replacing with “Options”.
(19:20:42.189) (UserInterface) info: Popping from “Options” and setting “Main Menu” as active state.
(19:20:42.201) (Serialization) info: Saving via localforage.
(19:20:42.861) (UserInterface) info: Popping from “Main Menu” and setting “Main Text” as active state.
(19:21:03.973) (UserInterface) info: Pushing “Main Text” to UI state stack, replacing with “Inventory”.
(19:21:08.165) (Inventory) info: Attempting to use item “SemenDemon”
(19:21:08.166) (UserInterface) warning: Overwriting existing button “” with button “Back”.
(19:21:41.069) (UserInterface) info: Pushing “Inventory” to UI state stack, replacing with “Main Menu”.
(19:21:41.909) (UserInterface) info: Pushing “Main Menu” to UI state stack, replacing with “Options”.
(19:21:53.286) (UserInterface) info: Popping from “Options” and setting “Main Menu” as active state.
(19:21:53.298) (Serialization) info: Saving via localforage.
(19:21:53.589) (UserInterface) info: Popping from “Main Menu” and setting “Inventory” as active state.
(19:22:02.967) (Inventory) info: Attempting to use item “SemenDemon”
(19:22:02.967) (UserInterface) warning: Overwriting existing button “” with button “Back”.
(19:22:26.958) (UserInterface) info: Popping UI State back to MainText…
(19:22:26.958) (UserInterface) info: Popping from “Inventory” and setting “Main Text” as active state.
(19:22:32.230) (UserInterface) warning: Ensure we have good UI for waiting for data acquisition.
(19:22:32.231) (Serialization) info: Loading TITS_Summary from localforage.
(19:22:32.235) (UserInterface) info: Pushing “Main Text” to UI state stack, replacing with “Save Load”.
(19:22:32.235) (UserInterface) info: generateSaveMenuButtons()
(19:22:32.235) (UserInterface) warning: Overwriting existing button “” with button “Save To File”.
(19:22:32.235) (UserInterface) warning: Overwriting existing button “” with button “Load From File”.
(19:22:32.235) (UserInterface) warning: Overwriting existing button “” with button “Back”.
(19:22:33.143) (UserInterface) warning: Overwriting existing button “Save To Slot” with button “Save To Slot 10”.
(19:22:33.143) (UserInterface) warning: Overwriting existing button “Load From Slot” with button “Load From Slot 10”.
(19:22:37.137) (Serialization) info: Saving via localforage.
(19:22:38.282) (Serialization) info: Loading TITS_Summary from localforage.
(19:22:38.365) (Serialization) info: Saving via localforage.
(19:22:38.368) (UserInterface) warning: Ensure we have good UI for waiting for data acquisition.
(19:22:38.368) (Serialization) info: Loading TITS_Summary from localforage.
(19:22:38.380) (Serialization) info: Saving via localforage.
(19:22:38.381) (UserInterface) info: generateSaveMenuButtons()
(19:22:38.381) (UserInterface) warning: Overwriting existing button “Save To File” with button “Save To File”.
(19:22:38.381) (UserInterface) warning: Overwriting existing button “Load From File” with button “Load From File”.
(19:22:38.381) (UserInterface) warning: Overwriting existing button “Back” with button “Back”.
(19:22:38.823) (UserInterface) warning: Ensure we have good UI for waiting for data acquisition.
(19:22:38.823) (Serialization) info: Loading TITS_Summary from localforage.
(19:22:38.826) (UserInterface) info: generateSaveMenuButtons()
(19:22:38.826) (UserInterface) warning: Overwriting existing button “Save To File” with button “Save To File”.
(19:22:38.826) (UserInterface) warning: Overwriting existing button “Load From File” with button “Load From File”.
(19:22:38.826) (UserInterface) warning: Overwriting existing button “Back” with button “Back”.
(19:22:39.591) (UserInterface) warning: Overwriting existing button “Save To Slot” with button “Save To Slot 10”.
(19:22:39.591) (UserInterface) warning: Overwriting existing button “Load From Slot” with button “Load From Slot 10”.
(19:22:41.766) (Serialization) info: Loading TITS_Summary from localforage.
(19:22:41.846) (Serialization) info: Saving via localforage.
(19:22:41.848) (UserInterface) warning: Ensure we have good UI for waiting for data acquisition.
(19:22:41.848) (Serialization) info: Loading TITS_Summary from localforage.
(19:22:41.852) (Serialization) info: Saving via localforage.
(19:22:41.852) (UserInterface) info: generateSaveMenuButtons()
(19:22:41.852) (UserInterface) warning: Overwriting existing button “Save To File” with button “Save To File”.
(19:22:41.852) (UserInterface) warning: Overwriting existing button “Load From File” with button “Load From File”.
(19:22:41.852) (UserInterface) warning: Overwriting existing button “Back” with button “Back”.
(19:22:42.239) (UserInterface) warning: Ensure we have good UI for waiting for data acquisition.
(19:22:42.239) (Serialization) info: Loading TITS_Summary from localforage.
(19:22:42.242) (UserInterface) info: generateSaveMenuButtons()
(19:22:42.242) (UserInterface) warning: Overwriting existing button “Save To File” with button “Save To File”.
(19:22:42.242) (UserInterface) warning: Overwriting existing button “Load From File” with button “Load From File”.
(19:22:42.242) (UserInterface) warning: Overwriting existing button “Back” with button “Back”.
(19:22:43.166) (UserInterface) info: Popping from “Save Load” and setting “Main Text” as active state.
(19:22:48.304) (Creature) warning: Shekka.hasCock() was passed an invalid argument (horsecock)
(19:22:56.241) (Serialization) info: Autosave period has expired, performing an autosave…
(19:22:56.277) (Serialization) info: Loading TITS_AutosaveSummary from localforage.
(19:22:56.360) (Serialization) info: Saving via localforage.
(19:22:56.406) (Serialization) info: Saving via localforage.
(19:28:25.247) (UserInterface) warning: Ensure we have good UI for waiting for data acquisition.
(19:28:25.247) (Serialization) info: Loading TITS_Summary from localforage.
(19:28:25.249) (UserInterface) info: Pushing “Main Text” to UI state stack, replacing with “Save Load”.
(19:28:25.249) (UserInterface) info: generateSaveMenuButtons()
(19:28:25.249) (UserInterface) warning: Overwriting existing button “” with button “Save To File”.
(19:28:25.249) (UserInterface) warning: Overwriting existing button “” with button “Load From File”.
(19:28:25.249) (UserInterface) warning: Overwriting existing button “” with button “Back”.
(19:28:26.399) (UserInterface) warning: Overwriting existing button “Save To Slot” with button “Save To Slot 10”.
(19:28:26.399) (UserInterface) warning: Overwriting existing button “Load From Slot” with button “Load From Slot 10”.
(19:28:28.222) (Serialization) info: Loading TITS_Summary from localforage.
(19:28:28.312) (Serialization) info: Saving via localforage.
(19:28:28.315) (UserInterface) warning: Ensure we have good UI for waiting for data acquisition.
(19:28:28.315) (Serialization) info: Loading TITS_Summary from localforage.
(19:28:28.328) (Serialization) info: Saving via localforage.
(19:28:28.329) (UserInterface) info: generateSaveMenuButtons()
(19:28:28.329) (UserInterface) warning: Overwriting existing button “Save To File” with button “Save To File”.
(19:28:28.329) (UserInterface) warning: Overwriting existing button “Load From File” with button “Load From File”.
(19:28:28.329) (UserInterface) warning: Overwriting existing button “Back” with button “Back”.
(19:28:28.710) (UserInterface) warning: Ensure we have good UI for waiting for data acquisition.
(19:28:28.710) (Serialization) info: Loading TITS_Summary from localforage.
(19:28:28.714) (UserInterface) info: generateSaveMenuButtons()
(19:28:28.714) (UserInterface) warning: Overwriting existing button “Save To File” with button “Save To File”.
(19:28:28.714) (UserInterface) warning: Overwriting existing button “Load From File” with button “Load From File”.
(19:28:28.714) (UserInterface) warning: Overwriting existing button “Back” with button “Back”.
(19:28:29.431) (UserInterface) info: Popping from “Save Load” and setting “Main Text” as active state.
(19:28:30.839) (ImageGallery) warning: Unable to find an image with key “pyrite_colt_xlr” to unlock.
(19:28:56.773) (Creature) info: Status ‘Sweaty’ already present on David
(19:28:56.773) (Creature) info: Status ‘Sweaty’ already present on David
(19:29:34.417) (ImageGallery) warning: Unable to find an image with key “myrellion” to unlock.
(19:29:34.417) (Serialization) info: Autosave period has expired, performing an autosave…
(19:29:34.458) (Serialization) info: Loading TITS_AutosaveSummary from localforage.
(19:29:34.544) (Serialization) info: Saving via localforage.
(19:29:34.592) (Serialization) info: Saving via localforage.
(19:29:35.792) (UserInterface) info: Pushing “Main Text” to UI state stack, replacing with “Codex”.
(19:30:11.969) (UserInterface) info: Pushing “Codex” to UI state stack, replacing with “Appearance”.
“`
This popped up when I clicked on the “appearance” tab fen could you look into this????
I have a hotfix rolling out now!
Also fen, are there any new crew members in the works that we might get, or current crew members who could get addional scenes, maybe expansions in future updates, aside from Azra’s tentacle project involving everyone on MC’s ship, also I think at one point you had mentioned Emmy to be a crew member and her content did tease that as well, and I definitely would not mind at all for more content for ardia????