Difference between revisions of "Save Editing"

From Trials in Tainted Space Wiki
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 20: Line 20:
  
 
=== TiTS Save Editors ===
 
=== TiTS Save Editors ===
{{ContentWarning|message= The easiest way to find your file for save editing is to use the SAVE TO FILE function of the game. And search where you stored that file}}
+
{{ContentWarning|message= To save edit a file, it must be '''SAVED TO FILE''', then loaded into an editor of your choice.}}
 
==== Official ====
 
==== Official ====
 
<i>No details on this at the moment.</i>
 
<i>No details on this at the moment.</i>
Line 29: Line 29:
  
 
'''For the JS Version'''
 
'''For the JS Version'''
https: //start-5.github.io/TiTS.JS-Save-Editor
+
[https://forum.fenoxo.com/threads/tits-js-save-editor.34145/ <i>TiTS.JS Save Editor</i>]
 +
 
 +
JS version saves are stored as .jsons, which can be opened by standard text editors and websites. The former often requires some form of plugin to format the text in an easily readable format while websites will often do this automatically. Note that this method of editing is akin to being a power user, you can do MUCH more but only if you know what you are doing.
  
 
=== CourseVector .minerva ===
 
=== CourseVector .minerva ===
 
The most common and more publicly available method is by using a local shared object editor named [http://blog.coursevector.com/minerva .minerva]. Legacy versions of .minerva can be downloaded and used on a machine locally, but requires the [http://www.adobe.com/products/air.html AIR] environment software to be installed for the program function properly. Alternatively, the current online-browser version will allow uploading a *.sol file to edit, then saving the changes to a new file.
 
The most common and more publicly available method is by using a local shared object editor named [http://blog.coursevector.com/minerva .minerva]. Legacy versions of .minerva can be downloaded and used on a machine locally, but requires the [http://www.adobe.com/products/air.html AIR] environment software to be installed for the program function properly. Alternatively, the current online-browser version will allow uploading a *.sol file to edit, then saving the changes to a new file.
 
  
 
== Save File Location ==
 
== Save File Location ==

Latest revision as of 05:58, 27 May 2024


Ambox important.png Ambox important.png
Aside from the official TiTS save editor, the development team does not fully endorse or support save editing as this will be considered "cheating" and/or "hacking" the game's files to gain a desired result instead of using the in-game mechanics as intended.

If you intend on editing your save file, do note that you are fully responsible for any outcome the changes made to your save file may produce--this includes any negative effects it may have on your gameplay experience, appearances of any strange cosmetic or function-related bugs that did not exist before the editing, or even corrupting the save file itself, or otherwise making it unreadable by the game.

Always remember to keep a backup copy of your original, unaltered, save file!

Description

This is a reference to modifying the Trials in Tainted Space save game file.

There are two file variants the game can save to: a game-specific *.tits file (by using the "Save File" button) or the more editable *.sol file (by using the "Save" button). This editing guide will only concentrate on the Local Shared Object file type (*.sol).


Editors

There are a couple ways one can go about editing save files.

Game state editor

The Javascript or JS version of TiTs Currently has an unofficial game state editor that allows you to edit the game whilst it is being played. [1]

TiTS Save Editors

Ambox important.png Ambox important.png
To save edit a file, it must be SAVED TO FILE, then loaded into an editor of your choice.

Official

No details on this at the moment.

Unofficial

For the Legacy Version (Flash/Adobe AIR) TiTsEd

For the JS Version TiTS.JS Save Editor

JS version saves are stored as .jsons, which can be opened by standard text editors and websites. The former often requires some form of plugin to format the text in an easily readable format while websites will often do this automatically. Note that this method of editing is akin to being a power user, you can do MUCH more but only if you know what you are doing.

CourseVector .minerva

The most common and more publicly available method is by using a local shared object editor named .minerva. Legacy versions of .minerva can be downloaded and used on a machine locally, but requires the AIR environment software to be installed for the program function properly. Alternatively, the current online-browser version will allow uploading a *.sol file to edit, then saving the changes to a new file.

Save File Location

Depending on the operating system and/or web browser being used, the *.sol save file generated for the game may be found in one of a number of places.

Folder Directory

The first step is to find the proper folder directory:


Windows Vista & 7

Access the "AppData" folder by doing the following:

  • Windows Key + R to open the Run command prompt.
  • Type, or copy and paste "%AppData%" into the Run command and hit OK or press Enter.
  • Roaming > Macromedia > Flash Player > #SharedObjects > [numbers and letters]


Another option is to set hidden folders as visible, enabling navigation directly to the AppData folder.

Full path:
C:\Users\[username]\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\[numbers and letters]\

If using Windows XP, save files can be located at the file path:
C:\Documents and Settings\[username]\Application Data\Macromedia\Flash Player\#SharedObjects\[numbers and letters]\

If using Google Chrome, save files can be located at the file path:
C:\Users\[username]\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\[numbers and letters]\


Alternatively, if you can't find the exact directory, you can search for the file by doing the following:

  • Windows Key + R to open the Run command prompt.
  • Type, or copy and paste "%AppData%" into the Run command and hit OK or press Enter.
  • Go to the Search Roaming text input box in the top right corner of the window and type "TiTs_" or ".sol".
  • Wait for the search to find the relevant files.

Mac OS X

Full path:
Users/[username]/Library/Preferences/Macromedia/Flash Player/#SharedObjects/[numbers and letters]/

If using Google Chrome, save files can be located at the file path:
~/Library/Application Support/Google/Chrome/Default/Pepper Data/Shockwave Flash/WritableRoot/#SharedObjects/[numbers and letters]/www.fenoxo.com

If you aren't using the "default" Google Chrome account (i.e., if you have more than one users with separate profiles on Chrome), instead of opening the Default folder, the file path is:
~/Library/Application Support/Google/Chrome/Profile [number]/Pepper Data/Shockwave Flash/WritableRoot/#SharedObjects/[numbers and letters]/www.fenoxo.com
The profiles aren't given the names they're saved under in Google Chrome, but rather numbered in the order they were made.

Linux

Full path:
/home/[username]/.macromedia/Flash_Player/#SharedObjects/[numbers and letters]/

File Location

After finding the proper directory, the next step is to find the actual file in the following folder location:

If Trials in Tainted Space is downloaded and played on the local hard drive instead of the online browser, the save file may be found in a folder labeled "localhost", usually located in the Macromedia Flash Player cache/temporary folder.

  • For example, on Windows 7: Roaming > Macromedia > Flash Player > #SharedObjects > [numbers and letters] > localhost

Newer versions of Flash have changed this to a folder labelled "#localWithNet"

  • E.g: Roaming > Macromedia > Flash Player > #SharedObjects > [numbers and letters] > #localWithNet


Alternatively, playing online via www.fenoxo.com or fenoxo.com will produce a save file located in the "www.fenoxo.com" and "fenoxo.com" folders, respectively. If playing it from the FurAffinity website (or www.furaffinity.net), it would be located in the "d.facdn.net" folder.

  • For example, on Windows 7: Roaming > Macromedia > Flash Player > #SharedObjects > [numbers and letters] > www.fenoxo.com

Filename

After finding the appropriate folder, the save file produced should be named something to the effect of "TiTs_n.sol", where the "n" is the slot number the save was saved in.

  • For instance, if the file was saved in Slot 3, the file would be named "TiTs_3.sol".


Save File Anatomy

There are a variety of value types that make up the components of a save file. They include:

  • Integer - A whole (non-decimal) number.
  • Number - A number with a decimal or fractional value.
  • Boolean - A binary value consisting of true or false.
  • String - A sequence of text-based characters.
  • Array - A collection of variables grouped together.
  • Object - Similar to an array, a collection consisting of a group of variables.


Note that a number value can be considered an integer if no decimals are present in its value. Both integers and numbers can be positive or negative values.


Variable Array

The save file will contain a main array of values, each possibly containing another array of values (which can also contain yet another array of values).

The main set of values presented in the save are as follows:

Save File Array
Name Value Type Description
characters Object Array of serialized character objects.
currentHours Integer The current hour.
currentMinutes Integer The current minute.
daysPassed Integer Days passed since the first day of the adventure.
flags Object Array of various game flag values.
gameOptions Object Array of game option values.
mailSystem Object Array of messenger message objects.
minVersion Integer Save file's minimum save version number.
playerGender String Player character's gender upon save.
playerLocation String Player character's location coordinate upon save.
saveLocation String Player character's location name displayed upon save.
saveName String Player character's name upon save. (Save file's name)
saveNotes String Special notes given to the save file upon save.
shipLocation String Player character's ship location name displayed upon save.
statTracking Object Array of stat tracking objects.
unlockedCodexEntries Array Array of unlocked codex entries.
version Integer Save file's current save version number.
viewedCodexEntries Array Array of viewed codex entries.


Characters

This array contains the various information of characters marked for serialization. The information deals mostly with stats, slotted items, and body part details of the specific character.

For editing the player's character, the array object of interest would be "PC".

Character Array
Name Value Type Description
HPMod Number Modified value of HP.
HPRaw Number Raw value of HP.
ShipStorageInventory Array Array of inventory slots containing items located on the player character's ship.
XPRaw Integer Raw value of XP.
a String Lowercase article used to refer to the character. (Primarily used in combat text.)
accessory Object Item currently occupying the accessory slot.
affinity String Designates the affinity type of the character. (Assigned during character creation.)
aimMod Number Modified value of aim.
aimRaw Number Raw value of aim.
analVirgin Boolean Whether or not the character has a virgin anus.
antennae Integer Amount of antennae.
antennaeType Integer Type of antennae.
armFlags Array Array of flags for the arms.
armType Integer Type of arms.
armor Object Item currently occupying the armor slot.
ass Object Array of properties of the anus.
ballEfficiency Number Efficiency of cum production.
ballFullness Integer Prostate or testicle semen fullness.
ballSizeMod Number Modified value of testicle size.
ballSizeRaw Number Raw value of testicle size.
balls Integer Amount of testicles.
baseHPResistances Object Array of HP resistance stats.
baseShieldResistances Object Array of Shield resistance stats.
beardLength Number Length of beard.
beardStyle Integer Style type of beard.
bellyRatingMod Number Modified value of belly size.
bellyRatingRaw Number Raw value of belly size.
breastRows Array Array of the breast rows.
buttRatingMod Number Modified value of butt size.
buttRatingRaw Number Raw value of butt size.
buyMarkdown Number Multiplier value of the markdown price when the character buys items.
capitalA String Uppercase article used to refer to the character. (Primarily used in combat text.)
characterClass Integer Value of the character's class. (Viewed as Occupation.)
classInstance String Directory and name of the object's function.
clitLength Number Length of clitoris.
cockVirgin Boolean Whether or not the character has penis virginity.
cocks Array Array of the penises.
credits Integer Amount of usable credits currently held on the character's person.
cumMultiplierMod Number Modified value of cum production's cum multiplier.
cumMultiplierRaw Number Raw value of cum production's cum multiplier.
cumQualityMod Number Modified value of cum production's cum quality.
cumQualityRaw Number Raw value of cum production's cum quality (also known as Virility).
cumType Integer Type of fluid produced as male ejaculate.
customBlock String Action for when the character is blocking an attack. (Used in generic combat text.)
customDodge String Action for when the character is dodging an attack. (Used in generic combat text.)
dickNippleMultiplier Number Multiplier value of dick nipple length when it is erect.
dickNippleType Integer Type of dick nipple (for nipple types that support it).
earLength Number Length of ears (for ear types that support it).
earType Integer Type of ears.
earsPLong String Long name of ear piercing (if applicable).
earsPShort String Short name of ear piercing (if applicable).
earsPierced Integer Number of ear piercings.
eggs Integer (Unused)
elasticity Number Value of the character's genital elasticity.
energyMod Number Modified value of energy.
energyRaw Number Raw value of energy.
exhibitionismRaw Number Raw value of exhibitionism level.
eyeColor String Color of eyes.
eyeType Integer Type of eyes.
eyebrowPLong String Long name of eyebrow piercing (if applicable).
eyebrowPShort String Short name of eyebrow piercing (if applicable).
eyebrowPierced Integer Number of eyebrow piercings.
faceFlags Array Array of flags for the face.
faceType Integer Type of face.
femininity Number Value of femininity level.
fertilityMod Number Modified value of fertility.
fertilityRaw Number Raw value of fertility.
fertilizedEggs Integer (Unused)
furColor String Color of fur.
genitalSpot Integer Value of the character's genital location.
gills Boolean Whether or not gills are present.
girlCumType Integer Type of fluid produced as female ejaculate.
hairColor String Color of hair.
hairLength Number Length of hair.
hairStyle String Style of hair.
hairType Integer Type of hair.
hipRatingMod Number Modified value of hip size.
hipRatingRaw Number Raw value of hip size.
hornLength Number Length of horn (for horn types that support it).
hornType Integer Type of horn.
horns Integer Amount of horns on the head.
impregnationType String Pregnancy name of impregnation type.
intelligenceMod Number Modified value of intelligence.
intelligenceRaw Number Raw value of intelligence.
inventory Array Array of inventory slots containing items located on the character's person.
isLustImmune Boolean Whether or not the character is immune to lust.
keeperBuy String Shopkeeper message for buying items.
keeperGreeting String Shopkeeper message for greeting another character.
keeperSell String Shopkeeper message for selling items.
keyItems Array Array of storage-class key items, located on the player character's person.
legCount Integer Amount of legs.
legFlags Array Array of flags for the legs.
legType Integer Type of legs.
level Integer Current value of the character's level.
libidoMod Number Modified value of libido.
libidoRaw Number Raw value of libido.
lipColor String Color of lips.
lipMod Number Modified value of lip size.
lipPLong String Long name of lip piercing (if applicable).
lipPShort String Short name of lip piercing (if applicable).
lipPierced Integer Number of lip piercings.
long String Description of the character's appearance and/or environment during combat.
lowerUndergarment Object Item currently occupying the lower undergarment slot.
lustMod Number Modified value of lust.
lustRaw Number Raw value of lust.
meleeWeapon Object Item currently occupying the melee weapon slot.
milkFullness Integer Value of the lactation's milk fullness.
milkMultiplier Number Value of the lactation's milk multiplier.
milkRate Number Value of the lactation's milk rate.
milkType Integer Type of fluid produced while lactating.
minutesSinceCum Integer Amount of minutes since the last orgasm.
neverSerialize Boolean Whether or not to restrict all the data in this class object array from being recorded upon save.
nippleColor String Color of each nipple.
nippleLengthRatio Number Length ratio of each nipple.
nippleWidthRatio Number Width ratio of each areola.
nipplesPLong String Long name of nipple piercing (if applicable).
nipplesPShort String Short name of nipple piercing (if applicable).
nipplesPerBreast Integer Amount of nipples for each breast.
nipplesPierced Integer Number of nipple piercings.
nosePLong String Long name of nose piercing (if applicable).
nosePShort String Short name of nose piercing (if applicable).
nosePierced Integer Number of nose piercings.
originalRace String The original birth race of the character.
perkPoints Integer Amount of usable perk points to attain various class-related perks.
perks Array Array of storage-class perks currently owned.
personality Integer Value of personality level.
physiqueMod Number Modified value of physique.
physiqueRaw Number Raw value of physique.
plural Boolean Whether or not the character is addressed as plural.
pregnancyData Array Array of pregnancies currently in progress.
pregnancyIncubation
BonusFatherMod
Number Modified value of the semen to affect the multiplier of another character's pregnancy speed.
pregnancyIncubation
BonusFatherRaw
Number Raw value of the semen to affect the multiplier of another character's pregnancy speed.
pregnancyIncubation
BonusMotherMod
Number Modified value of the womb to affect the multiplier of the character's pregnancy speed.
pregnancyIncubation
BonusMotherRaw
Number Raw value of the womb to affect the multiplier of the character's pregnancy speed.
pregnancyMultiplierMod Number Modified value of the multiplier for the amount of offspring a womb can create.
pregnancyMultiplierRaw Number Raw value of the multiplier for the amount of offspring a womb can create.
rangedWeapon Object Item currently occupying the ranged weapon slot.
reflexesMod Number Modified value of reflexes.
reflexesRaw Number Raw value of reflexes.
refractoryRate Integer Value of cum production's refractory rate.
scaleColor String Color of scales.
sellMarkup Number Multiplier value of the markup price when the character sells items.
sexualPreferences Object Array of sexual preferences.
shield Object Item currently occupying the shield generator slot.
shieldsRaw Number Raw value of shields generated.
short String The character's first/primary name or alias.
skinAccent String Color of skin accents.
skinFlags Array Array of flags for the skin type.
skinTone String Color of skin.
skinType Integer Type of skin.
statusEffects Array Array of storage-class status effects currently affecting the character.
tailCount Integer Amount of tails.
tailFlags Array Array of flags for the tails.
tailGenital Integer Type of tail genital. (For valid tail types; Unused)
tailGenitalArg Integer Type of penis or vagina the tail has.
tailGenitalColor String Color of tail genital. (For genital tail types that support it.)
tailRecharge Integer (Unused)
tailType Integer Type of tail.
tailVenom Integer (Unused)
tallness Number Value of the character's full height.
teaseLevel Integer (Unused)
teaseXP Integer (Unused)
thickness Number Value of the character's body thickness.
timesCum Integer Amount of times the character had an orgasm.
tone Number Value of the character's muscle tone.
tongueFlags Array Array of flags for the tongue.
tonguePLong String Long name of tongue piercing (if applicable).
tonguePShort String Short name of tongue piercing (if applicable).
tonguePierced Integer Number of tongue piercings.
tongueType Integer Type of tongue.
typesBought Array List of item types available to buy from another character.
unclaimedClassPerks Integer Amount of class-specific perks available for the player character to gain.
unclaimedGenericPerks Integer Amount of general perks available for the player character to gain.
unspentStatPoints Integer Amount of skill points available for the player character to upgrade core stats.
upperUndergarment Object Item currently occupying the upper undergarment slot.
vaginalVirgin Boolean Whether or not the character has vaginal virginity.
vaginas Array Array of the vaginas.
version Integer Character function's version number. (Used for updates from a previous version.)
willpowerMod Number Modified value of willpower.
willpowerRaw Number Raw value of willpower.
wingCount Integer Amount of wings.
wingType Integer Type of wings.


Breast Rows

The breast rows, regardless of breast sizes, fall under the "BreastRow" class of organ objects which contain the following properties:

Breast Row Class
Name Value Type Description
breastRatingHoneypotMod Number Modified value of breast size derived from the Honeypot gene.
breastRatingLactationMod Number Modified value of breast size derived from the lactation.
breastRatingMod Number Modified value of breasts size.
breastRatingRaw Number Raw value of breasts size.
breasts Integer Amount of breasts in the row.
classInstance String Directory and name of the object's function.
fullness Integer (Unused)
nippleType Integer Type of nipple.


Cocks

The penis falls under the "Cock" class of organ objects which contain the following properties:

Cock Class
Name Value Type Description
cLengthMod Number Modified value of the penis length.
cLengthRaw Number Raw value of the penis length.
cThicknessRatioMod Number Modified value of the penis thickness ration.
cThicknessRatioRaw Number Raw value of the penis thickness ration.
cType Integer Type of penis.
classInstance String Directory and name of the object's function.
cockColor String Color of penis.
cockFlags Array Array of flags for the penis.
flaccidMultiplier Number Multiplier to determine the scaled value of the penis size.
knotMultiplier Number Multiplier to determine the scaled value of the penis knot.
pLong String Long name of penis piercing (if applicable).
pShort String Short name of penis piercing (if applicable).
pierced Integer Number of penis piercings.
sock String Description or name of cock sock (if applicable).
virgin Boolean Whether or not the penis appears virgin.


Orifices

The vagina and anus fall under the "Vagina" class of organ objects which contain the following properties:

Vagina Class
Name Value Type Description
bonusCapacity Integer Value of vagina or anus bonus capacity.
classInstance String Directory and name of the object's function.
clitPLong String Long name of clitoris piercing (if applicable).
clitPShort String Short name of clitoris piercing (if applicable).
clitPierced Integer Number of clitoris piercings.
clits Integer Amount of clitorises the vagina has.
hymen Boolean Whether or not the vagina has a virgin-like hymen.
labiaPLong String Long name of labia piercing (if applicable).
labiaPShort String Short name of labia piercing (if applicable).
labiaPierced Integer Number of labia piercings.
loosenessMod Integer Modified value of the orifice looseness.
loosenessRaw Integer Raw value of vagina or anus looseness.
minLooseness Integer Minimum value of the orifice looseness.
shrinkCounter Integer Counter for changing the orifice looseness towards its minimum value.
type Integer Type of vagina.
vaginaColor String Color of vagina.
vagooFlags Array Array of flags for the vagina.
wetnessMod Integer Modified value of the orifice wetness.
wetnessRaw Integer Raw value of vagina or anus wetness.


Pregnancy

The "PregnancyData" array consists of active and inactive "wombs" which contain the following properties:

Pregnancy Data
Name Value Type Description
classInstance String Directory and name of the object's function.
pregnancyBellyRating
Contribution
Integer Value contributed to the belly size.
pregnancyIncubation Integer Minutes of gestation/incubation time for the pregnancy.
pregnancyIncubationMulti Integer Multiplier applied to the time, affecting the speed of the pregnancy.
pregnancyQuantity Integer Amount of individual offspring resulting from the pregnancy.
pregnancyType String Name of the type of pregnancy.


Type Values

For a reference to the integers used for the predefined types and flags, see the Global Values page.

To determine whether or not a type/flag is compatible with a certain body part, refer to the list of body parts found in the Appearance page.


Item

For most item objects, only a few notable values are saved.

Item Array
Name Value Type Description
classInstance String Directory and name of the object's function.
quantity Integer Amount of this item held in the slot.
shortName String Item's given short name. (Used as the display name in the slot.)
version Integer Item function's version number. (Used for updates from a previous version.)

However, if the item is marked for serialization, the object is dynamic rather than static, and additional values are available:

Additional Item Array Values
Name Value Type Description
attack Number Value of the item's accuracy.
attackNoun String Noun for attack action. (Used in generic combat text.)
attackVerb String Verb for attack action. (Used in generic combat text.)
baseDamage Object Array with the collection of damage type information.
basePrice Integer Base credit value of the item.
combatUsable Boolean Whether or not the item is usable in combat.
critBonus Number Value of the item's critical damage.
defense Number Value of the item's defense.
description String Item's brief description.
evasion Number Value of the item's evasion.
fortification Number Value of the item's fortification.
hardLightEquipped Boolean Whether or not the item is hardlight-enabled.
isUsable Boolean Whether or not the item is usable at all.
itemFlags Array Array of flags for the item.
longName String Item's full name.
neverSerialize Boolean Whether or not to restrict all the data in this class object array from being recorded upon save.
resistances Object Array with the collection of resistance information.
sexiness Number Value of the item's sexiness.
shieldDefense Number Value of the item's shield defense.
shields Number Value of the item's bonus shields.
stackSize Integer Amount this item can stack to until the slot is completely full.
targetsSelf Boolean Whether or not the item's values target the character's self on use.
tooltip String Item's fully detailed description or extended information.
type Integer Type of item.


Storage

Storage class arrays are commonly used for key items, perks, and status effects. The values for a storage object are as follows:

Storage Class
Name Value Type Description
classInstance String Directory and name of the object's function.
combatOnly Boolean Whether or not the status effect is restricted to combat only.
hidden Boolean Whether or not the status effect is hidden.
iconName String Name of the icon to be displayed while the status effect is active.
minutesLeft Integer Amount of minutes left before the status effect expires.
storageName String Name of the key item, perk, or status effect. (Storage object's name.)
tooltip String Description of the item, perk or effect's details.
value1 Integer Value designated for the first slot.
value2 Integer Value designated for the second slot.
value3 Integer Value designated for the third slot.
value4 Integer Value designated for the fourth slot.


Collection

Type collection of type/flag arrays are used determine the values for each damage/resistance of an item. The arrays are as follows:

Type Collection
Name Value Type Description
flagCollection Array Array of weapon or armor flags.
typeCollection Array Array of damage or resistence types.

For typeCollection, the array's index numbers correlate to the damage type, where the values under each type designates the amount of damage/protection from each type. The flagCollection works similar to other flag-like arrays where only the defined/adopted flag values are included in the collection.

typeCollection
# Value Type Description
0 Number Kinetic value.
1 Number Electric value.
2 Number Burning value.
3 Number Freezing value.
4 Number Corrosive value.
5 Number Poison value.
6 Number True Damage value.
7 Number Psionic value.
8 Number Drug value.
9 Number Pheromone value.
10 Number Tease value.
11 Number True Lust value.