Technical Issues and Troubleshooting

## Technical Issues

### In-Game Letters/Numbers Disappearing.

This indicates that the computer is low on memory/out of memory (**RAM** or **video memory**).

* Restart the game.
* Close other programs.
* Lower in-game settings.

### Game Saves Are Weird (No/Old Ascension Levels. Run Is Not Saved)

This might be because **Steam Cloud save file** is **interfering** with your local save file.

* Run **SlayTheSpire.exe** as **administrator**:
	+ Right-click on **SlayTheSpire.exe** .
	+ Choose **Properties**.
	+ Choose **Compatibility tab**.
	+ Choose **Settings**.
	+ Check **Run this program as an administrator**
	+ Now **SlayTheSpire.exe** should be run with **administrator** rights every time.

* To disable **Steam Cloud**, do the following:
	+ Open **Steam**.
	+ Browse your **Library**.
	+ Right-click on **Slay the Spire**.
	+ Choose **Properties**.
	+ Select **Update** tab
	+ Choose **Verify Integrity of Game Files**.
	+ Under **Steam Cloud**, uncheck **Enable Steam Cloud synchronization for Slay the Spire**.
		- Your **Steam Cloud save files** can be found in *(...)\Steam\userdata\<ID>\646570\remote*.

### The Game Launches and the MegaCrit logo appears, But Nothing Else

* Disable **overlays**, like Discord, NVidia ShadowPlay/Geforce Experience/GSync, Duet (screen display program).

### The Game Does Not Load At All

The following are basic methods that should be attempted first in case Slay the Spire does not load at all.

#### Verify the integrity of game files.

* Open **Steam**.
* Browse your **Library**.
* Right-click on **Slay the Spire**.
* Choose **Properties**.
* Select **Local Files** tab.
* Choose **Verify Integrity of Game Files**.

#### Update audio/video drivers.

* Open **Device Manager** in Windows:
	+ **Updating audio device:**
		- Choose **Sound, Video and Game controllers**.
		- Right-click on **your audio device**.
		- Choose **Update driver**.
		- Choose **Search automatically for updated driver software**.
			* Alternatively, if you have found a more up-to-date driver yourself, you can select **Browse my computer for driver software**.
	+ **Updating video card:**
		- Choose **Sound, Video and Game controllers**.
		- Right-click on **your video card**.
		- Choose **Search automatically for updated driver software**.
			* Alternatively, if you have found a more up-to-date driver yourself, you can select **Browse my computer for driver software**.

If both failed to fix the problem, please continue to Troubleshooting Slay the Spire.

### Troubleshooting Slay the Spire

* Go to the **install folder of Slay the Spire**.
	+ It should be at *...\Steam\steamapps\common\SlayTheSpire*
		- If you are not sure, you can browse the folder following these steps:
			* Open **Steam**.
			* Browse your **Library**.
			* Right-click on **Slay the Spire**.
			* Choose **Properties**.
			* Select **Local Files** tab.
			* Choose **Browse Local Files**.
			* This should open File Explorer window for *...\Steam\steamapps\common\SlayTheSpire*
* Run **SlayTheSpireTroubleshoot.bat**.

Running **SlayTheSpireTroubleshoot.bat** should produce one of the two results:

#### SlayTheSpireTroubleshoot.bat Launches The Game And It Works.

This often means you have to run **SlayTheSpire.exe** as an **administrator**.

* Right-click on **SlayTheSpire.exe**.
* Choose **Properties**.
* Choose **Compatibility tab**.
* Choose **Settings**.
* Check **Run this program as an administrator**.

Now **SlayTheSpire.exe** should be run with **administrator** rights every time.

#### SlayTheSpireTroubleshoot.bat Produces An Error And The Game Does Not Launch

Continue to Slay the Spire Troubleshoot Errors.

### Slay the Spire Troubleshoot Errors

Observe your **troubleshoot.log** to pinpoint the problem. You can find the log in *(...)\SlayTheSpire\sendToDevs\troubleshoot.log*. See what is in troubleshoot.log **and follow the solution accordingly.**

