{"data":{"slug":"tanjeffreyz-auto-maple","name":"auto-maple","tagline":"Artificial intelligence for MapleStory that uses machine learning and computer vision to navigate challenging in-game environments","github_url":"https://github.com/tanjeffreyz/auto-maple","owner":"tanjeffreyz","repo":"auto-maple","owner_avatar_url":"https://avatars.githubusercontent.com/u/69165598?v=4","primary_language":"Python","stars":671,"forks":321,"topics":["ai","computer-vision","machine-learning","maplestory"],"archived":false,"github_pushed_at":"2025-12-26T03:55:23+00:00","maintenance_label":"Slowing","url":"https://www.graphcanon.com/tools/tanjeffreyz-auto-maple","markdown_url":"https://www.graphcanon.com/tools/tanjeffreyz-auto-maple.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/tanjeffreyz-auto-maple","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=tanjeffreyz-auto-maple","description":"Artificial intelligence for MapleStory that uses machine learning and computer vision to navigate challenging in-game environments","homepage_url":null,"license":null,"open_issues":60,"watchers":33,"ai_summary":null,"readme_excerpt":"<h1 align=\"center\">\n  Auto Maple\n</h1>\n\nAuto Maple is an intelligent Python AI that plays MapleStory, a 2D side-scrolling MMORPG, using simulated key presses, TensorFlow machine learning, OpenCV template matching, and other computer vision techniques.\n\nCommunity-created resources, such as **command books** for each class and **routines** for each map, can be found in the **[resources repository](https://github.com/tanjeffreyz/auto-maple-resources)**.\n\n<br>\n\n\n<h2 align=\"center\">\n  Minimap\n</h2>\n\n<table align=\"center\" border=\"0\">\n  <tr>\n    <td>\nAuto Maple uses <b>OpenCV template matching</b> to determine the bounds of the minimap as well as the various elements within it, allowing it to accurately track the player's in-game position. If <code>record_layout</code> is set to <code>True</code>, Auto Maple will record the player's previous positions in a <b>quadtree-based</b> Layout object, which is periodically saved to a file in the \"layouts\" directory. Every time a new routine is loaded, its corresponding layout file, if it exists, will also be loaded. This Layout object uses the <b>A* search algorithm</b> on its stored points to calculate the shortest path from the player to any target location, which can dramatically improve the accuracy and speed at which routines are executed.\n    </td>\n    <td align=\"center\" width=\"400px\">\n      <img align=\"center\" src=\"https://user-images.githubusercontent.com/69165598/123177212-b16f0700-d439-11eb-8a21-8b414273f1e1.gif\"/>\n    </td>\n  </tr>\n</table>\n\n<br>\n\n\n\n\n\n\n\n\n<h2 align=\"center\">\n  Command Books\n</h2>\n\n<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/69165598/123372905-502e5d00-d539-11eb-81c2-46b8bbf929cc.gif\" width=\"100%\"/>\n  <br>\n  <sub>\n    The above video shows Auto Maple consistently performing a mechanically advanced ability combination.\n  </sub>\n</p>\n  \n<table align=\"center\" border=\"0\">\n  <tr>\n    <td width=\"100%\">\nDesigned with modularity in mind, Auto Maple can operate any character in the game as long as it is provided with a list of in-game actions, or a \"command book\". A command book is a Python file that contains multiple classes, one for each in-game ability, that tells the program what keys it should press and when to press them. Once a command book is imported, its classes are automatically compiled into a dictionary that Auto Maple can then use to interpret commands within routines. Commands have access to all of Auto Maple's global variables, which can allow them to actively change their behavior based on the player's position and the state of the game.\n    </td>\n  </tr>\n</table>\n  \n<br>\n\n\n\n\n\n\n\n<h2 align=\"center\">\n  Routines\n</h2>\n\n<table align=\"center\" border=\"0\">\n  <tr>\n    <td width=\"350px\">\n      <p align=\"center\">\n        <img src=\"https://user-images.githubusercontent.com/69165598/150469699-d8a94ab4-7d70-49c3-8736-a9018996f39a.png\"/>\n        <br>\n        <sub>\n          Click <a href=\"https://github.com/tanjeffreyz02/auto-maple/blob/f13d87c98e9344e0a4fa5c6f85ffb7e66860afc0/routines/dcup2.csv\">here</a> to view the entire routine.\n        </sub>\n      </p>\n    </td>\n    <td>\nA routine is a user-created CSV file that tells Auto Maple where to move and what commands to use at each location. A custom compiler within Auto Maple parses through the selected routine and converts it into a list of <code>Component</code> objects that can then be executed by the program. An error message is printed for every line that contains invalid parameters, and those lines are ignored during the conversion. \n<br><br>\nBelow is a summary of the most commonly used routine components:\n<ul>\n  <li>\n    <b><code>Point</code></b> stores the commands directly below it and will execute them in that order once the character is within <code>move_tolerance</code> of the specified location. There are also a couple optional keyword arguments:\n    <ul>\n      <li>\n        <code>adjust</code> fine-tunes the character's position to be within <code>adjust_tolerance</code> of the tar","github_created_at":"2021-04-14T06:57:42+00:00","created_at":"2026-07-11T12:28:22.192669+00:00","updated_at":"2026-07-11T12:28:26.962451+00:00","categories":[{"slug":"model-training","name":"Model Training","url":"https://www.graphcanon.com/categories/model-training","markdown_url":"https://www.graphcanon.com/categories/model-training.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/model-training"},{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"},{"slug":"computer-vision","name":"Computer Vision","url":"https://www.graphcanon.com/categories/computer-vision","markdown_url":"https://www.graphcanon.com/categories/computer-vision.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/computer-vision"}],"tags":[{"slug":"ai","name":"ai"},{"slug":"machine-learning","name":"machine-learning"},{"slug":"python","name":"python"},{"slug":"maplestory","name":"maplestory"},{"slug":"computer-vision","name":"computer-vision"}],"trust":{"provenance":{"is_fork":false,"github_id":357805407,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-11T12:28:22.896Z","maintenance":{"label":"Slowing","score":36,"methodology":"github_public_v1","releases_90d":0,"days_since_push":197,"last_release_at":"2023-03-15T10:47:59Z"},"security_summary":{"status":"ok","scanner":"osv@v1","low_count":0,"high_count":0,"last_scan_at":"2026-07-11T12:28:24.152Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-11T12:28:23.732Z"},"languages":{"value":["python"],"source":"github.language","observed_at":"2026-07-11T12:28:23.732Z"}}}}