timeouts.txt: Difference between revisions

From OpenKore Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 1: Line 1:
Kore uses timeouts to keep AI routines synchronized or allow some AI functions to be executed within certain times. Delays are also used to keep the bot in sync with the server and to prevent Kore from spamming the server with unnecessary packets which would usually cause a disconnection. The file '''''timeouts.txt''''' allows you to modify some of the timeouts Kore uses.
OpenKore uses timeouts to keep AI routines synchronized or allow some AI functions to be executed within certain times. Delays are also used to keep the bot in sync with the server and to prevent OpenKore from spamming the server with unnecessary packets which would usually cause a disconnection. The file '''''timeouts.txt''''' allows you to modify some of the timeouts OpenKore uses.


Don't mistake this to a speed hack. Although configuring this file properly will make your bot think and execute functions more efficiently, it will not make your character move any faster than it can normally move.
Don't mistake this to a speed hack. Although configuring this file properly will make your bot think and execute functions more efficiently, it will not make your character move any faster than it can normally move.
Line 15: Line 15:
===Details===
===Details===
;<timeout key>
;<timeout key>
:This is one of the timeout variable names used by Kore. See the timeout list below for a list of available timeout keys.  
: This is one of the timeout variable names used by OpenKore. See the timeout list below for a list of available timeout keys.  


;<seconds>
;<seconds>
:This is the time in seconds (any positive number). This could be a fractional value.  
: This is the time in seconds (any positive number). This could be a fractional value.  




Line 41: Line 41:


;ai_attack (<seconds>)
;ai_attack (<seconds>)
:When attacking a target with a weapon, send the 'attack' packet every specified number of seconds.  
: When attacking a target with a weapon, send the 'attack' packet every specified number of seconds.  


;ai_homunculus_attack (<seconds>)
: When your homunculus is attacking a target, send the 'attack' packet every specified number of seconds.


;ai_mercenary_attack (<seconds>)
: When your mercenary is attacking a target, send the 'attack' packet every specified number of seconds.


;ai_homunculus_attack (<seconds>)
:When your homunculus is attacking a target, send the 'attack' packet every specified number of seconds.




;ai_attack_after_skill (<seconds>)
: TODO: add description


;ai_mercenary_attack (<seconds>)
:When your mercenary is attacking a target, send the 'attack' packet every specified number of seconds.




;ai_homunculus_dance_attack_melee (<seconds>)
: TODO: add description


;ai_attack_auto (<seconds>)
;ai_mercenary_dance_attack_melee (<seconds>)
:If auto-attack is enabled (see [[AttackAuto|'''''attackAuto''''']] in [[:Category:config.txt|config.txt]]), check for monsters to attack every specified number of seconds.
: TODO: add description


;ai_mercenary_dance_attack_ranged (<seconds>)
: TODO: add description




;ai_homunculus_attack_auto (<seconds>)
:If homunculus auto-attack is enabled (see [[AttackAuto|'''''attackAuto''''']] in [[:Category:config.txt|config.txt]]), check for monsters for him to attack every specified number of seconds.


;ai_attack_auto (<seconds>)
: If auto-attack is enabled (see [[AttackAuto|'''''attackAuto''''']] in [[:Category:config.txt|config.txt]]), check for monsters to attack every specified number of seconds.


;ai_homunculus_attack_auto (<seconds>)
: If homunculus auto-attack is enabled (see [[AttackAuto|'''''attackAuto''''']] in [[:Category:config.txt|config.txt]]), check for monsters for him to attack every specified number of seconds.


;ai_mercenary_attack_auto (<seconds>)
;ai_mercenary_attack_auto (<seconds>)
:If mercenary auto-attack is enabled (see [[AttackAuto|'''''attackAuto''''']] in [[:Category:config.txt|config.txt]]), check for monsters for him to attack every specified number of seconds.  
: If mercenary auto-attack is enabled (see [[AttackAuto|'''''attackAuto''''']] in [[:Category:config.txt|config.txt]]), check for monsters for him to attack every specified number of seconds.  






;ai_attack_giveup (<seconds>)
;ai_attack_giveup (<seconds>)
:When trying to attack a monster, give up and drop the target if you can't reach or damage the monster within the specified number of seconds.  
: When trying to attack a monster, give up and drop the target if you can't reach or damage the monster within the specified number of seconds.  




Line 81: Line 89:




;ai_attack_unfail (<seconds>)
;ai_attack_waitAfterKill (<seconds>)
:When Kore dropped an attack target because you can't reach or damage it, Kore will not try to attack it again until the specified number of seconds elapsed.  
;ai_homunculus_attack_waitAfterKill (<seconds>)
;ai_mercenary_attack_waitAfterKill (<seconds>)
: If you've just killed a monster, and there are no aggressives, and you're not picking up any items, wait x seconds before doing anything else.
 


;ai_attack_main (<seconds>)
;ai_homunculus_attack_main (<seconds>)
;ai_mercenary_attack_main (<seconds>)
: Every x seconds loop the attack logic routine (send move, attack, skill, avoid, etc).




;ai_attack_unstuck (<seconds>)
;ai_attack_unstuck (<seconds>)
:When attacking a monster and you haven't dealed any damage to the monster within the specified number of seconds even if you are close enough to the target, the recorded character position might be out of sync so try to unstuck by moving again to the current position.
: When attacking a monster and you haven't dealed any damage to the monster within the specified number of seconds even if you are close enough to the target, the recorded character position might be out of sync so try to unstuck by moving again to the current position.
 
 
 
;ai_attack_unfail (<seconds>)
: When OpenKore dropped an attack target because you can't reach or damage it, OpenKore will not try to attack it again until the specified number of seconds elapsed.  




Line 94: Line 114:
===AI_Avoid===
===AI_Avoid===
;ai_avoidcheck (<seconds>)
;ai_avoidcheck (<seconds>)
:If Kore is set to avoid players (see [[AvoidGM_near|'''''avoidGM_near''''']] and [[AvoidList|'''''AvoidList''''']] in [[:Category:config.txt|config.txt]]), check for players to avoid every specified number of seconds.  
: If OpenKore is set to avoid players (see [[AvoidGM_near|'''''avoidGM_near''''']] and [[AvoidList|'''''AvoidList''''']] in [[:Category:config.txt|config.txt]]), check for players to avoid every specified number of seconds.  




