diff --git a/src/lua_consolelib.c b/src/lua_consolelib.c
index c6b082930385d3edd4762d846532028be1c9ade1..32d64b5b5333729b5dc4cb6220f93c20393815e8 100644
--- a/src/lua_consolelib.c
+++ b/src/lua_consolelib.c
@@ -440,6 +440,9 @@ static int CVarSetFunction
 ){
 	consvar_t *cvar = (consvar_t *)luaL_checkudata(L, 1, META_CVAR);
 
+	if (cvar->flags & CV_NOLUA)
+		return luaL_error(L, "Variable %s cannot be set from Lua.", cvar->name);
+
 	switch (lua_type(L, 2))
 	{
 		case LUA_TSTRING:
@@ -468,7 +471,12 @@ static int lib_cvStealthSet(lua_State *L)
 static int lib_cvAddValue(lua_State *L)
 {
 	consvar_t *cvar = (consvar_t *)luaL_checkudata(L, 1, META_CVAR);
+
+	if (cvar->flags & CV_NOLUA)
+		return luaL_error(L, "Variable %s cannot be set from Lua.", cvar->name);
+
 	CV_AddValue(cvar, (INT32)luaL_checknumber(L, 2));
+
 	return 0;
 }