For quite some time now, I'd been pondering how to farm souls with GIMX and never came up with any good ideas. Trying to walk away from the bon fire to hit something and then return is pretty much impossible. Then I had the idea very recently to use a bow instead, I could walk and target a monster shoot and return to the fire. While testing this idea, I discovered that at one particular bonfire(the one below the bridge that gets lit up from the dragon on the castle when you walk up there) was the perfect location. I didn't even have to walk. There's a spot where I could manually set the cursor on the undead with the crossbow standing outside the room and just keep standing and sitting at the bonfire to bring him back to die again. Initially, I just had the macro firing arrows, but the bow would break after about an hour and it would stop working. So I came up with a second macro that gets called after about 60 shots that repairs the bow and restocks arrows from the bottomless box. This extended the macro to a running of about 4 hours. Eventually it just runs out of arrows and you have to go buy more, which isn't very far from this location.

It earns about 170,000 souls with the cost of arrows and repairs included. I'm using a +5 longbow with 25 Dexterity. I do not have the ring that boosts soul rewards.

I've had a bit of progress on this project. I went back to GIMX version 0.23 (very early). With this version, scripts written in AutoIt function as well as macros recorded in HotKeyboard Plus. I'm currently using the below script now for the above task. It's a bit more efficient and doesn't keep firing after arrows run out. I intend to add code to switch between wooden arrows and standard arrows to lengthen the farming period. The other nice feature is, all of the keysends from the code go directly to the Sixaxis window. This means I can do other things on my computer and not worry about messing up the farming progress.

Updated to cycle through 4 "stacks" of arrows. I use wooden and standard arrows. When starting, I set the cursor at the undead's head for headshots, do a couple test fires, then if all is good start the script. Script could be fine tuned to improve time. I calculated that shaving 1 second from the firearrow function will save an hour for the whole process.