A scopemask is how we call the set of scopes that a fragmentID (more correctly: an action) will run on.
Typically the scope mask is determined by the FragmentID. Each fragmentID has a scopemask associated to it. (this is set up using the FragmentID Editor and stored in the controller definition)
It is possible to specify 'overrides' and select different scopemasks based on the global tagstate and requested fragtags. See the file format section in the article on the controller definition file for more on how this is set up.
Optionally the scopemask and the overrides are overridden by the 'forced scopemask' that can be specified by the action itself.
When an action requests a fragmentID and is installed, the action will own the scopes in the fragmentID's scopemask. The system will then start playing fragments on these scopes. See Fragment Selection Process for more information.
For programmers: a scopemask has the type ActionScopes which currently is just a uint32 in which each bit represents a scope. This determines the maximum number of scopes.