# Manual selection

This modifier lets the user manually select particles in the viewports using the mouse. It stores the user-defined selection state of particles in an internal array (see implementation notes). During an evaluation of the modification pipeline, the modifier replaces any existing particle selection with its stored selection state.

Two input modes are available to select particles: With the Pick particles mode individual particles can be selected or deselected by clicking them in the viewports. When the Fence selection mode is activated, the mouse can be used to draw a closed fence around a group of particles in the viewports. All particles within the polygon path will be selected. Press the Control key (Command on Mac) to add particles to an existing selection. The Alt key can be used to remove particles from an existing selection.

## Implementation notes

The modifier can store the user's selection of particles in two ways: It either keeps a list of selected particle indices or a list of particle identifiers.

Index-based selection mode | Identifier-based selection mode
--- | ---
In this mode, the modifier stores a Boolean value for each particle index indicating the selection state. The number of input particles and their storage order must not change. Otherwise the modifier cannot apply the stored selection state to the particle dataset or may even assign it to the wrong particles. | This selection storage method is preferred and will automatically be used when the input dataset contains particle identifiers. The modifier keeps track of the selection state by storing the identifiers of all selected particles. When the modifier applies the stored selection state to the input particles during an evaluation of the modification pipeline, it checks for each input particle if its identifier is contained in the stored selection set. Note that this selection mode requires that particles have unique identifiers. The number of input particles, however, may change after the modifier has been applied.

Note that the selection set managed by the modifier is always time-independent.