diff --git a/src/dehacked.c b/src/dehacked.c
index 938699516d20bb29eb9df793091e8bd3f21d0c75..da787b57a6afe52bdb5c5d83d5062e080b1a0593 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -10479,6 +10479,12 @@ static inline int lib_getenum(lua_State *L)
 	} else if (fastcmp(word,"paused")) {
 		lua_pushboolean(L, paused);
 		return 1;
+	} else if (fastcmp(word,"bluescore")) {
+		lua_pushinteger(L, bluescore);
+		return 1;
+	} else if (fastcmp(word,"redscore")) {
+		lua_pushinteger(L, redscore);
+		return 1;
 	// begin map vars
 	} else if (fastcmp(word,"spstage_start")) {
 		lua_pushinteger(L, spstage_start);
@@ -10692,6 +10698,8 @@ static int lib_getActionName(lua_State *L)
 	return luaL_typerror(L, 1, "action userdata or Lua function");
 }
 
+
+
 int LUA_SOCLib(lua_State *L)
 {
 	lua_register(L,"freeslot",lib_freeslot);
diff --git a/src/lua_script.c b/src/lua_script.c
index fe3c2f10d11f5f5f513fbb0be8003150e1cdf15e..13592815bd8c03cc7e1a03cef857cf9730b0a41e 100644
--- a/src/lua_script.c
+++ b/src/lua_script.c
@@ -106,6 +106,17 @@ static int noglobals(lua_State *L)
 		return 0;
 	}
 
+	if (fastcmp(csname,"redscore"))
+	{
+		redscore = (UINT32)luaL_checkinteger(L, 2);
+		return 0;
+	}
+	else if (fastcmp(csname,"bluescore"))
+	{
+		bluescore = (UINT32)luaL_checkinteger(L, 2);
+		return 0;
+	}
+
 	Z_Free(name);
 	return luaL_error(L, "Implicit global " LUA_QS " prevented. Create a local variable instead.", csname);
 }