diff --git a/src/console.c b/src/console.c
index 3b29e9c4f852853dd1158a45f55ca69fb90509c3..121605b10ea53c7f42d5b6c6462dd8145dc77a3a 100644
--- a/src/console.c
+++ b/src/console.c
@@ -221,7 +221,7 @@ static void CONS_Bind_f(void)
 		for (key = 0; key < NUMINPUTS; key++)
 			if (bindtable[key])
 			{
-				CONS_Printf("%s : \"%s\"\n", G_KeyNumToString(key), bindtable[key]);
+				CONS_Printf("%s : \"%s\"\n", G_KeynumToString(key), bindtable[key]);
 				na = 1;
 			}
 		if (!na)
@@ -229,7 +229,7 @@ static void CONS_Bind_f(void)
 		return;
 	}
 
-	key = G_KeyStringToNum(COM_Argv(1));
+	key = G_KeyStringtoNum(COM_Argv(1));
 	if (key <= 0 || key >= NUMINPUTS)
 	{
 		CONS_Alert(CONS_NOTICE, M_GetText("Invalid key name\n"));
diff --git a/src/d_main.c b/src/d_main.c
index 0d21d2531d905cc9955697645dcc2c7614097453..9c95a2ac3dc322278dd4efe0090746100a2892bb 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -183,8 +183,6 @@ void D_ProcessEvents(void)
 
 	for (; eventtail != eventhead; eventtail = (eventtail+1) & (MAXEVENTS-1))
 	{
-		boolean hooked = false;
-
 		ev = &events[eventtail];
 
 		// Set mouse buttons early in case event is eaten later
@@ -232,12 +230,6 @@ void D_ProcessEvents(void)
 				continue;
 		}
 
-		if (!CON_Ready() && !menuactive) {
-			if (G_LuaResponder(ev))
-				continue;
-			hooked = true;
-		}
-
 		// Menu input
 #ifdef HAVE_THREADS
 		I_lock_mutex(&m_menu_mutex);
@@ -252,12 +244,6 @@ void D_ProcessEvents(void)
 		if (eaten)
 			continue; // menu ate the event
 
-		if (!hooked && !CON_Ready()) {
-			if (G_LuaResponder(ev))
-				continue;
-			hooked = true;
-		}
-
 		// console input
 #ifdef HAVE_THREADS
 		I_lock_mutex(&con_mutex);
@@ -272,9 +258,6 @@ void D_ProcessEvents(void)
 		if (eaten)
 			continue; // ate the event
 
-		if (!hooked && G_LuaResponder(ev))
-			continue;
-
 		G_Responder(ev);
 	}
 
diff --git a/src/deh_tables.c b/src/deh_tables.c
index 79f0d1f117cebb90f49004c0a783e8f6c975e2e7..4ff193dcdeb130eef3cab4ede4b73c939b44c7b0 100644
--- a/src/deh_tables.c
+++ b/src/deh_tables.c
@@ -24,7 +24,6 @@
 #include "g_state.h" // gamestate_t (for lua)
 #include "g_game.h" // Joystick axes (for lua)
 #include "i_joy.h"
-#include "g_input.h" // Game controls (for lua)
 
 #include "deh_tables.h"
 
@@ -5471,51 +5470,6 @@ struct int_const_s const INT_CONST[] = {
 	{"JA_FIRENORMAL",JA_FIRENORMAL},
 	{"JOYAXISRANGE",JOYAXISRANGE},
 
-	// Game controls
-	{"gc_null",gc_null},
-	{"gc_forward",gc_forward},
-	{"gc_backward",gc_backward},
-	{"gc_strafeleft",gc_strafeleft},
-	{"gc_straferight",gc_straferight},
-	{"gc_turnleft",gc_turnleft},
-	{"gc_turnright",gc_turnright},
-	{"gc_weaponnext",gc_weaponnext},
-	{"gc_weaponprev",gc_weaponprev},
-	{"gc_wepslot1",gc_wepslot1},
-	{"gc_wepslot2",gc_wepslot2},
-	{"gc_wepslot3",gc_wepslot3},
-	{"gc_wepslot4",gc_wepslot4},
-	{"gc_wepslot5",gc_wepslot5},
-	{"gc_wepslot6",gc_wepslot6},
-	{"gc_wepslot7",gc_wepslot7},
-	{"gc_wepslot8",gc_wepslot8},
-	{"gc_wepslot9",gc_wepslot9},
-	{"gc_wepslot10",gc_wepslot10},
-	{"gc_fire",gc_fire},
-	{"gc_firenormal",gc_firenormal},
-	{"gc_tossflag",gc_tossflag},
-	{"gc_spin",gc_spin},
-	{"gc_camtoggle",gc_camtoggle},
-	{"gc_camreset",gc_camreset},
-	{"gc_lookup",gc_lookup},
-	{"gc_lookdown",gc_lookdown},
-	{"gc_centerview",gc_centerview},
-	{"gc_mouseaiming",gc_mouseaiming},
-	{"gc_talkkey",gc_talkkey},
-	{"gc_teamkey",gc_teamkey},
-	{"gc_scores",gc_scores},
-	{"gc_jump",gc_jump},
-	{"gc_console",gc_console},
-	{"gc_pause",gc_pause},
-	{"gc_systemmenu",gc_systemmenu},
-	{"gc_screenshot",gc_screenshot},
-	{"gc_recordgif",gc_recordgif},
-	{"gc_viewpoint",gc_viewpoint},
-	{"gc_custom1",gc_custom1},
-	{"gc_custom2",gc_custom2},
-	{"gc_custom3",gc_custom3},
-	{"num_gamecontrols",num_gamecontrols},
-
 	// Mouse buttons
 	{"MB_BUTTON1",MB_BUTTON1},
 	{"MB_BUTTON2",MB_BUTTON2},
diff --git a/src/g_game.c b/src/g_game.c
index a7fbbd92f0c880eead349a283034edc6eb7d581e..1d8eed96474c05c447204646b6e6eae21299421e 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -2183,16 +2183,6 @@ boolean G_Responder(event_t *ev)
 	return false;
 }
 
-//
-// G_LuaResponder
-// Let Lua handle key events.
-//
-boolean G_LuaResponder(event_t *ev)
-{
-	return (ev->type == ev_keydown && LUAh_KeyDown(ev->data1)) ||
-		(ev->type == ev_keyup && LUAh_KeyUp(ev->data1));
-}
-
 //
 // G_Ticker
 // Make ticcmd_ts for the players.
diff --git a/src/g_game.h b/src/g_game.h
index 0cc3802947e3d11f275834c96c1a730625f898fb..ae93adf4689981af60b89d2f91fddc82570c51e1 100644
--- a/src/g_game.h
+++ b/src/g_game.h
@@ -223,7 +223,6 @@ void G_EndGame(void); // moved from y_inter.c/h and renamed
 
 void G_Ticker(boolean run);
 boolean G_Responder(event_t *ev);
-boolean G_LuaResponder(event_t *ev);
 
 void G_AddPlayer(INT32 playernum);
 
diff --git a/src/g_input.c b/src/g_input.c
index 3e8df9eb0aae54c2cad1e4978f79d399a3b2959e..cc301e8e52574c8541c33c684b8e676d5fba3c2b 100644
--- a/src/g_input.c
+++ b/src/g_input.c
@@ -624,7 +624,7 @@ void G_ClearAllControlKeys(void)
 // Returns the name of a key (or virtual key for mouse and joy)
 // the input value being an keynum
 //
-const char *G_KeyNumToString(INT32 keynum)
+const char *G_KeynumToString(INT32 keynum)
 {
 	static char keynamestr[8];
 
@@ -648,7 +648,7 @@ const char *G_KeyNumToString(INT32 keynum)
 	return keynamestr;
 }
 
-INT32 G_KeyStringToNum(const char *keystr)
+INT32 G_KeyStringtoNum(const char *keystr)
 {
 	UINT32 j;
 
@@ -811,10 +811,10 @@ void G_SaveKeySetting(FILE *f, INT32 (*fromcontrols)[2], INT32 (*fromcontrolsbis
 	for (i = 1; i < num_gamecontrols; i++)
 	{
 		fprintf(f, "setcontrol \"%s\" \"%s\"", gamecontrolname[i],
-			G_KeyNumToString(fromcontrols[i][0]));
+			G_KeynumToString(fromcontrols[i][0]));
 
 		if (fromcontrols[i][1])
-			fprintf(f, " \"%s\"\n", G_KeyNumToString(fromcontrols[i][1]));
+			fprintf(f, " \"%s\"\n", G_KeynumToString(fromcontrols[i][1]));
 		else
 			fprintf(f, "\n");
 	}
@@ -822,10 +822,10 @@ void G_SaveKeySetting(FILE *f, INT32 (*fromcontrols)[2], INT32 (*fromcontrolsbis
 	for (i = 1; i < num_gamecontrols; i++)
 	{
 		fprintf(f, "setcontrol2 \"%s\" \"%s\"", gamecontrolname[i],
-			G_KeyNumToString(fromcontrolsbis[i][0]));
+			G_KeynumToString(fromcontrolsbis[i][0]));
 
 		if (fromcontrolsbis[i][1])
-			fprintf(f, " \"%s\"\n", G_KeyNumToString(fromcontrolsbis[i][1]));
+			fprintf(f, " \"%s\"\n", G_KeynumToString(fromcontrolsbis[i][1]));
 		else
 			fprintf(f, "\n");
 	}
@@ -1001,8 +1001,8 @@ static void setcontrol(INT32 (*gc)[2])
 		CONS_Printf(M_GetText("Control '%s' unknown\n"), namectrl);
 		return;
 	}
-	keynum1 = G_KeyStringToNum(COM_Argv(2));
-	keynum2 = G_KeyStringToNum(COM_Argv(3));
+	keynum1 = G_KeyStringtoNum(COM_Argv(2));
+	keynum2 = G_KeyStringtoNum(COM_Argv(3));
 	keynum = G_FilterKeyByVersion(numctrl, 0, player, &keynum1, &keynum2, &nestedoverride);
 
 	if (keynum >= 0)
diff --git a/src/g_input.h b/src/g_input.h
index 6127050edce7469f4f529134072239ef7bbc2473..798d888cda80230b40e35f07f8a23a21c2e6ae71 100644
--- a/src/g_input.h
+++ b/src/g_input.h
@@ -181,8 +181,8 @@ extern const INT32 gcl_jump_spin[num_gcl_jump_spin];
 void G_MapEventsToControls(event_t *ev);
 
 // returns the name of a key
-const char *G_KeyNumToString(INT32 keynum);
-INT32 G_KeyStringToNum(const char *keystr);
+const char *G_KeynumToString(INT32 keynum);
+INT32 G_KeyStringtoNum(const char *keystr);
 
 // detach any keys associated to the given game control
 void G_ClearControlKeys(INT32 (*setupcontrols)[2], INT32 control);
diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index 7d8ecf49f792042e07016b8288c1dc3b84d9a175..d7be97a85fc28a902383d6d4adbdb30d8a1a1a1b 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -212,7 +212,7 @@ static const struct {
 	{META_ACTION,       "action"},
 
 	{META_LUABANKS,     "luabanks[]"},
-	
+
 	{META_MOUSE,        "mouse_t"},
 	{NULL,              NULL}
 };
diff --git a/src/lua_hook.h b/src/lua_hook.h
index 5f20920b6d62d8a155c11ba6ac0bf031c94c2795..5cfcb8360149093bd7340c0301b679b7d2b03698 100644
--- a/src/lua_hook.h
+++ b/src/lua_hook.h
@@ -61,8 +61,6 @@ enum hook {
 	hook_GameQuit,
 	hook_PlayerCmd,
 	hook_MusicChange,
-	hook_KeyDown,
-	hook_KeyUp,
 
 	hook_MAX // last hook
 };
@@ -120,5 +118,3 @@ boolean LUAh_ShouldJingleContinue(player_t *player, const char *musname); // Hoo
 void LUAh_GameQuit(boolean quitting); // Hook for game quitting
 boolean LUAh_PlayerCmd(player_t *player, ticcmd_t *cmd); // Hook for building player's ticcmd struct (Ported from SRB2Kart)
 boolean LUAh_MusicChange(const char *oldname, char *newname, UINT16 *mflags, boolean *looping, UINT32 *position, UINT32 *prefadems, UINT32 *fadeinms); // Hook for music changes
-boolean LUAh_KeyDown(INT32 keycode); // Hooks for key events
-boolean LUAh_KeyUp(INT32 keycode);
diff --git a/src/lua_hooklib.c b/src/lua_hooklib.c
index bed871afd07c070ec0faf30c5c5cf86cc9c685c9..29c15a4de9887430b90323e505a2d4235bcf0a76 100644
--- a/src/lua_hooklib.c
+++ b/src/lua_hooklib.c
@@ -77,8 +77,6 @@ const char *const hookNames[hook_MAX+1] = {
 	"GameQuit",
 	"PlayerCmd",
 	"MusicChange",
-	"KeyDown",
-	"KeyUp",
 	NULL
 };
 
@@ -1940,7 +1938,7 @@ boolean LUAh_MusicChange(const char *oldname, char *newname, UINT16 *mflags, boo
 			lua_pushinteger(gL, *prefadems);
 			lua_pushinteger(gL, *fadeinms);
 			if (lua_pcall(gL, 7, 6, 1)) {
-				CONS_Alert(CONS_WARNING,"%s\n",lua_tostring(gL, -1));
+				CONS_Alert(CONS_WARNING,"%s\n",lua_tostring(gL,-1));
 				lua_pop(gL, 1);
 				continue;
 			}
@@ -1973,73 +1971,3 @@ boolean LUAh_MusicChange(const char *oldname, char *newname, UINT16 *mflags, boo
 	newname[6] = 0;
 	return hooked;
 }
-
-// Hook for key press
-boolean LUAh_KeyDown(INT32 keycode)
-{
-	hook_p hookp;
-	boolean override = false;
-	if (!gL || !(hooksAvailable[hook_KeyDown/8] & (1<<(hook_KeyDown%8))))
-		return false;
-
-	lua_settop(gL, 0);
-	lua_pushcfunction(gL, LUA_GetErrorMessage);
-
-	for (hookp = roothook; hookp; hookp = hookp->next)
-	{
-		if (hookp->type != hook_KeyDown)
-			continue;
-
-		PushHook(gL, hookp);
-		lua_pushinteger(gL, keycode);
-		if (lua_pcall(gL, 1, 1, 1)) {
-			if (!hookp->error || cv_debug & DBG_LUA)
-				CONS_Alert(CONS_WARNING,"%s\n",lua_tostring(gL, -1));
-			lua_pop(gL, 1);
-			hookp->error = true;
-			continue;
-		}
-		if (lua_toboolean(gL, -1))
-			override = true;
-		lua_pop(gL, 1);
-	}
-
-	lua_settop(gL, 0);
-
-	return override;
-}
-
-// Hook for key release
-boolean LUAh_KeyUp(INT32 keycode)
-{
-	hook_p hookp;
-	boolean override = false;
-	if (!gL || !(hooksAvailable[hook_KeyUp/8] & (1<<(hook_KeyUp%8))))
-		return false;
-
-	lua_settop(gL, 0);
-	lua_pushcfunction(gL, LUA_GetErrorMessage);
-
-	for (hookp = roothook; hookp; hookp = hookp->next)
-	{
-		if (hookp->type != hook_KeyUp)
-			continue;
-
-		PushHook(gL, hookp);
-		lua_pushinteger(gL, keycode);
-		if (lua_pcall(gL, 1, 1, 1)) {
-			if (!hookp->error || cv_debug & DBG_LUA)
-				CONS_Alert(CONS_WARNING,"%s\n",lua_tostring(gL, -1));
-			lua_pop(gL, 1);
-			hookp->error = true;
-			continue;
-		}
-		if (lua_toboolean(gL, -1))
-			override = true;
-		lua_pop(gL, 1);
-	}
-
-	lua_settop(gL, 0);
-
-	return override;
-}
diff --git a/src/lua_inputlib.c b/src/lua_inputlib.c
index 217202222587394c94a37927e67868d1de218c95..875c29e70b867d5e15b871dfbb8ec200250ee5b0 100644
--- a/src/lua_inputlib.c
+++ b/src/lua_inputlib.c
@@ -13,7 +13,6 @@
 #include "fastcmp.h"
 #include "g_input.h"
 #include "g_game.h"
-#include "hu_stuff.h"
 #include "i_system.h"
 
 #include "lua_script.h"
@@ -23,44 +22,6 @@
 // FUNCTIONS //
 ///////////////
 
-static int lib_gameControlDown(lua_State *L)
-{
-	int i = luaL_checkinteger(L, 1);
-	if (i < 0 || i >= num_gamecontrols)
-		return luaL_error(L, "gc_* constant %d out of range (0 - %d)", i, num_gamecontrols-1);
-	lua_pushinteger(L, PLAYER1INPUTDOWN(i));
-	return 1;
-}
-
-static int lib_gameControl2Down(lua_State *L)
-{
-	int i = luaL_checkinteger(L, 1);
-	if (i < 0 || i >= num_gamecontrols)
-		return luaL_error(L, "gc_* constant %d out of range (0 - %d)", i, num_gamecontrols-1);
-	lua_pushinteger(L, PLAYER2INPUTDOWN(i));
-	return 1;
-}
-
-static int lib_gameControlToKeyNum(lua_State *L)
-{
-	int i = luaL_checkinteger(L, 1);
-	if (i < 0 || i >= num_gamecontrols)
-		return luaL_error(L, "gc_* constant %d out of range (0 - %d)", i, num_gamecontrols-1);
-	lua_pushinteger(L, gamecontrol[i][0]);
-	lua_pushinteger(L, gamecontrol[i][1]);
-	return 2;
-}
-
-static int lib_gameControl2ToKeyNum(lua_State *L)
-{
-	int i = luaL_checkinteger(L, 1);
-	if (i < 0 || i >= num_gamecontrols)
-		return luaL_error(L, "gc_* constant %d out of range (0 - %d)", i, num_gamecontrols-1);
-	lua_pushinteger(L, gamecontrolbis[i][0]);
-	lua_pushinteger(L, gamecontrolbis[i][1]);
-	return 2;
-}
-
 static int lib_joyAxis(lua_State *L)
 {
 	int i = luaL_checkinteger(L, 1);
@@ -75,35 +36,6 @@ static int lib_joy2Axis(lua_State *L)
 	return 1;
 }
 
-static int lib_keyNumToString(lua_State *L)
-{
-	int i = luaL_checkinteger(L, 1);
-	lua_pushstring(L, G_KeyNumToString(i));
-	return 1;
-}
-
-static int lib_keyStringToNum(lua_State *L)
-{
-	const char *str = luaL_checkstring(L, 1);
-	lua_pushinteger(L, G_KeyStringToNum(str));
-	return 1;
-}
-
-static int lib_keyNumPrintable(lua_State *L)
-{
-	int i = luaL_checkinteger(L, 1);
-	lua_pushboolean(L, i >= 32 && i <= 127);
-	return 1;
-}
-
-static int lib_shiftKeyNum(lua_State *L)
-{
-	int i = luaL_checkinteger(L, 1);
-	if (i >= 32 && i <= 127)
-		lua_pushinteger(L, shiftxform[i]);
-	return 1;
-}
-
 static int lib_getMouseGrab(lua_State *L)
 {
 	lua_pushboolean(L, I_GetMouseGrab());
@@ -127,51 +59,14 @@ static boolean lib_getCursorPosition(lua_State *L)
 }
 
 static luaL_Reg lib[] = {
-	{"G_GameControlDown", lib_gameControlDown},
-	{"G_GameControl2Down", lib_gameControl2Down},
-	{"G_GameControlToKeyNum", lib_gameControlToKeyNum},
-	{"G_GameControl2ToKeyNum", lib_gameControl2ToKeyNum},
 	{"G_JoyAxis", lib_joyAxis},
 	{"G_Joy2Axis", lib_joy2Axis},
-	{"G_KeyNumToString", lib_keyNumToString},
-	{"G_KeyStringToNum", lib_keyStringToNum},
-	{"HU_KeyNumPrintable", lib_keyNumPrintable},
-	{"HU_ShiftKeyNum", lib_shiftKeyNum},
 	{"I_GetMouseGrab", lib_getMouseGrab},
 	{"I_SetMouseGrab", lib_setMouseGrab},
 	{"I_GetCursorPosition", lib_getCursorPosition},
 	{NULL, NULL}
 };
 
-///////////////////
-// gamekeydown[] //
-///////////////////
-
-static int lib_getGameKeyDown(lua_State *L)
-{
-	int i = luaL_checkinteger(L, 2);
-	if (i < 0 || i >= NUMINPUTS)
-		return luaL_error(L, "gamekeydown[] index %d out of range (0 - %d)", i, NUMINPUTS-1);
-	lua_pushboolean(L, gamekeydown[i]);
-	return 1;
-}
-
-static int lib_setGameKeyDown(lua_State *L)
-{
-	int i = luaL_checkinteger(L, 2);
-	boolean j = luaL_checkboolean(L, 3);
-	if (i < 0 || i >= NUMINPUTS)
-		return luaL_error(L, "gamekeydown[] index %d out of range (0 - %d)", i, NUMINPUTS-1);
-	gamekeydown[i] = j;
-	return 0;
-}
-
-static int lib_lenGameKeyDown(lua_State *L)
-{
-	lua_pushinteger(L, NUMINPUTS);
-	return 1;
-}
-
 ///////////
 // MOUSE //
 ///////////
@@ -214,19 +109,6 @@ static int mouse_num(lua_State *L)
 
 int LUA_InputLib(lua_State *L)
 {
-	lua_newuserdata(L, 0);
-		lua_createtable(L, 0, 2);
-			lua_pushcfunction(L, lib_getGameKeyDown);
-			lua_setfield(L, -2, "__index");
-
-			lua_pushcfunction(L, lib_setGameKeyDown);
-			lua_setfield(L, -2, "__newindex");
-
-			lua_pushcfunction(L, lib_lenGameKeyDown);
-			lua_setfield(L, -2, "__len");
-		lua_setmetatable(L, -2);
-	lua_setglobal(L, "gamekeydown");
-
 	luaL_newmetatable(L, META_MOUSE);
 		lua_pushcfunction(L, mouse_get);
 		lua_setfield(L, -2, "__index");
diff --git a/src/m_menu.c b/src/m_menu.c
index dee578199763c0b4aed045e03b87af4a74cdc142..8f314929e6f5b66378c1cee47ed01f3fff0c2c12 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -12683,13 +12683,13 @@ static void M_DrawControl(void)
 			else
 			{
 				if (keys[0] != KEY_NULL)
-					strcat (tmp, G_KeyNumToString (keys[0]));
+					strcat (tmp, G_KeynumToString (keys[0]));
 
 				if (keys[0] != KEY_NULL && keys[1] != KEY_NULL)
 					strcat(tmp," or ");
 
 				if (keys[1] != KEY_NULL)
-					strcat (tmp, G_KeyNumToString (keys[1]));
+					strcat (tmp, G_KeynumToString (keys[1]));
 
 
 			}