1. This section describes V7 FAH custom options available when installing FAHClient slot(s) on Windows XP and newer. This procedure assumes advanced knowledge of Windows and V7 [email protected] software. A first time installation is assumed, and unless otherwise noted, the default setting for each option is the recommended setting.
  2. Mar 31, 2018  🔹 Hi all! I present you a new build of Extra Options for NFS Most Wanted! 🔹 'Extra Options' is a script mod which improves your gameplay experience, adds new features, fixes bugs, etc.
  3. I have decided to make a simple pictorial guide to help new donors add the V7 Slot Options. Most pictures are thumbnails (small size) so please click them to get an enlarged image. Step 1: You click the icon and the FAHControl windows opens. Then you select the Advanced Mode (Expert is fine but Advanced is the minimum mode required.
  4. How to add extra options Only effects the slot you added the options to Folding Slot Options 1) Go to advance mode in th dropdown box. (top right) 2) Press Configure (top left) then Slots tab. 3) Select the folding slot you want to add options to and click edit. 4) Click Add. 5) Type in the folding slot options from the list. Example Name.

Join GitHub today

The options pictured in figure 9 match the default settings used in the Express install, and are the recommended settings. Or select custom startup options below. The first option sets the FAHClient slot(s) to start at Windows login. Any FAHClient slot is only visible in the Web Control or Advanced Control interfaces.

GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.

Sign up New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fah V7 Extra Slot Options List


commented Feb 26, 2017

In Fah-Control 7.4.16 beta you can open context menu on a folding slot and check the option 'On Idle'.
This adds the slot extra option idle=true. But the fah config is not re-read immediately and the slot with checked 'On Idle' option keeps running.

When the idle=true option is set using the dialog edit slot extra options and dialog is closed again then fah config is re-read and the slot options apply immediately.

Expected behavior: Slot context menu 'On idle' is applied immediately.

changed the titleFah-Control 7.4.16 beta slot context menu 'On Idle' not appliedFeb 26, 2017

commented May 5, 2017

Moved to FoldingAtHome/fah-issues#1198

closed this May 5, 2017
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

The v7 [email protected] client supports a new remote interface which allowsapplications to do the following:

  • Access information about the client.
  • Read and modify the client's configuration.
  • Access information about the work units in the client's queue.
  • Start and stop folding slots.
  • Add, configure or remove folding slots.
  • Access protein models.

The client's GUI, FAHControl, and viewer, FAHViewer, both use this interface soall the functionality they provide and more is accessible.

Historically, third-party software has been written to read the client's logfile and reverse-engineer files like queue.dat in order to access clientinformation. These methods were never officially supported and were oftenbroken by changes in the client or core software. The new v7 client will notsupport these older interfaces. Instead, this new interface will provide a moreconsistent and officially supported method to access the same information andmuch more.

At the lowest level, the client provides a network socket interface whichdefaults to port 36330. This interface is both usable by a machine and bya human connecting directly with a telnet program.

Socket programming can be challenging so Language specific API layers will bedeveloped to simplify connection to the socket level interface. This willallow programmers to access and control [email protected] clients via a few functioncalls via a library in their favorite language.

This socket interface is designed to be usable both by human and machine. Aquick way to gain access to this interface is to connect to a locally runningclient with a telnet program. For example:

Typing help at the prompt will give you a list of commands organized intosection and information on how to use them.

Depending on the client configuration you may have to use theauth <password> command to get access to other commands. The authorizationfunctionality depends on the configuration options command-allow,command-allow-no-pass, the related deny options and where you connectfrom.

Attention Telneting is mainly for developers of 3rd party tools. If you usea compatible telnet program and send complete commands from any applicationsyou develop then everything should work fine. The problem is that FAHClient isnot compatible with the Windows telnet program (at the moment). The clientexpects to receive whole commands than a character at a time. If you telnetremotely from a Linux box to your Windows machines it should work fine. Youcould also try installing a 3rd party telnet program with more options.

