diff --git a/.gitignore b/.gitignore
index 6f92a01..91db368 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+# ---> VIM
+*.swp
+
 # ---> Node
 # Logs
 logs
diff --git a/html/css/extra.css b/html/css/extra.css
index 524b156..50e28b7 100644
--- a/html/css/extra.css
+++ b/html/css/extra.css
@@ -17,3 +17,8 @@ tr.clickable:hover{
 	color: #aaa;
 	text-align: center;
 }
+
+label {
+	display: inline;
+	margin-left: 12px;
+}
diff --git a/html/index.html b/html/index.html
index d95dc4a..cc5e75a 100644
--- a/html/index.html
+++ b/html/index.html
@@ -52,6 +52,11 @@ var socket = io();
 // Init vars
 var username;
 var RANK_ICONS = ["🥇","🥈","🥉"];
+var config = {
+	categories: [],
+	answerPreview: true,
+	timer: 60,
+};
 
 // Init listeners
 
@@ -72,6 +77,9 @@ socket.on("LOBBY", function(users){
 		page += "
"+users[i]+"";
 	}
 	page += "";
+	
+	// Config area
+	page += "";
 
 	document.getElementById("main").innerHTML = page;
 
@@ -88,6 +96,81 @@ socket.on("LOBBY", function(users){
 	if(users.length < 2){
 		document.getElementById("button_lobby_start").style.display = "none";
 	}
+
+	reconstructConfig();
+});
+
+// CONFIG
+function updateConfig(){
+	// Create new config from inputs
+	c = {
+		categories: [],
+		timer: 60,
+		answerPreview: true,
+	}
+
+	// Get categories
+	for(var i=0; i";
+
+	page += "Game Config
";
+
+	page += "";
+	page += "
Timer
";
+	page += "
Number of seconds each player has to complete each step of the game.
";
+	page += "
";
+	page += "
 ";
+
+	page += "
";
+
+	page += "";
+	page += "
Answer Preview
";
+	page += "
Whether to display one of the possible answers to a question while writing false answers. This may help with formatting of the false answers.
";
+	page += "
";
+	page += "";
+	page += "";
+	page += "";
+	page += "
 ";
+
+	page += "
";
+
+	page += "";
+	page += "
Categories
";
+	for(var i=0; i";
+		page += "";
+		page += "";
+		page += "";
+		page += "
";
+	}
+	page += "";
+
+	document.getElementById("config").innerHTML = page;
+}
+
+socket.on("CONFIG", function(data){
+	config = data.config;
+	reconstructConfig();
 });
 
 // LOBBY_CLOSED
diff --git a/main.js b/main.js
index b481d05..0a63433 100644
--- a/main.js
+++ b/main.js
@@ -25,8 +25,8 @@ const util = require("util");
 const fetch = require("node-fetch");
 
 // Vars
-const hostname = "192.168.0.128"; // Enter your local IP address here
-const port = 3000; // Enter a port number here
+const hostname = "127.0.0.1"; // Enter your local IP address here
+const port = 5000; // Enter a port number here
 
 const STATE_LOBBY = 0;
 const STATE_MANUAL = 10;
@@ -45,13 +45,44 @@ var questionsTotal = 10; // Total nr of questions
 var questionData = {};
 var questionCorrectAnswerIndex;
 var answers;
-const QUESTION_CATEGORIES = [9,15,16,17,18,19,20,22,23,27,28,30];
+const QUESTION_CATEGORIES = [9,15,16,17,18,19,20,22,23,27,28,30]; // Default enabled categories
 
 var userWrite = [];
 var userPick = [];
 var userPoints = [];
 
+var config = {
+	categories: [], // Filled in later
+	answerPreview: true,
+	timer: 60,
+};
 
+// Get question categories
+function isCategoryEnabledByDefault(id){
+	return QUESTION_CATEGORIES.includes(id);
+}
+fetch("https://opentdb.com/api_category.php")
+	.then(res => res.json()) // Convert to JSON
+	.then(json => {
+		// Question loaded
+		console.log("Fetched question categories from OpenTDB");
+		console.log(json);
+
+		// TODO: check response code
+
+		// Save data
+		var cats = [];
+		for(var i=0; i {
@@ -120,12 +151,26 @@ io.on("connection", (socket) => {
 			// Send lobby data
 			userSockets.forEach(function(s){s.emit("LOBBY", userNames);});
 
+			// Send config to new user
+			socket.emit("CONFIG", {config: config});
+
 		}else{
 			// When can't enter
 			socket.emit("LOBBY_CLOSED");
 		}
 	});
 
+	// CONFIG
+	socket.on("CONFIG", (data) => {
+		console.log("CONFIG request");
+
+		// Update server config
+		config = data.config;
+
+		// Send new config to all users
+		userSockets.forEach(function(s){s.emit("CONFIG", {config: config});});
+	});
+
 	// START
 	socket.on("START", () => {
 		console.log("START request");
diff --git a/package-lock.json b/package-lock.json
index cfd5679..0116f9f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,5 +1,5 @@
 {
-  "name": "Psych",
+  "name": "ReverseQuiz",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {