diff --git a/src/logic/scripting/lua/libs/libcore.cpp b/src/logic/scripting/lua/libs/libcore.cpp index cb5c7f43..80128971 100644 --- a/src/logic/scripting/lua/libs/libcore.cpp +++ b/src/logic/scripting/lua/libs/libcore.cpp @@ -148,7 +148,13 @@ static int l_reconfig_packs(lua::State* L) { lua::pop(L); } auto engineController = engine->getController(); - engineController->reconfigPacks(controller, addPacks, remPacks); + try { + engineController->reconfigPacks(controller, addPacks, remPacks); + } catch (const contentpack_error& err) { + throw std::runtime_error( + std::string(err.what()) + " [" + err.getPackId() + " ]" + ); + } return 0; } diff --git a/src/logic/scripting/lua/libs/libpack.cpp b/src/logic/scripting/lua/libs/libpack.cpp index 95bb9e99..5b3977a4 100644 --- a/src/logic/scripting/lua/libs/libpack.cpp +++ b/src/logic/scripting/lua/libs/libpack.cpp @@ -231,7 +231,13 @@ static int l_pack_assemble(lua::State* L) { } auto manager = engine->createPacksManager(worldFolder); manager.scan(); - ids = std::move(manager.assemble(ids)); + try { + ids = std::move(manager.assemble(ids)); + } catch (const contentpack_error& err) { + throw std::runtime_error( + std::string(err.what()) + " [" + err.getPackId() + "]" + ); + } lua::createtable(L, ids.size(), 0); for (size_t i = 0; i < ids.size(); i++) {