Dark Souls - Soul Farming

Share your videos of GIMX in action
Post Reply
tarrant_01
Posts: 31
Joined: Sun Jul 17, 2011 6:39 am

Dark Souls - Soul Farming

Post by tarrant_01 » Thu Oct 10, 2013 10:44 am

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.


Code: Select all

MACRO F10
#cross = g
#L1 = l
#R1 = c
#down = LEFTBRACKET
#left = RIGHTBRACKET
#circle = BACKSLASH
#L2 = u

#Repair code
KEY LEFTBRACKET
DELAY 500
KEY LEFTBRACKET
DELAY 500
KEY LEFTBRACKET
DELAY 500
KEY LEFTBRACKET
DELAY 1000
KEY p
DELAY 500
KEY p
DELAY 700
KEY RIGHTBRACKET
DELAY 500
KEY p
DELAY 500
KEY BACKSLASH
DELAY 1000

#Reload arrows code
KEY LEFTBRACKET
DELAY 500
KEY LEFTBRACKET
DELAY 500
KEY LEFTBRACKET
DELAY 500
KEY LEFTBRACKET
DELAY 500
KEY LEFTBRACKET
DELAY 500
KEY LEFTBRACKET
DELAY 500
KEY p
DELAY 1000
KEY RIGHTBRACKET
DELAY 500
KEY RIGHTBRACKET
DELAY 500
KEY RIGHTBRACKET
DELAY 1000
KEY u
DELAY 500
KEY BACKSLASH
DELAY 1000

#Go back to unloading arrows
KEYDOWN F11
KEYUP F11

MACRO F11

KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
#-------repeat above x number of times before reloading and repairing
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
KEY p
DELAY 1600
KEY o
DELAY 300
KEY i
DELAY 1400
KEY o
DELAY 1300
KEY p
DELAY 1300
#Repair and Reload
KEYDOWN F10
KEYUP F10

tarrant_01
Posts: 31
Joined: Sun Jul 17, 2011 6:39 am

Re: Dark Souls - Soul Farming

Post by tarrant_01 » Sun Oct 13, 2013 3:52 am

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.

Code: Select all

global $arrowsfired = 0
global $arrowcap = 999
global $reloadcount = 0
global $reloadcap = 2
global $repaircount = 0
global $repaircap = 100
Opt("sendKeyDownDelay", 100)
if WinActivate("Sixaxis Control") = 1 Then
	msgbox(1,"","error")
	exit
EndIf

while $reloadcount < $reloadcap
	while $arrowsfired < $arrowcap
		firearrow()
		if $repaircount >= $repaircap Then
			repair()
		EndIf
	WEnd
	reloadarrows()
WEnd

func firearrow()
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1900)
	controlsend("Sixaxis Control", "", "", "o")
	sleep(1000)
	controlsend("Sixaxis Control", "", "", "i")
	sleep(1400)
	controlsend("Sixaxis Control", "", "", "o")
	sleep(1500)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1500)
	$repaircount = $repaircount + 1
	$arrowsfired = $arrowsfired + 1
EndFunc

func repair()
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1000)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "\")
	sleep(1000)
	$repaircount = 0
EndFunc

func reloadarrows()
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1000)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "u")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "\")
	sleep(1000)
	$arrowsfired = 0
	$reloadcount = $reloadcount + 1
EndFunc
Last edited by tarrant_01 on Mon Mar 31, 2014 7:17 pm, edited 1 time in total.

tarrant_01
Posts: 31
Joined: Sun Jul 17, 2011 6:39 am

Re: Dark Souls - Soul Farming

Post by tarrant_01 » Fri Oct 18, 2013 9:49 pm

Code: Select all

;"p" = cross - menu navigation / interacting with bonfire
;"o" = L1 - aiming bow
;"i" = R1 - firing arrows
;"[" = down - menu navigation
;"]" = left - menu navigation
;"\" = circle - menu navigation
;"u" = L2 - moving arrows into inventory during reload function

global $arrowsfired = 0
global $arrowcap = 999
global $reloadcount = 0
global $reloadcap = 3
global $repaircount = 0
global $repaircap = 100

Opt("sendKeyDownDelay", 100)
if WinActivate("Sixaxis Control") = 1 Then
	msgbox(1,"","error")
	exit
EndIf

while $reloadcount <= $reloadcap
               reloadarrows()
               equipNewArrows()
	while $arrowsfired <= $arrowcap
		firearrow()
		if $repaircount >= $repaircap Then
			repair()
		EndIf
	WEnd
WEnd

func firearrow()
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1900)
	controlsend("Sixaxis Control", "", "", "o")
	sleep(1000)
	controlsend("Sixaxis Control", "", "", "i")
	sleep(1400)
	controlsend("Sixaxis Control", "", "", "o")
	sleep(1500)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1500)
	$repaircount = $repaircount + 1
	$arrowsfired = $arrowsfired + 1
EndFunc

func repair()
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1000)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "\")
	sleep(1000)
	$repaircount = 0
EndFunc

func reloadarrows()
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1000)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "u")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "\")
	sleep(1000)
	$arrowsfired = 0
	$reloadcount = $reloadcount + 1
EndFunc

func equipNewArrows()
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1000)
	controlsend("Sixaxis Control", "", "", "y")
	sleep(750)
	controlsend("Sixaxis Control", "", "", "i")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1250)
	controlsend("Sixaxis Control", "", "", "[")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "]")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "l")
	sleep(500)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1000)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1000)
	controlsend("Sixaxis Control", "", "", "\")
	sleep(1200)
	controlsend("Sixaxis Control", "", "", "\")
	sleep(750)
	controlsend("Sixaxis Control", "", "", "p")
	sleep(1500)
EndFunc
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.

Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 1 guest