Notes and hints on MAcros Objects: Objects are critical to the functioning of many macros. Objects are some screen item that ACtool recognizes, and takes action on if it sees them. Many problems with macros are really due to problems with object recognition. Objects are, unfortunately, one of the hardest parts of ACtool macro programming, and one of the most frustrating. Lots can go wrong with them: Screen settings might be different (i.e. gamma) Different Cards/drivers may not render the same image withthe same pixel values. -- it may look the same to your eyes, but ACtool's object recognizer looks at values in individual pixels. Sometimes the object isn't rendered in the exact right spot. Several things in the game can cause screen shake (initiating warp, taking hull damage, etc) and this totally throws off object recognition. OBJECTS are definied in terms of a single value, taking the highest RGB value, so something with a similar RGB value but entirely different color, might be recognized the same by ACtool. I.e. pure green, white, pure blue, and pure red would all have an max RGB value near 255. ACtool objects could not distinguish between them. Objects look for a static image. Anything animated will not be reliably recognized by ACtool unless you set it to look for each frame in the objects animation cycle. What can you do? OBJVAR is a command in actool to add some fuzziness to object recognition. Most macros set OBJVAR to some value, typically 12. This is a value that the RGB can be off by in the and still count as recognized by ACtool. Macro programming hints: Objects are good to base decisions upon. HOWEVER, for a reliable macro, you cannot assume that if you dont recognize the object it isn't there. It might be shifted due to screen shake, randomly not recognized, partially obscured by the mouse, etc. Sure you can take positive action if you recognize the object, but an action might still have succeeded even if the object that would have indicated it failed. Case in point, opening up mining/loot window. The reliable indicator is the close window box at the top of it, but I have had a hard time making a reliable check that that box is still there. Defining objects is one of the harder things to do in ACTool, mostly because it is POORLY DOCUMENTED. Most of the documentation is on the construct of the object, but making objects by hand is hugely time-consuming, and very tricky, and your objects can fail if you get even one pixel off. The object mapper was put in more recent versions of actool but not well documented. Here's the steps you need to go through to define an object in ACtool: 1) load a screenshot of an E&B screen containing what you want an object defined of into the system paste buffer. Easy way to do this is just hit'print-screen' while running E&B, and then alt-tab back to ACtool. You can also load up saved bitmap files into pbrush, and then select-all and do 'copy'. 2) stop actool from running any macro 3) click mouse in macro text window at start of a blank line. The Object text will wind up starting at that point. 4) Go to the commands sidebar in actool, click on Objects commands, and then double-click on 'Object ... End'. The Object Mapper window should pop up. 5) Once in the objectmapper window, fill in the text of what you want the object to be named. 6) click on the 'paste' button -- this should load your E&B screenshot into the window. 7) Scroll the window with the screenshot to expose the area of your object. Click on the upper-right corner of an imaginary box that would define that object. You chould now see a blown-up image of the part of the object below the height and width text boxes. 8) Change the height and width values in their text boxes to include your object. 9) Adjust sizes and x,y coordinates of image as needed. 10) click ok. Object ... end text should now be added to your macro window. A couple of hints: Object Mapping Tool does not put in anything for black pixels. It is best to get somethign you want recognized on a black background, so the Object text only includes the pixels of the object you want. On the other hand if you WANT to recognize black pixels, you will have to add them in by hand. You'll want to remember the coordinated of the object. You have to remember the coordinates and enter them in by hand. Fortunately if you open the object mapper window again it has all the values in it from the last run, except object name. I generally put in the coordinates as comments at the end of the Object line, so that they are easily cut and pasted into future IsObject commands in the macro. I.e. like this: Object WarpButton // at 512,648 // object codes wind up here... end Add "Is" to the start and delete the // and you have an IsObject command! BIG objects are not as reliably spotted as small one, and take lots of processing power run-time to spot. Small objects are simple and a bit more reliable, but can produce false positives if you are not careful. General Macro hints: Dont forget about lag! Macros can do stuff very quickly and precisely, but will suffer from lag. You can queue up commands and if the macro does not wait for the client to catch up, chaos may ensue! Shift Click! RightmouseUp RightMouseDown LeftMouseUp LeftMouseDown LeftMouseClick and RightMouseClick all these take a shift parameter, which lets you shift click. so... leftmousedown shift -- shift click, for easy vault transfers or stack sales