Line 101: Line 121:
===AI_buyAuto===
===AI_buyAuto===
;ai_buyAuto (<seconds>)
;ai_buyAuto (<seconds>)
:If Kore is set to automatically buy items from a buy/sell NPC (see [[BuyAuto|'''''BuyAuto''''']] in [[:Category:config.txt|config.txt]]), check for items you need to buy every specified number of seconds.  
: If OpenKore is set to automatically buy items from a buy/sell NPC (see [[BuyAuto|'''''BuyAuto''''']] in [[:Category:config.txt|config.txt]]), check for items you need to buy every specified number of seconds.  






;ai_buyAuto_giveup (<seconds>)
;ai_buyAuto_giveup (<seconds>)
:When trying to buy an item from a buy/sell NPC, give up if you weren't able to buy the item within the specified number of seconds.
: When trying to buy an item from a buy/sell NPC, give up if you weren't able to buy the item within the specified number of seconds.






;ai_buyAuto_wait (<seconds>)
;ai_buyAuto_wait (<seconds>)
:After talking to the buy/sell NPC during auto-buy, wait for the specified number of seconds before buying items.
: After talking to the buy/sell NPC during auto-buy, wait for the specified number of seconds before buying items.






;ai_buyAuto_wait_buy (<seconds>)  
;ai_buyAuto_wait_buy (<seconds>)  
:During auto-buy, buy items from the same buy/sell NPC every specified number of seconds.
: During auto-buy, buy items from the same buy/sell NPC every specified number of seconds.




Line 123: Line 143:
===AI_cartAuto===
===AI_cartAuto===
;ai_cartAuto (<seconds>)  
;ai_cartAuto (<seconds>)  
:If Kore is set to automatically add/get items to/from cart (see [[items_control.txt]]), transfer an item to/from cart every specified number of seconds.
: If OpenKore is set to automatically add/get items to/from cart (see [[items_control.txt]]), transfer an item to/from cart every specified number of seconds.




;ai_cartAutoCheck (<seconds>)
;ai_cartAutoCheck (<seconds>)
:If Kore is set to automatically add/get items to/from cart (see [[items_control.txt]]), check for items to add/get to/from cart every specified number of seconds. [<<]
: If OpenKore is set to automatically add/get items to/from cart (see [[items_control.txt]]), check for items to add/get to/from cart every specified number of seconds. [<<]




Line 135: Line 155:
===Connection===
===Connection===
;charlogin (<seconds>)
;charlogin (<seconds>)
:Server connection timeout when Kore logs in to the character server.
: Server connection timeout when OpenKore logs in to the character server.




;master (<seconds>)
;master (<seconds>)
:Server connection timeout when Kore logs in to the master server.
: Server connection timeout when OpenKore logs in to the master server.




;gamelogin (<seconds>)
;gamelogin (<seconds>)
:Server connection timeout when Kore logs in to the game server.
: Server connection timeout when OpenKore logs in to the game server.




;maplogin (<seconds>)
;maplogin (<seconds>)
:Server connection timeout when Kore logs in to the map server.
: Server connection timeout when OpenKore logs in to the map server.




;play (<seconds>)
;play (<seconds>)
:If you are already in the game but Kore does not receive sync within the specified number of seconds, it will try to reconnect again.
: If you are already in the game but OpenKore does not receive sync within the specified number of seconds, it will try to reconnect again.




;reconnect (<seconds>)
;reconnect (<seconds>)
:When disconnected, wait for the specified number of seconds before reconnecting again.  
: When disconnected, wait for the specified number of seconds before reconnecting again.  




Line 163: Line 183:
===AI_Dead===
===AI_Dead===
;ai_dead_respawn (<seconds>)
;ai_dead_respawn (<seconds>)
:If you died and Kore is set to respawn to the save point on death (see [[DcOnDeath|'''''DcOnDeath''''']] in [[:Category:config.txt|config.txt]]), wait for the specified number of seconds before respawning.
: If you died and OpenKore is set to respawn to the save point on death (see [[DcOnDeath|'''''DcOnDeath''''']] in [[:Category:config.txt|config.txt]]), wait for the specified number of seconds before respawning.




Line 170: Line 190:
===AI_Deal===
===AI_Deal===
;ai_dealAuto (<seconds>)
;ai_dealAuto (<seconds>)
:If Kore is set to automatically accept deals (see [[DealAuto|'''''DealAuto''''']] in [[:Category:config.txt|config.txt]]), wait for the specified number of seconds before you :
: If OpenKore is set to automatically accept deals (see [[DealAuto|'''''DealAuto''''']] in [[:Category:config.txt|config.txt]]), wait for the specified number of seconds before you :
:#accept an incoming deal
: #accept an incoming deal
:#finalize your part of the deal
: #finalize your part of the deal
:#accept the finalized deal and trade.
: #accept the finalized deal and trade.


;ai_dealAutoCancel (<seconds>)
;ai_dealAutoCancel (<seconds>)
:If Kore is set to automatically refuse deals (see [[DealAuto|'''''DealAuto''''']] in [[:Category:config.txt|config.txt]]), wait for the specified number of seconds before you cancel the deal request.
: If OpenKore is set to automatically refuse deals (see [[DealAuto|'''''DealAuto''''']] in [[:Category:config.txt|config.txt]]), wait for the specified number of seconds before you cancel the deal request.




Line 183: Line 203:
===AI_equip===
===AI_equip===
;ai_equip_giveup (<seconds>)
;ai_equip_giveup (<seconds>)
:When trying to equip an item, give up if you can't equip the item within the specified number of seconds.
: When trying to equip an item, give up if you can't equip the item within the specified number of seconds.




