To explain Smart Darting in more technical terms, a set of darts d 0 , d 1 ...d j are first specified. Each of those darts corresponds to a particular set of microstates (i.e. a metastable binding mode which was given as input) each of which is defined by a set of parameters k 0 , k 1 ,...k n , with each parameter k i having an associated range r k i . Each parameter refers to a quantity that defines that microstate-such as a torsion angle, or some distance measurement, such as the distance between two atoms. The range should be the same for each parameter k i , (which is necessary to preserve detailed balance, or the acceptance criterion needs to be altered). When a given parameter is within its associated range, we refer to it as being within that parameter region. These parameters (and the size of the parameter range) are user-defined input and should be designed to cover the typical value ranges of those parameters, which can be determined for example by running short exploratory/equilibration simulations. When attempting to make a Smart Darting Monte Carlo move, the parameters are evaluated (the current value of that parameter is checked) for each dart. When the parameter is evaluated, if the current configuration is within the parameter regions r k i for all r k of a given dartwhich we refer to as being within the dartthen the system can jump to another set of parameters with equal probability. In the process of jumping to the new configuration, a new k 0 , k 1 ,...k n are each generated-either uniformly between the ranges for a given r k i or deterministically through some one-to-one mapping from the old k 0 to the new k 0 . Additionally, to maintain detailed balance, no Smart Darting move can be performed on a system if the system is within the range of multiple darts.