+// Command flags
+#define CF_NONE 0u
+#define CF_CLIENT (1u<<0) ///< cvar/command that only the client can change/execute
+#define CF_SERVER (1u<<1) ///< cvar/command that only the server can change/execute
+#define CF_CLIENT_FROM_SERVER (1u<<2) ///< command that the server is allowed to execute on the client
+#define CF_SERVER_FROM_CLIENT (1u<<3) ///< command the client is allowed to execute on the server as a stringcmd
+#define CF_CHEAT (1u<<4) ///< command or cvar that gives an unfair advantage over other players and is blocked unless sv_cheats is 1
+#define CF_ARCHIVE (1u<<5) ///< cvar should have its set value saved to config.cfg and persist across sessions
+#define CF_READONLY (1u<<6) ///< cvar cannot be changed from the console or the command buffer, and is considered CF_PERSISTENT
+#define CF_NOTIFY (1u<<7) ///< cvar should trigger a chat notification to all connected clients when changed
+#define CF_SERVERINFO (1u<<8) ///< command or cvar relevant to serverinfo string handling
+#define CF_USERINFO (1u<<9) ///< command or cvar used to communicate userinfo to the server
+#define CF_PERSISTENT (1u<<10) ///< cvar must not be reset on gametype switch (such as scr_screenshot_name, which otherwise isn't set to the mod name properly)
+#define CF_PRIVATE (1u<<11) ///< cvar should not be $ expanded or sent to the server under any circumstances (rcon_password, etc)
+#define CF_MAXFLAGSVAL ((1u<<12) - 1) ///< used to determine if flags is valid
+// for internal use only!
+#define CF_REGISTERED (1u<<29) ///< created by Cvar_RegisterVariable()
+#define CF_DEFAULTSET (1u<<30)
+#define CF_ALLOCATED (1u<<31) ///< created by Cvar_Get() (console or QC)
+// UBSan: unsigned literals because left shifting by 31 causes signed overflow, although it works as expected on x86.
+
+#define CF_SHARED (CF_CLIENT | CF_SERVER)
+