Line 191: Line 211:
===AI_Follow===
===AI_Follow===
;ai_follow_lost_end (<seconds>)
;ai_follow_lost_end (<seconds>)
:If you are in "follow" mode and you lost your master, give up trying to find the master after the specified number of seconds.
: If you are in "follow" mode and you lost your master, give up trying to find the master after the specified number of seconds.




;ai_homunculus_standby (<seconds>)
;ai_homunculus_standby (<seconds>)
:If homunculus gets too far from master try to teleport to it every specified number of seconds.  
: If homunculus gets too far from master try to teleport to it every specified number of seconds.  




;ai_mercenary_standby (<seconds>)
;ai_mercenary_standby (<seconds>)
:If mercenary gets too far from master try to teleport to it every specified number of seconds.  
: If mercenary gets too far from master try to teleport to it every specified number of seconds.  




Line 207: Line 227:
===AI_GetInfo===
===AI_GetInfo===
;ai_getInfo (<seconds>)
;ai_getInfo (<seconds>)
:If there are unknown players, NPCs, monsters and pets around, update by requesting information from the server every specified number of seconds.
: If there are unknown players, NPCs, monsters and pets around, update by requesting information from the server every specified number of seconds.




Line 215: Line 235:
===AI_Guild===
===AI_Guild===
;ai_guildAutoDeny (<seconds>)
;ai_guildAutoDeny (<seconds>)
:If Kore is set to deny incoming guild join requests (see [[GuildAutoDeny|'''''GuildAutoDeny''''']] in [[:Category:config.txt|config.txt]]), wait for the specified number of seconds before you cancel a guild join request.
: If OpenKore is set to deny incoming guild join requests (see [[GuildAutoDeny|'''''GuildAutoDeny''''']] in [[:Category:config.txt|config.txt]]), wait for the specified number of seconds before you cancel a guild join request.




Line 222: Line 242:
===AI_Items===
===AI_Items===
;ai_items_gather_giveup (<seconds>)
;ai_items_gather_giveup (<seconds>)
:When trying to gather an item, give up if you weren't able to take it within the specified number of seconds.
: When trying to gather an item, give up if you weren't able to take it within the specified number of seconds.




;ai_items_gather_start (<seconds>)
;ai_items_gather_start (<seconds>)
:When checking for items to gather, only take an item if the specified number of seconds has elapsed since the item appeared on screen.
: When checking for items to gather, only take an item if the specified number of seconds has elapsed since the item appeared on screen.




;ai_items_take_end (<seconds>)
;ai_items_take_end (<seconds>)
:When your monster died and there are no more monster loots to take, stop checking for loots after the specified number of seconds.
: When your monster died and there are no more monster loots to take, stop checking for loots after the specified number of seconds.




;ai_items_take_start (<seconds>)
;ai_items_take_start (<seconds>)
:When your monster died and Kore is set to take items dropped by monsters you killed (see [[ItemsTakeAuto|'''''ItemsTakeAuto''''']] in [[:Category:config.txt|config.txt]]), start checking for monster loots after the specified number of seconds.  
: When your monster died and OpenKore is set to take items dropped by monsters you killed (see [[ItemsTakeAuto|'''''ItemsTakeAuto''''']] in [[:Category:config.txt|config.txt]]), start checking for monster loots after the specified number of seconds.  




Line 241: Line 261:
===AI_Look===
===AI_Look===
;ai_look (<seconds>)
;ai_look (<seconds>)
:When trying to look to a certain direction, send the 'look' packet every specified number of seconds.
: When trying to look to a certain direction, send the 'look' packet every specified number of seconds.




Line 249: Line 269:
===AI_Move===
===AI_Move===
;ai_move_giveup (<seconds>)
;ai_move_giveup (<seconds>)
:When trying to move, give up if you weren't able to change your location within the specified number of seconds.
: When trying to move, give up if you weren't able to change your location within the specified number of seconds.




Line 257: Line 277:
===AI_Npc===
===AI_Npc===
;ai_npcTalk (<seconds>)
;ai_npcTalk (<seconds>)
:When talking to an NPC, wait at most the specified number of seconds for the NPC to respond; give up talking to the NPC if the NPC didn't respond within the specified number of seconds.
: When talking to an NPC, wait at most the specified number of seconds for the NPC to respond; give up talking to the NPC if the NPC didn't respond within the specified number of seconds.




Line 265: Line 285:
===AI_Portal===
===AI_Portal===
;ai_portal_wait (<seconds>)
;ai_portal_wait (<seconds>)
:When moving to a map and the next portal is near, send the 'move' packet every specified number of seconds. Default is '''''0.5'''''.
: When moving to a map and the next portal is near, send the 'move' packet every specified number of seconds. Default is '''''0.5'''''.




;ai_portal_give_up (<seconds>)
;ai_portal_give_up (<seconds>)
:How long we should wait before assuming a portal does not exist or doesn't work and remove it from portals
: How long we should wait before assuming a portal does not exist or doesn't work and remove it from portals




;ai_portal_re_add_missed (<seconds>)
;ai_portal_re_add_missed (<seconds>)
:How long to wait before re-adding a portal that was removed during route
: How long to wait before re-adding a portal that was removed during route




Line 281: Line 301:
===AI_Route===
===AI_Route===
;ai_route_calcRoute (<seconds>)
;ai_route_calcRoute (<seconds>)
:When trying to move to another map, Kore will not spend more than the specified number of seconds to calculate the best route.
: When trying to move to another map, OpenKore will not spend more than the specified number of seconds to calculate the best route.




;ai_route_npcTalk (<seconds>)
;ai_route_npcTalk (<seconds>)
:If talking to a Warp NPC is part of the map solution to reach your destination, and the conversation takes longer than the specified number of seconds, Kore will assume failure and try to restart the conversation or find an alternate route.
: If talking to a Warp NPC is part of the map solution to reach your destination, and the conversation takes longer than the specified number of seconds, OpenKore will assume failure and try to restart the conversation or find an alternate route.


'''''Note.''''' If this option is not set, Kore will use a default value of 10.
'''''Note.''''' If this option is not set, OpenKore will use a default value of 10.




