The ScoreFunction is a list of weights for predefined scoring terms (e.g., vdw, env, fa_atr...). The score-terms stand for a certain physical interaction whose calculation has been implemented as an energy function within Rosetta. The total score of a pose is computed as the weighted sum of the individual contributions of the non-zero terms in the ScoreFunction. By changing a weight from 0.0 to a non-zero value the respective score calculation is activated.

ScoreFunctions are often changed throughout a Protocol, which simply means that one set of weights is exchanged with a different set of weights (e.g., see Fragment Assembly (Abinitio) ).

A couple of predefined weight sets can be found in the Rosetta Database under scoring/weights/.... Many Rosetta applications honor the flags -score:weights and -score:patch to choose the weight-file (from the database or in the local directory) and allow successive application of patches. Unfortunately, the use of these particular flags is not consistent through-out all applications, and others require one to specify more than one ScoreFunction. In the latter case, the standard flags are often used to specify the ScoreFunction used to compute the score of the final output structure.

New scoring terms can be added to the Energy Function within Rosetta but this is somewhat involved and requires skills in C++.
Most things, however, can be achieved by changing the weights of the scoring terms.