Index: binary-improvements/7dtd-server-fixes/src/CommandExtensions.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/CommandExtensions.cs	(revision 162)
+++ binary-improvements/7dtd-server-fixes/src/CommandExtensions.cs	(revision 163)
@@ -10,21 +10,23 @@
 		{
 			try {
-				manager.m_GUIConsole.AddCommand (new CreativeMenu (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new EnableRendering (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new GetGamePrefs (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new GetTime (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new Give (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new Kill (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new ListItems (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new ListKnownPlayers (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new ListLandProtection (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new ListPlayersExtended (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new RemoveLandProtection (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new RenderMap (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new Reply (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new SayToPlayer (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new SetTimeReal (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new ShowInventory (manager.m_GUIConsole));
-				manager.m_GUIConsole.AddCommand (new AllocsFixes.CustomCommands.Version (manager.m_GUIConsole));
+				ConsoleSdtd cons = manager.m_GUIConsole;
+				cons.AddCommand (new CreativeMenu (cons));
+				cons.AddCommand (new EnableRendering (cons));
+				cons.AddCommand (new GetGamePrefs (cons));
+				cons.AddCommand (new GetTime (cons));
+				cons.AddCommand (new Give (cons));
+				cons.AddCommand (new Kill (cons));
+				cons.AddCommand (new ListItems (cons));
+				cons.AddCommand (new ListKnownPlayers (cons));
+				cons.AddCommand (new ListLandProtection (cons));
+				cons.AddCommand (new ListPlayersExtended (cons));
+				cons.AddCommand (new RemoveLandProtection (cons));
+				cons.AddCommand (new RenderMap (cons));
+				cons.AddCommand (new Reply (cons));
+				cons.AddCommand (new SayToPlayer (cons));
+				cons.AddCommand (new SetTimeReal (cons));
+				cons.AddCommand (new ShowInventory (cons));
+				cons.AddCommand (new TeleportPlayer (cons));
+				cons.AddCommand (new AllocsFixes.CustomCommands.Version (cons));
 			} catch (Exception e) {
 				Log.Out ("Error registering custom commands: " + e);
Index: binary-improvements/7dtd-server-fixes/src/CustomCommands/TeleportPlayer.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/CustomCommands/TeleportPlayer.cs	(revision 163)
+++ binary-improvements/7dtd-server-fixes/src/CustomCommands/TeleportPlayer.cs	(revision 163)
@@ -0,0 +1,65 @@
+using AllocsFixes.PersistentData;
+using System;
+using System.Collections.Generic;
+
+namespace AllocsFixes.CustomCommands
+{
+	public class TeleportPlayer : ConsoleCommand
+	{
+		public TeleportPlayer (ConsoleSdtd cons) : base(cons)
+		{
+		}
+
+		public override string Description ()
+		{
+			return "teleport a player to a given location";
+		}
+
+		public override string[] Names ()
+		{
+			return new string[] { "teleportplayer", "tele" };
+		}
+
+		public override void Run (string[] _params)
+		{
+			try {
+				if (_params.Length != 4) {
+					m_Console.SendResult ("Usage: teleportplayer <entityid|playername|steamid> <x> <y> <z>");
+				} else {
+					string steamid = PersistentContainer.Instance.Players.GetSteamID (_params [0], true);
+					if (steamid == null) {
+						m_Console.SendResult ("Playername or entity/steamid id not found.");
+						return;
+					}
+
+					Player p = PersistentContainer.Instance.Players [steamid];
+					if (!p.IsOnline) {
+						m_Console.SendResult ("Player not online.");
+						return;
+					}
+
+					int x = int.MinValue;
+					int.TryParse (_params [1], out x);
+					int y = int.MinValue;
+					int.TryParse (_params [2], out y);
+					int z = int.MinValue;
+					int.TryParse (_params [3], out z);
+
+					if (x == int.MinValue || y == int.MinValue || z == int.MinValue) {
+						m_Console.SendResult ("At least one of the given coordinates is not a valid integer");
+						return;
+					}
+
+					p.Entity.position.x = x;
+					p.Entity.position.y = y;
+					p.Entity.position.z = z;
+					NetPackage_EntityPosAndRot pkg = new NetPackage_EntityPosAndRot(p.Entity);
+
+					p.ClientInfo.netConnection[0].mdv0005(pkg);
+				}
+			} catch (Exception e) {
+				Log.Out ("Error in TeleportPlayer.Run: " + e);
+			}
+		}
+	}
+}
Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/API/GetPlayerInventory.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/API/GetPlayerInventory.cs	(revision 163)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/API/GetPlayerInventory.cs	(revision 163)
@@ -0,0 +1,65 @@
+using AllocsFixes.JSON;
+using AllocsFixes.PersistentData;
+using System;
+using System.Collections.Generic;
+using System.Net;
+
+namespace AllocsFixes.NetConnections.Servers.Web.API
+{
+	public class GetPlayerInventory : WebAPI
+	{
+		public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, HttpListenerBasicIdentity user)
+		{
+			Log.Out ("" + req.QueryString);
+
+			if (req.QueryString ["steamid"] == null) {
+				resp.StatusCode = (int)HttpStatusCode.InternalServerError;
+				Web.SetResponseTextContent (resp, "No SteamID given");
+				return;
+			}
+
+			Player p = PersistentContainer.Instance.Players [req.QueryString ["steamid"]];
+			if (p == null) {
+				resp.StatusCode = (int)HttpStatusCode.InternalServerError;
+				Web.SetResponseTextContent (resp, "Invalid or unknown SteamID given");
+				return;
+			}
+
+			PersistentData.Inventory inv = p.Inventory;
+
+
+			JSONObject result = new JSONObject ();
+
+			JSONArray bag = new JSONArray ();
+			JSONArray belt = new JSONArray ();
+			result.Add ("bag", bag);
+			result.Add ("belt", belt);
+
+			for (int i = 0; i < inv.belt.Count; i++) {
+				JSONObject item = new JSONObject();
+				if (inv.belt [i] != null) {
+					item.Add ("count", new JSONNumber(inv.belt[i].count));
+					item.Add ("name", new JSONString(inv.belt[i].itemName));
+				} else {
+					item.Add ("count", new JSONNumber(0));
+					item.Add ("name", new JSONString(string.Empty));
+				}
+				belt.Add(item);
+			}
+			for (int i = 0; i < inv.bag.Count; i++) {
+				JSONObject item = new JSONObject();
+				if (inv.bag [i] != null) {
+					item.Add ("count", new JSONNumber(inv.bag[i].count));
+					item.Add ("name", new JSONString(inv.bag[i].itemName));
+				} else {
+					item.Add ("count", new JSONNumber(0));
+					item.Add ("name", new JSONString(string.Empty));
+				}
+				bag.Add(item);
+			}
+
+			WriteJSON (resp, result);
+		}
+	}
+}
+
Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/ApiHandler.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/ApiHandler.cs	(revision 162)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/ApiHandler.cs	(revision 163)
@@ -18,4 +18,5 @@
 			apis.Add ("getplayersonline", new GetPlayersOnline ());
 			apis.Add ("getplayerslocation", new GetPlayersLocation ());
+			apis.Add ("getplayerinventory", new GetPlayerInventory ());
 		}
 
Index: binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs	(revision 162)
+++ binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/Web.cs	(revision 163)
@@ -120,4 +120,13 @@
 		}
 
+		public static void SetResponseTextContent (HttpListenerResponse resp, string text)
+		{
+			byte[] buf = Encoding.UTF8.GetBytes (text);
+			resp.ContentLength64 = buf.Length;
+			resp.ContentType = "text/html";
+			resp.ContentEncoding = Encoding.UTF8;
+			resp.OutputStream.Write (buf, 0, buf.Length);
+		}
+
 	}
 }
Index: binary-improvements/7dtd-server-fixes/src/PersistentData/Inventory.cs
===================================================================
--- binary-improvements/7dtd-server-fixes/src/PersistentData/Inventory.cs	(revision 162)
+++ binary-improvements/7dtd-server-fixes/src/PersistentData/Inventory.cs	(revision 163)
@@ -48,10 +48,5 @@
 		{
 			ItemBase iBase = ItemBase.list [item.itemValue.type];
-			string name = iBase.name;
-			if (iBase.IsBlock ()) {
-				ItemBlock iBlock = (ItemBlock)iBase;
-				name = iBlock.GetItemName (item.itemValue);
-			}
-			return name;
+			return iBase.GetItemName(item.itemValue);
 		}
 
