diff --git a/src/script/api/script_group.cpp b/src/script/api/script_group.cpp --- a/src/script/api/script_group.cpp +++ b/src/script/api/script_group.cpp @@ -111,7 +111,10 @@ /* static */ SQInteger ScriptGroup::GetNumEngines(GroupID group_id, EngineID engine_id) { EnforceCompanyModeValid(-1); - if (!IsValidGroup(group_id) && group_id != GROUP_DEFAULT && group_id != GROUP_ALL) return -1; + if (!ScriptEngine::IsValidEngine(engine_id)) return -1; + bool valid_group = IsValidGroup(group_id); + if (!valid_group && group_id != GROUP_DEFAULT && group_id != GROUP_ALL) return -1; + if (valid_group && ScriptEngine::GetVehicleType(engine_id) != GetVehicleType(group_id)) return -1; return GetGroupNumEngines(ScriptObject::GetCompany(), group_id, engine_id); }