diff --git a/game/engines/default/engine/Module.lua b/game/engines/default/engine/Module.lua
index ee7d3d0e6e92f8a7f99a7eee261cc2a779284789..9a1d896b8717c1faa5b9cbf2fde97a20f995967a 100644
--- a/game/engines/default/engine/Module.lua
+++ b/game/engines/default/engine/Module.lua
@@ -586,7 +586,7 @@ function _M:loadAddons(mod, saveuse)
 					print("Removing addon "..add.short_name..": not allowed by config")
 					table.remove(adds, i) removed = true
 				end
-			elseif not config.settings.cheat and not engine.beta_allow_addon(add.short_name) then
+			elseif not config.settings.cheat and not engine.beta_allow_addon(add) then
 				print("Removing addon "..add.short_name..": game beta forbids")
 				table.remove(adds, i) removed = true
 				beta_removed[#beta_removed+1] = add.long_name
diff --git a/game/engines/default/engine/version.lua b/game/engines/default/engine/version.lua
index fed45a0957df19f2aeeafb3688e9e37fdcce2a5c..896342f38a7bdc1d9304831cd9deeac323804ae9 100644
--- a/game/engines/default/engine/version.lua
+++ b/game/engines/default/engine/version.lua
@@ -116,13 +116,14 @@ function engine.version_hasbeta()
 end
 
 --- Check if we are running as beta
-function engine.beta_allow_addon(name)
+function engine.beta_allow_addon(add)
 	if fs.exists("/engine/version_beta.lua") then
 		local beta, allowed_addons = dofile("/engine/version_beta.lua")
 		if not beta or not allowed_addons then return true end
 		for _, test in ipairs(allowed_addons) do
-			if name == test then return true
-			elseif name:find(test) then return true end
+			if type(test) == "function" then return test(add)
+			elseif add.short_name == test then return true
+			elseif add.short_name:find(test) then return true end
 		end
 	else
 		return true
diff --git a/utils/release.sh b/utils/release.sh
index 6e5c6045bd28dae22a564d22330f874da838541d..119c5599324cdfef0f502f1e47c4e05209347cdb 100755
--- a/utils/release.sh
+++ b/utils/release.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 if test $# -lt 1 ; then
-	echo "Usage: release.sh [version] [beta, if any] [allowed addons, if beta]"
+	echo "Usage: release.sh [version] [beta, if any] [if beta, allowed addons list or 'all' or 'no-dlc' or 'with-dlc']"
 	exit
 fi
 
@@ -70,15 +70,19 @@ echo "version_desc = '$ver'" >> game/engines/default/modules/boot/init.lua
 echo "version_desc = '$ver'" >> game/modules/tome/init.lua
 if test -n "$beta"; then
 	if test $# -lt 3 ; then
-		echo "Usage: release.sh [version] [beta] [allowed addons or 'all']"
+		echo "Usage: release.sh [version] [beta] [allowed addons list or 'all' or 'no-dlc' or 'with-dlc']"
 		exit
 	fi
 	addons="$3"
 	if test "$addons" = "all"; then
 		echo "return '$beta'" > game/engines/default/engine/version_beta.lua
+	elif test "$addons" = "no-dlc"; then
+		echo "return '$beta', "'{"possessors", "items-vault", "^cosmetic%-shimmer%-.+"}' > game/engines/default/engine/version_beta.lua
+	elif test "$addons" = "with-dlc"; then
+		echo "return '$beta', "'{"possessors", "items-vault", "^cosmetic%-shimmer%-.+", function(add) return add.id_dlc end}' > game/engines/default/engine/version_beta.lua
 	else
 		addons_check=`echo "$addons" | sed -e 's/\([^,]\+\)/"\1"/g' -e 's/^/{/' -e 's/$/}/'`
-		echo "return '$beta' '$addons_check'" > game/engines/default/engine/version_beta.lua
+		echo "return '$beta', '$addons_check'" > game/engines/default/engine/version_beta.lua
 	fi
 fi