Console commands are used to control and inspect Kore while it's running.
There are many ways how console commands can be invoked:
manually typing in the console
calling via doCommand, macro's do, cmdOnLogin and other plugins
calling via Commands::run("<console command with arguments>") - that
can be used inside Kore, in plugins and in eval
Regardless of way used, the syntax and command set is the same.
Some console commands are equivalent to the manual actions you can do in the
original Ragnarok Online Client (e.g. client commands, chatting, dealing,
party and guild management, etc); some are used for controlling more
high-level Kore's AI;some are used for inspect your character, environment, AI
etc.
Aliases (shortcuts) for already existing commands can be defined with alias.
Adding Custom Commands
Plugins can add new commands.
Registering of new commands (can be used outside of subs in a
plugin):
my $commands_handle = Commands::register(
['command_name', 'command description', ],
...
)
Where:
$commands_handle is a scalar variable to hold obscure content used
for unregistering
command_name is a command
command description is a description for user
code_reference is a Perl coderef for a command handler, can be for
example a reference to the existing sub \&sub_name or lambda sub {
... }
Command handler is called with two arguments: command name and the rest of the
string (command arguments).
Unregistering of commands (should be used in plugin's reload/unload
handlers):
Commands::unregister($commands_handle)
Example
# very simple plugin which adds echo command which just prints its arguments to the console
package echo;
use strict;
my $commands = Commands::register(['echo', 'print to the console',
sub { Log::message "$_[1]\n" }]);
Plugins::register("echo", "echo command", sub { Commands::unregister($commands) });
Category "Console Command"
a (<monster #>|yes|no)
Attack a monster.
<monster #>
- a corresponding number from the monster list when you use
the ml command.
Command
Description
a (<monster #>)
Attack the specified monster.
a yes
Turns on auto-attack. This sets the config.txt
option attackAuto to 2.
a no
Turns off auto-attack. This sets the config.txt
option attackAuto to 1.
achieve { list | info
<achievementID> | reward <achievementID> }
<achievementID>
A corresponding number from the achievement list when you
use the achieve list command.
Command
Description
achieve list
Displays a list of all current achievements
achieve info <achievementID>
Shows information about <achievementID>
achieve reward <achievementID>
Request reward for the achievement of achievementID
AI
Artificial intelligence may refer to the intelligence
exhibited by a computer or other human-designed machine or
system. In other words when the ai is on ("ai on"), it
will do everything from walking to lockMap,
to attacking monsters, looting, and selling
on its own. Setting "ai manual" will only allow the bot to
react when told to, not on its own. And turning "ai off"
the bot will do nothing but stand there.
ai [on | off]
ai [manual | auto]
Toggles AI on or off.
Command
Description
ai
Toggles AI on, off or manual.
ai on
Turns AI on.
ai off
Turns AI off.
ai auto
Sets AI to auto mode. Same as "ai on".
ai manual
Sets AI to manual mode.
When AI is off, you cannot use some console commands (e.g.
move) with Kore. The manual AI mode is useful for
disabling certain automatic AI functions like auto-skills,
autostorage, etc, but still allowing you to use basic
commands like move, talknpc, etc.
ai ai_v
Displays a formatted output of the contents of
the %ai_v hash, for debugging purposes.
ai clear
Clears AI sequences.
ai print
Displays detailed info about current AI sequence.
aiv
Display current AI sequences.
al
vs
Displays the status of your vending shop.
analysis <item #> <amount> [,
<item #> <amount>]
analysis cancel
analysis end
analysis no
this command can be called after skill Analyze Element (third
class Sorcerer).
Depending on the skill level used, it can break (lvl 1) or collect (lvl 2)
elemental stones.
Added in PR#92 together with the cm command.
arrowcraft use
Use Arrow Crafting skill to prepare for crafting arrows.
arrowcraft <arrowcraft #>
Create arrows consuming specified item from the arrow craft item list.
You have to use Arrow Crafting skill (arrowcraft use) before creating arrows using this command.
arrowcraft
Review the list of items which can be crafted into arrows.
arrowcraft forceuse <inventory item #>
Craft arrows immediately from an item without using Arrow Crafting skill.
On some servers, any class can create arrows using this exploit.
Note: If the parameter `send_sell_buy_complete` is specified in the
serverType, then a special package is sent to the server. Otherwise,
nothing is sent to the server.
- a corresponding number from the card list when you use the
card list command.
Initiate card compounding using the specified card and get the list of
items you can slot the card into. This is the same as double-clicking
a card in the Ragnarok Online Client.
card mergelist
Show the list of items you can slot the card into again.
card mergecancel
Cancel the card merging request.
card merge (<card merge #>)
<card merge #>
- a corresponding number from the card merge list when you use the
card mergelist command.
Merge the used card with the specified item and finalize card
compounding.
card forceuse (<card #> <inventory item #>)
<card #>
- a corresponding number from the card list when you use the card
list command.
<inventory item #>
- a corresponding number from the inventory item list when you use
the i command.
Instantly merge the specified card with the specified item.
Note. This command only checks if the items exist in the inventory,
so it's possible to screw up with this.
Example
i
-----------Inventory-----------
-- Equipment (Equipped) --
...
20 +5 Damascus [1] -- One-Handed Weapon (2)
...
-- Equipment (Not Equipped) --
...
-- Non-Usable --
...
14 Orc Lady Card x 1
...
-- Usable --
...
-------------------------------
uneq 20
You unequip +5 Damascus [1] (20) - One-Handed Weapon
card use 14
Sending merge list request for Orc Lady Card...
-----Card Merge Candidates-----
20 +5 Damascus [1]
-------------------------------
card merge 20
Orc Lady Card has been successfully merged into +5 Damascus [1].
this command can be called after skill Change
Material (third class Geneticist). This skill transforms
some objects into others. For example, instead of 40 Chrysalis, you
can get 5 Detrimindexta.
Added in PR#92 together with
the analysis command.
Allows Kore to resume after being put in offlineMode. This
command is only available when Openkore is in offlineMode. If
used otherwise, Kore will return an error.
- a comma-separated list of corresponding numbers from the
inventory item list when you use the i command.
Each list item can be a single item number, or a range of item numbers
in the form of X-Y (e.g. 1-5). Don't use a space in-between the
list items.
<amount>
- the amount (positive integer).
Drop the specified item(s) from your inventory.
The following command will drop the item 4 from your inventory:
drop 4 The following command will drop the 10 of the
items 4, 7, 8, 9, and 12 from your inventory: drop 4,7-9,12 10 Note. If the amount is not specified, this assumes the maximum amount of the
item available.
Note. You have to use the guild command before using the commands
guild info and guild member to refresh the guild information.
Otherwise, you will not see the latest guild information.
guild create (<guild name>)
<guild name>
- the name (string).
Create a guild.
guild request (<player>)
<player>
- a player name, or a corresponding number from the player list
when you use the pl command.
Request the specified player to join your guild.
guild join (<accept flag>)
<accept flag>
- a boolean value. Specify either 1 to accept, or 0 to
deny.
Accept or deny an incoming guild join request.
Note. See guildAutoDeny in config.txt to automatically deny an
incoming guild join request.
guild ally (<player>)
<player>
- a player name, or a corresponding number from the player list
when you use the pl command.
Request alliance to another guild.
guild leave
Leave your current guild.
guild kick (<guild member #> <reason>)
<guild member #>
- a corresponding number from the guild members list when you use
the guild member command.
- an inventory item name, or a corresponding number from the
inventory item list when you use the i command.
Display a description of the specified inventory item.
i
The i command is used to list all of the player's
current inventory. i also accepts switches (listed
below) to alter the display of the inventory as well.
i eq
The eq switch will alter i to only
display equipped inventory items.
i neq
The neq switch will alter i to only
display non-equipped inventory items.
i nu
The nu switch will alter i to only
display non-usable inventory items.
i u
The u switch will alter i to only
display usable inventory items.
- a boolean value. Specify either 1 to block messages,
or 0 to unblock.
<player name>
- the name of the player you want to ignore or unignore.
Block or unblock messages from players.
Command
Description
ignore <ignore flag> <player name>
Blocks/unblocks messages from the specified player.
ignore <ignore flag> all
Blocks/unblocks messages from all players.
This is the same as the /ex and /exall commands in the Ragnarok Online
Client when the ignore flag is set to 1, or /in and /inall when the
ignore flag is set to 0.
Delay the next console commands specified after this by a set number
of seconds. Cannot be used if not ingame and if ai is set to manual or
off. Does not delay console commands that display information like
exp, skills and i.
Command
Description
pause
Delay the next console commands for 1 second
pause <seconds>
Delay the next console commands by a specified number of seconds
The following example will execute the move command after 100 seconds
have passed.
This is similar to the PM list in the Ragnarok Online Client where
names of players you previously PM'ed, or who PM'ed you, are stored in
a list for quick access. In Kore, you can use the corresponding
numbers in this PM list for the pm command.
This command allows the use of the Token Of Siegfried to self-revive.
Also supports custom servers that have other items like the Token.
Allows for force-trying to auto-revive.
Display character status. This is similar to the Basic Information
window in the Ragnarok Online Client, but also includes currently
active status effects.
Display a list of items that you can sell to a buy/sell NPC.
Note. You must have previously talked to a buy/sell before using this
command.
sell (<inventory item list>) [<amount>]
<inventory item list>
- a comma-separated list of corresponding numbers from the
inventory item list when you use the i command. Each list item can
be a single item number, or a range of item numbers in the form of
X-Y (e.g. 1-5). Don't use a space in-between the list items.
<amount>
- the amount (positive integer).
Add inventory items to your sell list. Use sell done to start selling
the items all at once.
The following command will add the item 21 from your inventory to your
sell list:
sell 21
The following command will add 50 of each
of the items 21, 30, 31, 32, 33, and 51 from your inventory to your sell
list:
sell 21,30-33,51 50
Note. If the amount is not specified, this assumes the maximum amount of
the item available.
sell list
Display items in your sell list.
sell done
When you have finished adding items to your sell list, use this command to
bulk sell everything in your sell list.
Note. You must have previously talked to a buy/sell before using this
command.
- a space-separated sequence of hex codes (e.g. 04 02 22 37 D7
FC).
Send a raw packet to the server.
That is meant only for testing!If you're using that in configuration (for example, doCommand) or macro,
you should add corresponding sub in your serverType's Send package (located
atsrc/Network/Send) and use it instead via global$messageSenderobject. Additionally, you can then add console command to wrap$messageSenderusage into something which can be used easier. If you don't do any of that,
you may easily meet various problems, for example, vending wrong items with
wrong prices (if you would have vended usingsend). Also, you can share your patch/diff with us to include in OpenKore.
Note. To ensure that Kore will stay put, this command will set the
config.txt option attackAuto to 1, and the options attackAuto_party,
route_randomWalk, teleportAuto_idle, and itemsGatherAuto to 0. The
original values are stored so they can be reset when the stand
command is used.
Note. If you previously used the sit command to force Kore to sit,
this will set the config.txt options attackAuto, attackAuto_party,
route_randomWalk, teleportAuto_idle, and itemsGatherAuto to their
original values.
Talk to the NPC on the specified coordinate and use the specified
sequence of responses.
Notes
You should be near the NPC to talk.
TODO
Add moving to the NPC if not near? Should be able to additionally
specify map in this case.
tank
The tank command will tell Kore will operate
in TankMode. While Kore is in TankMode, it will attack its target
monster once, then tank it for the player.
tank (<player>)
<player> is the name of the player to tank for. You can
also specify a player ID from the pl command.
tank stop
The stop switch will make Kore exit out of TankMode.
Examples:
Command
Description
tank Mikoto
Kore will now tank for the player with the name, "Mikoto".
Note. You must have Fly Wings in your inventory, or you must have
the Teleport Skill, for this command to work. If you have both
requirements (Teleport Skill and Fly Wings),
use teleportAuto_useSkill to specify which one to use.
If this option is set, wait for the specified number of seconds
before using the block again.
Console Command
timeout (<timeout key>) [<seconds>]
<timeout key>
- a timeout key name from timeouts.txt.
<seconds>
- the time in seconds.
Set a timeout.
Command
Description
timeout <timeout key>
Display the current value of specified key name.
timeout <timeout key> <seconds>
Set a new value for the specified key name.
Parameter of the automacro eventMacros:
timeout <number>
timeout is an optional parameter.
timeout defines the time in seconds before this
automacro can activate again after an activation.
If not used in the automacro the default value will be used,
which is: 0.
Must have a numeric value.
automacro <automacro name> {
<automacro conditions and parameters (and only them)>
timeout 60
call myMacro
}
macro myMacro {
<macro instructions (and only them, as this is regular macro)>
log This macro will only be called every 60 seconds
}
Internally, every message has a certain verbosity level that
determines whether they should be printed in the console or not. A
message's verbosity level must be lower or equal to the number set in
this option for it to be displayed in the console.
The higher the value you set in this option, the more messages will be
displayed in the console. If this option is set to 0, Kore
will only print the most important messages (e.g. connection
messages).
This option also controls whether Kore should reply to Chat
Commands, and whether admin messages (e.g. the welcome text) will be
shown in X-Kore.
Console command verbose can be used to toggle this
option on (which will set it to level 1) and off.
- a corresponding number from the warp list when you use the warp
list command.
<map name>
- the name of a map as shown by the where command in Kore, or the
/where command in the Ragnarok Online client (e.g. prontera,
morocc, prt_fild08, etc.).
After using the Warp Portal Skill, you can choose to open a warp
portal using this command.
Note. If you specify a map name, that map should exist in the warp
list or this command will fail.
warp list
After using the Warp Portal Skill, this command lists available warp
portals to open.
warp cancel
Cancel warp after using the Warp Portal. This is required on some servers if
you choose not to open warp after casting it, otherwise you may not be able to
move, cast skills etc.