Discrete parameters discretize a continuous interval into a finite number of options. They are characterized by an upper and lower bound, as well as a stride or step size which determines the resolution of the discretization. In Olympus, one instantiates a custom discrete parameter in one of two ways: (1) by defining an interval and a stride argument, resulting in evenly spaced options over that interval, or (2) by explicitly providing an ordered list of options. In this case, categorical parameters are encoded as onehot vectors. We also provide the opportunity to specify descriptors for each categorical option as lists of floats. Descriptors can be used to impose an ordering between the options of a categorical variable, and have been shown to accelerate the optimization rate of an experiment planning strategy if there exists sufficient correlation between descriptors and the property being optimized. As Olympus now provides continuous, discrete, and categorical parameter types, users can define arbitrarily complex parameter space objects using a combination of all three parameter types via a flexible interface. Finally, ordinal parameters are parameter sets with a natural ordering but the distances between options are unknown. Ordinal parameters are often useful to describe objective values (i.e., experimental outcomes) that are qualitative in nature. For example, the result of a crystallization experiment may be qualitatively characterized (from least to most desirable) as providing a clear solution, a fine powder, or crystals of small/large size. Within Olympus, ordinal parameters are conventionally defined by ordering the options from least to most desirable. Additional information on the use of ordinal parameters within Olympus can be found in SI Sec. S.3. The design of molecules, materials and chemical processes often requires the simultaneous optimization of multiple, competing objectives. Many solutions to the problem of concurrently optimizing multiple objective functions have been proposed. A common approach is to construct a single objective function from multiple ones, by considering user-provided preferences about the optimization goal for each objective. Functions that map multiple separate objectives into a single, aggregate one are known as achievement scalarizing functions (ASFs). Ideally, the optimal solution of ASFs should correspond to a Pareto optimal solution of the original multi-objective problem.