LilyPond breaks score set-up into two parts: know what to put, and know where to put it. LilyPond users decide what notation objects to place, but LilyPond itself decides where to place it. LilyPond uses a plug-in to know where to place each notation object. A LilyPond plug-in is like a specialized tool that works for specific notation objects.

LilyPond uses plug-ins to get a list of possible places for all notation objects. Then LilyPond uses another plug-in to find the best placement of all notation objects; this plug-in assigns a score to each possible placement, based on how closely the placement resembles an esthetic ideal. The placement with the highest score becomes an outputted musical score.