Skip to content

How to backup saves & file editing

ZeinaKC edited this page May 31, 2026 · 16 revisions

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 four points of interest!

Backuping Saves

  1. Open your Steam Library and find ATLYSS.
  2. Right click on the game, hover over Manage, then click browse local files.
  3. Go into ATLYSS_Data, then profileCollections. Optionally you can backup the "Settings" folder as well.
  4. Select and copy all files or just the whole folder.
  5. Create a new folder on your PC, anywhere works, just have it easy to access like using a bookmark.
  6. Paste all of the files in there and update it regularly. You can use any method you like, like multiple folders with dates.
  7. To use these backups, copy all the files you need and go back into ProfileCollections, then paste and replace the files.

To configure Steam Cloud do steps 1-2 and click "Properties...", then go to the "General" tab.
Here's the Steam Cloud Storage for accessing the save files.
Steam
ProfileCollections

atl_characterProfile_X count from 0 then 1 in-game, simply reduct by one when finding your save file. The atl_characterProfile_X_bak files are backups generated by the game used when the save is unable to be loaded. The regular files get updated a lot based on triggers (read below) while "_bak" files are previous versions of said data that only update when the "Save File" or "Save & Quit" actions are used.

If you enter a multiplayer lobby and your equipment turns invisible attempt right-clicking to unequip them from the inventory. If other parts of the character were wiped like skills though (read _version) then you should immediately close the game without causing a save trigger 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. Any backup method works if anything was lost like renaming _baks.

If you don't like any of these methods or they're not reliable enough, then you can try out Marioalexsan's AutoSaver mod!
How to install mods with managers or manually.

Save Triggers

List of every instance where the game tries to save.

  • Creating a character makes the save file.
  • Using the "Save File" and "Save & Quit" buttons. Only way to generate _baks.
  • Accepting, abandoning, and completing quests.
  • Attuning a world waypoint.
  • Leveling up.
  • Picking up, dropping, or losing items, and sorting inventory.
  • Equipping and unequipping gear.
  • Adding or removing consumables and skills from the hotbars.
  • Unlocking skills, using skill scrolls, and resetting skills.
  • Changing Appearance with the Vanity Mirror.

If it's not listed here, it probably doesn't trigger it.

File Editing

Before starting read Backuping Saves to backup your files and get access to the folder path. Then right click on the character or bank files you want to edit and open them with a text program, these files don't have extensions so you can't use "Always use this app to open..." on them.

The game only loads character save files after entering the main menu or when a character is deleted. This means file editing while playing as the character doesn't work and will be reverted by "Save & Quit", if you don't want to reopen the game you need to load a different character first to go back to the main menu from, or create then delete a character to refresh all saves. Spike's storage reads from the bank files and will reload on UI refreshes thanks to its save triggers.

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.
JSON is a simple human-readable "data interchange format" that is easy to understand with time.

  • 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: false or true. 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.

Save Data Properties

"_nickName"

(CLICK ME)
"_nickName": ""

String
Character name. Limited to 18 characters and will reset to a default name if surpassed.
File editing the nickname has less restrictions on capitalisation and legal characters.

"_version"

(CLICK ME)
"_version": ""

String
Character record of the last played version.
Used to reset skills when loading if the values mismatch. Editing them beforehand prevents it.

"_currency"

(CLICK ME)
"_currency": 0

Integer
Crowns counter value, accepts values 0-1000000 (1 million) including negative.
Behaves like a 32-bit integer limit would, with "debt" being possible and functional.

"_appearanceProfile"

<(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.
    • 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.

"_statsProfile"

(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.

"_skillsProfile"

(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.

"_questProgressProfile"

(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"
]

"_inventoryProfile" & "_heldItemStorage"

(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 _heldItemStorage but _inventoryProfile will 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 & _isAltWeapon won't work in storage and bug out instead.

"_vanityStruct"

(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.

"_quickItemSlotProfile"

(CLICK ME)
"_quickItemSlotProfile": [
   "",
   "",
   "",
   "",
   ""
]

String Array
Consumables placed on the quick item hotbar are stored here, using item names as identifiers.

"_dialogIntroProfile"

(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.

"_waypointAttunementProfile"

(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.

"_questTrackToggles"

(CLICK ME)
"_questTrackToggles": [
    false,
    false,
    false,
    false,
    false
]

Boolean Array
Unused.

Other Booleans

(CLICK ME)
"_isWeaponLocked": false,
"_isAltWeaponEquipped": false,
"_isEmptySlot": false,
"_isNewCharacter": false

Boolean

  • "_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.

Clone this wiki locally