* Open **Steam**.
* Browse your **Library**.
* Right-click on **Slay the Spire**.
* Choose **Properties**.
* Select **Local Files** tab.
* Choose **Browse Local Files**.
* Right-click on **SlayTheSpire app**.
* Choose **Show Package Contents**.
* Choose **Contents**.
* Choose **Resources**.

Apart from the lack of **SlayTheSpireTroubleshoot.bat**, there should be folders and files identical to the Windows version.

#### System Locale Error

If the following is displayed in **troubleshoot.log**:

...
Caused by: java.nio.charset.UnsupportedCharsetException: Cp65001`

This means you should change your **System Locale** to **English (United States)****. Do the following:**

* Open Windows **Settings**.
* Choose **Time & Language**.
* Choose **Language** tab.
* Choose **Administrative language settings****. It should be by the top right side.**
* New window called **Region** should appear, and is on the **Administrative** tab by default.
* Choose **Change system locale...**
* Choose **English (United States)**.
* Click **OK** on all windows to confirm changes.

You might need to **restart** before the effect takes place.

#### java.lang.UnsatisfiedLinkError

If the following is displayed in **troubleshoot.log**:

See what follows, and follow the instruction accordingly.

If `java.lang.UnsatisfiedLinkError` is followed by a file path with weird characters, **for example:**

Notably, it ends with "Can't find dependent libraries". The "??????" in the file path may come in the form of boxes, or a name with a question mark in it, which is **not exactly the same to your Windows username**. It means that **your Windows account username contains special, non-ASCII characters**.

It is also strongly advised to avoid special characters (space, symbols such as !@#$%^&\*()\_-, etc.), since they might cause the same error as well.

The main concern with this error is that you need an account with an appropriate name, containing only **ASCII characters**.
* Username Fix Mod
	+ You can subscribe to Username Fix Mod by Alchyr.
	+ Remember that, as per all mod, you need to subscribe to ModTheSpire first.
	+ As of now, this method only works on Windows.
	+ Be sure to read the detailed instructions on how to use this mod here.
* New User Profile
	+ Make a new Windows user profile with the username only containing **ASCII characters**. Then use this user profile to play Slay the Spire.
		- Open Windows **Settings**.
		- Choose **Accounts**.
		- Choose **Family & other users** tab.
		- Choose **Add someone else to this PC**.
		- Choose **I don't have this person's sign-in information**.
		- Choose **Add a user without a Microsoft account**.
		- Enter name, password and password hints.
			* Make sure that this name contains only **ASCII characters**.
		- Click **Next**. This should successfully create a new account on your computer.
		- **Log out** of your current account and **log into** the new account.
* Change Windows Account Username
	+ Change the name of your user profile to use **ASCII characters** only:
		- First, check if your Windows account username contains **special, non-ASCII characters** or not.
			* Press **Windows + R** to bring up the **Run** window.
			* Type in **cmd** and press **Enter** or click **OK**. This should launch Windows **Command Prompt**, a small black window.
				+ Alternatively, you can also search for **Command Prompt** in your taskbar **Search** bar.
			* In **Command Prompt**, type **echo %username%** and see what it returns.
			* This is your username used by the system. If this name contains **special, non-ASCII characters** characters (see above), you need to change it.
		- To change your user profile name, do the following.
			* Press **Windows + R** to bring up the **Run** window.
			* Type in **netplwiz** and press **Enter** or click **OK**. This should launch Windows **User Accounts** window.
			* Look for your account in the **Users** tab.
				+ It should be the one with the same name you got from checking your username with **echo %username%**.
			* Click on the account to select it.
			* Click **Properties****.**
			* Change the **Username** to something using only **ASCII characters**.
			* Click **Apply** and **OK**.
			* **Log out** of your account and then **log back in**.
				+ You can check whether the username has been changed correctly by doing **echo %username%** in the **Command Prompt** again.
			* Launch **Slay the Spire**. Hopefully, it will create a correct folder and can access it.
	+ If the *Users\<username>* folder still shows the **old username**, and Slay the Spire **does not start** and **produces the same error message in the log**, we need to perform some additional steps (see also). Continue to Change Windows Account Username - Advanced below.

Make a **backup** of your **Registry** and be *very careful* when changing something inside of it.
**Perform these steps at your own risk!**

* Change Windows Account Username - Advanced
	+ **Log into** a **different administrator account**, as you cannot do the following changes when logged in on the same account. Create a new administrator account if necessary. This account can be deleted once you are done (see also).

* Choose **Accounts**.
* Choose **Family & other users** tab.
* Choose **Add someone else to this PC**.
* Choose **I don't have this person's sign-in information**.
* Choose **Add a user without a Microsoft account**.
* Enter name, password and password hints.
* Click **Next**. This should successfully create a new account on your computer.
* In **Settings** > **Accounts** > **Family & other users** you should now see the new account.
* Select the account you want to make an administrator.
* Under **Account type**, select **Administrator**.
* Click **OK**.
* **Log out** of your current account and **log into** the new administrator account.

* Rename the *C:\Users\**<old username>* folder to the **new username**.

see also).

* Type in **regedit** and press **Enter** or click **OK**. This should launch the Windows **Registry** window.
* Select **File**.
* Choose **Export**.
* In **Export range**, check **All**.
* Type in a File name and store it somewhere safe.

* Change the **Registry key**:
	+ Press **Windows + R** to bring up **Run** window.
	+ Type in **regedit** and press **Enter** or click **OK**. This should launch Windows **Registry** window.
	+ Expand **HKEY\_LOCAL\_MACHINE** by clicking a small arrow to the left of the text.
	+ Expand **SOFTWARE** by clicking a small arrow to the left of the text.
	+ Expand **Microsoft** by clicking a small arrow to the left of the text.
	+ Expand **Windows NT** by clicking a small arrow to the left of the text.
	+ Expand **CurrentVersion** by clicking a small arrow to the left of the text.
	+ Expand **ProfileList** by clicking a small arrow to the left of the text.
	+ Click on your **<User SID>**.
		- The **User SID** is usually one with the longer string of texts.
	+ The right panel displays the list of **Registry keys** contained in the directory. Find one named **ProfileImagePath**.
		- Its **Data** registry value should be *C:\Users\**<old username>*. If it is not, try looking at another **User SID**.
	+ Modify the registry value of **ProfileImagePath** from the old path name (*C:\Users\**<old username>*) to the new path name (*C:\Users\**<new username>*).
		- Right-click on **ProfileImagePath**.
		- Choose **Modify...** . This should bring up the **Edit String** window.
		- Change the **Value data** field to the new path name (*C:\Users\**<new username>*).
		- Click **OK**.
* **Log out** of your Windows account and **log in** again using the user whose name has been changed and try to start Slay the Spire again.

If `java.lang.UnsatisfiedLinkError` is followed by a **correct file path**, but with "Access is denied" at the end, **for example:**

It means that **permissions for the files that are necessary to run the game might be restricted**.

* Check the **file permissions** of the **DLL files** in that folder (*lwjgl64.dll* and *OpenAL64.dll*):
	+ **Right-click** the file.
	+ Go to **Properties**.
	+ Click on **Security tab**.
	+ Click your **Windows username**.
	+ Check in the **Permissions box** whether it has **check marks** on **Allow** for all entries (except for Special permissions, this one can be empty)
* If you have checked and see that there are **check marks** that are **missing**:
	+ Click **Edit...**
	+ select your **Windows username****.**
	+ tick the **Allow** boxes for **all entries** (except for Special permissions).

**—When Playing With Mods—**
After the above, if you get the message "Could not connect to Steam":
* Go to *C:\Users\<username>\AppData\Local\Temp\steamworks4j\96ad60e5*
* **Check the permissions** for *steam\_api64.dll* and *steamworks4j64.dll*.
* Adjust them if needed in the same way as described above for lwjgl64.dll and OpenAL64.dll.

* From the Steam launcher, mouse over STS
	+ **Right-click** STS.
	+ Go to **Properties**.
	+ Click on **BETAS**.
	+ Select v2.3.3 - 2022-12-01
	+ Let the game update.