-
Notifications
You must be signed in to change notification settings - Fork 0
How to backup saves & file editing
ATLYSS is an offline game with online support through Steam, so save data is locally stored on your computer and also through Steam Cloud which is supported as well. Unfortunately due to mediocre programming and also early access nature of the game, it is very easy for players to accidentally lose progress or get their characters messed up. This guide will try to show you how to backup your saves, how to repair them if possible, and also how to take advantage of the system for your own benefits.
This page has two points of interest!
- Open your Steam Library and find ATLYSS.
- Right click on the game, hover over
Manage, then clickbrowse local files. - Go into
ATLYSS_Data, thenprofileCollections. Optionally you can backup the "Settings" folder as well. - Select and copy all files or just the whole folder.
- Create a new folder on your PC, anywhere works, just have it easy to access like using a bookmark.
- Paste all of the files in there and update it regularly. You can use any method you like, like multiple folders with dates.
- To use these backups, copy all the files you need and go back into ProfileCollections, then paste and replace the files.
atl_characterProfile_X count from 0 and in-game count from 1, simply reduct by one when trying to find your save file. atl_itemBank is bank tab #1 and atl_itemBank_01 is tab #2, etc. The atl_characterProfile_X_bak files are backups generated by the game used when files disappear or are unable to be loaded. The way they work is that regular files are almost always updating save data, while "_bak" files are previous versions of said data that only update when told to, such as using "Save File" or "Save & Exit" in-game.
If you want to turn on/off Steam Cloud, do the same thing as step 2 and click "Properties...", then disable it in the "General" tab. Here's the website link for accessing the files on cloud.