;ai_attack_route_adjust (<seconds>)
;ai_attack_route_adjust (<seconds>)
:When trying to attack a monster, after the specified number of seconds Kore will check if target moved and will try to adjust the route.
;ai_homunculus_route_adjust (<seconds>)
;ai_mercenary_route_adjust (<seconds>)
: When trying to attack a monster, after the specified number of seconds OpenKore will check if target moved and will try to adjust the route.




;ai_attack_failedLOS (<seconds>)
;ai_attack_failedLOS (<seconds>)
:Ignore monster for the specified number of seconds seconds if there is no route to it.  
: Ignore monster for the specified number of seconds seconds if there is no route to it.  
 
 
 
;ai_route_unstuck (<seconds>)
: TODO: add description
 




Line 302: Line 330:
===AI_SellAuto===
===AI_SellAuto===
;ai_sellAuto (<seconds>)
;ai_sellAuto (<seconds>)
:During auto-sell, wait for the specified number of seconds before selling again.
: During auto-sell, wait for the specified number of seconds before selling again.




;ai_sellAuto_giveup (<seconds>)
;ai_sellAuto_giveup (<seconds>)
:When trying to sell an item to a buy/sell NPC, give up if you can't sell the item after the specified number of seconds.
: When trying to sell an item to a buy/sell NPC, give up if you can't sell the item after the specified number of seconds.




Line 314: Line 342:
===AI_Shop===
===AI_Shop===
;ai_shop (<seconds>)
;ai_shop (<seconds>)
:If Kore is set to automatically open a vending shop (see '''''[[ShopAuto_open]]''''' in [[:Category:config.txt|config.txt]]), open the shop after being idle for the specified number of seconds.
: If OpenKore is set to automatically open a vending shop (see '''''[[ShopAuto_open]]''''' in [[:Category:config.txt|config.txt]]), open the shop after being idle for the specified number of seconds.


;ai_shop_useskill_delay (<seconds>)
;ai_shop_useskill_delay (<seconds>)
:If Kore is set to set to open a shop using the skill Vending (see [[Shop_useSkill|'''''Shop_useSkill''''']] in [[:Category:config.txt|config.txt]]), will be opened after the specified delay.
: If OpenKore is set to set to open a shop using the skill Vending (see [[Shop_useSkill|'''''Shop_useSkill''''']] in [[:Category:config.txt|config.txt]]), will be opened after the specified delay.




Line 325: Line 353:
===AI_Buyer_Shop===
===AI_Buyer_Shop===
;ai_buyer_shopCheck (<seconds>)
;ai_buyer_shopCheck (<seconds>)
:If Kore is set to automatically open a buyer shop (see '''''[[BuyerShopAuto_open]]''''' in [[:Category:config.txt|config.txt]]), open the shop after being idle for the specified number of seconds.
: If OpenKore is set to automatically open a buyer shop (see '''''[[BuyerShopAuto_open]]''''' in [[:Category:config.txt|config.txt]]), open the shop after being idle for the specified number of seconds.




Line 333: Line 361:
===AI_Sit/AI_Stand===
===AI_Sit/AI_Stand===
;ai_sit (<seconds>)
;ai_sit (<seconds>)
:When trying to sit/stand, send the 'sit'/'stand' packet every specified number of seconds until you are already sitting/standing.
: When trying to sit/stand, send the 'sit'/'stand' packet every specified number of seconds until you are already sitting/standing.




;ai_sit_idle (<seconds>)
;ai_sit_idle (<seconds>)
:If Kore is set to automatically sit when idle (see [[sitAuto_idle|'''''sitAuto_idle''''']] in [[:Category:config.txt|config.txt]]), sit after being idle for the specified number of seconds.
: If OpenKore is set to automatically sit when idle (see [[sitAuto_idle|'''''sitAuto_idle''''']] in [[:Category:config.txt|config.txt]]), sit after being idle for the specified number of seconds.




;ai_sit_wait (<seconds>)
;ai_sit_wait (<seconds>)
:When trying to sit, wait for the specified number of seconds delay before actually sending the 'sit' packet.
: When trying to sit, wait for the specified number of seconds delay before actually sending the 'sit' packet.




;ai_stand_wait (<seconds>)
;ai_stand_wait (<seconds>)
:When trying to stand, wait for the specified number of seconds delay before actually sending the 'stand' packet.
: When trying to stand, wait for the specified number of seconds delay before actually sending the 'stand' packet.




Line 352: Line 380:
===AI_Skill===
===AI_Skill===
;ai_skill_use_giveup (<seconds>)
;ai_skill_use_giveup (<seconds>)
:When trying to use a skill, give up if you can't to use the skill within the specified number of seconds.
: When trying to use a skill, give up if you can't to use the skill within the specified number of seconds.




Line 360: Line 388:
===AI_StorageAuto===
===AI_StorageAuto===
;ai_storageAuto (<seconds>)
;ai_storageAuto (<seconds>)
:During auto-storage, store/get an item from/to storage every specified number of seconds.
: During auto-storage, store/get an item from/to storage every specified number of seconds.




;ai_storageAuto_giveup (<seconds>)
;ai_storageAuto_giveup (<seconds>)
:When storing an item to the storage, give up putting the item to storage if the item is still not transfered within the specified number of seconds.  
: When storing an item to the storage, give up putting the item to storage if the item is still not transfered within the specified number of seconds.  




Line 372: Line 400:
===AI_Sync===
===AI_Sync===
;ai_sync (<seconds>)
;ai_sync (<seconds>)
:Send the ping packet every specified number of seconds.
: Send the ping packet every specified number of seconds.


'''''Note.''''' You would rather have to leave it at '''12''' (default value).
'''''Note.''''' You would rather have to leave it at '''12''' (default value).
Line 382: Line 410:
===AI_Take===
===AI_Take===
;ai_take (<seconds>)
;ai_take (<seconds>)
:When picking up items, send the 'take' packet every specified number of seconds until the item has been taken.
: When picking up items, send the 'take' packet every specified number of seconds until the item has been taken.




