diff --git a/src/lua_hud.h b/src/lua_hud.h
index 799ce2fbf54ca60a83b39b02ed599f16cc2cb6e4..ba0a1d8941deff4c5b19e40cae1368c19ad86b18 100644
--- a/src/lua_hud.h
+++ b/src/lua_hud.h
@@ -18,6 +18,9 @@ enum hud {
 	hud_time,
 	hud_rings,
 	hud_lives,
+	// Match / CTF / Tag / Ringslinger
+	hud_weaponrings,
+	hud_powerstones,
 	// NiGHTS mode
 	hud_nightslink,
 	hud_nightsdrill,
diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c
index 31549afa7680564d4001ae6273611ffb1c239c90..7aadd9c0e871f9297d64bf1385637eb81a45be5b 100644
--- a/src/lua_hudlib.c
+++ b/src/lua_hudlib.c
@@ -44,6 +44,9 @@ static const char *const hud_disable_options[] = {
 	"rings",
 	"lives",
 
+	"weaponrings",
+	"powerstones",
+
 	"nightslink",
 	"nightsdrill",
 	"nightsrings",
diff --git a/src/st_stuff.c b/src/st_stuff.c
index aac6b09d2e4fc33fd347b47cbffac0b6eb843ed3..ca315ce2740d832de80ecbe345a0f82f06843f3d 100644
--- a/src/st_stuff.c
+++ b/src/st_stuff.c
@@ -1385,6 +1385,10 @@ static void ST_drawMatchHUD(void)
 	if (G_TagGametype() && !(stplyr->pflags & PF_TAGIT))
 		return;
 
+#ifdef HAVE_BLUA
+	if (LUA_HudEnabled(hud_weaponrings)) {
+#endif
+
 	if (stplyr->powers[pw_infinityring])
 		ST_drawWeaponRing(pw_infinityring, 0, 0, offset, infinityring);
 	else if (stplyr->health > 1)
@@ -1408,6 +1412,12 @@ static void ST_drawMatchHUD(void)
 	offset += 20;
 	ST_drawWeaponRing(pw_railring, RW_RAIL, WEP_RAIL, offset, railring);
 
+#ifdef HAVE_BLUA
+	}
+
+	if (LUA_HudEnabled(hud_powerstones)) {
+#endif
+
 	// Power Stones collected
 	offset = 136; // Used for Y now
 
@@ -1439,6 +1449,10 @@ static void ST_drawMatchHUD(void)
 
 	if (stplyr->powers[pw_emeralds] & EMERALD7)
 		V_DrawScaledPatch(28, STRINGY(offset), V_SNAPTOLEFT, tinyemeraldpics[6]);
+
+#ifdef HAVE_BLUA
+	}
+#endif
 }
 
 static inline void ST_drawRaceHUD(void)