diff --git a/nge.backup b/nge.backup
index e1c0fa569..a65cc13a0 100644
Binary files a/nge.backup and b/nge.backup differ
diff --git a/res/webserver/authenticated.html b/res/webserver/authenticated.html
new file mode 100644
index 000000000..a88c3fc3b
--- /dev/null
+++ b/res/webserver/authenticated.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+ Resource Usage:
+
+
+
+ ${ONLINE_PLAYERS}
+
+ ${CHARACTER_INFO}
+
+
+
+ ${LOG}
+
+
+
+
diff --git a/res/webserver/css/style.css b/res/webserver/css/style.css
new file mode 100644
index 000000000..033b570d3
--- /dev/null
+++ b/res/webserver/css/style.css
@@ -0,0 +1,139 @@
+@charset "utf-8";
+/* CSS Document */
+
+body, html {
+ width: 100%;
+ height: 100%;
+ font-family: "Helvetica Neue", Helvetica, sans-serif;
+ color: #444;
+ -webkit-font-smoothing: antialiased;
+ background: #f0f0f0;
+}
+
+.wrapper{
+ min-height:100%;
+ height:100%;
+}
+.logo{
+ background-image:url(../images/pswg_server_management.png);
+ width: 200px;
+ height:210px;
+ margin:0 auto;
+}
+.login_container {
+ /* position: fixed;*/
+ width: 340px;
+ height: 490px;
+ top: 50%;
+ left: 50%;
+ margin:0 auto;
+ /* margin-top: -140px;
+ margin-left: -170px;*/
+ background: #fff;
+ border-radius: 3px;
+ border: 1px solid #ccc;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .1);
+ -webkit-animation-name: bounceIn;
+ -webkit-animation-fill-mode: both;
+ -webkit-animation-duration: 1s;
+ -webkit-animation-iteration-count: 1;
+ -webkit-animation-timing-function: linear;
+ -moz-animation-name: bounceIn;
+ -moz-animation-fill-mode: both;
+ -moz-animation-duration: 1s;
+ -moz-animation-iteration-count: 1;
+ -moz-animation-timing-function: linear;
+ animation-name: bounceIn;
+ animation-fill-mode: both;
+ animation-duration: 1s;
+ animation-iteration-count: 1;
+ animation-timing-function: linear;
+}
+
+form {
+ margin: 0 auto;
+ margin-top: 20px;
+}
+
+label {
+ color: #555;
+ display: inline-block;
+ margin-left: 18px;
+ padding-top: 10px;
+ font-size: 14px;
+}
+
+
+
+input {
+ font-family: "Helvetica Neue", Helvetica, sans-serif;
+ font-size: 12px;
+ outline: none;
+}
+
+input[type=text],
+input[type=password] {
+ color: #777;
+ padding-left: 10px;
+ margin: 10px;
+ margin-top: 12px;
+ margin-left: 18px;
+ width: 290px;
+ height: 35px;
+ border: 1px solid #c7d0d2;
+ border-radius: 2px;
+ -webkit-transition: all .4s ease;
+ -moz-transition: all .4s ease;
+ transition: all .4s ease;
+}
+
+#lower {
+ background: #ecf2f5;
+ width: 100%;
+ height: 63px;
+ margin-top: 20px;
+ box-shadow: inset 0 1px 1px #fff;
+ border-top: 1px solid #ccc;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+
+input[type=submit] {
+ float: right;
+ margin-right: 20px;
+ margin-top: 16px;
+ width: 80px;
+ height: 30px;
+ background-color: #acd6ef; /*IE fallback*/
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#acd6ef), to(#6ec2e8));
+ background-image: -moz-linear-gradient(top left 90deg, #acd6ef 0%, #6ec2e8 100%);
+ background-image: linear-gradient(top left 90deg, #acd6ef 0%, #6ec2e8 100%);
+ border-radius: 30px;
+ border: 1px solid #66add6;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .5);
+ cursor: pointer;
+}
+
+input[type=text]:hover,
+input[type=password]:hover {
+ border: 1px solid #b6bfc0;
+ box-shadow: inset 0 1.5px 3px rgba(190, 190, 190, .7), 0 0 0 5px #f5f7f8;
+}
+
+input[type=text]:focus,
+input[type=password]:focus {
+ border: 1px solid #a8c9e4;
+ box-shadow: inset 0 1.5px 3px rgba(190, 190, 190, .4), 0 0 0 5px #e6f2f9;
+}
+
+input[type=submit]:hover {
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#b6e2ff), to(#6ec2e8));
+ background-image: -moz-linear-gradient(top left 90deg, #b6e2ff 0%, #6ec2e8 100%);
+ background-image: linear-gradient(top left 90deg, #b6e2ff 0%, #6ec2e8 100%);
+}
+
+input[type=submit]:active {
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#6ec2e8), to(#b6e2ff));
+ background-image: -moz-linear-gradient(top left 90deg, #6ec2e8 0%, #b6e2ff 100%);
+ background-image: linear-gradient(top left 90deg, #6ec2e8 0%, #b6e2ff 100%);
+}
\ No newline at end of file
diff --git a/res/webserver/favicon.ico b/res/webserver/favicon.ico
new file mode 100644
index 000000000..5d39b59fe
Binary files /dev/null and b/res/webserver/favicon.ico differ
diff --git a/res/webserver/images/pswg_server_management.png b/res/webserver/images/pswg_server_management.png
new file mode 100644
index 000000000..a9d6f9efa
Binary files /dev/null and b/res/webserver/images/pswg_server_management.png differ
diff --git a/res/webserver/index.html b/res/webserver/index.html
new file mode 100644
index 000000000..acfb36e1e
--- /dev/null
+++ b/res/webserver/index.html
@@ -0,0 +1,25 @@
+
+
+
+