;ai_take_giveup (<seconds>)
;ai_take_giveup (<seconds>)
:When trying to pick up an item, give up if you weren't able to take the item after the specified number of seconds.  
: When trying to pick up an item, give up if you weren't able to take the item after the specified number of seconds.  




Line 394: Line 422:
===AI_Teleport===
===AI_Teleport===
;ai_teleport (<seconds>)
;ai_teleport (<seconds>)
:When using items to teleport (Fly Wing or Butterfly Wing), only use another item if the specified number of seconds has elapsed since the last teleport item was used.
: When using items to teleport (Fly Wing or Butterfly Wing), only use another item if the specified number of seconds has elapsed since the last teleport item was used.


This timeout is also used when Kore is set to respawn to savepoint when it is not on one of the allowed maps (see [[allowedMaps|'''''allowedMaps''''']] and [[allowedMaps_reaction|'''''allowedMaps_reaction''''']] in [[:Category:config.txt|config.txt]]), only try to respawn if the specified number of seconds has elapsed since you last tried to respawn.
This timeout is also used when OpenKore is set to respawn to savepoint when it is not on one of the allowed maps (see [[allowedMaps|'''''allowedMaps''''']] and [[allowedMaps_reaction|'''''allowedMaps_reaction''''']] in [[:Category:config.txt|config.txt]]), only try to respawn if the specified number of seconds has elapsed since you last tried to respawn.




;ai_teleport_away (<seconds>)
;ai_teleport_away (<seconds>)
:If Kore is set to teleport when a certain monster is seen (see [[mon_control.txt]]), only try to teleport away if the specified number of seconds has elapsed since you last teleported to avoid a monster.
: If OpenKore is set to teleport when a certain monster is seen (see [[mon_control.txt]]), only try to teleport away if the specified number of seconds has elapsed since you last teleported to avoid a monster.




;ai_teleport_delay (<seconds>)
;ai_teleport_delay (<seconds>)
:If this option is set, when attempting to use the Teleport skill, Kore will wait for the specified number of seconds for the skill to be successfuly cast before actually teleporting. This makes Kore look less bot-like.
: If this option is set, when attempting to use the Teleport skill, OpenKore will wait for the specified number of seconds for the skill to be successfuly cast before actually teleporting. This makes OpenKore look less bot-like.


'''''Note.''''' This is ignored on emergency teleport (e.g. [[teleportAuto_deadly]]).
'''''Note.''''' This is ignored on emergency teleport (e.g. [[teleportAuto_deadly]]).
Line 410: Line 438:


;ai_teleport_hp (<seconds>)
;ai_teleport_hp (<seconds>)
:If Kore is set to teleport due to insufficient HP/SP or too many aggressives (see [[teleportAuto_hp|'''''teleportAuto_hp''''']], [[teleportAuto_sp|'''''teleportAuto_sp''''']], [[teleportAuto_minAggressives|'''''teleportAuto_minAggressives''''']], and [[teleportAuto_minAggressivesInLock|'''''teleportAuto_minAggressivesInLock''''']] in [[:Category:config.txt|config.txt]]), only try to teleport away if the specified number of seconds has elapsed since you last teleported.
: If OpenKore is set to teleport due to insufficient HP/SP or too many aggressives (see [[teleportAuto_hp|'''''teleportAuto_hp''''']], [[teleportAuto_sp|'''''teleportAuto_sp''''']], [[teleportAuto_minAggressives|'''''teleportAuto_minAggressives''''']], and [[teleportAuto_minAggressivesInLock|'''''teleportAuto_minAggressivesInLock''''']] in [[:Category:config.txt|config.txt]]), only try to teleport away if the specified number of seconds has elapsed since you last teleported.




;ai_teleport_idle (<seconds>)
;ai_teleport_idle (<seconds>)
:If Kore is set to teleport when idle (see [[teleportAuto_idle|'''''teleportAuto_idle''''']] in [[:Category:config.txt|config.txt]]), teleport after being idle for the specified number of seconds.
: If OpenKore is set to teleport when idle (see [[teleportAuto_idle|'''''teleportAuto_idle''''']] in [[:Category:config.txt|config.txt]]), teleport after being idle for the specified number of seconds.




;ai_teleport_portal (<seconds>)
;ai_teleport_portal (<seconds>)
:If Kore is set to teleport to avoid portals (see [[teleportAuto_portal|'''''teleportAuto_portal''''']] in [[:Category:config.txt|config.txt]]), only try to teleport away if the specified number of seconds has elapsed since you last teleported to avoid a portal.
: If OpenKore is set to teleport to avoid portals (see [[teleportAuto_portal|'''''teleportAuto_portal''''']] in [[:Category:config.txt|config.txt]]), only try to teleport away if the specified number of seconds has elapsed since you last teleported to avoid a portal.




;ai_teleport_retry (<seconds>)
;ai_teleport_retry (<seconds>)
:When trying to use the Teleport skill, Kore will wait for the specified number of seconds before retrying to cast the skill again if it has not been successfully casted.
: When trying to use the Teleport skill, OpenKore will wait for the specified number of seconds before retrying to cast the skill again if it has not been successfully casted.


'''''Note.''''' This is ignored on emergency teleport (e.g. [[teleportAuto_deadly]]).
'''''Note.''''' This is ignored on emergency teleport (e.g. [[teleportAuto_deadly]]).
Line 428: Line 456:


;ai_teleport_safe_force (<seconds>)
;ai_teleport_safe_force (<seconds>)
:If Kore is set to teleport only if there are players around (see [[teleportAuto_onlyWhenSafe|'''''teleportAuto_onlyWhenSafe''''']] in [[:Category:config.txt|config.txt]]), Kore will only consider it safe to teleport (even when there are players around to see) if the specified number of seconds has elapsed since your last map change or since you last teleported.
: If OpenKore is set to teleport only if there are players around (see [[teleportAuto_onlyWhenSafe|'''''teleportAuto_onlyWhenSafe''''']] in [[:Category:config.txt|config.txt]]), OpenKore will only consider it safe to teleport (even when there are players around to see) if the specified number of seconds has elapsed since your last map change or since you last teleported.




