diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index 93552553c993f93fdf1694ba0f00ce0f1edb7a4a..72d794d061f424eedcf69952d45b30aad7697e10 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -3004,6 +3004,16 @@ static int lib_pIsStateSprite2Super(lua_State *L)
 	return 1;
 }
 
+static int lib_pGetSuperSprite2(lua_State *L)
+{
+	int animID = luaL_checkinteger(L, 1) & SPR2F_MASK;
+	if (animID < 0 || animID >= NUMPLAYERSPRITES)
+		return luaL_error(L, "sprite2 %d out of range (0 - %d)", animID, NUMPLAYERSPRITES-1);
+
+	lua_pushinteger(L, animID | SPR2F_SUPER);
+	return 1;
+}
+
 // R_DATA
 ////////////
 
@@ -4409,6 +4419,7 @@ static luaL_Reg lib[] = {
 	{"P_GetStateSprite2",lib_pGetStateSprite2},
 	{"P_GetSprite2StateFrame",lib_pGetSprite2StateFrame},
 	{"P_IsStateSprite2Super",lib_pIsStateSprite2Super},
+	{"P_GetSuperSprite2",lib_pGetSuperSprite2},
 
 	// r_data
 	{"R_CheckTextureNumForName",lib_rCheckTextureNumForName},