Skip to content

Latest commit

 

History

History
133 lines (84 loc) · 8.24 KB

README.md

File metadata and controls

133 lines (84 loc) · 8.24 KB

A.C.A.S (Advanced Chess Assistance System)

Warning

A.C.A.S is currently in development. Expect bugs, especially on variants.

A.C.A.S is an advanced chess assistance system which helps you make better moves with the help of a chess engine. Just install the userscript, open the A.C.A.S GUI and you're good to go! No downloading needed.

277160104-791ad4ef-96c8-4679-ad78-e1188c73d5e4

  • No anti-features (e.g. ads, tracking)
  • WebAssembly chess engine (faster than regular JavaScript engines)
  • Supports the most popular chess game sites (e.g. chess.com, lichess.org)
  • Supports multiple move suggestions, move arrow markings, chess variants & fonts
  • Impossible to detect (well, you can never be sure, so let's say it's almost impossible)

Caution

Please be advised that the use of A.C.A.S may violate the rules and lead to disqualification or banning from tournaments and online platforms. The developers of A.C.A.S and related systems will NOT be held accountable for any consequences resulting from its use. We strongly advise to use A.C.A.S only in a controlled environment ethically.

▶️ Open A.C.A.S ⬇️ Install (GreasyFork) 💬 Discuss With Community

Example Gameplay

example-gameplay

Getting Started

Simply install the A.C.A.S userscript, open the A.C.A.S GUI and a supported chess game site. Then, just start playing!

Important

You need to keep the A.C.A.S GUI tab active to keep the whole system functional. Think of the tab as an engine of a car, the userscript alone is simply an empty hull, it won't run, nor move. The A.C.A.S GUI has the chess engine which calculates the moves.

Fundamental Idea

A.C.A.S (Tab #1) Chess Website (Tab #2)
image image
The engine runs on a completely different tab than the chess game page, completely isolated from it. The site cannot block the usage of A.C.A.S. A.C.A.S sends move data via CommLink and the userscript displays the data on the board using UniversalBoardDrawer. (If "Display Moves On External Site" setting is activated!)

Arrow Meaning

Color Meaning
🟩 Best Move
🟦 Secondary Move
🟥 Enemy Move

Note

Enemy move is shown if "Display Opponent Move Guess" setting is activated and the square an arrow starts from is hovered. The enemy move arrow is just a guess made by the engine and means that the engine thinks after you make the move the arrow suggests, the enemy will make the move the enemy arrow suggests.

Q&A

Why did I get banned, wasn't this impossible to detect?

Chess engines simply play differently than humans. It's fairly easy to detect by pure statistics. For example, chess.com bans about 16 000 players for fair play abuse each month.

Your ban most likely wasn't because of the site detecting A.C.A.S, it was because of your suspicious behaviour patterns. A.C.A.S cannot fix this, it's your responsiblity to play as a human.

Don't want to get banned again? Don't use A.C.A.S against other humans.

Why doesn't it work?

Before making an issue, please read these and also join the Userscript Hub Discord server for assistance,

  • Make sure the A.C.A.S GUI is active. Do not close the tab. Browsers freeze code execution on inactive pages, you need to visit the A.C.A.S GUI tab from time to time or keep it open on a separate window. This prevents A.C.A.S from freezing and not giving any move suggestions, for example.

  • Do you not see any moves displayed on the chess site? Are you sure you have enabled "Display Moves On External Site" box on the A.C.A.S GUI settings? After enabling that setting, please refresh the chess site to see changes.

  • Are you trying to play variants on Chess.com? If so, it's not currently supported very well since I had to rush the project, sorry! Other sites with variants might also be buggy, you can make an issue about that if you want.

  • Make sure you did NOT set "Piece Animations" to "Arcade" on Chess.com board settings! Set the "Piece Animations" to "None" so that A.C.A.S can parse the board correctly.

Otherwise, it could be a bug, please make an issue here.

Note

When making an issue, please be descriptive! Mention,

  • The chess site and the variant you were playing.
  • The browser and the userscript manager you were using.
  • What did you do for the bug to happen, does it happen often? How could I reproduce it?
  • You can also include a screenshot of the browser console (e.g. CTRL + SHIFT + I or right click, inspect, and go to the console tab), look for grey underlined text at the beginning of a red background area, on the right side of the screen, which has the word 'A.C.A.S'. That's an error from the userscript.

Development

A.C.A.S GUI

Hosting on localhost

  1. Install the A.C.A.S userscript.
  2. Select a webserver of your choosing, e.g. UwAmp.
  3. Create a folder named A.C.A.S to the root folder of your webserver. (e.g. www/A.C.A.S)
  4. Clone the repository and put the files inside the folder you just created.
  5. You should now see A.C.A.S running on http://localhost/A.C.A.S/.
  6. Make sure the A.C.A.S userscript is on and you should be good to go!

Warning

Make sure there are no additional folders which would make the URL like http://localhost/A.C.A.S/A.C.A.S/.

Tip

You can use GitHub Desktop to make Git actions such as cloning easy.

A.C.A.S Userscript

Developing the userscript is easy, simply develop it as you'd any other userscripts.

Note

Browsers might cache userscripts after you've refreshed the site enough times. If you notice your userscript being cached, disable the userscript, refresh the page, then enable the userscript and refresh the page again.

Used Libraries

  • Fairy Stockfish WASM (the chess engine of A.C.A.S)
  • ZeroFish (WASM port of Lc0 and the latest Stockfish, another chess engine of A.C.A.S)
  • Maia-Chess (legit looking weights for Lc0)
  • COI-Serviceworker (allowing WASM on GitHub pages, extremely important library)
  • HackTimer (bypasses browser timer throttling, it's questionable if this does anything, but it doesn't hurt to have it for now)
  • ChessgroundX (for displaying a board on the GUI. Modified the library a bit)
  • FileSaver (for saving the config file)

Used Libraries (Made for A.C.A.S)

  • UniversalBoardDrawer (for drawing arrows on the GUI and the chess site chessboards)
  • CommLink (for cross-window communication between the GUI tab and chess sites)

Contact

Discussion about A.C.A.S can be had on the Userscript Hub Discord server.

Other

You can find the userscript on GreasyFork as well.

You can find A.C.A.S v1 here. It is no longer updated.