diff --git a/src/d_player.h b/src/d_player.h
index 26086a331b03c6118251153b143aacb309f6ed50..03579be2841965cf10b58421345f611b82b47005 100644
--- a/src/d_player.h
+++ b/src/d_player.h
@@ -51,6 +51,9 @@ typedef enum
 	SF_NONIGHTSSUPER    = 1<<15, // Disable super colors for NiGHTS (if you have SF_SUPER)
 	SF_NOSUPERSPRITES   = 1<<16, // Don't use super sprites while super
 	SF_NOSUPERJUMPBOOST = 1<<17, // Disable the jump boost given while super (i.e. Knuckles)
+	SF_CANBREAKWALLS	= 1<<18, // Can naturally break walls on contact? (i.e. Knuckles)
+	SF_CANBREAKFLOORS	= 1<<19, // Can naturally break floors on contact?
+	SF_BUSTABLEBUSTER	= SF_CANBREAKWALLS|SF_CANBREAKFLOORS,	// Convenience skinflag.
 	// free up to and including 1<<31
 } skinflags_t;
 
diff --git a/src/dehacked.c b/src/dehacked.c
index d02dc3d24ae797a5fe628bab54570e186d55bc79..9cd18125610700205d9ee4aadc269b899ab7fb72 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -9666,6 +9666,9 @@ struct {
 	{"SF_NONIGHTSSUPER",SF_NONIGHTSSUPER},
 	{"SF_NOSUPERSPRITES",SF_NOSUPERSPRITES},
 	{"SF_NOSUPERJUMPBOOST",SF_NOSUPERJUMPBOOST},
+	{"SF_CANBREAKWALLS",SF_CANBREAKWALLS},
+	{"SF_CANBREAKFLOORS",SF_CANBREAKFLOORS},
+	{"SF_BUSTABLEBUSTER",SF_BUSTABLEBUSTER},
 
 	// Dashmode constants
 	{"DASHMODE_THRESHOLD",DASHMODE_THRESHOLD},