We encourage writing bots calling the public APIs, either to gather information or to play the game. The Anacreon server API is designed to only expose capabilities and information accessible to a player. It should be impossible to cheat by using the APIs.

Nevertheless, there are cases in which aggressive use of the APIs can lead to problems for other players. For example, DOS attacks could lock out other players. Similarly, it is possible that automated play, such as deploying thousands or millions of fleets, could overtax server resources and/or overwhelm the UI of other players.

This record describes some limitations added to prevent bots from intentionally or accidentally disrupting play.

API Limits

We enforce the following limits on the server on a per-player, per-game basis:

  • 9,000 calls per hour to /api/getTactical.
  • 1,200 calls per hour to /api/setHistoryRead.
  • 240 calls per hour to /api/deployFleet.
  • 240 calls per hour to /api/attack.
  • 240 calls per hour to /api/tacticalOrder
  • 150 calls per hour to /api/getObjects.
  • 120 calls per hour (each) to all others.

NOTE: These limits will apply to the all API callers, including the browser game client.

Fleet Limits

We add a limit of 1,000 fleets per empire.

Anti-Spam Measures

The Send Message command could be used to disrupt a receiving player's UI (by spamming lots of messages automatically).

We add the following controls:

  • A player should be able to block another player. If you block another player, all their messages disappear and you will no longer see their messages (however, the sender will get no indication that they are blocked).
  • A player should be able to dismiss all messages.

Reference

This is the current list of API entry points:

INFORMATION
/api/gameList
/api/getGameJoinInfo
/api/getGameInfo
/api/getGameLog
/api/getObjects
/api/getTactical
/api/openGameList
/api/scenarioList

COMMANDS
/api/abdicate
/api/abortAttack
/api/attack
/api/buildImprovement
/api/buyItem
/api/createGame
/api/deployFleet
/api/designateWorld
/api/destroyImprovement
/api/disbandFleet
/api/joinGame
/api/launchLAMs
/api/leaveGame
/api/renameObject
/api/sellFleet
/api/sendMessage
/api/setDestination
/api/setDoctrine
/api/setHistoryRead
/api/setIndustryAlloc
/api/setProductAlloc
/api/setTradeRoute
/api/setUIOptions
/api/stopTradeRoute
/api/tacticalOrder
/api/transferFleet
george moromisato 24 Jun 2018:

Implemented and deployed in Era 4.

george moromisato 9 Jul 2018:

NOTE: Anti-Spam measures have not yet been implemented. That section is dealt with here: https://ministry.kronosaur.com/record.hexm?id=80194