diff --git a/demo/demo/main.cpp b/demo/demo/main.cpp
index fbb3a1a1a5d7dc7129e9ff121a8ef6326895d17b..d98a6a40d3fe6afeb6853e7a07eb1b64056a2121 100644
--- a/demo/demo/main.cpp
+++ b/demo/demo/main.cpp
@@ -40,7 +40,10 @@
 #include "fggl/data/assimp/module.hpp"
 #include "fggl/assets/module.hpp"
 #include "fggl/assets/packed/module.hpp"
-#include "fggl/script/lua/module.hpp"
+
+#if __has_include("fggl/script/lua/module.hpp")
+	#include "fggl/script/lua/module.hpp"
+#endif
 
 #include "GameScene.h"
 #include "rollball.hpp"
@@ -85,7 +88,10 @@ int main(int argc, const char* argv[]) {
 	moduleManager.use<fggl::assets::AssetFolders>();
 	moduleManager.use<fggl::assets::PackedAssets>();
 	moduleManager.use<fggl::entity::ECS>();
-	moduleManager.use<fggl::script::Lua>();
+
+	#ifdef FGGL_HAS_LUA
+		moduleManager.use<fggl::script::Lua>();
+	#endif
 
 	// debug/testing use
 	moduleManager.use<fggl::data::AssimpLoader>();
diff --git a/demo/demo/rollball.cpp b/demo/demo/rollball.cpp
index ec8a05007e5b346f4272fc31402e37554953d401..4242194b9dee0fcd0923a689e270ffb720fb633a 100644
--- a/demo/demo/rollball.cpp
+++ b/demo/demo/rollball.cpp
@@ -81,9 +81,10 @@ namespace demo {
 		m_phys = physService->create(&world(), entFactory);
 
 		auto* scriptProvider = m_owner.service<fggl::script::ScriptProvider>();
-
-		m_scripts = scriptProvider->create();
-		m_scripts->setGlobal("state", this);
+		if ( scriptProvider != nullptr ) {
+			m_scripts = scriptProvider->create();
+			m_scripts->setGlobal("state", this);
+		}
 
 		// asset loader
 		auto* assetLoader = m_owner.service<fggl::assets::Loader>();
diff --git a/integrations/lua/include/fggl/script/lua/module.hpp b/integrations/lua/include/fggl/script/lua/module.hpp
index e904f51dc1e540305a159dac879b029df045837f..c3e2c72e9118843b692da367ffde937c3f0ac4a6 100644
--- a/integrations/lua/include/fggl/script/lua/module.hpp
+++ b/integrations/lua/include/fggl/script/lua/module.hpp
@@ -19,6 +19,8 @@
 #ifndef FGGL_INTEGRATIONS_LUA_SCRIPT_LUA_MODULE_HPP
 #define FGGL_INTEGRATIONS_LUA_SCRIPT_LUA_MODULE_HPP
 
+#define FGGL_HAS_LUA
+
 #include "fggl/modules/module.hpp"
 #include "fggl/entity/module.hpp"
 #include "fggl/script/engine.hpp"