A brand new feature has just been added: custom server side strategies.
You can either create your own strategy or run one created by someone else*. The process works in two steps, first you submit a strategy which is then automatically verified. If it passes the checks, then you can run it as many times as you want. If you opt to make it public, then the pages containing it will include a link to its source (e.g.
https://ggdice.com/strategy/34218). If you want to share your strategy, just give its SHA2-256 hash to other people and they will be able to run it using that.
Sample code for submitting and running custom strategies is available at
https://bitbucket.org/knowitnothing/ggdice_client/src (see bot_custom.py and sample_custom.bot). Right now, the only way to verify and run them is through the websockets API shown in the code just linked.
Writing your strategy involves coding in a subset of the Python language. A given strategy must have 3 (and only these 3) functions: setup, win, lose. All of them take one parameter, a dict containing your own parameters and other basic ones automatically included: room id, bankroll (current bankroll for the strategy), count (number of rolls performed so far), and stop (default to False). The setup function is called once before anything, the win function is called after every winning roll, and respec. for the lose function. If you want to stop the strategy at any point, set the stop key in the received dict to True.
The setup function must define the parameters roll_high (either True or False), to_bet (initial amount to bet, an integer amount), and payout (initial payout, integer too).
Opening for custom server side strategies involves a lot of issues, so the language supported is extremely restricted: there are no loops, function calls (except for converting between integer and floating point), arrays (but you can simulate that using the dict passed), and possibly other features that could potentially hurt the machine. Said that, it's always possible that some protection is missing. Everyone is welcome to give it a try and destroy the machine running it
If anyone wants more details about the language supported, feel free to ask here or in the chat at ggdice.
* Always be careful when running something you don't understand. You might want to experiment it using fakecoins before moving to other coins.