Line 435: Line 463:
===AI_Thanks===
===AI_Thanks===
;ai_thanks_set (<seconds>)
;ai_thanks_set (<seconds>)
:When a player sent Kore the chat command thanks, Kore will only reply if the previous chat command that succeeded was issued within the specified number of seconds.
: When a player sent OpenKore the chat command thanks, OpenKore will only reply if the previous chat command that succeeded was issued within the specified number of seconds.




Line 443: Line 471:
===WelcomeText===
===WelcomeText===
;welcomeText (<seconds>)
;welcomeText (<seconds>)
:When using [[XKore]] mode and the welcome message is not yet shown, display the welcome text if the specified number of seconds has elapsed after the map is loaded.
: When using [[XKore]] mode and the welcome message is not yet shown, display the welcome text if the specified number of seconds has elapsed after the map is loaded.




Line 450: Line 478:
===AI_Wipe===
===AI_Wipe===
;ai_wipe_check (<seconds>)
;ai_wipe_check (<seconds>)
:Internally, Kore saves in a cache the information about players, NPCs, monsters, items and portals that disappeared. Kore will try to check if it needs to clean up this cache every specified number of seconds.
: Internally, OpenKore saves in a cache the information about players, NPCs, monsters, items and portals that disappeared. OpenKore will try to check if it needs to clean up this cache every specified number of seconds.


;ai_wipe_old (<seconds>)
;ai_wipe_old (<seconds>)
:When Kore checks for its cache of disappeared players, NPCs, monsters, items and portals (see ai_wipe_check), units that have been gone for the specified number of seconds will be permanently removed.
: When OpenKore checks for its cache of disappeared players, NPCs, monsters, items and portals (see ai_wipe_check), units that have been gone for the specified number of seconds will be permanently removed.


----
----
Line 459: Line 487:
===AI_Pet ===
===AI_Pet ===
;ai_petFeed (<seconds>)
;ai_petFeed (<seconds>)
:Every x seconds, check pet hungry for feeding.
: Every x seconds, check pet hungry for feeding.


----
----
Line 466: Line 494:


;ai_partyShareCheck (<seconds>)
;ai_partyShareCheck (<seconds>)
:check party settings every x seconds
: check party settings every x seconds


----
----
Line 473: Line 501:


;ai_ignoreAll (<seconds>)
;ai_ignoreAll (<seconds>)
:Delay in x seconds between map_loaded and send ignoreAll command
: Delay in x seconds between map_loaded and send ignoreAll command


----
----
Line 480: Line 508:


;ai_clientSuspend (<seconds>)
;ai_clientSuspend (<seconds>)
:Time to wait before load map in xKore mode. See [https://github.com/OpenKore/openkore/pull/3041 #3041]. Using xKore 1 or 3 and depending on the type of device the OpenKore is running on, map load may take longer or less time.
: Time to wait before load map in xKore mode. See [https://github.com/OpenKore/openkore/pull/3041 #3041]. Using xKore 1 or 3 and depending on the type of device the OpenKore is running on, map load may take longer or less time.





Latest revision as of 14:07, 29 December 2024

OpenKore uses timeouts to keep AI routines synchronized or allow some AI functions to be executed within certain times. Delays are also used to keep the bot in sync with the server and to prevent OpenKore from spamming the server with unnecessary packets which would usually cause a disconnection. The file timeouts.txt allows you to modify some of the timeouts OpenKore uses.

Don't mistake this to a speed hack. Although configuring this file properly will make your bot think and execute functions more efficiently, it will not make your character move any faster than it can normally move.


Syntax

The format of this file is simply a set of lines that observes the following syntax:

<timeout key> <seconds>


Details

<timeout key>
This is one of the timeout variable names used by OpenKore. See the timeout list below for a list of available timeout keys.
<seconds>
This is the time in seconds (any positive number). This could be a fractional value.


You shouldn't need to modify most of the timeouts. The default timeouts are already fine. But if you want to custom up the bot, go ahead.


Note. Lines that begin with the pound sign (#) are comment lines. They are ignored by Openkore.

Console command timeout <timeout key> can be used to display the current value, and timeout <timeout key> <seconds> to set a new value.

Timeout List

AI

ai (<seconds>)
Activate AI only when the specified number of seconds elapsed after the map is loaded.




AI_Attack

ai_attack (<seconds>)
When attacking a target with a weapon, send the 'attack' packet every specified number of seconds.
ai_homunculus_attack (<seconds>)
When your homunculus is attacking a target, send the 'attack' packet every specified number of seconds.
ai_mercenary_attack (<seconds>)
When your mercenary is attacking a target, send the 'attack' packet every specified number of seconds.


ai_attack_after_skill (<seconds>)
TODO: add description


ai_homunculus_dance_attack_melee (<seconds>)
TODO: add description
ai_mercenary_dance_attack_melee (<seconds>)
TODO: add description
ai_mercenary_dance_attack_ranged (<seconds>)
TODO: add description


ai_attack_auto (<seconds>)
If auto-attack is enabled (see attackAuto in config.txt), check for monsters to attack every specified number of seconds.
ai_homunculus_attack_auto (<seconds>)
If homunculus auto-attack is enabled (see attackAuto in config.txt), check for monsters for him to attack every specified number of seconds.
ai_mercenary_attack_auto (<seconds>)
If mercenary auto-attack is enabled (see attackAuto in config.txt), check for monsters for him to attack every specified number of seconds.


ai_attack_giveup (<seconds>)
When trying to attack a monster, give up and drop the target if you can't reach or damage the monster within the specified number of seconds.


ai_homunculus_check_monster_auto (<seconds>)
ai_mercenary_check_monster_auto (<seconds>)
See PR#3145


ai_attack_waitAfterKill (<seconds>)
ai_homunculus_attack_waitAfterKill (<seconds>)
ai_mercenary_attack_waitAfterKill (<seconds>)
If you've just killed a monster, and there are no aggressives, and you're not picking up any items, wait x seconds before doing anything else.


ai_attack_main (<seconds>)
ai_homunculus_attack_main (<seconds>)
ai_mercenary_attack_main (<seconds>)
Every x seconds loop the attack logic routine (send move, attack, skill, avoid, etc).


ai_attack_unstuck (<seconds>)
When attacking a monster and you haven't dealed any damage to the monster within the specified number of seconds even if you are close enough to the target, the recorded character position might be out of sync so try to unstuck by moving again to the current position.


ai_attack_unfail (<seconds>)
When OpenKore dropped an attack target because you can't reach or damage it, OpenKore will not try to attack it again until the specified number of seconds elapsed.



AI_Avoid

ai_avoidcheck (<seconds>)
If OpenKore is set to avoid players (see avoidGM_near and AvoidList in config.txt), check for players to avoid every specified number of seconds.



AI_buyAuto

ai_buyAuto (<seconds>)
If OpenKore is set to automatically buy items from a buy/sell NPC (see BuyAuto in config.txt), check for items you need to buy every specified number of seconds.


ai_buyAuto_giveup (<seconds>)
When trying to buy an item from a buy/sell NPC, give up if you weren't able to buy the item within the specified number of seconds.


ai_buyAuto_wait (<seconds>)
After talking to the buy/sell NPC during auto-buy, wait for the specified number of seconds before buying items.


ai_buyAuto_wait_buy (<seconds>)
During auto-buy, buy items from the same buy/sell NPC every specified number of seconds.



AI_cartAuto

ai_cartAuto (<seconds>)
If OpenKore is set to automatically add/get items to/from cart (see items_control.txt), transfer an item to/from cart every specified number of seconds.


ai_cartAutoCheck (<seconds>)
If OpenKore is set to automatically add/get items to/from cart (see items_control.txt), check for items to add/get to/from cart every specified number of seconds. [<<]




Connection

charlogin (<seconds>)
Server connection timeout when OpenKore logs in to the character server.


master (<seconds>)
Server connection timeout when OpenKore logs in to the master server.


gamelogin (<seconds>)
Server connection timeout when OpenKore logs in to the game server.


maplogin (<seconds>)
Server connection timeout when OpenKore logs in to the map server.


play (<seconds>)
If you are already in the game but OpenKore does not receive sync within the specified number of seconds, it will try to reconnect again.


reconnect (<seconds>)
When disconnected, wait for the specified number of seconds before reconnecting again.




AI_Dead

ai_dead_respawn (<seconds>)
If you died and OpenKore is set to respawn to the save point on death (see DcOnDeath in config.txt), wait for the specified number of seconds before respawning.



AI_Deal

ai_dealAuto (<seconds>)
If OpenKore is set to automatically accept deals (see DealAuto in config.txt), wait for the specified number of seconds before you :
#accept an incoming deal
#finalize your part of the deal
#accept the finalized deal and trade.
ai_dealAutoCancel (<seconds>)
If OpenKore is set to automatically refuse deals (see DealAuto in config.txt), wait for the specified number of seconds before you cancel the deal request.



AI_equip

ai_equip_giveup (<seconds>)
When trying to equip an item, give up if you can't equip the item within the specified number of seconds.




AI_Follow

ai_follow_lost_end (<seconds>)
If you are in "follow" mode and you lost your master, give up trying to find the master after the specified number of seconds.


ai_homunculus_standby (<seconds>)
If homunculus gets too far from master try to teleport to it every specified number of seconds.


ai_mercenary_standby (<seconds>)
If mercenary gets too far from master try to teleport to it every specified number of seconds.




AI_GetInfo

ai_getInfo (<seconds>)
If there are unknown players, NPCs, monsters and pets around, update by requesting information from the server every specified number of seconds.




AI_Guild

ai_guildAutoDeny (<seconds>)
If OpenKore is set to deny incoming guild join requests (see GuildAutoDeny in config.txt), wait for the specified number of seconds before you cancel a guild join request.



AI_Items

ai_items_gather_giveup (<seconds>)
When trying to gather an item, give up if you weren't able to take it within the specified number of seconds.


ai_items_gather_start (<seconds>)
When checking for items to gather, only take an item if the specified number of seconds has elapsed since the item appeared on screen.


ai_items_take_end (<seconds>)
When your monster died and there are no more monster loots to take, stop checking for loots after the specified number of seconds.


ai_items_take_start (<seconds>)
When your monster died and OpenKore is set to take items dropped by monsters you killed (see ItemsTakeAuto in config.txt), start checking for monster loots after the specified number of seconds.



AI_Look

ai_look (<seconds>)
When trying to look to a certain direction, send the 'look' packet every specified number of seconds.




AI_Move

ai_move_giveup (<seconds>)
When trying to move, give up if you weren't able to change your location within the specified number of seconds.




AI_Npc

ai_npcTalk (<seconds>)
When talking to an NPC, wait at most the specified number of seconds for the NPC to respond; give up talking to the NPC if the NPC didn't respond within the specified number of seconds.




AI_Portal

ai_portal_wait (<seconds>)
When moving to a map and the next portal is near, send the 'move' packet every specified number of seconds. Default is 0.5.


ai_portal_give_up (<seconds>)
How long we should wait before assuming a portal does not exist or doesn't work and remove it from portals


ai_portal_re_add_missed (<seconds>)
How long to wait before re-adding a portal that was removed during route




AI_Route

ai_route_calcRoute (<seconds>)
When trying to move to another map, OpenKore will not spend more than the specified number of seconds to calculate the best route.


ai_route_npcTalk (<seconds>)
If talking to a Warp NPC is part of the map solution to reach your destination, and the conversation takes longer than the specified number of seconds, OpenKore will assume failure and try to restart the conversation or find an alternate route.

Note. If this option is not set, OpenKore will use a default value of 10.


ai_attack_route_adjust (<seconds>)
ai_homunculus_route_adjust (<seconds>)
ai_mercenary_route_adjust (<seconds>)
When trying to attack a monster, after the specified number of seconds OpenKore will check if target moved and will try to adjust the route.


ai_attack_failedLOS (<seconds>)
Ignore monster for the specified number of seconds seconds if there is no route to it.


ai_route_unstuck (<seconds>)
TODO: add description



AI_SellAuto

ai_sellAuto (<seconds>)
During auto-sell, wait for the specified number of seconds before selling again.


ai_sellAuto_giveup (<seconds>)
When trying to sell an item to a buy/sell NPC, give up if you can't sell the item after the specified number of seconds.




AI_Shop

ai_shop (<seconds>)
If OpenKore is set to automatically open a vending shop (see ShopAuto_open in config.txt), open the shop after being idle for the specified number of seconds.
ai_shop_useskill_delay (<seconds>)
If OpenKore is set to set to open a shop using the skill Vending (see Shop_useSkill in config.txt), will be opened after the specified delay.




AI_Buyer_Shop

ai_buyer_shopCheck (<seconds>)
If OpenKore is set to automatically open a buyer shop (see BuyerShopAuto_open in config.txt), open the shop after being idle for the specified number of seconds.




AI_Sit/AI_Stand

ai_sit (<seconds>)
When trying to sit/stand, send the 'sit'/'stand' packet every specified number of seconds until you are already sitting/standing.


ai_sit_idle (<seconds>)
If OpenKore is set to automatically sit when idle (see sitAuto_idle in config.txt), sit after being idle for the specified number of seconds.


ai_sit_wait (<seconds>)
When trying to sit, wait for the specified number of seconds delay before actually sending the 'sit' packet.


ai_stand_wait (<seconds>)
When trying to stand, wait for the specified number of seconds delay before actually sending the 'stand' packet.



AI_Skill

ai_skill_use_giveup (<seconds>)
When trying to use a skill, give up if you can't to use the skill within the specified number of seconds.




AI_StorageAuto

ai_storageAuto (<seconds>)
During auto-storage, store/get an item from/to storage every specified number of seconds.


ai_storageAuto_giveup (<seconds>)
When storing an item to the storage, give up putting the item to storage if the item is still not transfered within the specified number of seconds.




AI_Sync

ai_sync (<seconds>)
Send the ping packet every specified number of seconds.

Note. You would rather have to leave it at 12 (default value).




AI_Take

ai_take (<seconds>)
When picking up items, send the 'take' packet every specified number of seconds until the item has been taken.


ai_take_giveup (<seconds>)
When trying to pick up an item, give up if you weren't able to take the item after the specified number of seconds.




AI_Teleport

ai_teleport (<seconds>)
When using items to teleport (Fly Wing or Butterfly Wing), only use another item if the specified number of seconds has elapsed since the last teleport item was used.

This timeout is also used when OpenKore is set to respawn to savepoint when it is not on one of the allowed maps (see allowedMaps and allowedMaps_reaction in config.txt), only try to respawn if the specified number of seconds has elapsed since you last tried to respawn.


ai_teleport_away (<seconds>)
If OpenKore is set to teleport when a certain monster is seen (see mon_control.txt), only try to teleport away if the specified number of seconds has elapsed since you last teleported to avoid a monster.


ai_teleport_delay (<seconds>)
If this option is set, when attempting to use the Teleport skill, OpenKore will wait for the specified number of seconds for the skill to be successfuly cast before actually teleporting. This makes OpenKore look less bot-like.

Note. This is ignored on emergency teleport (e.g. teleportAuto_deadly).


ai_teleport_hp (<seconds>)
If OpenKore is set to teleport due to insufficient HP/SP or too many aggressives (see teleportAuto_hp, teleportAuto_sp, teleportAuto_minAggressives, and teleportAuto_minAggressivesInLock in config.txt), only try to teleport away if the specified number of seconds has elapsed since you last teleported.


ai_teleport_idle (<seconds>)
If OpenKore is set to teleport when idle (see teleportAuto_idle in config.txt), teleport after being idle for the specified number of seconds.


ai_teleport_portal (<seconds>)
If OpenKore is set to teleport to avoid portals (see teleportAuto_portal in config.txt), only try to teleport away if the specified number of seconds has elapsed since you last teleported to avoid a portal.


ai_teleport_retry (<seconds>)
When trying to use the Teleport skill, OpenKore will wait for the specified number of seconds before retrying to cast the skill again if it has not been successfully casted.

Note. This is ignored on emergency teleport (e.g. teleportAuto_deadly).


ai_teleport_safe_force (<seconds>)
If OpenKore is set to teleport only if there are players around (see teleportAuto_onlyWhenSafe in config.txt), OpenKore will only consider it safe to teleport (even when there are players around to see) if the specified number of seconds has elapsed since your last map change or since you last teleported.



AI_Thanks

ai_thanks_set (<seconds>)
When a player sent OpenKore the chat command thanks, OpenKore will only reply if the previous chat command that succeeded was issued within the specified number of seconds.




WelcomeText

welcomeText (<seconds>)
When using XKore mode and the welcome message is not yet shown, display the welcome text if the specified number of seconds has elapsed after the map is loaded.



AI_Wipe

ai_wipe_check (<seconds>)
Internally, OpenKore saves in a cache the information about players, NPCs, monsters, items and portals that disappeared. OpenKore will try to check if it needs to clean up this cache every specified number of seconds.
ai_wipe_old (<seconds>)
When OpenKore checks for its cache of disappeared players, NPCs, monsters, items and portals (see ai_wipe_check), units that have been gone for the specified number of seconds will be permanently removed.

AI_Pet

ai_petFeed (<seconds>)
Every x seconds, check pet hungry for feeding.

AI_party

ai_partyShareCheck (<seconds>)
check party settings every x seconds

AI_IGNORE

ai_ignoreAll (<seconds>)
Delay in x seconds between map_loaded and send ignoreAll command

AI_CLIENTSUSPEND

ai_clientSuspend (<seconds>)
Time to wait before load map in xKore mode. See #3041. Using xKore 1 or 3 and depending on the type of device the OpenKore is running on, map load may take longer or less time.


TODO

  • Timeout ranges for timeouts randomization.