If you enter a multiplayer lobby and your equipment turned invisible, try right-clicking and unequipping them in the inventory. Though if other parts of your character have been wiped like skills (as a result of multiplayer and not from recent updates, check in singleplayer first!) you will want to immediately close the game without allowing it to save by either clicking X on the ATLYSS window, pressing Alt+F4, or opening Task Manager (Ctrl+Shift+Esc) and ending the task for ATLYSS.exe. You can use any backup method if anything was lost, for _baks all you need to do is rename them, but first check if they're safe to use!
If manual backups aren't your thing, _baks and Steam Cloud are unreliable, or you want another layer of safety, then you'll be interested in Marioalexsan's AutoSaver mod! How to install mods with managers or manually.
It is advised you get a text program like Notepad++ and use JSONLint.
To edit save data in ATLYSS we'll need to understand JSON terminology and how to use it, it's a human-readable "data interchange format" and is pretty simple once you begin to understand it!
- Backuping Saves. First back them up and get to the folder.
- Right click on the character or bank file you want to edit. Then open them with your desired program.
These files don't have extensions so you can't use "Always use this app to open...".
- Character data can't be edited while playing as them. Edit them before opening the game or open another character first.
This doesn't apply to Spike's storage which is constant, refresh the UI after saving edits. - You can't really use file editing to "exploit", everything you can do is generally doable by a regular player.
- Symbols: Braces (
{}). Brackets ([]). Quotations (""). Comma (,). - JSON starts and ends with either braces or brackets. Properties are written as
"name": value. - JSON is case-sensitive but mostly format insensitive as long as you follow the structure rules.
- If there's more than 1 property or value in a container, every entry except the last must end with a comma.
Rule of thumb: Right-facing braces/brackets don't need a comma while left-facing ones may need it. - Warning: JSON does not allow comments like some programming languages with
//. - Here are the names of the data types we'll edit and basic explanations of their functionality:
-
Boolean: Only has 2 states:falseortrue. Usually used for disable/enable or off/on. -
String: Stores characters inside quotations and treats them as text. -
Integer: Stores whole numbers, including negative values, but cannot contain leading zeroes like 00 or 01. -
Float: Stores decimal numbers and is often used for percentages, multipliers, or precision values. -
Array: Bracket containers used for storing lists of values. -
Object: Brace containers used for storing properties and values together.- Arrays and Objects can nest other Arrays and Objects.
-
(CLICK ME)
"_nickName": ""String
Character name. Softer on restrictions for capitalisation and usable characters, but still limited to 18 characters.
(CLICK ME)
"_version": ""String
Record of the last version the character was played on.
Used by the game for major versions to reset skills upon loading. Editing the value before loading the character prevents it.
(CLICK ME)
"_currency": 0Integer
Crowns counter value, accepts ranges from 0 to 1000000 (1 million).
<(CLICK ME)
"_appearanceProfile": {
"_setRaceTag": "",
"_setEye": 0,
"_setMouth": 0,
"_setHairStyle": 0,
"_setEar": 0,
"_setTail": 0,
"_setMisc": 0,
"_displayBoobs": false,
"_isLeftHanded": false,
"_voicePitch": 0.0,
"_helmDyeIndex": 0,
"_headWidth": 0.0,
"_muzzleWeight": 0.0,
"_heightWeight": 0.0,
"_widthWeight": 0.0,
"_torsoWeight": 0.0,
"_armWeight": 0.0,
"_boobWeight": 0.0,
"_bellyWeight": 0.0,
"_bottomWeight": 0.0,
"_setTexture": 0,
"_hideHelm": false,
"_hideCape": false,
"_hideChest": false,
"_hideLeggings": false,
"_hideVanityHelm": false,
"_hideVanityCape": false,
"_hideVanityChest": false,
"_hideVanityLeggings": false,
"_hairColorProfile": {
"_hue": 0.0,
"_saturation": 0.0,
"_brightness": 0.0,
"_contrast": 0.0
},
"_hairIsBodyColor": true,
"_miscColorProfile": {
"_hue": 0.0,
"_saturation": 0.0,
"_brightness": 0.0,
"_contrast": 0.0
},
"_setSkinColorProfile": {
"_hue": 0.0,
"_saturation": 0.0,
"_brightness": 0.0,
"_contrast": 0.0
}
}Nested Object; Boolean, String, Integer, Float, Object
Stores all the character design properties. It is pretty big but most of them are the same in concept.
-
"_setRaceTag":Character race, accepts: "Imp", "Poon", "Kubold", "Byrdle", "Chang". -
"_setEye", "_setMouth", "_setHairStyle", "_setEar":, "_setTail", "_setMisc", "_setTexture":
Character body parts. Values vary across races. -
"_voicePitch", "_headWidth", "_muzzleWeight", "_heightWeight", "_widthWeight", "_torsoWeight", "_armWeight", "_boobWeight", "_bellyWeight", "_bottomWeight":
Character body proportions. Values vary across races. -
"_displayBoobs":Toggle for whether the character has breasts or not. -
"_isLeftHanded":Flips the character model to give an illusion of being left-handed. -
"_helmDyeIndex":Determines the dye for your Helmet, Chestpiece, and Leggings. If the value is invalid the player inventory GUI will break: Displaying Grey as the Dye, jamming the crown counter to 9999, and merge all three inventory tabs into one, reverting to a valid value fixes this.- 0: Grey Dye.
- 1: Blue Dye.
- 2: Green Dye.
- 3: Red Dye.
- 4: Black Dye.
- 5: Yellow Dye.
- 6: Purple Dye.
- 7: Cyan Dye.
- 8: Orange Dye.
- 9: Brown Dye.
- 10: Lime Dye.
- 11: Pink Dye.
- 12: White Dye.
-
"_hideHelm", "_hideCape", "_hideChest", "_hideLeggings":Visibility toggles for equipment. -
"_hideVanityHelm", "_hideVanityCape", "_hideVanityChest", "_hideVanityLeggings":
Visibility toggles for vanity illusioned equipment. -
"_setSkinColorProfile":Toggle for whether or not the hair colour is linked to the skin sliders. -
"_hairColorProfile", "_miscColorProfile", "_setSkinColorProfile":
Character colour values for hair, misc, and body. Varies slightly across races,-
"_hue":Colour value. -
"_saturation":Colour intensity value. -
"_brightness":Darkness to Lightness value. -
"_contrast":Value for distinguishing colours.
-
(CLICK ME)
"_statsProfile": {
"_currentLevel": 1,
"_classID": "",
"_classTier": 0,
"_currentExp": 0,
"_skillPoints": 0,
"_attributePoints": 0,
"_attributes": [
{
"_attributeName": "Strength",
"_attributeID": 0,
"_attributeValue": 1
},
{
"_attributeName": "Mind",
"_attributeID": 1,
"_attributeValue": 1
},
{
"_attributeName": "Dexterity",
"_attributeID": 2,
"_attributeValue": 1
},
{
"_attributeName": "Vitality",
"_attributeID": 3,
"_attributeValue": 1
}
],
"_professions": [
{
"_professionID": 0,
"_professionXP": 0,
"_professionLvl": 1
},
{
"_professionID": 1,
"_professionXP": 0,
"_professionLvl": 1
},
{
"_professionID": 2,
"_professionXP": 0,
"_professionLvl": 1
},
{
"_professionID": 3,
"_professionXP": 0,
"_professionLvl": 1
},
{
"_professionID": 4,
"_professionXP": 0,
"_professionLvl": 1
},
{
"_professionID": 5,
"_professionXP": 0,
"_professionLvl": 1
}
]
}Nested Object; String, Integer, Array, Object
Stores the character stats. Skills, Quests and inventory are stored elsewhere.
-
"_currentLevel":Character level, currently accepts values 1-32. -
_classID":Character class, accepts: "Fighter", "Bandit", "Mystic". -
"_classTier":Character subclass, accepts values 0-2.- 0: No subclass.
- Fighter: 1 is Berserker. 2 is Paladin.
- Bandit: 1 is Rogue. 2 is Engineer.
- Mystic: 1 is Magus. 2 is Bishop.
-
"_currentExp":Character experience, the value stops going up after max level but overflow from levelups remain. -
"_skillPoints":Unspent skill points, tied to character level. -
"_attributePoints":Unspent attribute points, tied to character level. -
"_attributes":-
"_attributeName":Attribute display name. -
"_attributeID":Attribute identifier. -
"_attributeValue":Allocated points amount.
-
-
"_professions":-
"ProfessionID":0-1 are Fishing and Mining respectively, the rest are currently unused. -
"_professionXP":Profession experience, the value stops going up after max level but overflow from levelups remain. -
"_professionLvl":Profession level, accepts values 1-10.
-
(CLICK ME)
"_skillsProfile": {
"_setSkillsProfile": [
{
"_skillName": "",
"_skillLibraryIndex": 0,
"_skillUnlocked": false
}
],
"_setSkillPresetProfile": {
"_skillPresetIndex": [
"",
"",
"",
"",
"",
""
],
"_altSkillPresetIndex": [
"",
"",
"",
"",
"",
""
]
},
"_bonusSkillProfile": [
{
"_bonusSkillTag": "",
"_isLearned": false
}
]
}Nested Object; Boolean, String, Array, Object
Stores all the character skills.
-
_setSkillsProfile":-
"_skillName":Skill identifier and display name. What's seen in-game is the ID. -
"_skillLibraryIndex":Sorting index for how skills are displayed in the skillbook. -
"_skillUnlocked":Check for un/locked skills.
-
-
"_setSkillPresetProfile":-
"_skillPresetIndex":Skills in action bar #1. -
"_altSkillPresetIndex":Skills in action bar #2.
-
-
"_bonusSkillProfile":-
"_bonusSkillTag":Skill ID. -
"_isLearned":Check for un/learned skills.
-
(CLICK ME)
{
"_questProgressProfile": {
"_questProgressStructs": [
{
"_questTag": "",
"_itemProgressValues": [],
"_creepKillProgressValues": [],
"_triggerProgressValues": [],
"_questComplete": false,
"_hideQuestTrack": false
}
]
"_finishedQuests": [],
}
}Nested Array; Boolean, String, Integer, Array, Object
Quest progress and completed quests are stored here.
-
"_questTag":The quest identifier and display name. What you see in-game is the ID used here. -
"_itemProgressValues", "_creepKillProgressValues", "_triggerProgressValues":
Required items, enemy kills, and sigil triggers progress counters, they're sorted as visible in-game. -
"_questComplete":Quest completion check, it can be turned on regardless of progress. -
"_hideQuestTrack":Visibility toggle for quests. Currently they are per quest than per slot.
As of 12026.a3, there are 66 quests:
"_finishedQuests": [
"A Warm Welcome",
"Communing Catacombs",
"Diva Must Die",
"The Keep Within",
"Finding Ammagon",
"Tethering Grove",
"Ridding Slimes",
"Night Spirits",
"Cleaning Terrace",
"Huntin' Hogs",
"Ancient Beings",
"Wicked Wizboars",
"Reviling the Rageboars",
"Reviling more Rageboars",
"Facing Foes",
"The Voice of Zuulneruda",
"The Colossus",
"Gatling Galius",
"The Gall of Galius",
"Killing Tomb",
"Rattlecage Rage",
"Purging the Undead",
"Consumed Madness",
"Eradicating the Undead",
"Spiraling In The Grove",
"Hell In The Grove",
"Purging the Grove",
"Cleansing the Grove",
"Ghostly Goods",
"Summore' Spectral Powder!",
"Makin' a Mekspear",
"Makin' More Mekspears",
"Makin' a Wizwand",
"Makin' More Wizwands",
"Makin' a Vile Blade",
"Makin' More Vile Blades",
"Makin' a Golem Chestpiece",
"Summore' Golem Chestpieces",
"Makin' a Ragespear",
"Makin' More Ragespears",
"Makin' a Monolith Chestpiece",
"Summore' Monolith Chestpieces",
"Makin' a Firebreath Blade",
"Summore' Firebreath Blades",
"Makin' a Follycannon",
"Makin' More Follycannons",
"Nulversa Viscera",
"Nulversa, Greenversa!",
"Nulversa Magica",
"The Glyphik Booklet",
"Dense Ingots",
"Amberite Ingots",
"Sapphite Ingots",
"Call of Fury",
"Beckoning Foes",
"Focusin' in",
"Whatta' Rush!",
"Cold Shoulder",
"Blossom of Life",
"Mastery of Strength",
"Mastery of Dexterity",
"Mastery of Mind",
"Up and Over It",
"Strength and Honor",
"Devious Pact",
"Disciple of Magic"
](CLICK ME)
"_inventoryProfile": [
{
"_itemName": "",
"_quantity": 1,
"_maxQuantity": 1,
"_slotNumber": 0,
"_modifierID": 0,
"_damageTypeOverride": 0,
"_useDamageTypeOverride": false,
"_isEquipped": false,
"_isAltWeapon": false
}
]Nested Array; String, Integer, Boolean, Object
This is the first thing that applies to both atl_characterProfile_X and atl_itemBank, so I'll explain it carefully.
-
"_itemName":Item identifier and display name. What's seen in-game is the ID. -
"_quantity":Item stack amount. -
"_maxQuantity":Item stack limit, this value cannot be edited and the game will auto-correct it.- All equipment have a maximum of 1.
- Most consumables are 99 except: Profession Tools, Scrolls, Tomes.
- Most trade items are 99 except: Angela's Tear, Soul Pearl, Experience Bond, Bronze Arrows.
-
"_slotNumber":Item positions in the inventory, accepts values 0-23/47. It's always 0 if "_isEquipped" is true.
While the inventory sorts left to right, the files sort from top (oldest) to bottom (newest). -
"_modifierID":Item enchantment modifier, only works on equipment.
Exotics can be enchanted to Legendary inside_heldItemStoragebut_inventoryProfilewill remove it, still no bonuses.- 0: No enchantment.
- 1: Guardian.
- 2: Killer.
- 3: Magical.
- 4: Precise.
- 5: Lively (weapons won't give the presented stats).
- 6: Manafont (weapons won't give the presented stats).
- 7: Energetic.
-
"_damageTypeOverride":Determines what scaling the weapon uses, only works on weapons. -
"_useDamageTypeOverride":Must be set to true for the previous property to have effect.- 0: Default scaling.
- 1: Dexterity.
- 2: Magic.
- 3: Strength.
-
"_isEquipped":Check for equipped gear, duplicate trues causes bugs. -
"_isAltWeapon":Check for weapons in slot #2, "Lock Weapon" uses slot #1.- Despite looking the same,
_isEquipped&_isAltWeaponwon't work in storage and bug out instead.
- Despite looking the same,
(CLICK ME)
"_vanityStruct": {
"_helmTag": "",
"_helmModifier": 0,
"_chestTag": "",
"_chestModifier": 0,
"_leggingTag": "",
"_leggingModifier": 0,
"_capeTag": "",
"_capeModifier": 0,
"_ringTag": "",
"_ringModifier": 0,
"_weaponTag": "",
"_weaponModifier": 0,
"_damageOverride_mainWep": 0,
"_useDamageOverride_mainWep": false,
"_altWeaponTag": "",
"_altWeaponModifier": 0,
"_damageOverride_altWep": 0,
"_useDamageOverride_altWep": false,
"_shieldTag": "",
"_shieldModifier": 0
}Object; String, Integer, Boolean
As of 12026.a3 only "_helmTag", "_chestTag", "_leggingTag", "_capeTag" and "_shieldTag" are used.
Vanity illusioned equipment is stored here, using item names as identifiers.
(CLICK ME)
"_quickItemSlotProfile": [
"",
"",
"",
"",
""
]String Array
Consumables placed on the quick item hotbar are stored here, using item names as identifiers.
(CLICK ME)
"_dialogIntroProfile": [],String Array
Keeps track of what NPCs finished their introductions for skipping them.
As of 12026.a3, this applies to 16 NPCs:
"_dialogIntroProfile": [
"Angela",
"Sally",
"Enok",
"Zuula",
"Ammagon",
"Vivian",
"Torta",
"Ruka",
"Skrit",
"Frankie",
"Craig",
"Mad Statue",
"Spike",
"Trip",
"Mirror of Illusion",
""
]-
"Angela":In Sanctum at her library. -
"Sally":In Sanctum at her nook. -
"Enok":In Sanctum at his barracks. -
"Zuula":In Arcwood Pass at Chapel of the Elders. -
"Ammagon":In Bularr Fortress at his Hut. -
"Vivian":In Sanctum at her hut. -
"Torta":In Sanctum Lake. -
"Ruka":In Sanctum outside of Enok's barracks. -
"Skrit":Behind Sally's nook. -
"Frankie":In Arcwood Pass at Chapel of the Elders. -
"Craig":In Wall of the Stars. -
"Mad Statue":In Sanctum Courtyard (portal in a tunnel at spawn). -
"Spike":In Sally's nook. -
"Trip":In Sanctum (besides Ruka), at Arcwood Pass (Chapel of the Elders), and Wall of the Stars (next to Craig). -
"Mirror of Illusion":Inside Angela's library at the back. -
"":Dungeon portals, at Sanctum Catacombs or Crescent Grove.
The Orcabunny citizens and badge merchants do not have intro entries.
(CLICK ME)
"_waypointAttunementProfile": [],String Array
When you attune a waypoint in-game it'll be added to the World Portal and stored here.
As of 12026.a3, there are 6 waypoints:
"_waypointAttunementProfile": [
"sanctum",
"catacmbs",
"ckeep0",
"ckeep2",
"bularr00",
"wallstar00"
]-
"sanctum":Sanctum. -
"catacmbs":Sanctum Catacombs in Arcwood Pass. -
"ckeep0":Crescent Keep. -
"ckeep2":Crescent Grove as part of Crescent Keep. -
"bularr00":Bularr Fortress. -
"wallstar00":Wall of the Stars.
(CLICK ME)
"_questTrackToggles": [
false,
false,
false,
false,
false
]Boolean Array
Unused.
(CLICK ME)
"_isWeaponLocked": false,
"_isAltWeaponEquipped": false,
"_isEmptySlot": false,
"_isNewCharacter": falseBoolean
-
"_isWeaponLocked":Toggle for the "Lock Weapon" option. -
"_isAltWeaponEquipped":Toggle for when weapon #2 is selected. -
"_isEmptySlot":Used by game dummy objects. Turning it on practically makes the character a ghost. -
"_isNewCharacter":Check for playing Angela's intro. Deactivates after the character is loaded.