> **Warning**\
> This tutorial has not been updated in a long time and may contain errors and incorrect informations.

# ![Editing profiles](./assets/img/headers/tutorials_profiles.png)

> * As with every editing tutorial, it's recommanded to use VSCodium.
> * The game and the server need to be closed before doing any changes.
> * It's recommended to create a backup of the profile you're about to edit.

## Legend

Expression  | What                        | Example
------------|-----------------------------|--------
`%server%`    | Server folder.              | `C:\Games\SPT-AKI\Server\`
`%profileID%` | File containing a profile.  | `C:\Games\SPT-AKI\Server\user\profiles\9dbfcbf0d3be487b9ac20cd8.json`

## Edit character level

* Open the wanted character profile with VSCodium (`%server%\user\%profileId%`).
* Search for the line with the property `Experience`.
* Go to [this](https://escapefromtarkov.gamepedia.com/Character_skills) EFT Wiki page and copy the `Cumulative Total` value of desired level.
* Paste the value instead of the existing one.
* Save the file.

On the next server startup the character will be at the desired level.

**Example:**

* Before:

  ```json
  // [...]
  "Side": "Bear",
  "Voice": "Bear_3",
  "Level": 1,
  "Experience": 27, // <== What needs to be edited.
  // [...]
  ```

* After:

  ```json
  // [...]
  "Side": "Bear",
  "Voice": "Bear_3",
  "Level": 1,
  "Experience": 781760,
  // [...]
  ```

> **Understanding why :** A character's level, in Escape From Tarkov, is not tied to the `"Level"` property. Instead, it's derived from the amount of experience it has. As such, a character with `781760` experience points will be level 30.

## Edit skill level

* Open the wanted character profile with VSCodium (`%server%\user\%profileId%`).
* Search for the line with the property `Skills`.
  * *You should now have a long list of all the character skills:*

  ```json
  // [...]
  "Common": [
    {
      "Id": "BotReload",
        "Progress": 0,
        "PointsEarnedDuringSession": 0,
        "LastAccess": -2147483648
    },
    {
      "Id": "Endurance",
      "Progress": 0,
      "PointsEarnedDuringSession": 0,
      "LastAccess": 0
    },
  // [...]
  ```

* Edit the `Progress` property value of any wanted skill except for `BotReload`.
* Save the file.

On the next server startup the character's skills will be at the desired level.

### Skill properties

Property                    | Purpose
----------------------------|---------
`Id`                        | Name of the skill.
`Progress`                  | Number of points learned for this skill.
`PointsEarnedDuringSession` | How many points were acquired during the last session.
`LastAccess`                | Last time a point was earned for this skill *(it's a timestamp)*.

> Each level correspond to 100 points (Level 1 = 100, level 10 = 1000, and so on). As such, for `Endurance` to reach level 51, you need to write `5100` for the skill's `Progress` property.
>
>```json
>{
>  "Id": "Endurance",
>  "Progress": 5100,
>  "PointsEarnedDuringSession": 0,
>  "LastAccess": 0
>},
>```

## Edit quest status

Well, in this part you will learn how to change your quest status, that means, make it finished without having done the requirements for it (you mainly need to do this when a specific quest is bugged).

For doing this heads to `ServerFolder/user/profiles/accountID/character.json` and search for this in the file : **"Quests":**.

You're going to face something like this when found :

```json
"Quests": [
  {
    "qid": "5936d90786f7742b1420ba5b",
    "startTime": 0,
    "completedConditions": [],
    "statusTimers": {
      "1": 1585993679.6069999
    },
    "status": "AvailableForStart"
  },
  {
    "qid": "5936da9e86f7742d65037edf",
    "startTime": 0,
    "completedConditions": ["59a9269486f7747aab09a77c"],
    "statusTimers": {},
    "status": "Locked"
  },
```

Let me explain you these :

* **"qid"**
  * This is the quest ID wich will give you the name of the quest.
* **"startTime"**
  * This is the timestamp when you started the quest.
* **"CompletedConditions"**
  * This is where the requirements for completing the quests are stored. These are ID's.
* **"statusTimers"**
  * This is the timestamp since when the quest is available.
* **"status"**
  * This define the status of the quest, decide if it's locked, completed, not started etc.

*How do i find the correct quest ID for the quest i look for ?* You can find all quests ID here : [Quest list](/docs/resources/quests_resources).

I think you guessed what we are gonna change ~~or maybe you didn't~~ wich is kinda self explanatory. This is **"status"** part.

Here are all available status for quests :

* Locked
* AvailableForStart
* Started
* AvailableForFinish
* Success
* Fail
* FailRestartable
* MarkedAsFailed

So, if you want to finish the quest you will need to change the status to : **"AvailableForFinish"**, but if you want to re-do a quest you already did, you will need to change the status to : **"AvailableForStart"**.

Don't forget to save your changes !

## Edit hideout area status

Well, in this part you will learn how to change anything related to the hideout areas, that means, make it max level without having done the requirements for it.

For doing this heads to `ServerFolder/user/profiles/accountID/character.json` and search for this in the file : **"Hideout":**.

When found, you will see something like this, don't be scared ! :

```json
"Production": {},
  "Areas": [
    {
      "type": 3,
      "level": 4,
      "active": true,
      "passiveBonusesEnabled": true,
      "completeTime": 0,
      "constructing": false,
      "slots": []
    },

  [...]
```

Let's explain what all this mean :

* **"Production":**
  * This is the list of all current productions in your hideout, scav cases, crafting meds etc...
* **"Areas":**
  * This is the list of all area of the hideout.
* **"type":**
  * This is the area ID for each specific thing in the hideout like *Scav case*, *Christmas tree*, *Stash*, *Workbench* etc...
* **"level":**
  * This is the level of the selected area.
* **"active":**
  * It define if the actual area is active or not.
* **"passiveBonusesEnabled":**
  * This define if the bonuses that the area should apply to the player are active or not.
* **"completeTime":**
  * The timestamp of when the constructions should be completed.
* **"constructing":**
  * Define if the area is actually under construction or not.
* **"slots":**
  * This list all objects stored by the area, mainly used for generators and bitcoin farm.

The two things that are important for us is : **"type":** and **"level":**. **Type** for knowning wich area we are editing and **Level** for setting it's level. You can find all area types and their max level here : [Hideout Areas list](/docs/resources/locations_resources)

The only thing you will have to do is changing the level to the max level number for selected area type and save your changes ! After that you can start your server and check your hideout !

## Editing traders

Well, in this part you will learn how to change your quest status, that means, make it finished without having done the requirements for it (you mainly need to do this when a specific quest is bugged)..

For doing this heads to `ServerFolder/user/profiles/accountID/character.json` and search for this in the file : **"TraderStandings":**.

You're going to face something like this when found :

```json
"54cb50c76803fa8b248b4571": {
  "currentLevel": 1,
  "currentSalesSum": 368974,
  "currentStanding": 0.2,
  "NextLoyalty": null,
  "loyaltyLevels": {
    "0": {
      "minLevel": 1,
      "minSalesSum": 0,
      "minStanding": 0
    },
    "1": {
      "minLevel": 15,
      "minSalesSum": 1000000,
      "minStanding": 0.2
    },
    "2": {
      "minLevel": 22,
      "minSalesSum": 1500000,
      "minStanding": 0.35
    },
    "3": {
      "minLevel": 33,
      "minSalesSum": 2300000,
      "minStanding": 0.5
    }
  }
},

[...]
```

Time to explain you everything !

* **"54cb50c76803fa8b248b4571":**
  * That's the trader ID.
* **"currentLevel":**
  * This is the current the trader is (yes it's kinda self explanatory).
* **"currentSalesSum":**
  * This is the total money you got for selling and buying to the trader.
* **"currentStanding":**
  * This is the total Standing points you got from quests for the trader.
* **"NextLoyalty":**
  * Don't pay attention to this.
* **"loyaltyLevels":**
  * This is all the Loyalty levels for the trader and their requirements.

So, for making all traders at their max loyalty level, we are going to take values from the Loyalty Level list, and take the last number values, and you will replace :

* **currentStanding** value by **minStanding** value.
* **currentSalesSum** value by **minSalesSum** value.
* Set **currentLevel** to **4**.

Only last thing is to save the changes ! And you're done, the trader is LL4 now. You can find the list of all traders ID here : [Traders ID List](/docs/resources/other_resources).

## Adding money to your character

In this part, we are going to add some cash in your inventory. For doing this we are going to make edits in the following file : `ServerFolder/user/profiles/accountID/character.json`.

First of all, make a stack of rouble, with a defined number, for an easier way, put it at **25666**, you now have a 25.666 stack of any money you choosed (can be lower number too, just make it a obvious number like 666 or 222 etc...). Now close the game **and** the server.

Open the file with VSCodium or Notepad++ and find the following line : **"StackObjectsCount": 25666** (for our exemple, but change the number with the stack you made).

This line is defining how much money the stack contain, and this is this line we are going to change. Now change the number **25666* by any number, like **99999999**. This will give you 99.999.999 $/€/Roubles

Save your changes and start the server, you now have a stack of 99.999.999 money !
