Foldit Wiki
Advertisement

In Foldit, recipes are used to automate repetive 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.

Lua recipe

Lua v2 recipe in Foldit recipe editor.

Types of recipes

There are three types of recipe in Foldit.

GUI recipes

GUI 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

GUI recipe

GUI Recipe in Foldit recipe editor.

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 recipes

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 recipes

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.

Classic recipes

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!!!

BluFuse

Main tool: Clashing importance
Complexity: Simple
Duration: Short
Best score: recent best
Son: Rav3n_pl Fuzes v1.2

GA Bands

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

Main tool: Bands
Complexity: average
Duration: short to long
Best score: Quicksave slot (3) ctrl +3
last version
Same family: Quake, Local Quake 4.0

'Acid tweeker'

Main tool: Rotamer
Complexity: simple
Duration: average to very long (3 steps)
Best score: Recent best
last version
Son Acid Tweaker R v1.2a quicker but 3 steps are always long

Loop rebuild

Main tool: Rebuild
Complexity: simple
Duration: average to very long
last version
Same family : Rav3n_pl DRW v4.0, TvdL enhanced DRW 2.8.0, Tvdl Rav3n_pl DRW v3.4.2

Total LWS

Main tool: Local Wiggle
Complexity: simple
Duration: average
Best score: recent best
last version
Same family: full 2-6-3auto walk , Lucky LWS, Precise LWS, tlaloc Repeat Settle

Protein Print

Main tool: Information
Complexity: simple
Duration: short
print protein lua2 V0 Atom Tables 1.1

Helix curler

Main tool: Band Complexity
Complexity: simple
Duration: average
Best score: recent best
last version
Same family: ttaloc helixer (use a fuse recipe after this one)

Compressor

Main tool:
Complexity:
Duration:
Best score: recent best
last version
Same family: TvdL DRW Compressor 1.5.2

Team AD - Doom

Main tool:
Complexity:
Duration:
Best score: recent best
last version

See here a tables of most popular recipes by votes and the master cook.

Cross reference: See Lua Scripting

Advertisement