There's no built-in system, but it should be easy enough to set up.
In obj_player's collision event with obj_encounterzoneselector, after line 8 insert some new code:
for(var b = 0; b < array_length(global.encounter_valid_monsters); b++){ for(var c = AMP_FIRST_ACTIVE; c < AMP_FIRST_ACTIVE + PARTYSIZE_ACTIVE; c++){ if(global.active_monster_party[c,amp_MONID] == global.encounter_valid_monsters[b]){ array_delete(global.encounter_valid_monsters,b,1) b-- //Deleting shifted everything back one step so re-check break; } } }
(this is completely untested so use with care)
the encounter_valid_monsters array is common to all ects_* (EnCounter Table Setup) scripts so modifying it directly like this means it should work everywhere in the game.