diff --git a/README.md b/README.md
index 5fe493c7..cbd480a9 100644
--- a/README.md
+++ b/README.md
@@ -4,9 +4,9 @@ MHServerEmu is an experimental server emulator for Marvel Heroes.
The only currently supported version of the game client is **1.52.0.1700** (also known as **2.16a**).
-Please see [Overview.md](https://github.com/Crypto137/MHServerEmu/blob/master/docs/Overview.md) to find out how everything works.
+You can find additional information on various topics in our [documentation](./docs/Index.md).
-If you want to ask questions about the server emulator or help with the development, feel free to join our Discord: https://discord.gg/hjR8Bj52t3
+If you would like to ask questions about the server emulator or help with the development, feel free to join our Discord: https://discord.gg/hjR8Bj52t3
## Features
diff --git a/docs/EmbeddedBrowser.md b/docs/EmbeddedBrowser.md
index 59836374..7612078a 100644
--- a/docs/EmbeddedBrowser.md
+++ b/docs/EmbeddedBrowser.md
@@ -4,7 +4,7 @@ The in-game store and the community news window use a CEF-based web browser that
## API Calls
-Calls are generally made with onclick events (e.g. ``````). You can find an example of a store home page [here](https://github.com/Crypto137/MHServerEmu/tree/master/assets/store/mhgame_store_home).
+Calls are generally made with onclick events (e.g. ``````). You can find an example of a store home page [here](./../assets/store/mhgame_store_home).
| Call | Description |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
diff --git a/docs/Index.md b/docs/Index.md
new file mode 100644
index 00000000..c6ed2b6f
--- /dev/null
+++ b/docs/Index.md
@@ -0,0 +1,27 @@
+# MHServerEmu Documentation
+
+If this is your first time setting up MHServerEmu, you might be interested in this:
+
+- [Setup.md](./Setup.md) - initial setup instructions.
+
+- [SetupAdvanced.md](./SetupAdvanced.md) - advanced setup instructions.
+
+- [ServerCommands.md](./ServerCommands.md) - a list of available server commands.
+
+If you would like to help with the development, here are some resources you can use:
+
+- [Overview.md](./Overview.md) - lays out the basics (somewhat outdated).
+
+- [ClientVersions.md](./ClientVersions.md) - information on various clients and how to get them.
+
+- [ClientLaunchParameters.md](./ClientLaunchParameters.md) - lists various launch parameters that you can use when running the client (such as enabling verbose logging).
+
+For specific topics see these:
+
+- [ClientConfig.md](./ClientConfig.md) - ClientConfig.xml file structure.
+
+- [SiteConfig.md](./SiteConfig.md) - SiteConfig.xml file structure.
+
+- [EmbeddedBrowser.md](./EmbeddedBrowser.md) - API documentation for the web browser embedded in the client.
+
+If you would like to ask questions or get up to date information, please feel free to contact us on [Discord](https://discord.gg/hjR8Bj52t3).
diff --git a/docs/Setup.md b/docs/Setup.md
index 16f45818..0fb58320 100644
--- a/docs/Setup.md
+++ b/docs/Setup.md
@@ -2,7 +2,7 @@
First you need to get the 1.52.0.1700 client. This is the final released version of Marvel Heroes, If you still have the game in your Steam library, you can download it from there.
-*Note: it is also possible to download other versions of the client from Steam. See [ClientVersions.md](https://github.com/Crypto137/MHServerEmu/blob/master/docs/ClientVersions.md) for details.*
+*Note: it is also possible to download other versions of the client from Steam. See [ClientVersions.md](./ClientVersions.md) for details.*
After getting the client, you need to set up a web server to serve SiteConfig.xml and redirect login requests. For this guide we're going to use Apache.
@@ -15,13 +15,13 @@ After getting the client, you need to set up a web server to serve SiteConfig.xm
4. Open ```Apache24\conf\extra\httpd-ahssl.conf``` with any text editor, find the `` section, and add the following two lines to it:
`RewriteEngine on` and `RewriteRule ^/AuthServer(.*) http://%{HTTP_HOST}:8080$1 [P]`.
-5. Put [SiteConfig.xml](https://github.com/Crypto137/MHServerEmu/blob/master/assets/SiteConfig.xml) provided in this repository in ```Apache24\htdocs```.
+5. Put [SiteConfig.xml](./../assets/SiteConfig.xml) provided in this repository in ```Apache24\htdocs```.
6. Open ```ClientConfig.xml``` located in ```Marvel Heroes\Data\Configs``` with any text editor and replace the ```SiteConfigLocation``` value with ```localhost/SiteConfig.xml```. The line should look like this: ``.
7. Compile MHServerEmu with Visual Studio or any other tool you prefer. You can download Visual Studio Community [here](https://visualstudio.microsoft.com/vs/community/).
-8. Copy `Calligraphy.sip` and `mu_cdata.sip` located in `Marvel Heroes\Data\Game` to `MHServerEmu\Assets\GPAK`. Make sure to copy these files to where your compiled emulator is (e.g. `src\MHServerEmu\bin\Debug\net6.0\Assets\GPAK`), and not to one of the source directories.
+8. Copy `Calligraphy.sip` and `mu_cdata.sip` located in `Marvel Heroes\Data\Game` to `MHServerEmu\Assets\GPAK`. Make sure to copy these files to where your compiled emulator is (e.g. `src\MHServerEmu\bin\x64\Debug\net6.0\Assets\GPAK`), and not to one of the source directories.
Now you can actually start everything and get in-game.
@@ -37,4 +37,4 @@ If everything works correctly, the server should display client connection infor
*Note: you can launch the game without Steam by running MarvelHeroesOmega.exe with the following arguments: -robocopy -nosteam.*
-You can customize how the emulator functions, including changing your starter hero, by editing the `Config.ini` file.
+You can customize how the emulator functions, including changing your starter hero, by editing the `Config.ini` file. See [SetupAdvanced.md](./SetupAdvanced.md) for more advanced setup topics.
diff --git a/docs/SetupAdvanced.md b/docs/SetupAdvanced.md
new file mode 100644
index 00000000..61b58f2c
--- /dev/null
+++ b/docs/SetupAdvanced.md
@@ -0,0 +1,47 @@
+# Advanced Setup
+
+Below are some of the more advanced setup topics you might be interested in. For first-time setup instructions please see [Setup.md](./Setup.md).
+
+## Enabling Accounts
+
+By default the `BypassAuth` option in `Config.ini` is enabled. This makes the server accept any login information and always use a stub account, which is not ideal for anything beyond basic single player testing. To be able to save data and have multiple clients able to connect you need to disable `BypassAuth` and set up accounts.
+
+You can create and manage accounts by using ! commands in the server console or the in-game chat window. Here are some commands to get you started:
+
+- `!account create [email] [playerName] [password]` - creates a new account with the specified email, player name, and password. Email and player name must be unique for each account.
+
+- `!account userlevel [0|1|2]` - sets user level for the specified account to user (0), moderator (1), or admin (2). Higher user levels enable additional in-game command privileges, up to being able to manage other accounts and shut down the server.
+
+- `!account password [email] [newPassword]` - changes password for the specified account.
+
+For a more in-depth list of commands see [ServerCommands.md](./ServerCommands.md) or type `!commands`.
+
+## Setting Up Remote Connections
+
+To allow remote clients to connect to your server you need to set up your Apache to function as a reverse proxy server.
+
+1. Add `ProxyPass /AuthServer http://localhost:8080` and `ProxyPassReverse /AuthServer http://localhost:8080` to `httpd-ahssl.conf`, similar to how you have added Rewrite lines during the initial setup.
+
+2. Create a copy of your `SiteConfig.xml` in `Apache24\htdocs` and replace the `AuthServerAddress` value in it with your server's **public** IP address or domain name.
+
+3. Replace `BindIP` in `Config.ini` with your **local** IP address or `0.0.0.0`. This has to be an IP address and not domain name.
+
+4. Replace `PublicAddress` in `Config.ini` with your **public** address (this can be an IP address or a domain name, like in `SiteConfig.xml`).
+
+After doing the above steps you can connect to the server remotely by either editing `ClientConfig.xml` on the client's machine or launching the game with the following parameter: `-siteconfigurl=yourserveraddress.com/SiteConfig.xml`. To connect to the server from the same machine it is being hosted on you need to use the original `SiteConfig.xml` that points to `localhost`.
+
+Please keep in mind that MHServerEmu is experimental software still heavily in development, and hosting a publicly available server on the Internet brings with it potential security risks.
+
+## Setting Up In-Game Store and News
+
+The client an embedded web browser for some of its UI panels. MHServerEmu provides some options that allow you to make use of this feature.
+
+1. Copy the [mhgame_store_home](./../assets/store/mhgame_store_home/) folder provided in this repository to `Apache24\htdocs`.
+
+2. Set `OverrideStoreUrls` in `Config.ini` to `true`.
+
+3. Set `StoreHomePageUrl` in `Config.ini` to `http://localhost/mhgame_store_home`.
+
+Restart the server, and you should be able to see an example store home page when you open the in-game store. You can set other pages by editing various url options in `Config.ini` (e.g. `NewsUrl` to change the content of the news window). For more information on the embedded browser see [EmbeddedBrowser.md](./EmbeddedBrowser.md).
+
+Please note that the embedded browser is a 2014 version of the Chromium Embedded Framework (CEF), and using for general web browsing brings with it major security risks. You should use it only for displaying the content you trust.