

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.Ī routine is a user-created CSV file that tells Auto Maple where to move and what commands to use at each location.

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.

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. The above video shows Auto Maple consistently performing a mechanically advanced ability combination.ĭesigned 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". This Layout object uses the A* search algorithm 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. Every time a new routine is loaded, its corresponding layout file, if it exists, will also be loaded. If record_layout is set to True, Auto Maple will record the player's previous positions in a quadtree-based Layout object, which is periodically saved to a file in the "layouts" directory. Auto Maple is an intelligent Python bot that plays MapleStory, a 2D side-scrolling MMORPG, using simulated key presses, TensorFlow machine learning, OpenCV template matching, and other computer vision techniques.Ĭommunity-created resources, such as command books for each class and routines for each map, can be found in the resources repository.Īuto Maple uses OpenCV template matching 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.
