Scripting and Automation

Userscripts are custom scripts injected into the webpage, usually by a browser extension, to customise the user experience or alter functionality. There are other ways of interacting with the website using scripts, such as running code directly in the browser console or creating an external programme that interacts with the browser window. This page covers all instances of interacting with website features with code/programming.

In all cases, the preferred course of action when a feature is seen as lacking is to make a suggestion in the Suggestions forums. This is so the feature can be implemented in a way that does not strain the web server's resources. However, we understand that the site developer(s) likely cannot address every possible desired feature in a timely manner, nor will it implement features that are only desirable to a small portion of users (e.g. changes in styling).

In those cases, you may create or install userscripts to facilitate a better play experience. However, it can be the wild west with scripts in terms of what they are capable of doing! All scripts and other forms of script injection or external programmes that interact with the website or server should follow the rules below.

In all cases, rules surrounding scripting are based on two basic principles:

  1. Not creating an unfair advantage over other players, and
  2. Not straining the web server's resources.

These are two key considerations for this website as it keeps the game fun and functional for all players. A few players running scripts that make hundreds of requests a second could slow down the website for everyone else!

The rules

  1. Scripts that give players an unfair advantage over other players are not allowed. If the script allows you to make more currency gains, buy chickens faster, or boost the visibility of your posts over players who are not using the script (among other functions not listed), it is disallowed as per Rules 4.1-3 on unfair advantage and/or Rule 6 on spamming.
  2. Scripts that make a disproportionate number of requests to the server are not allowed as per Rule 4.1. Generally, this includes all scripts that make more requests to the server than a human is physically able to achieve using input device interactions.
  3. Scripting of all features with feature-specific rate limits is not allowed. Some features have stronger rate limiting because they produce currency gains or potential competition with other users. These features should not be interacted with using scripts. Those features are: chicken petting, Clucky Clicker, Eggspedition.
  4. Inversely (wherever they are not breaking other rules), scripts that make a small number of requests to the server are sometimes allowed. It is hard to define a specific limit for this, but generally a script that performs actions approximately as quickly as a human is able to are allowed. For example, scripts that make one additional request per page load are allowed.
  5. Wherever they are not breaking other rules, scripts that only manipulate data already served to the client without making any requests to the server or affecting any other player's experience are allowed. This includes (non-exhaustively) scripts that reorganise information on the webpage, apply custom styling to the webpage, capture data on the webpage, and so on.

As of writing, all web and API routes have rate limiters applied on them, which should function as guardrails against resource-draining scripting. We track how many times each user has hit the rate limit. Scripts are most likely to be dealt with on the basis of spread and visibility—scripts that are being used by a lot of users will be checked more rigorously.