diff --git a/skymp5-server/cpp/server_guest_lib/MpActor.cpp b/skymp5-server/cpp/server_guest_lib/MpActor.cpp index 271d527eac..758cdb434a 100644 --- a/skymp5-server/cpp/server_guest_lib/MpActor.cpp +++ b/skymp5-server/cpp/server_guest_lib/MpActor.cpp @@ -276,7 +276,20 @@ bool MpActor::OnEquip(uint32_t baseId) const bool isIngredient = recordType == "INGR"; const bool isPotion = recordType == "ALCH"; - if (!(isSpell || isIngredient || isPotion || isBook)) { + bool isTorch = false; + if (espm::utils::Is(recordType)) { + auto& compressedFieldsCache = GetParent()->GetEspmCache(); + auto light = espm::Convert(lookupRes.rec); + auto res = light->GetData(compressedFieldsCache); + isTorch = res.data.flags & espm::LIGH::Flags::CanBeCarried; + } + + const bool isScroll = recordType == "SCRL"; + const bool isWeapon = recordType == "WEAP"; + const bool isArmor = recordType == "ARMO"; + const bool isAmmo = recordType == "AMMO"; + + if (!(isSpell || isIngredient || isPotion || isBook || isTorch || isScroll || isWeapon || isArmor || isAmmo)) { return false; }