I'm not sure how you use the OnPickup or OnIgnite, but i believe they are used in an If script. Like
void SetEntityActive(string &in asEntity, string &in type)
if(OnPickup == true)
Anyway i would use the SetEntityPlayerInteractCallback function. This is directly triggered when you interact with an object. Here you don't have to define when it should happen
void OnStart()
{
SetEntityPlayerInteractCallback("lantern", "SetEntityActive", true);
}
void SetEntityActive(string &in asEntity)
{
SetEntityActive("monster1", true);
ShowEnemyPlayerPosition("monster1");
SetEntityActive("monster2", true);
ShowEnemyPlayerPosition("monster2");
}
Trying is the first step to success.