diff --git a/.gitignore b/.gitignore
index 03fc2c78d2c0dea0dbf8498a235e46893304b422..6df7685b8f007154333654eacd7351fe0de6fbf4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,4 @@ creeperDb*
 release.properties
 aethermud-graph.json
 aethermud-graph.json*
+aethermud-graphdb-orientdb/
diff --git a/src/main/java/com/syncleus/aethermud/Main.java b/src/main/java/com/syncleus/aethermud/Main.java
index b8bc48901265a84f829ba393eba29ebe14f585ca..51dd3129c56d2a9f3c29d911377bf2464d3d6fa9 100644
--- a/src/main/java/com/syncleus/aethermud/Main.java
+++ b/src/main/java/com/syncleus/aethermud/Main.java
@@ -89,7 +89,7 @@ public class Main {
 
         Files.isDirectory().apply(new File("world/"));
 
-        GraphStorageFactory graphStorageFactory = new GraphStorageFactory();
+        GraphStorageFactory graphStorageFactory = new GraphStorageFactory(true);
 
         PlayerManager playerManager = new PlayerManager(graphStorageFactory, new SessionManager());
         playerManager.createAllGauges();
diff --git a/src/main/java/com/syncleus/aethermud/storage/graphdb/GraphStorageFactory.java b/src/main/java/com/syncleus/aethermud/storage/graphdb/GraphStorageFactory.java
index 0e333bbb2747a350bbf45b80b7bbf7625c5aca43..6b13676402fd4e1e8b20b62357c9910d050c24eb 100644
--- a/src/main/java/com/syncleus/aethermud/storage/graphdb/GraphStorageFactory.java
+++ b/src/main/java/com/syncleus/aethermud/storage/graphdb/GraphStorageFactory.java
@@ -30,13 +30,28 @@ public class GraphStorageFactory {
     OrientGraphFactory graphFactory;
     OrientTransactionFactory txFactory;
 
-    public GraphStorageFactory() {
-        graphFactory = new OrientGraphFactory("memory:tinkerpop");
+    public GraphStorageFactory(String connectUrl, String username, String password) {
+        graphFactory = new OrientGraphFactory(connectUrl, username, password);
+        txFactory = new OrientTransactionFactoryImpl(graphFactory, true, "com.syncleus.aethermud.storage.graphdb.model");
+        txFactory.setupElementClasses();
+        txFactory.addEdgeClass("ItemApplyStats");
+    }
+
+    public GraphStorageFactory(String connectUrl) {
+        graphFactory = new OrientGraphFactory(connectUrl);
         txFactory = new OrientTransactionFactoryImpl(graphFactory, true, "com.syncleus.aethermud.storage.graphdb.model");
         txFactory.setupElementClasses();
         txFactory.addEdgeClass("ItemApplyStats");
     }
 
+    public GraphStorageFactory() {
+        this(false);
+    }
+
+    public GraphStorageFactory(boolean onDisk) {
+        this(onDisk ? "plocal:./aethermud-graphdb-orientdb" : "memory:tinkerpop");
+    }
+
     public AetherMudTx beginTransaction() {
         return new AetherMudTx(txFactory.tx());
     }