In Foldit, recipes are used to automate repetetive tasks. Recipes are also known as scripts.
Recipes are stored in the "cookbook" in each Foldit client. Players can also share recipes with themselves, the members of their groups, or all Foldit players. Shared recipes are stored "in the cloud" on the Foldit servers.
Types of recipesEdit
There are three types of recipe in Foldit.
GUI recipesEditGUI recipes are the original type of Foldit recipe. GUI recipes must be created in the Foldit recipe editor. A GUI recipe consists of series of one or more steps. Each step is selected from a menu. Most steps represent familiar Foldit operations such as wiggle, shake, freeze, and unfreeze. Many steps have parameters which must be filled in. For example, wiggle and shake have a "number of iterations" parameter. Freeze and unfreeze have a "segments" parameter.
There's a "comment" step which allows the user to type in a comment, but otherwise, GUI recipes involve no typing. Aside from the comment, parameters like number of iterations or segments are filled in using a combination of menu choices and sliders.
GUI recipes are very different than typical scripts written in a programming language. Since there's no typing, there's no debugging in the conventional sense. A GUI recipe should always run to completion. The only question is whether the recipe helps your score.
But GUI recipes lack many desirable features. There's no concept of "looping". Steps like shake and wiggle run for a specified number of iterations, but there's no way to repeat them, except by adding them gain from a menu. GUI recipes also don't have if-then-else logic. The closest thing to an if-then-else in a GUI recipe is the ability to reset to protein to its "recent best" position.
There's also a technical limitation that affects running GUI recipes. GUI recipes require the client they are running in to be "up" on the screen. If the client is minimized, the GUI recipe essentially stops until the window is restored to the up position.
Some Foldit puzzles have been limited to using GUI recipes. Typically, these puzzles were followed by a second round, which allowed using newer recipes on the solutions developed in the first round.
Lua v1 recipesEdit
To overcome the limitations of GUI recipes, Foldit added what is now the "Foldit Lua v1" interface. Lua is a general-purpose scripting language. While it lacks some of the features found in more complex object-oriented programming languages, it has all the basic features of a true programming language, including if-then-else, looping, callable functions, and named variables.
The Foldit Lua v1 interface include a set of functions that greatly exceeded the commands available in a GUI script. (Many standard features of Lua, such as the ability to read and write files or communicate via a network connection, are disabled.)
Unlike a GUI recipe, a Foldit Lua recipe can run in a minimized window. For technical reasons, this also means a Lua recipe runs faster than the equivalent GUI recipe, although exact comparisons are difficult to obtain. (Technically, running a GUI recipe involves two active threads, each using nearly 100% of a logical processor. Running a Lua recipe involves one active thread, which can use nearly 100% of a logical processor. Most modern PCs have two or more logical processors.)
Some technical limitations still remained. A new, text-based panel was added to the Foldit recipe editor, but it lacked many features such as search-and-replace, found in even the simplest text editor such as "Notepad". Various solutions involving cut-and-paste between the Foldit recipe editor and another editor were developed, but these were inconsistent on diffrerent Foldit platforms.
Lua v2 recipesEdit
The current "v2" version of the Foldit Lua interface includes an expanded list of functions. For clarity, the functions were reorganized into different "namespaces". For example, all banding functions are in the "band" namespace, with band.AddBetweenSegments in v2 replacing the band_add_segment_segment function from v1.
(Although "namespaces" look like classes from an object-oriented language, they're really just tables in Lua. Lua tables can contain both functions and various types of data.)
The ability to use external editors was also improved. The Foldit editor now includes the ability for export and import recipes to and from files. The ability to copy and paste recipes is now also consistent across Foldit platforms.
Note: this section is preserved for historical purposes. As of January 2017, the list of recipes is a bit dated, but the recipes listed are still of interest and the root of many current recipes.
To prevent the loss some of the greatest recipes, we'd like you to record some of your favorites here!, along with links and how you personally recommend using them. If you have a recipe favorite - please put it here!!!
- Main tool: Clashing importance
- Complexity: Simple
- Duration: Short
- Best score: recent best
- Son: Rav3n_pl Fuzes v1.2
GA Bands Edit
- Main tool: Bands
- Complexity: Complex
- Duration: long / overnight
- Best score: Quicksave slot (3)
- Seagat2011 -
- "my favorite recipe - I love GA Bands 2.5 H-1-5 , by rav3nl_pl, it was originally introduced by a fellow foldit player named Cartoon Villain. (GA Bands) The "GA" part of the name actually stands for Genetic Algorithm, due to the way the recipe "breeds" and "dies" bands, based on their ability to affect the protein. During early play, the recipe is just fantastic after a rebuild, and even gains further when run after BlueFuse."
- Same family: Rav3n_pl GAB BiS v2.0.1, Rav3n_pl GAB BiS v2.1.0 Filter Toggle
Quake R Edit
'Acid tweeker' Edit
- Main tool: Rotamer
Loop rebuild Edit
Total LWS Edit
- Main tool: Band Complexity
Team AD - DoomEdit
- Main tool:
- Best score: recent best
- last version
Cross reference: See Lua Scripting