Sending commands to the client is very simple. Commands consist of strings ofcharacters followed by one or more arguments separated by spaces followed bya return character (ASCII #10). Arguments which contain spaces may be escapedwith single or double quotes.

For example, to access the value of the pause-on-battery configurationoption you would send this command:

or to set the username to a name with a space in it:

The socket interface has a built-in help system. This can be accessed bytelneting to the client's port and running the help command. This willdump a help screen organized into sections for all the available commands. Youcan get help for a specific command like this:

The help lines are organized as follows:

The arguments may also use a special syntax to describe their usage. Thesymbols of this syntax have the following meaning:

[]Everything between square brackets is optional.
<>Everything between angle brackets is required.
A bar means or.
..Ellipsis mean the preceding arguments may be repeated.

Configuration options can be global or folding slot specific. A previoussection showed how to set a single global option. You can set or list one ormore options with a single command using options.

List two options:

List all explicitly set options:

List all options, including those that still have their default values:

List all options, including those with default values, and options which areunset:

Set two options:

You will notice that these commands all print out the value of these optionsin a block starting with the word PyON. This is the data format used bythe socket interface and is described in a section below. Not all commandsthat print in this format will say so in their help string.

The options command allows you to view and modify global options only. Youcan operate on folding slot specific options with the slot-options command:

The number 0 is the folding slot id.

No options are actually saved until the save command is run which writes anew config.xml file which will persist through client restarts.

Folding slot and work unit information can be access with the slot-info andqueue-info commands. Both of these commands dump their information in PyONformat.

Fah V7 Extra Slot Options 2017

Adding a new folding slot can be done withslot-add <type> [<name>=<value>].. command. Configuration options for thenew slot can be provided as well to override general options, but the foldingslot type must be provided. Valid folding slot types are uniprocessor orshorter uni, smp and gpu.

For example, adding a uniprocessor slot:

Deleting of an existing slot can be done with slot-delete <slot>. Validfolding slot numbers can be obtained with slot-info command.

Note: Live folding slot manipulation does not require a save command to beeffective, but if you fail to save configuration then all your folding slotmanipulations will get lost after next FAHClient startup.

The socket interface uses the PyON messages to return data to the caller. Thismakes parsing structured data easier and consistent for all commands. It alsomakes handing automatic updates much easier.

PyON Message Format

PyON messages consist of a header, content and a trailer. The header isPyON <version> <message name>n. Where <version> is the PyON versionnumber and <message name> is an arbitrarily chosen name that helps toidentify the contents that can be expected to follow the header. The messagename always consists of only letters, numbers, dash - and underscore _.The trailer is always ---n. You can always count on both the header andtrailer being printed on their own line. In other words, they will alwaysstart and with a return character n.

Detecting PyON Messages

PyON messages can be detected by scanning the socket output for the PyON headerand trailer. Whatever is between the header and trailer will be PyON parsablecontent.

To detect the header scan for the 6 characters nPyON . To detect thetrailer scan for the 5 characters n---n. Data outside of the header andtrailer should be ignored. These character strings cannot occur in the PyONcontent because the return character is escaped as n.

Parsing PyON Content

PyON stands for Python Object Notation. It is a subset of Python's native datalanguage and a subset of [http://en.wikipedia.org/wiki/JSON JSON] (JavaScriptObject Notation) with a few exceptions. PyON differs from JSON two ways.None is used instead of null and boolean values start with an uppercase letter as in Python. E.g. True and False.

Most of the client commands do not use boolean or None/null values so nearly alldata returned by the client can be parsed with a JSON parser. JSON parsers areavailable for many different languages. A list of available parsers can befound here [http://www.json.org/]

In Python the content can be parsed with the following code:

Fah V7 Extra Slot Options Price

Message Processing Examples

The client GUI, FAHControl, is an Open-Source application. The code infah/Connection.py is a good example of how to access the client's socketinterface. You can check out the code with Git using thefollowing commands:

TODO add examples of how to processes PyON messages in various languages.

Rather than polling the client repeatedly for information you can ask theclient to send a PyON message when something has changed using the updatescommand.

Fah V7 Extra Slot Options Free

The updates command has 5 subcommands:

add <id> <rate> <expression>Add a update with id and update rate.
del <id>Delete a update by id.
listList all currently running updates.
clearDelete all updates.
resetReset all updates.

For example, we can use the add subcommand to get updates of the work queueat a maximum rate of once every 5 seconds with the following command:

The expression argument is an expression that will be evaluated at mostonce every 5 seconds. The command queue-info must be preceded by a $so that the script interpreter knows it is a command.

We can then add a second update, now with id 1 to get folding slot updateswith:

Both slot-info and queue-info print PyON messages so we just have toscan for these messages and process they come. You can tell which message iswhich by its message name.

The FAHControl program uses the following update commands to get it'sinformation from the client:

The expression parameter is one argument so commands, such as options, whichtake arguments must be wrapped in $(). See the section The ScriptInterpreter.

Log updates are handled slightly differently than the updates described in theprevious section.


When you connect to the client you are accessing the client's internal scriptinterpreter. For the most part, you don't have to worry about the details ofthis interpreter because connections to the socket interface put in a simplecommand loop where each entered line is treated as a command expression andevaluated. However, commands and variables can also be evaluated with the $prefix or with $() for commands with have arguments.

A simple illustration of this processing can be seen using the eval command:

The above command will just print the string queue-info which may not bewhat was expected. Whereas the following command will print the results ofrunning the queue-info command.

eval $queue-info

The above command is equivalent to just running the queue-info commanddirectly. The difference is you can do things like this:

Poker winrates are most commonly expressed in the 4 following ways: bb/100 = The number of big blinds you win per 100 hands. Bb/hour = The number of big blinds you win per hour. $/100 = The amount of money you win per 100 hands. Most ratios in poker are in the X to 1 format anyway, so it's not a big concern. Quick ratio odds chart example. Lets say you are on the turn waiting for the river, and are holding a flush draw; you have 4.1 to 1 odds (roughly 4 to 1). A good poker win rate is anything above 0bb/100. This is because most people lose at poker in the long run. However, in small stakes games like NL2, NL5, NL10, NL25 and NL50 a good poker win rate can vary from 3bb/100 to 30bb/100. If you're a heads up SNG player, your ROI should be anywhere from 5 to 20%. For limits up to $30 or so, 15 to 20% should be what you're aiming for give or take a few percentage points. This means you'll earn up to $6 per game or so. As you move up in stakes, the competition will get tougher so you should expect your ROI to decline. /what-is-a-good-poker-hand-win-ratio/. Good Live Poker Win Ratio. So the very biggest winners in live poker (which is about 5-10% of the player pool), will have a poker session win ratio of 80%. If you are only a slightly above breakeven player over the long run (which is a much larger segment of the player pool), then your poker win ratio will be nowhere close to 80.

Most command arguments are automatically evaluated before they are passed tothe command except for a few special commands like if and updates whicheither conditionally evaluate their arguments or evaluate them later.

The client's internal scripting language is actually fairly powerful but most ofthis is not needed to use the socket interface but it does explain why commandslike updates need the $ and $() syntax around the expressions theevaluate.

We will depend on third-party developers to help us create the API layers whichhide the difficulties of socket programming for the most popular programminglanguages. We ask developers of these APIs to follow a few guidelines to helpmake interfacing to [email protected] clients consistent across various platformsand languages.

  1. Please release all interface APIs under an Open-Source license such as theGPL, BSD or MIT licenses.
  2. Name API functions using the same names used in the socket level interface.
  3. Use a layered approach which separates higher-level functions form thosesupplied directly by the socket level API.

The API should allow API users access to all the same functions provided by thesocket layer with the same names but with language specific datatypes.

Fah V7 Extra Slot Options 2017

  • Talk about the PyON scanning and parsing loop and asynchronous messageprocessing (i.e. threads are not necessary).
  • This section of the document should be expanded as a consistent APIinterface definition is developed.