summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-07-07 20:36:00 -0300
committerJesusaves <cpntb1@ymail.com>2021-07-07 20:36:00 -0300
commit6967b9e0b63d19141d4f59b7933a960ac81916d0 (patch)
tree8ecd9cd2461f3598cb7faece71eb77162aa4ef2a /conf
parent9877fd4ad81120af8e63e96d5d429092014dc017 (diff)
parent046c659193e1ca8bd13478678d1277df8bf9395c (diff)
downloadserverdata-6967b9e0b63d19141d4f59b7933a960ac81916d0.tar.gz
serverdata-6967b9e0b63d19141d4f59b7933a960ac81916d0.tar.bz2
serverdata-6967b9e0b63d19141d4f59b7933a960ac81916d0.tar.xz
serverdata-6967b9e0b63d19141d4f59b7933a960ac81916d0.zip
Merge branch 'master' into legacy
Override all files with 'master' version. This version is meant to preserve git history as requested by bjorn.
Diffstat (limited to 'conf')
-rw-r--r--conf/atcommand.conf91
-rw-r--r--conf/battlegrounds.conf124
-rw-r--r--conf/channels.conf.base76
-rw-r--r--conf/char/char-server.conf255
-rw-r--r--conf/clans.conf48
-rw-r--r--conf/common/inter-server.conf128
-rw-r--r--conf/common/map-index.conf34
-rw-r--r--conf/common/socket.conf106
-rw-r--r--conf/global/console.conf67
-rw-r--r--conf/grf-files.txt12
-rw-r--r--conf/groups.conf489
-rw-r--r--conf/import-tmpl/battle.conf32
-rw-r--r--conf/import-tmpl/char-server.conf32
-rw-r--r--conf/import-tmpl/inter-server.conf32
-rw-r--r--conf/import-tmpl/login-server.conf32
-rw-r--r--conf/import-tmpl/logs.conf32
-rw-r--r--conf/import-tmpl/map-server.conf32
-rw-r--r--conf/import-tmpl/msg_conf.txt0
-rw-r--r--conf/import-tmpl/script.conf32
-rw-r--r--conf/import-tmpl/socket.conf32
-rw-r--r--conf/login/login-server.conf205
-rw-r--r--conf/map/battle.conf88
-rw-r--r--conf/map/battle/battle.conf180
-rw-r--r--conf/map/battle/battleground.conf40
-rw-r--r--conf/map/battle/client.conf240
-rw-r--r--conf/map/battle/drops.conf157
-rw-r--r--conf/map/battle/exp.conf114
-rw-r--r--conf/map/battle/feature.conf101
-rw-r--r--conf/map/battle/gm.conf66
-rw-r--r--conf/map/battle/guild.conf73
-rw-r--r--conf/map/battle/homunc.conf71
-rw-r--r--conf/map/battle/items.conf137
-rw-r--r--conf/map/battle/limits.conf57
-rw-r--r--conf/map/battle/misc.conf173
-rw-r--r--conf/map/battle/monster.conf276
-rw-r--r--conf/map/battle/party.conf110
-rw-r--r--conf/map/battle/pet.conf107
-rw-r--r--conf/map/battle/player.conf235
-rw-r--r--conf/map/battle/skill.conf362
-rw-r--r--conf/map/battle/status.conf47
-rw-r--r--conf/map/charhelp.txt28
-rw-r--r--conf/map/help.txt309
-rw-r--r--conf/map/logs.conf184
-rw-r--r--conf/map/map-server.conf114
-rw-r--r--conf/map/maps.conf136
-rw-r--r--conf/map/script.conf74
-rw-r--r--conf/messages.conf1649
-rw-r--r--conf/network.conf37
-rw-r--r--conf/plugins.conf41
-rw-r--r--conf/readme.txt22
50 files changed, 7119 insertions, 0 deletions
diff --git a/conf/atcommand.conf b/conf/atcommand.conf
new file mode 100644
index 00000000..722dfe35
--- /dev/null
+++ b/conf/atcommand.conf
@@ -0,0 +1,91 @@
+/* Atcommands and charcommands configuration file */
+
+/* The symbol that will be used to recognize commands.
+You can set any one character except:
+ - control-characters (0x00-0x1f),
+ - '%' (party chat symbol)
+ - '$' (guild chat symbol)
+ - '/' (client commands symbol)
+atcommand_symbol represents @commands used locally.
+charcommand_symbol represents #commands used on other players.
+*/
+
+atcommand_symbol : "@"
+charcommand_symbol: "#" // We can use $ if this overlaps with ManaPlus
+
+/* Command aliases
+You can define aliases for any command. Aliases work just like the original command.
+Format is
+ <commandname>: ["<alias>", ...]
+*/
+
+aliases: {
+ mobinfo: ["mi"]
+ iteminfo: ["ii"]
+ time: ["date", "serverdate", "servertime"]
+ tonpc: ["npc"]
+ autotrade: ["at"]
+ help: ["h"]
+ jumpto: ["goto", "warpto"]
+ mount: ["mountpeco"]
+ who: ["whois"]
+ npctalk: ["npctalkc"]
+ gvgon: ["gpvpon"]
+ gvgoff: ["gpvpoff"]
+ jobchange: ["job"]
+ load: ["return"]
+ warp: ["rura", "mapmove"]
+ dye: ["ccolor"]
+ hairstyle: ["hstyle"]
+ haircolor: ["hcolor"]
+ monster: ["spawn"]
+ blvl: ["lvup", "blevel", "baselvl", "baselvup", "baselevel", "baselvlup"]
+ jlvl: ["jlevel", "joblvl", "joblvup", "joblevel", "joblvlup"]
+ glvl: ["glevel", "guildlvl", "guildlvup", "guildlevel", "guildlvlup"]
+ allskill: ["allskills", "skillall", "skillsall"]
+ allstats: ["allstat", "statall", "statsall"]
+ ban: ["banish"]
+ unban: ["unbanish"]
+ unjail: ["discharge"]
+ homlevel: ["hlvl", "hlevel", "homlvl", "homlvup"]
+ homevolution: ["homevolve"]
+ mutearea: ["stfu"]
+ monsterignore: ["battleignore", "safe"]
+ raise: ["revive"]
+ kill: ["die"]
+ guildstorage: ["gstorage"]
+ accinfo: ["accountinfo"]
+ itemreset: ["clearinventory"]
+ channel: ["main"]
+ autoloottype: ["aloottype"]
+ camerainfo: ["setcamera", "viewpointvalue"]
+ tee: ["t"]
+ log: ["l"]
+ request: ["wgm"]
+}
+
+/* List of commands that should not be logged at all */
+/* Add as many commands as you like */
+nolog: {
+ iteminfo: 1
+ mobinfo: 1
+ uptime: 1
+ duel: 1
+ accept: 1
+ reject: 1
+ noask: 1
+ time: 1
+ jailtime: 1
+ email: 1
+ rates: 1
+ help: 1
+ commands: 1
+ charcommands: 1
+ refresh: 1
+ // Should we log @hugo and @linus? They're quite spammy
+}
+
+/* Commands help file */
+help: {
+ @include "conf/map/help.txt"
+}
diff --git a/conf/battlegrounds.conf b/conf/battlegrounds.conf
new file mode 100644
index 00000000..2b4184e1
--- /dev/null
+++ b/conf/battlegrounds.conf
@@ -0,0 +1,124 @@
+//====================================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//=
+//= http://herc.ws/board/
+//====================================================
+//= http://herc.ws/board/topic/928-memory-slasher-may-30-patch/
+//====================================================
+//= Fields (TODO/INCOMPLETE)
+//= arenas: ({
+//= //- allowedTypes defines what kind of applications the arena will accept, setting is not case-sensitive and is ok with whitespaces
+//= allowedTypes: "Solo | Party" //Arena Accepts solo and party-type joins
+//= allowedTypes: "guild|party" //Arena Accepts solo and guild-type joins
+//= allowedTypes: "All" //Arena Accepts solo, party and guild-type joins
+//= //- fillAnnounce (optional arena param)
+//= })
+battlegrounds: (
+{
+ /* feature is not complete */
+ feature_off: true
+ /* character variable for global bg delay */
+ global_delay_var: "BG_Delay_Tick"
+ /* how many seconds to consider a player "afk" and kick him out? */
+ maximum_afk_seconds: 30
+
+ /* one can add as many as he wishes */
+ /* for custom ones, need to edit "lua files/entryqueue/entryqueuelist.lua" [Ind/Hercules] */
+ arenas: ({
+ name: "Tierra Gorge" //must match the name in client files
+ event: "Tierra_BG2::OnPlayerListReady"
+ allowedTypes: "All" /* Solo, Party and Guild */
+ minLevel: 80
+ maxLevel: 150
+ reward: {/* amount of badges awarded on each case */
+ win: 3
+ loss: 1
+ draw: 1
+ }
+ minPlayers: 6 /* minimum amount of players to start */
+ maxPlayers: 60 /* maximum amount of players */
+ minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */
+ delay_var: "Tierra_BG_Tick" /* char variable name that will store the delay for this match */
+ maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */
+ fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */
+ pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */
+ },{
+ name: "Flavius" //must match the name in client files
+ event: "start#bat_b01::OnPlayerListReady"
+ allowedTypes: "All" /* Solo, Party and Guild */
+ minLevel: 80
+ maxLevel: 150
+ reward: {/* amount of badges awarded on each case */
+ win: 9
+ loss: 3
+ draw: 3
+ }
+ minPlayers: 2 /* minimum amount of players to start (DEBUG VALUE, CHANGE BACK) */
+ maxPlayers: 60 /* maximum amount of players */
+ minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */
+ delay_var: "Flavius_BG_Tick" /* char variable name that will store the delay for this match */
+ maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */
+ fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */
+ pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */
+ },{
+ name: "KVM (Level 80 and up)" //must match the name in client files
+ event: "KvM03_BG::OnPlayerListReady"
+ allowedTypes: "All" /* Solo, Party and Guild */
+ minLevel: 80
+ maxLevel: 150
+ reward: {/* amount of badges awarded on each case */
+ win: 5
+ loss: 1
+ draw: 1
+ }
+ minPlayers: 4 /* minimum amount of players to start */
+ maxPlayers: 60 /* maximum amount of players */
+ minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */
+ delay_var: "KVM_BG_Tick" /* char variable name that will store the delay for this match */
+ maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */
+ fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */
+ pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */
+ },{
+ name: "KVM (Level 60~79)" //must match the name in client files
+ event: "KvM03_BG::OnPlayerListReady"
+ allowedTypes: "All" /* Solo, Party and Guild */
+ minLevel: 60
+ maxLevel: 79
+ reward: {/* amount of badges awarded on each case */
+ win: 2
+ loss: 0
+ draw: 1
+ }
+ minPlayers: 4 /* minimum amount of players to start */
+ maxPlayers: 60 /* maximum amount of players */
+ minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */
+ delay_var: "KVM_BG_Tick" /* char variable name that will store the delay for this match */
+ maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */
+ fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */
+ pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */
+ },{
+ name: "KVM (Level 59 and below)" //must match the name in client files
+ event: "KvM03_BG::OnPlayerListReady"
+ allowedTypes: "All" /* Solo, Party and Guild */
+ minLevel: 1
+ maxLevel: 59
+ reward: {/* amount of badges awarded on each case */
+ win: 1
+ loss: 0
+ draw: 0
+ }
+ minPlayers: 4 /* minimum amount of players to start */
+ maxPlayers: 60 /* maximum amount of players */
+ minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */
+ delay_var: "KVM_BG_Tick" /* char variable name that will store the delay for this match */
+ maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */
+ fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */
+ pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */
+ }
+ )
+})
diff --git a/conf/channels.conf.base b/conf/channels.conf.base
new file mode 100644
index 00000000..f7bdad32
--- /dev/null
+++ b/conf/channels.conf.base
@@ -0,0 +1,76 @@
+//====================================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//=
+//= http://herc.ws/board/
+//====================================================
+//================= More Information =================
+// http://herc.ws/board/topic/316-introducing-hercules-channel-system/
+//====================================================
+chsys: (
+{
+ /* Default Channels (available on boot) */
+ default_channels: {
+ /* channel_name : channel_messages_color */
+ main: "Orange" /* Available as #main */
+ support: "Blue" /* Available as #support */
+ trade: "Red" /* Available as #trade */
+ gm: "Red"
+ lang: "Green"
+ offtopic: "Cyan" /* Available as #offtopic */
+ /* You may add as many channels as you like */
+ }
+ /* Colors Available */
+ colors: {
+ Default: "0xffffff" /* Custom channels use the first color listed unless a font is selected through @channel. */
+ Red: "0xff0000"
+ Blue: "0x83cfe9"
+ Orange: "0xe57c00"
+ Cyan: "0x00b89d"
+ Yellow: "0xffff90"
+ Green: "0x28bf00"
+ Light_Green: "0x3dff98"
+ Normal: "0x00ff00"
+ /* As many colors as you like */
+ }
+ /* Allow users to create their own (private) channels through @channels command? */
+ /* (must also allow players to use @channels in groups.conf) */
+ allow_user_channel_creation: true
+
+ /* "map_local_channel" is a instanced channel unique to each map. */
+ map_local_channel: true
+ map_local_channel_name: "map" /* Available as #map */
+ map_local_channel_color: "Yellow"
+ map_local_channel_autojoin: true /* You can disable autojoin in specific maps through a mapflag or zone. */
+
+ /* "ally_channel" is a channel shared by all your guild allies */
+ ally_channel_enabled: true
+ ally_channel_name: "ally" /* Available as #ally */
+ ally_channel_color: "Green"
+ ally_channel_autojoin: true /* Will members autojoin to their respective #ally chats when they log-in? */
+
+ /* "irc_channel" is a special channel connected to a specific chat room in any irc network. */
+ irc_channel_enabled: false
+ irc_channel_name: "irc" /* available as #irc */
+ irc_channel_color: "Light_Green"
+ irc_channel_network: "irc.freenode.net:6667" /* network to connect to (:and port) */
+ irc_channel_channel: "#themanaworld" /* channel in the network above to join */
+ irc_channel_nick: "testbot" /* nick the bot will use */
+ irc_channel_nick_pw: "" /* password to this nick (if any) to identify to nick server on the irc network */
+ irc_channel_use_ghost: false /* whether to send a GHOST command to the nick server (requires irc_channel_nick_pw to be defined) */
+ irc_channel_autojoin: true
+ irc_flood_protection_enabled: true /* Whether to enable anti-flood protection for outgoing messages */
+ irc_flood_protection_rate: 1000 /* The delay between messages during anti-flood protection (milliseconds) */
+ irc_flood_protection_burst: 3 /* The maximum number of messages that are sent at once burst size before triggering the anti-flood protection */
+
+ // @channel setopt MessageDelay <delay>
+ // Sets the maximum amount of message delay (in seconds) allowed for a channel.
+ // Default: 10
+ // Max: 255
+ channel_opt_msg_delay: 10
+}
+)
diff --git a/conf/char/char-server.conf b/conf/char/char-server.conf
new file mode 100644
index 00000000..0e5a7c6e
--- /dev/null
+++ b/conf/char/char-server.conf
@@ -0,0 +1,255 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Character Server configuration file.
+//=========================================================================
+
+char_configuration: {
+ @include "conf/global/console.conf"
+ @include "conf/import/sql_connection.conf"
+
+ // Server name, use alternative character such as ASCII 160 for spaces.
+ // NOTE: Do not use spaces or any of these characters which are not allowed in
+ // Windows filenames \/:*?"<>|
+ // ... or else guild emblems won't work client-side!
+ server_name: "TMW Evolved"
+
+ // Wisp name for server: used to send wisp from server to players (between 4 to 23 characters)
+ wisp_server_name: "Server"
+
+ // Guild earned exp modifier.
+ // Adjusts taxed exp before adding it to the guild's exp. For example,
+ // if set to 200, the guild receives double the player's taxed exp.
+ guild_exp_rate: 100
+
+ // Information related to inter-server behavior
+ inter: {
+ // Server Communication username and password.
+ userid: "s1"
+ passwd: "p1"
+
+ // Login Server IP
+ // The character server connects to the login server using this IP address.
+ // NOTE: This is useful when you are running behind a firewall or are on
+ // a machine with multiple interfaces.
+ //login_ip: "127.0.0.1"
+
+ // The character server listens on the interface with this IP address.
+ // NOTE: This allows you to run multiple servers on multiple interfaces
+ // while using the same ports for each server.
+ //bind_ip: "127.0.0.1"
+
+ // Character Server IP
+ // The IP address which clients will use to connect.
+ // Set this to what your server's public IP address is.
+ //char_ip: "127.0.0.1"
+
+ @include "conf/import/ports.conf"
+ }
+
+ // Connection permission
+ permission: {
+ // Enable or disable creation of new characters.
+ enable_char_creation: true
+
+ // Display (New) in the server list.
+ display_new: false
+
+ // Maximum users able to connect to the server.
+ // Set to 0 to disable users to log-in. (-1 means unlimited)
+ max_connect_user: -1
+
+ // Group ID that is allowed to bypass the server limit of users.
+ // Default: -1 = nobody (there are no groups with ID < 0)
+ // See: conf/groups.conf
+ gm_allow_group: -1
+
+ // Type of server.
+ // No functional side effects at the moment.
+ // Displayed next to the server name in the client.
+ // 0=normal, 1=maintenance, 2=over 18, 3=paying, 4=F2P
+ server_type: 0
+
+ // Minimum Group ID to join char server when it is on char_server_type 1 (maintenance)
+ maintenance_min_group_id: 99
+ }
+
+ // Player-related configuration
+ player: {
+ new: {
+ // Start point (Renewal)
+ start_point_re: {
+ map: "000-0"
+ x: 22
+ y: 24
+ }
+
+ // Starting items for new characters
+ //{
+ // id: Item id
+ // amount: Item amount
+ // loc: Item position, same as in item_db if you want the item to be equipped, otherwise 0 (optional)
+ // stackable: Is stackable? (not stackable item types: weapon, armor, egg, pet armor)
+ //},
+ start_items: (
+// {
+// id: 1201 // Knife
+// amount: 1
+// loc: 2
+// stackable: false
+// },
+// {
+// id: 2301 // Cotton_Shirt
+// amount: 1
+// loc: 16
+// stackable: false
+// },
+ )
+
+ // Starting zeny
+ zeny: 0
+ }
+
+ // Character name configuration
+ name: {
+ // Name used for unknown characters
+ unknown_char_name: "Unknown"
+
+ // Allow or not identical name for characters but with a different case (upper/lower):
+ // example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed
+ name_ignoring_case: false
+
+ // Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are:
+ // NOTE: Applies to character, party and guild names.
+ // 0: no restriction (default)
+ // 1: only letters/symbols in 'name_letters' option.
+ // 2: Letters/symbols in 'name_letters' option are forbidden. All others are possibles.
+ name_option: 1
+
+ // Set the letters/symbols that you want use with the 'char_name_option' option.
+ // Note: Don't add spaces unless you mean to add 'space' to the list.
+ name_letters: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
+
+ // Block renaming if character is in a guild or a party? (BOOL)
+ // Athena: false Aegis: true
+ // This check is imposed by Aegis to avoid dead entries in databases and is not needed on Hercules, as we clear data properly
+ use_aegis_rename: false
+ }
+
+ deletion: {
+ // Restrict character deletion by BaseLevel
+ // 0: no restriction (players can delete characters of any level)
+ // -X: you can't delete chars with BaseLevel <= X
+ // Y: you can't delete chars with BaseLevel >= Y
+ // e.g. char_del_level: 80 (players can't delete characters with 80+ BaseLevel)
+ level: 0
+
+ // Amount of time in seconds by which the character deletion is delayed.
+ // Default: 86400 (24 hours)
+ // NOTE: Requires client 2010-08-03aragexeRE or newer.
+ delay: 86400
+
+ // Block deletion if character is inside a guild or a party? (BOOL)
+ // default: false official: true
+ // !!This check is imposed by Aegis to avoid dead entries in databases and _is_not_needed_ as we clear data properly!!
+ use_aegis_delete: false
+ }
+
+ // Size for the fame-lists
+ fame: {
+ alchemist: 10
+ blacksmith: 10
+ taekwon: 10
+ }
+ }
+
+ database: {
+ // How often should server save all guild related information? (character save interval is defined on the map config)
+ // (in seconds)
+ autosave_time: 60
+
+ // What folder the DB files are in (abra_db.txt, etc.)
+ db_path: "db"
+
+ // To log the character server?
+ log_char: true
+ }
+
+ //==================================================================
+ // Pincode system
+ //==================================================================
+ pincode: {
+ // A window is opened before you can select your character and you will have to enter a pincode by using only your mouse
+ // NOTE: Requires client 2011-03-09aragexeRE or newer.
+ // Default: true
+ enabled: false
+
+ // Request Pincode only on login or on everytime char select is accessed?
+ // 0: only on login (default)
+ // 1: everytime the char select window is accessed
+ request: 0
+
+ // How often does a user have to change his pincode?
+ // Default: 0
+ // 0: never
+ // X: every X minutes
+ change_time: 0
+
+ // How often can a user enter the wrong password?
+ // Default: 3
+ // Maximum allowed by clientside: 3
+ max_tries: 3
+
+ // Whether or not to refuse pincodes that are blacklisted
+ // Default: true
+ check_blacklisted: true
+
+ // Blacklisted pincodes
+ blacklist: [
+ "0000",
+ "1111",
+ "2222",
+ "3333",
+ "4444",
+ "5555",
+ "6666",
+ "7777",
+ "8888",
+ "9999",
+ "0123",
+ "1234",
+ "2345",
+ "3456",
+ "4567",
+ "5678",
+ "6789",
+ "7890"
+ ]
+ }
+
+}
+
+import: "conf/import/char-server.conf"
diff --git a/conf/clans.conf b/conf/clans.conf
new file mode 100644
index 00000000..82211fce
--- /dev/null
+++ b/conf/clans.conf
@@ -0,0 +1,48 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2017-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Clan System local configuration file.
+//=========================================================================
+
+clan_configuration: {
+
+ // Maximum players for each clan
+ MaxMembers: 500
+
+ // Maximum alliances/oppositions for each clan
+ MaxRelations: 6
+
+ // how many hours player must be inactive to be kicked?
+ // Disabled: 0
+ // Official: 336 (2 weeks)
+ InactivityKickTime: 336
+
+ // Checks each clan member every 'InactivityCheckTime' hour(s) (default 24h, minimum value of 1h)
+ InactivityCheckTime: 24
+
+ // Clan Database
+ @include "db/clans.conf"
+}
diff --git a/conf/common/inter-server.conf b/conf/common/inter-server.conf
new file mode 100644
index 00000000..6db189a7
--- /dev/null
+++ b/conf/common/inter-server.conf
@@ -0,0 +1,128 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Hercules Inter Server configuration file.
+//=========================================================================
+// Settings that are shared by more than one of the main servers
+//=========================================================================
+
+inter_configuration: {
+ // Level range for sharing within a party
+ party_share_level: 15 // FIXME: Split RE and pre-RE
+
+ // Log configuration
+ log: {
+ // Log Inter Connections, etc.?
+ log_inter: true
+
+ // Inter Log Filename
+ inter_log_filename: "log/inter.log"
+
+ // Log database SQL connection
+ @include "conf/import/sql_connection.conf"
+ }
+
+ mysql_reconnect: {
+ // == MySQL Reconnect Settings
+ // ===========================
+ // - mysql_reconnect_type
+ // - 1: when mysql disconnects during runtime, the server tries to reconnect mysql_reconnect_count times and,
+ // -- if unsuccessful, the server is shut down
+ // - 2: when mysql disconnects during runtime it tries to reconnect indefinitely
+ type: 2
+
+ // - mysql_reconnect_count
+ // - number of reconnect attempts the server should do when the database disconnects during runtime
+ // - only used when mysql_reconnect_type is 1
+ count: 1
+ }
+
+ // ALL MySQL Database Table names
+ // DO NOT CHANGE ANYTHING BEYOND THIS LINE UNLESS YOU KNOW YOUR DATABASE DAMN WELL
+ // this is meant for people who KNOW their stuff, and for some reason want to change their
+ // database layout. [CLOWNISIUS]
+ database_names: {
+ account_db: "login"
+ login_db: "loginlog"
+ ipban_table: "ipbanlist"
+ char_db: "char"
+ interlog_db: "interlog"
+ ragsrvinfo_db: "ragsrvinfo"
+ registry: {
+ acc_reg_num_db: "acc_reg_num_db"
+ acc_reg_str_db: "acc_reg_str_db"
+ char_reg_str_db: "char_reg_str_db"
+ char_reg_num_db: "char_reg_num_db"
+ global_acc_reg_num_db: "global_acc_reg_num_db"
+ global_acc_reg_str_db: "global_acc_reg_str_db"
+ map_reg_num_db: "map_reg_num_db"
+ map_reg_str_db: "map_reg_str_db"
+ }
+ pc: {
+ hotkey_db: "hotkey"
+ scdata_db: "sc_data"
+ cart_db: "cart_inventory"
+ achievement_db: "char_achievements"
+ inventory_db: "inventory"
+ charlog_db: "charlog"
+ storage_db: "storage"
+ skill_db: "skill"
+ memo_db: "memo"
+ party_db: "party"
+ pet_db: "pet"
+ friend_db: "friends"
+ mail_db: "mail"
+ auction_db: "auction"
+ quest_db: "quest"
+ homunculus_db: "homunculus"
+ skill_homunculus_db: "skill_homunculus"
+ mercenary_db: "mercenary"
+ mercenary_owner_db: "mercenary_owner"
+ elemental_db: "elemental"
+ account_data_db: "account_data"
+ }
+ guild: {
+ main_db: "guild"
+ alliance_db: "guild_alliance"
+ castle_db: "guild_castle"
+ expulsion_db: "guild_expulsion"
+ member_db: "guild_member"
+ skill_db: "guild_skill"
+ position_db: "guild_position"
+ storage_db: "guild_storage"
+ }
+ autotrade_merchants_db: "autotrade_merchants"
+ autotrade_data_db: "autotrade_data"
+ npc_market_data_db: "npc_market_data"
+ npc_barter_data_db: "npc_barter_data"
+ npc_expanded_barter_data_db: "npc_expanded_barter_data"
+ }
+
+ // Show warning in console if some string translation missing for selected language
+}
+warn_missing_translation: false
+
+import: "conf/import/inter-server.conf"
diff --git a/conf/common/map-index.conf b/conf/common/map-index.conf
new file mode 100644
index 00000000..b3a1b4e8
--- /dev/null
+++ b/conf/common/map-index.conf
@@ -0,0 +1,34 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Map Index configuration file.
+//=========================================================================
+
+mapindex_configuration: {
+ // Full path to the map_index.txt file
+ // Default: db/map_index.txt
+ file_path: "db/map_index.txt"
+}
diff --git a/conf/common/socket.conf b/conf/common/socket.conf
new file mode 100644
index 00000000..eb7d494b
--- /dev/null
+++ b/conf/common/socket.conf
@@ -0,0 +1,106 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Hercules Sockets configuration file
+//=========================================================================
+
+socket_configuration: {
+ // How long can a socket stall before closing the connection (in seconds)?
+ stall_time: 60
+
+ // Display debug reports (When something goes wrong during the report, the report is saved.)
+ debug: false
+
+ // Linux/Epoll: Maxmimum Events per cycle
+ // Default Value:
+ // (Maxmimum Supported Connections)/2
+ // NOTE: this controls the maximum collected socket-events per-cycle (call to epoll_wait())
+ // for example settings this to 32 will allow up to 32 events (incomming data/new connections
+ // per server-cycle.
+ // NOTE: Recommended Settings is at least half the maxmimum supported connections
+ // Settings this to a lower value, may cause lags/delays
+ // Depending on available CPU Time
+ // NOTE: This Setting is only available on Linux when build using EPoll as event dispatcher!
+ //
+ //epoll_maxevents: 1024
+
+ // Maximum allowed size for clients packets in bytes.
+ // Default Values:
+ // 24576 (Clients < 20131223)
+ // 65535 (Clients >= 20131223)
+ // NOTE: To reduce the size of reported packets, lower the values of defines, which
+ // have been customized, such as MAX_STORAGE, MAX_GUILD_STORAGE or MAX_CART.
+ // NOTE: Do not modify this setting, unless the client has been modified to support
+ // larger packets. The client will crash, when it receives larger packets.
+ //socket_max_client_packet: 65535
+
+ //----- IP Rules Settings -----
+ ip_rules: {
+ // If IP's are checked when connecting.
+ // This also enables DDoS protection.
+ enable: true
+
+ // Order of the checks
+ // deny,allow : Checks deny rules, then allow rules. Allows if no rules match.
+ // allow,deny : Checks allow rules, then deny rules. Allows if no rules match.
+ // mutual-failure : Allows only if an allow rule matches and no deny rules match.
+ // (default is deny,allow)
+ order: "deny,allow"
+
+ // IP rules
+ // allow : Accepts connections from the ip range (even if flagged as DDoS)
+ // deny : Rejects connections from the ip range
+ // The rules are processed in order, the first matching rule of each list (allow and deny) is used
+ allow_list: (
+ //"127.0.0.1",
+ //"192.168.0.0/16",
+ //"10.0.0.0/255.0.0.0",
+ //"all",
+ )
+ deny_list: (
+ //"127.0.0.1",
+ )
+ }
+
+ //---- DDoS Protection Settings ----
+ // If ddos.count connection request are made within ddos.interval ms, it assumes it's a DDoS attack
+ ddos: {
+ // Consecutive attempts interval (msec)
+ // (default is 3000 msecs, 3 seconds)
+ interval: 3000 //ddos_interval
+
+ // Consecutive attempts trigger
+ // (default is 5 attemps)
+ count: 5 //ddos_count
+
+ // The time interval after which the threat of DDoS is assumed to be gone (ms)
+ // After this amount of time, the DDoS restrictions are lifted.
+ // (default is 600000ms, 10min)
+ autoreset: 600000 //ddos_autoreset
+ }
+}
+
+import: "conf/import/socket.conf"
diff --git a/conf/global/console.conf b/conf/global/console.conf
new file mode 100644
index 00000000..57d58b2f
--- /dev/null
+++ b/conf/global/console.conf
@@ -0,0 +1,67 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Server Console configuration file.
+//=========================================================================
+// This file affects how ALL server consoles work, unless explictly defined
+// so in the server configuration file (See doc/global_configuration.txt
+// for more information).
+//=========================================================================
+
+console: {
+ // Time-stamp format which will be printed before all messages.
+ // Can at most be 20 characters long.
+ // Common formats:
+ // %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
+ // %H:%M:%S (hour:minute:second, 24 hour format)
+ // %d/%b/%Y (day/Month/year)
+ // For full format information, consult the strftime() manual.
+ //timestamp_format: "[%d/%b %H:%M]"
+
+ // If redirected output contains escape sequences (color codes)
+ stdout_with_ansisequence: false
+
+ // Makes server output more silent by omitting certain types of messages:
+ // 1: Hide Information messages
+ // 2: Hide Status messages
+ // 4: Hide Notice Messages
+ // 8: Hide Warning Messages
+ // 16: Hide Error and SQL Error messages.
+ // 32: Hide Debug Messages
+ // Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
+ console_silent: 0
+
+ // [CHAR] Display information on the console whenever characters/guilds/parties/pets are loaded/saved?
+ save_log: true
+
+ // [MAP] Makes server log selected message types to a file in the /log/ folder
+ // 1: Log Warning Messages
+ // 2: Log Error and SQL Error messages.
+ // 4: Log Debug Messages
+ // Example: "console_msg_log: 7" logs all 3 kinds
+ // Messages logged by this overrides console_silent setting
+ console_msg_log: 7
+}
diff --git a/conf/grf-files.txt b/conf/grf-files.txt
new file mode 100644
index 00000000..6af05857
--- /dev/null
+++ b/conf/grf-files.txt
@@ -0,0 +1,12 @@
+//-----------------------------------------
+// GRF Files
+// Add as many as needed.
+//-----------------------------------------
+//grf: C:\Program Files\Gravity\RO\rdata.grf
+//grf: C:\Program Files\Gravity\RO\data.grf
+
+//-----------------------------------------
+// Data Directory
+// Use the base folder, not the data\ path.
+//-----------------------------------------
+//data_dir: C:\Program Files\Gravity\RO\
diff --git a/conf/groups.conf b/conf/groups.conf
new file mode 100644
index 00000000..60271a5b
--- /dev/null
+++ b/conf/groups.conf
@@ -0,0 +1,489 @@
+/*
+Player groups configuration file
+---------------------------------
+
+This file defines "player groups" and their privileges.
+
+Each group has its id and name, lists of available commands and other
+permissions, and a list of other groups it inherits from.
+
+
+Group settings
+--------------
+<id>
+Unique group number. The only required field.
+
+<name>
+Any string. If empty, defaults to "Group <id>". It is used in several @who
+commands.
+
+<level>
+Equivalent of GM level, which was used in revisions before r15572. You can
+set it to any number, but usually it's between 0 (default) and 99. Members of
+groups with lower level can not perform some actions/commands (like @kick) on
+members of groups with higher level. It is what script command getgmlevel()
+returns. Group level can also be used to override trade restrictions
+(db/item_trade.txt).
+
+<commands>
+A group of settings
+ <command name> : <bool>
+or
+ <commandname> : [ <bool>, <bool> ]
+First boolean value is for atcommand, second one for charcommand. If set to
+true, group can use command. If only atcommand value is provided, false is
+assumed for charcommand. If a command name is not included, false is assumed for
+both atcommand and charcommand.
+For a full list of available commands, see: doc/atcommands.txt.
+Command names must not be aliases.
+
+<log_commands>
+Boolean value. If true then all commands used by the group will be logged to
+atcommandlog. If setting is omitted in a group definition, false is assumed.
+Requires 'log_commands' to be enabled in 'conf/logs.conf'.
+
+<permissions>
+A group of settings
+ <permission> : <bool>
+If a permission is not included, false is assumed.
+For a full list of available permissions, see: doc/permissions.txt
+
+<inherit>
+A list of group names that given group will inherit commands and permissions
+from. Group names are case-sensitive.
+
+Inheritance results
+-------------------
+Both multiple inheritance (Group 2 -> Group 1 and Group 3 -> Group 1) and
+recursive inheritance (Group 3 -> Group 2 -> Group 1) are allowed.
+
+Inheritance rules should not create cycles (eg Group 1 inherits from Group 2,
+and Group inherits from Group 1 at the same time). Configuration with cycles is
+considered faulty and can't be processed fully by server.
+
+Command or permission is inherited ONLY if it's not already defined for the
+group.
+If group inherits from multiple groups, and the same command or permission is
+defined for more than one of these groups, it's undefined which one will be
+inherited.
+
+Syntax
+------
+This config file uses libconfig syntax:
+http://www.hyperrealm.com/libconfig/libconfig_manual.html#Configuration-Files
+
+0: Player
+1: Trusted Player
+
+20/21: Support (Trusted Player + Common)
+
+40/41: Developer (Support + DEV)
+
+50/51: Event Coordinator (Support + EVTC)
+
+60/61: Game Master (Support + GM)
+
+80/81: Community Coordinator (Support + DEV + EVTC + GM)
+
+99: Administrator (All Perms)
+
+NYI commands:
+hairstyle and haircolor (use @debug-look)
+snow, sakura, clouds, clouds2, fog, fireworks, leaves, clearweather
+changesex (faulty)
+misceffect (I don't understand)
+
+*/
+
+groups: (
+{
+ id: 0 /* group 0 is the default group for every new account */
+ name: "Player"
+ level: 0
+ inherit: ( /*empty list*/ )
+ commands: {
+ help: true
+ commands: true
+ duel: true
+ accept: true
+ reject: true
+ invite: true
+ leave: true
+ noask: true // Autoreject duels
+ email: true
+ request: true
+ time: true
+ jailtime: true
+ rates: true
+ breakguild: true
+ changegm: true
+ // Bugfix-level commands
+ hominfo: true
+ refresh: true
+ // KillSteal commands (???)
+ noks: true
+ }
+ permissions: {
+ /* without this basic permissions regular players could not
+ trade or party */
+ can_trade: true
+ can_party: true
+ }
+},
+// ===== Trusted Players and Bots
+{
+ id: 1
+ name: "Trusted Player"
+ inherit: ( "Player" ) /* can do everything Players can and more */
+ level: 1
+ commands: {
+ // Information Commands
+ whogm: true
+ uptime: true
+ charcommands: true
+ exp: true
+ mobinfo: true
+ iteminfo: true
+ whodrops: true
+ homstats: true
+ whereis: true
+ tee: true
+ log: true
+ // Server Spam Limit commands
+ showexp: true
+ showzeny: true
+ showdelay: true
+ // Community Commands
+ channel: true
+ // Convenience Commands
+ autotrade: true
+ }
+ log_commands: true
+ permissions: {
+ show_client_version: true
+ }
+},
+// ===== Support
+{
+ id: 20
+ name: "Support"
+ inherit: ( "Trusted Player" )
+ level: 20
+ commands: {
+ // Information Commands
+ version: true
+ where: [true, true]
+ who: true
+ who2: true
+ who3: true
+ whomap: true
+ whomap2: true
+ whomap3: true
+ users: true
+ mobsearch: true
+ idsearch: true
+ showmobs: true
+ skillid: true
+ // Movement Commands
+ tonpc: true
+ jumpto: true
+ warp: true
+ jump: true
+ slide: true
+ memo: true
+ save: true
+ load: true
+ hugo: true
+ linus: true
+ // Community Commands
+ broadcast: true
+ localbroadcast: true
+ hidenpc: true
+ shownpc: true
+ stats: [true, true]
+ refresh: [true, true]
+ // Moderation Commands
+ kick: true
+ mute: true
+ unmute: true
+ // Convenience Commands
+ monsterignore: true
+ autoloot: true
+ alootid: true
+ autoloottype: true
+ storage: true
+ mail: true
+ effect: true
+ }
+ log_commands: true
+ permissions: {
+ send_gm: true
+ receive_requests: true
+ view_equipment: true
+ }
+},
+{
+ id: 21
+ name: "Support (Hidden)"
+ inherit: ( "Support" )
+ level: 20
+ commands: {
+ }
+ log_commands: true
+ permissions: {
+ send_gm: false
+ }
+},
+// ===== Developer
+{
+ id: 40
+ name: "Developer"
+ inherit: ( "Support" )
+ level: 40
+ commands: {
+ npcmove: true
+ day: true
+ night: true
+ gat: true
+ skilltree: true
+ heal: true
+ alive: true
+ loadnpc: true
+ unloadnpc: true
+ reloadnpc: true
+ delitem: true
+ refine: true
+ speed: true
+ itemreset: true
+ reset: true
+ mapinfo: true
+ }
+ log_commands: true
+ permissions: {
+ }
+},
+{
+ id: 41
+ name: "Developer (Hidden)"
+ inherit: ( "Developer" )
+ level: 40
+ commands: {
+ }
+ log_commands: true
+ permissions: {
+ send_gm: false
+ }
+},
+// ===== Event Coordinator
+{
+ id: 50
+ name: "Event Coordinator"
+ inherit: ( "Support" )
+ level: 50
+ commands: {
+ fakename: true
+ invisible: true
+
+ // Community Commands
+ heal: [true, true]
+ alive: [true, true]
+ monster: [true, true]
+ monstersmall: [true, true]
+ monsterbig: [true, true]
+ summon: [true, true]
+ killmonster2: [true, true]
+ cleanarea: [true, true]
+ cleanmap: true
+ clone: [true, true]
+ slaveclone: [true, true]
+ evilclone: [true, true]
+ disguise: [true, true]
+ undisguise: [true, true]
+ pvpon: true
+ pvpoff: true
+ gvgon: true
+ gvgoff: true
+ npctalk: true
+ }
+ log_commands: true
+ permissions: {
+ }
+},
+{
+ id: 51
+ name: "Event Coordinator (Hidden)"
+ inherit: ( "Event Coordinator" )
+ level: 50
+ commands: {
+ }
+ log_commands: true
+ permissions: {
+ send_gm: false
+ }
+},
+// ===== Game Master
+{
+ id: 60
+ name: "Game Master"
+ inherit: ( "Support" )
+ level: 60
+ commands: {
+ blvl: [true, true]
+ jlvl: [true, true]
+ str: [true, true]
+ agi: [true, true]
+ vit: [true, true]
+ int: [true, true]
+ dex: [true, true]
+ luk: [true, true]
+ allstats: true
+ invisible: true
+ speed: [true, true]
+ guild: [true, true]
+
+ // Moderation Commands
+ jailfor: true
+ jail: true
+ unjail: true
+ ban: true
+ block: true
+ unban: true
+ delitem: [true, true]
+ mutearea: true
+ reset: [true, true]
+ itemreset: [true, true]
+ dropall: [true, true]
+ storeall: [true, true]
+ accinfo: true
+ storagelist: [true, true]
+ cartlist: [true, true]
+ itemlist: [true, true]
+
+ // Community Commands
+ heal: [true, true]
+ alive: [true, true]
+ slide: [true, true]
+ warp: [true, true]
+ killer: true
+ killable: true
+ pvpon: true
+ pvpoff: true
+ gvgon: true
+ gvgoff: true
+ cvcon: true
+ cvcoff: true
+ killmonster: [true, true]
+ killmonster2: [true, true]
+ recall: true
+ cleanmap: true
+ nuke: [true, true]
+ skillon: true
+ skilloff: true
+ raisemap: true
+ npctalk: true
+
+ }
+ log_commands: true
+ permissions: {
+ who_display_aid: true
+ view_hpmeter: true
+ join_chat: true
+ kick_chat: true
+ hide_session: true
+ hack_info: true
+ }
+},
+{
+ id: 61
+ name: "Game Master (Hidden)"
+ inherit: ( "Game Master" )
+ level: 60
+ commands: {
+ }
+ log_commands: true
+ permissions: {
+ send_gm: false
+ }
+},
+// ===== Community Coordinator (GM/DEV)
+{
+ id: 80
+ name: "Community Coordinator"
+ inherit: ( "Support", "Developer", "Event Coordinator", "Game Master" )
+ level: 80
+ commands: {
+ addwarp: true
+ refine: [true, true]
+ repairall: [true, true]
+ allowks: true
+ item: [true, true]
+ item2: [true, true]
+ itembound: [true, true]
+ itembound2: [true, true]
+ zeny: [true, true]
+
+ // Community Commands
+ raise: true
+ partyrecall: true
+ guildrecall: true
+ doom: true
+ doommap: true
+ refreshall: true // Use with caution
+ effect: [true, true]
+ marry: [true, true] // Use with caution
+ divorce: true
+
+ // Change status and options
+ displaystatus: [true, true]
+ option: [true, true]
+ partyoption: [true, true]
+
+ // Moderation Commands
+ clearstorage: true
+ cleargstorage: true
+ recallall: true
+ breakguild: [true, true]
+ changeleader: [true, true]
+
+ }
+ log_commands: true
+ permissions: {
+ any_warp: true
+ }
+},
+{
+ id: 81
+ name: "Community Coordinator (Hidden)"
+ inherit: ( "Community Coordinator" )
+ level: 80
+ commands: {
+ }
+ log_commands: true
+ permissions: {
+ send_gm: false
+ }
+},
+// ===== Administrator
+// (There isn't a hidden admin yet)
+{
+ id: 99
+ name: "Administrator"
+ level: 99
+ inherit: ( "Community Coordinator" )
+ commands: {
+ /* not necessary due to all_commands: true */
+ }
+ log_commands: true
+ permissions: {
+ can_trade_bound: false
+ can_party: true
+ all_skill: false
+ all_equipment: true
+ skill_unconditional: false
+ use_check: true
+ use_changemaptype: true
+ all_commands: true
+ hchsys_admin: true
+ }
+}
+)
diff --git a/conf/import-tmpl/battle.conf b/conf/import-tmpl/battle.conf
new file mode 100644
index 00000000..ff05022c
--- /dev/null
+++ b/conf/import-tmpl/battle.conf
@@ -0,0 +1,32 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Battle local configuration file.
+//=========================================================================
+
+battle_configuration: {
+ // See conf/map/battle.conf for details
+}
diff --git a/conf/import-tmpl/char-server.conf b/conf/import-tmpl/char-server.conf
new file mode 100644
index 00000000..3162a31a
--- /dev/null
+++ b/conf/import-tmpl/char-server.conf
@@ -0,0 +1,32 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Character Server local configuration file.
+//=========================================================================
+
+char_configuration: {
+ // See conf/char/char-server.conf for details
+}
diff --git a/conf/import-tmpl/inter-server.conf b/conf/import-tmpl/inter-server.conf
new file mode 100644
index 00000000..9cd3932f
--- /dev/null
+++ b/conf/import-tmpl/inter-server.conf
@@ -0,0 +1,32 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Hercules Inter Server local configuration file.
+//=========================================================================
+
+inter_configuration: {
+ // See conf/common/inter-server.conf
+}
diff --git a/conf/import-tmpl/login-server.conf b/conf/import-tmpl/login-server.conf
new file mode 100644
index 00000000..c8f1f854
--- /dev/null
+++ b/conf/import-tmpl/login-server.conf
@@ -0,0 +1,32 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Login Server local configuration file.
+//=========================================================================
+
+login_configuration: {
+ // See conf/login/login-server.conf for details
+}
diff --git a/conf/import-tmpl/logs.conf b/conf/import-tmpl/logs.conf
new file mode 100644
index 00000000..47e5a665
--- /dev/null
+++ b/conf/import-tmpl/logs.conf
@@ -0,0 +1,32 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Hercules Log local configuration file.
+//=========================================================================
+
+map_log: {
+ // See conf/map/logs.conf for details
+}
diff --git a/conf/import-tmpl/map-server.conf b/conf/import-tmpl/map-server.conf
new file mode 100644
index 00000000..11e4356b
--- /dev/null
+++ b/conf/import-tmpl/map-server.conf
@@ -0,0 +1,32 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Map Server local configuration file.
+//=========================================================================
+
+map_configuration: {
+ // See conf/map/map-server.conf for details
+}
diff --git a/conf/import-tmpl/msg_conf.txt b/conf/import-tmpl/msg_conf.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/conf/import-tmpl/msg_conf.txt
diff --git a/conf/import-tmpl/script.conf b/conf/import-tmpl/script.conf
new file mode 100644
index 00000000..042644ff
--- /dev/null
+++ b/conf/import-tmpl/script.conf
@@ -0,0 +1,32 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Hercules Script local configuration file.
+//=========================================================================
+
+script_configuration: {
+ // See conf/map/script.conf for details
+}
diff --git a/conf/import-tmpl/socket.conf b/conf/import-tmpl/socket.conf
new file mode 100644
index 00000000..57806f21
--- /dev/null
+++ b/conf/import-tmpl/socket.conf
@@ -0,0 +1,32 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Hercules Sockets local configuration file
+//=========================================================================
+
+socket_configuration: {
+ // See conf/common/socket.conf for details.
+}
diff --git a/conf/login/login-server.conf b/conf/login/login-server.conf
new file mode 100644
index 00000000..da36d0aa
--- /dev/null
+++ b/conf/login/login-server.conf
@@ -0,0 +1,205 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Login Server configuration file.
+//=========================================================================
+
+login_configuration: {
+ // Login-server's console configuration
+ @include "conf/global/console.conf"
+
+ inter: {
+ // The login server listens on the interface with this IP address.
+ // NOTE: This allows you to run multiple servers on multiple interfaces
+ // while using the same ports for each server.
+ //bind_ip: "127.0.0.1"
+
+ // Interval (in minutes) to execute a DNS/IP update. Disabled by default.
+ // Enable it if your server uses a dynamic IP which changes with time.
+ //ip_sync_interval: 10
+
+ @include "conf/import/ports.conf"
+ }
+
+ log: {
+ // To log the login server?
+ // NOTE: The login-sql server needs the login logs to enable dynamic pass failure bans.
+ log_login: true
+
+ // Indicate how to display date in logs, to players, etc.
+ date_format: "%Y-%m-%d %H:%M:%S"
+ }
+
+ // for packet version >= 20170726
+ users_count: {
+ // if false, dont show any colored strings.
+ // if true, show special users count numbers for coloring char servers.
+ send_user_count_description: true
+
+ // users counts for use different colors.
+ // below 'low' show green text
+ // below 'medium' show oragne text
+ // below 'high' show red text
+ // higher 'high' show purple text
+ low: 200
+ medium: 500
+ high: 1000
+ }
+
+ // Account engine configuration
+ account: {
+ // Can you use _M/_F to make new accounts on the server?
+ new_account: true
+
+ // If new_account is enabled, minimum length to userid and passwords should be 4?
+ // Must be 'true' unless your client uses both 'Disable 4 LetterUserID/Password' Diffs
+ new_acc_length_limit: true
+
+ // Account registration flood protection system
+ // allowed_regs is the number of registrations allowed in time_allowed (in seconds)
+ allowed_regs: 1
+ time_allowed: 10
+
+ // Starting additional sec from now for the limited time at creation of account
+ // -1: new account are created with UNlimited time (default value)
+ // 0 or more: new accounts was created by addition of the value (in sec) to the actual time (to set first limited time)
+ start_limited_time: -1
+
+ // Store passwords as MD5 hashes instead of plaintext ?
+ // NOTE: Will not work with clients that use <passwordencrypt>
+ use_MD5_passwords: false
+
+ // Account data engine storage configuration
+ @include "conf/import/sql_connection.conf"
+
+ //==================================================================
+ // IP banning system
+ //==================================================================
+ ipban: {
+ enabled: true
+
+ // Interval (in seconds) to clean up expired IP bans. 0 = disabled. default = 60.
+ // NOTE: Even if this is disabled, expired IP bans will be cleaned up on login server start/stop.
+ // Players will still be able to login if an ipban entry exists but the expiration time has already passed.
+ cleanup_interval: 60
+
+ // SQL connection settings
+ @include "conf/import/sql_connection.conf"
+
+ // Dynamic password failure ipban system
+ dynamic_pass_failure: {
+ enabled: true
+
+ // Interval in minutes between failed tries
+ // Only failed tries between this interval will be accounted when banning
+ ban_interval: 5
+
+ // How many failures before adding a temporary ban entry?
+ ban_limit: 7
+
+ // Duration of the ban in minutes
+ ban_duration: 5
+ }
+ } // login_configuration.account.ipban
+ } // login_configuration.account
+
+ permission: {
+ // Required account group id to connect to server.
+ // -1: disabled
+ // 0 or more: group id
+ group_id_to_connect: -1
+
+ // Minimum account group id required to connect to server.
+ // Will not function if group_id_to_connect config is enabled.
+ // -1: disabled
+ // 0 or more: group id
+ min_group_id_to_connect: -1
+
+ // Check The clientversion set in the clientinfo ?
+ check_client_version: false
+
+ // What version we would allow to connect? (if check_client_version is enabled)
+ client_version_to_connect: 20
+
+ //==================================================================
+ // Client hash checking system
+ //==================================================================
+ // Note: see doc/md5_hashcheck.txt for more details.
+ hash: {
+ // Client MD5 hash check
+ // If turned on, the login server will check if the client's hash matches
+ // the value below, and will not connect tampered clients.
+ enabled: false
+
+ // Client MD5 hashes
+ // The client with the specified hash can be used to log in by players with
+ // a group_id equal to or greater than the given value.
+ // If you specify 'disabled' as hash, players with a group_id greater than or
+ // equal to the given value will be able to log in regardless of hash (and even
+ // if their client does not send a hash at all.)
+ MD5_hashes: (
+ //{
+ // group_id: group id
+ // hash: client hash
+ //},
+ //{
+ // group_id: 0
+ // hash: "113e195e6c051bb1cfb12a644bb084c5"
+ //},
+ //{
+ // group_id: 10
+ // hash: "cb1ea78023d337c38e8ba5124e2338ae"
+ //},
+ //{
+ // group_id: 99
+ // hash: "disabled"
+ //},
+ )
+ } // login_configuration.permission.hash
+
+ DNS_blacklist: {
+ // DNS Blacklist Blocking
+ // If enabled, each incoming connection will be tested against the blacklists
+ // on the specified dnsbl_servers
+ enabled: false
+
+ dnsbl_servers: (
+ // Here are some free DNS Blacklist Services: http://en.wikipedia.org/wiki/Comparison_of_DNS_blacklists
+ "bl.blocklist.de", // IP-Addresses who attack other servers/honeypots over SSH, FTP, IMAP, etc.
+ //"ircbl.ahbl.org", // AHBL (open proxies, compromised machines, comment spammers)
+ //"safe.dnsbl.sorbs.net", // All zones in dnsbl.sorbs.net except "recent" and "escalations"
+ //"sbl-xbl.spamhaus.org", // Spamhaus blacklist (spammers, open proxies)
+ "socks.dnsbl.sorbs.net", // Open SOCKS proxy servers
+ //"tor.ahbl.org", // Current tor relay and exit nodes
+ )
+ } // login_configuration.DNS_blacklist
+ } // login_configuration.permission
+
+}
+
+update_server: "http://updates.tmw2.org/messworld/"
+
+import: "conf/import/login-server.conf"
diff --git a/conf/map/battle.conf b/conf/map/battle.conf
new file mode 100644
index 00000000..f8c6b9a1
--- /dev/null
+++ b/conf/map/battle.conf
@@ -0,0 +1,88 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Battle Configuration File
+//=========================================================================
+
+battle_configuration: {
+ // General battle-related settings.
+ @include "conf/map/battle/battle.conf"
+
+ // Settings specific to the client.
+ @include "conf/map/battle/client.conf"
+
+ // General drop-related configs.
+ @include "conf/map/battle/drops.conf"
+
+ // Experience rates, exp penalties, stats and max level settings.
+ @include "conf/map/battle/exp.conf"
+
+ // GM levels, atcommands and hack-related configs.
+ @include "conf/map/battle/gm.conf"
+
+ // Guild and WoE settings
+ @include "conf/map/battle/guild.conf"
+
+ // Battleground settings
+ @include "conf/map/battle/battleground.conf"
+
+ // Item/card-specific and crafting related options.
+ @include "conf/map/battle/items.conf"
+
+ // Mob related configuration
+ @include "conf/map/battle/monster.conf"
+
+ // Party related configuration
+ @include "conf/map/battle/party.conf"
+
+ // Pet related configuration
+ @include "conf/map/battle/pet.conf"
+
+ // Homunc related configuration
+ @include "conf/map/battle/homunc.conf"
+
+ // Player specific settings
+ @include "conf/map/battle/player.conf"
+
+ // Skill related settings
+ @include "conf/map/battle/skill.conf"
+
+ // Status change related settings
+ @include "conf/map/battle/status.conf"
+
+ // Feature control (on/off) settings
+ @include "conf/map/battle/feature.conf"
+
+ // Different calculation limits
+ @include "conf/map/battle/limits.conf"
+
+ // Anything else that didn't fit anywhere else.
+ // Includes duel, day/night, mute/manner, log settings.
+ @include "conf/map/battle/misc.conf"
+}
+
+ // Your custom config goes here.
+import: "conf/import/battle.conf"
diff --git a/conf/map/battle/battle.conf b/conf/map/battle/battle.conf
new file mode 100644
index 00000000..f902e639
--- /dev/null
+++ b/conf/map/battle/battle.conf
@@ -0,0 +1,180 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Battle) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given,
+// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//=========================================================================
+
+// Who should have a baseatk value (makes str affect damage)? (Note 3)
+enable_baseatk: 9
+
+// Who can have perfect flee? (Note 3)
+enable_perfect_flee: 1
+
+// Who can have critical attacks? (Note 3)
+// (Note that there are some skills that always do critical hit regardless of this)
+enable_critical: 27
+
+// Critical adjustment rate for non-players (Note 2)
+mob_critical_rate: 100
+critical_rate: 100
+
+// Should normal attacks give you a walk delay? (Note 3)
+// If false, characters can move as soon as they start an attack (attack animation
+// or walk animation may be omitted client-side, causing cropped attacks or
+// monsters that teleport to you)
+// Otherwise, the delay is equal to the 'attack animation' (amotion)
+attack_walk_delay: 14
+
+// Move-delay adjustment after being hit. (Note 2)
+// The 'can't walk' delay after being hit is calculated as a percentage of the damage animation duration.
+// NOTE: Only affects the normal delay from a single attack, not the delay added by the multihit_delay option below.
+pc_damage_walk_delay_rate: 0
+damage_walk_delay_rate: 100
+
+// Move-delay adjustment for multi-hitting attacks.
+// When hit by a multi-hitting skill like Lord of Vermillion or Jupitel Thunder, characters will be
+// unable to move for an additional "(number of hits -1) * multihit_delay" milliseconds.
+// 80 is the setting that feels like Aegis (vs Sonic Blows)
+// 230 is the setting that makes walkdelay last until the last hit (vs Jupitel thunder)
+multihit_delay: 80
+
+// Damaged delay rate for players (Note 2)
+// (Setting to false/0 will be like always endure)
+player_damage_delay_rate: 100
+
+// Should race or element be used to consider someone undead?
+// 0 = element undead
+// 1 = race undead
+// 2 = both (either one works)
+undead_detect_type: 2
+
+// Does HP recover if hit by an attribute that's same as your own? (Note 1)
+// (Will not work in Renewal)
+attribute_recover: false
+
+// What is the minimum and maximum hitrate of normal attacks?
+min_hitrate: 5
+max_hitrate: 100
+
+// Type of penalty that is applied to FLEE when more than agi_penalty_count monsters are targetting player
+// 0 = no penalty is applied
+// 1 = agi_penalty_num is reduced from FLEE as a %
+// 2 = agi_penalty_num is reduced from FLEE as an exact amount
+agi_penalty_type: 1
+
+// When agi penalty is enabled, to whom it should apply to? (Note 3)
+// By default, only players get the penalty.
+agi_penalty_target: 9
+
+// Amount of enemies required to be targetting player before FLEE begins to be penalized
+agi_penalty_count: 3
+
+// Amount of FLEE penalized per each attacking monster more than agi_penalty_count
+agi_penalty_num: 10
+
+// Type of penalty that is applied to both equipment and vit DEF when more than vit_penalty_count monsters are targetting player
+// 0 = no penalty is applied
+// 1 = vit_penalty_num is reduced from DEF as a %
+// 2 = vit_penalty_num is reduced from DEF as an exact amount
+vit_penalty_type: 1
+
+// When vit penalty is enabled, to whom it should apply to? (Note 3)
+// By default, only players get the penalty.
+vit_penalty_target: 1
+
+// Amount of enemies required to be targetting player before defense begins to be penalized
+vit_penalty_count: 3
+
+// Amount of VIT defense penalized per each attacking monster more than vit_penalty_count
+vit_penalty_num: 5
+
+// Use alternate method of DEF calculation for physical attacks.
+// With 0, disabled (use normal def% reduction with further def2 reduction)
+// At 1 or more defense is subtraction of (DEF* value).
+// eg: 10 + 50 def becomes 0 + (10*type + 50)
+weapon_defense_type: 0
+
+// MDEF, same as above....(MDEF*value)
+magic_defense_type: 0
+
+// Change attacker's direction to face opponent on every attack? (Note 3)
+// NOTE: On official servers knockback of some skills like Firewall is always based on the
+// last direction walked. Even when attacking in a completely different direction, the
+// knockback direction won't change, so e.g. if you walk north and then attack an enemy to
+// the south you will still be knocked back to the south by Firewall. Immobile monsters
+// will always be knocked back to the south as their default direction is north.
+attack_direction_change: 0
+
+// For those who is set, their innate attack element is "not elemental"
+// (100% versus on all defense-elements) (Note 3)
+// NOTE: This is the setting that makes it so non-players can hit for full
+// damage against Ghost-type targets with normal attacks (eg: vs. Ghostring).
+attack_attr_none: 14
+
+// Rate at which equipment can break (base rate before it's modified by any skills)
+// 1 = 0.01% chance. Default for official servers: 0
+equip_natural_break_rate: 0
+
+// Overall rate of which your own equipment can break. (Note 2)
+// This rate affects penalty breaking rate of skills such as power-thrust and your natural breaking rate
+// (from equip_natural_break_rate). If a Sage's endow skill fails and this is above 0, the selected char's
+// weapon will be broken.
+equip_self_break_rate: 100
+
+// Overall rate at which you can break target's equipment. (Note 2)
+// This affects the behaviour of skills like acid terror and meltdown
+equip_skill_break_rate: 100
+
+// Do weapon attacks have a attack speed delay before actual damage is applied? (Note 1)
+// NOTE: The official setting is true, even thought it degrades performance a bit.
+delay_battle_damage: false
+
+// Are arrows/ammo consumed when used on a bow/gun?
+// 0 = No
+// 1 = Yes
+// 2 = Yes even for skills that do not specify arrow consumption when said
+// skill is weapon-based and used with ranged weapons (auto-guesses which
+// skills should consume ammo when it's acquired via a card or plagiarize)
+arrow_decrement: 1
+
+// Should the item script bonus 'Autospell' check for range/obstacles before casting?
+// Official behavior is false, setting this to true will make skills use their defined
+// range. For example, Sonic Blow requires a 2 cell distance before autocasting is allowed.
+// This setting also affects autospellwhenhit.
+autospell_check_range: false
+
+// If both the attacker and the target are on the same tile, should the target be knocked back to the left?
+// Official behavior is true, setting this to false will knock the target back behind the attacker.
+knockback_left: true
+
+// Should the target be able of dodging damage by snapping away to the edge of the screen?
+// Official behavior is false
+snap_dodge: false
diff --git a/conf/map/battle/battleground.conf b/conf/map/battle/battleground.conf
new file mode 100644
index 00000000..08c7fcd8
--- /dev/null
+++ b/conf/map/battle/battleground.conf
@@ -0,0 +1,40 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Battlegrounds) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given,
+// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//=========================================================================
+
+// Flee penalty on BG grounds.
+// NOTE: It's %, not absolute, so 20 is -20% of your total flee
+bg_flee_penalty: 20
+
+// Interval before updating the bg-member map mini-dots (milliseconds)
+bg_update_interval: 1000
diff --git a/conf/map/battle/client.conf b/conf/map/battle/client.conf
new file mode 100644
index 00000000..0422cfcf
--- /dev/null
+++ b/conf/map/battle/client.conf
@@ -0,0 +1,240 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Client) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given,
+// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//=========================================================================
+
+// Whether to enable the official packet obfuscation support (good vs WPE)
+// 0: disabled
+// 1: optional (not recommended) -- identifies whether it is required
+// 2: enabled (recommended)
+packet_obfuscation: 0
+
+// Minimum delay between whisper/global/party/guild messages (in ms)
+// Messages that break this threshold are silently omitted.
+min_chat_delay: 20
+
+// Valid range of dyes and styles on the client.
+min_hair_style: 0
+max_hair_style: 29
+min_hair_color: 0
+max_hair_color: 20
+min_cloth_color: 0
+max_cloth_color: 4
+min_body_style: 0
+max_body_style: 4
+
+// When set to true, the damage field in packets sent from woe maps will be set
+// to -1, making it impossible for GMs, Bots and Hexed clients to know the
+// actual damage caused by attacks. (Note 1)
+hide_woe_damage: true
+
+// "hair style" number that identifies pet.
+// NOTE: The client uses the "hair style" field in the mob packet to tell them apart from mobs.
+// This value is always higher than the max hair-style available in said client.
+// Known values to work (all 2005 clients):
+// older sakexes: 20
+// sakexe 0614: 24
+// sakexe 0628 (and later): 100
+pet_hair_style: 100
+
+// Visible area size (how many squares away from a player can they see)
+area_size: 15
+
+// Chat area size (how many squares away from a player can they chat)
+chat_area_size: 15
+
+// Area which monster death packets should be sent to.
+// This should be set to the farthest distance a player can reach in 250ms
+// after a monster dies.
+// Setting it to (area_size + 18) (18 being the range of Monk's Snap skill)
+// should be a great value
+dead_area_size: 32
+
+// Maximum walk path (how many cells a player can walk going to cursor)
+// default: 17(official)
+max_walk_path: 17
+
+// Maximum allowed 'level' value that can be sent in unit packets.
+// Use together with the aura_lv setting to tell when exactly to show the aura.
+// NOTE: You also need to adjust the client if you want this to work.
+// NOTE: Default is 99. Values above 127 will probably behave incorrectly.
+// NOTE: If you don't know what this does, don't change it!!!
+max_lv: 99
+
+// Level required to display an aura.
+// NOTE: This assumes that sending max_lv to the client will display the aura.
+// NOTE: aura_lv must not be less than max_lv.
+// Example: If max_lv is 99 and aura_lv is 150, characters with level 99~149
+// will be sent as being all level 98, and only characters with level
+// 150 or more will be reported as having level 99 and show an aura.
+aura_lv: 99
+
+// Units types affected by max_lv and aura_lv settings. (Note 3)
+// Note: If an unit type, which normally does not show an aura, is
+// set it will obtain an aura when it meets the level requirement.
+// Default: 0 (none)
+client_limit_unit_lv: 0
+
+// Will tuxedo and wedding dresses be shown when worn? (Note 1)
+wedding_modifydisplay: false
+
+// Save Clothes color. (This will degrade performance) (Note 1)
+save_clothcolor: true
+
+// Save body styles? (Note 1)
+save_body_style: false
+
+// Do not display cloth colors for the wedding costume?
+// Note: Both save_clothcolor and wedding_modifydisplay have to be enabled
+// for this option to take effect. Set this to true if your cloth palettes
+// pack doesn't has wedding palettes (or has less than the other jobs)
+wedding_ignorepalette: false
+
+// Do not display cloth colors for the Xmas costume?
+// Set this to true if your cloth palettes pack doesn't has Xmas palettes (or has less than the other jobs)
+xmas_ignorepalette: false
+
+// Do not display cloth colors for the Summer costume?
+// Set this to true if your cloth palettes pack doesn't has Summer palettes (or has less than the other jobs)
+summer_ignorepalette: false
+
+// Do not display cloth colors for the Hanbok costume?
+// Set this to true if your cloth palettes pack doesn't has Hanbok palettes (or has less than the other jobs)
+hanbok_ignorepalette: false
+
+// Do not display cloth colors for the Oktoberfest costume?
+// Set this to true if your cloth palettes pack doesn't has Oktoberfest palettes (or has less than the other jobs)
+oktoberfest_ignorepalette: false
+
+// Do not display cloth colors for the Summer 2 costume?
+// Set this to true if your cloth palettes pack doesn't has Summer 2 palettes (or has less than the other jobs)
+summer2_ignorepalette: false
+
+// Show Hercules version to users when the login?
+display_version: false
+
+// When affected with the "Hallucination" status effect, send the effect to client? (Note 1)
+// Note: Set to false if the client lags due to the "Wavy" screen effect.
+display_hallucination: true
+
+// Set this to 1 if your client supports status change timers and you want to use them
+// Clients from 2009 onward support this
+display_status_timers: true
+
+// Randomizes the dice emoticon server-side, to prevent clients from forging
+// packets for the desired number. (Note 1)
+client_reshuffle_dice: true
+
+// Sorts the character and guild storage before it is sent to the client.
+// Official servers do not sort storage. (Note 1)
+// NOTE: Enabling this option degrades performance.
+client_sort_storage: false
+
+// Duration of client's self mute in minutes.
+// Note: Do not enable this, if you enabled commands for players,
+// because the client sees multiple commands in succession as spam.
+// Default: 0 (means disabled)
+client_accept_chatdori: 0
+
+// Limits use of blank (transparent) pixels in guild emblems to a set
+// percentage of the total.
+// Official servers do not enforce this technically to date, but some disallow
+// use of blank emblems in their rules. (Note 2)
+// A value of 100 (allowing 100% blank pixels) disables this check.
+// NOTE: Enabling this option slightly degrades performance.
+client_emblem_max_blank_percent: 100
+
+// Show the MVP EXP reward message for clients 2013-12-23cRagexe and newer? (Note 1)
+// kRO removed the packet and this re-enables the message.
+// Official: false.
+mvp_exp_reward_message: false
+
+// Displays the same HP value as official servers do when a character is dead.
+// (Note 1)
+// On official servers, HP are never displayed as 0, but when dead, they
+// display the value that will be shown after resurrection (50% HP for novice
+// classes, 1 HP for other classes). Athena servers, instead, show the real
+// value (0 when dead), to avoid confusion.
+// Note: this is only a visual setting, and the server will internally handle
+// it as 0 regardless of this. This means that scripts will know that the
+// character has 0 HP when dead.
+// Default: true (Official behavior)
+display_fake_hp_when_dead: false
+
+// Send ping timer
+// For clients 20190320 Re+
+// Interval in seconds for each timer invoke.
+ping_timer_inverval: 30
+
+// Send packets timeout in seconds before ping packet can be sent.
+// For clients 20190320 Re+
+ping_time: 20
+
+// Drop or not connection after client send disconnect request packet
+// Official is false
+drop_connection_on_quit: true
+
+// When to display the rate modifier messages?
+// 0x0 - Never display rate modifier messages.
+// 0x1 - Display rate modifier messages upon login.
+// 0x2 - Display rate modifier messages upon map change.
+// 0x4 - Display rate modifier messages upon teleporting (regardless of changing maps).
+// Default: 0x1 (Official behavior.)
+display_rate_messages: 0x1
+
+// When to display the configuration messages and which? (Note 3)
+//
+// Flags for when to display the configuration messages:
+// 0x000 - Never display configuration messages.
+// 0x001 - Display configuration messages upon login. (Default. Should always be set.)
+// 0x002 - Display configuration messages upon map change.
+// 0x004 - Display configuration messages upon teleporting (regardless of changing maps).
+//
+// Flags for which configuration messages are displayed:
+// 0x010 - Character's party invitation state. (Default.)
+// 0x020 - Character's view equipment state. (Default.)
+// 0x040 - Character's Urgent Call state. (Default.)
+// 0x080 - Character's pet auto-feed state. (Default.)
+// 0x100 - Character's homunculus auto-feed state. (Default.)
+//
+// Default: 0x1F1 (Official behavior.)
+display_config_messages: 0x1F1
+
+// When to display the overweight messages?
+// 0x0 - Never display overweight messages.
+// 0x1 - Display overweight messages upon login. (Default.)
+// 0x2 - Display overweight messages upon map change. (Default.)
+// Default: 0x3 (Official behavior.)
+display_overweight_messages: 0x3
+
+// Show tip of the day window upon login?
+show_tip_window: false
diff --git a/conf/map/battle/drops.conf b/conf/map/battle/drops.conf
new file mode 100644
index 00000000..10d78ffe
--- /dev/null
+++ b/conf/map/battle/drops.conf
@@ -0,0 +1,157 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Drops) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+//=========================================================================
+
+// If an item is dropped, does it go straight into the users inventory? (Note 1)
+item_auto_get: false
+
+// How long does it take for an item to disappear from the floor after it is dropped? (in milliseconds)
+flooritem_lifetime: 120000
+
+// Grace time during which only the person who did the most damage to a monster can get the item? (in milliseconds)
+item_first_get_time: 15000
+
+// Grace time during which only the first and second person who did the most damage to a monster can get the item? (in milliseconds)
+// (Takes effect after item_first_get_time elapses)
+item_second_get_time: 10000
+
+// Grace time during which only the first, second and third person who did the most damage to a monster can get the item? (in milliseconds)
+// (Takes effect after the item_second_get_time elapses)
+item_third_get_time: 5000
+
+// Grace time to apply to MvP reward items when the Most Valuable Player can't get the prize item and it drops on the ground? (in milliseconds)
+mvp_item_first_get_time: 10000
+
+// Grace time for the first and second MvP so they can get the item? (in milliseconds)
+// (Takes effect after mvp_item_first_get_time elapses)
+mvp_item_second_get_time: 10000
+
+// Grace time for the first, second and third MvP so they can get the item? (in milliseconds)
+// (Takes effect after mvp_item_second_get_time elapses)
+mvp_item_third_get_time: 2000
+
+// Item drop rates (Note 2)
+
+// The rate the common items are dropped (Items that are in the ETC tab, besides card)
+item_rate_common: 100
+item_rate_common_boss: 100
+item_drop_common_min: 1
+item_drop_common_max: 10000
+
+// The rate healing items are dropped (items that restore HP or SP)
+item_rate_heal: 100
+item_rate_heal_boss: 100
+item_drop_heal_min: 1
+item_drop_heal_max: 10000
+
+// The rate at which usable items (in the item tab) other then healing items are dropped.
+item_rate_use: 100
+item_rate_use_boss: 100
+item_drop_use_min: 1
+item_drop_use_max: 10000
+
+// The rate at which equipment is dropped.
+item_rate_equip: 100
+item_rate_equip_boss: 100
+item_drop_equip_min: 1
+item_drop_equip_max: 10000
+
+// The rate at which cards are dropped
+item_rate_card: 100
+item_rate_card_boss: 100
+item_drop_card_min: 1
+item_drop_card_max: 10000
+
+// The rate adjustment for the MVP items that the MVP gets directly in their inventory
+item_rate_mvp: 100
+item_drop_mvp_min: 1
+item_drop_mvp_max: 10000
+
+// The rate adjustment for card-granted item drops.
+item_rate_adddrop: 100
+item_drop_add_min: 1
+item_drop_add_max: 10000
+
+// Rate adjustment for Treasure Box drops (these override all other modifiers)
+item_rate_treasure: 100
+item_drop_treasure_min: 1
+item_drop_treasure_max: 10000
+
+// Use logarithmic drops? (Note 1)
+// Logarithmic drops scale drop rates in a non-linear fashion using the equation
+// Droprate(x,y) = x * (5 - log(x)) ^ (ln(y) / ln(5))
+// Where x is the original drop rate and y is the drop_rate modifier (the previously mentioned item_rate* variables)
+// Use the following table for an idea of how the rate will affect drop rates when logarithmic drops are used:
+// Y: Original Drop Rate
+// X: Rate drop modifier (eg: item_rate_equip)
+// X\Y | 0.01 0.02 0.05 0.10 0.20 0.50 1.00 2.00 5.00 10.00 20.00
+// -----+---------------------------------------------------------------
+// 50 | 0.01 0.01 0.03 0.06 0.11 0.30 0.62 1.30 3.49 7.42 15.92
+// 100 | 0.01 0.02 0.05 0.10 0.20 0.50 1.00 2.00 5.00 10.00 20.00
+// 200 | 0.02 0.04 0.09 0.18 0.35 0.84 1.61 3.07 7.16 13.48 25.13
+// 500 | 0.05 0.09 0.22 0.40 0.74 1.65 3.00 5.40 11.51 20.00 33.98
+// 1000 | 0.10 0.18 0.40 0.73 1.30 2.76 4.82 8.28 16.47 26.96 42.69
+// 2000 | 0.20 0.36 0.76 1.32 2.28 4.62 7.73 12.70 23.58 36.33 53.64
+// 5000 | 0.50 0.86 1.73 2.91 4.81 9.11 14.45 22.34 37.90 53.91 72.53
+//10000 | 1.00 1.67 3.25 5.28 8.44 15.24 23.19 34.26 54.57 72.67 91.13
+//20000 | 2.00 3.26 6.09 9.59 14.83 25.49 37.21 52.55 77.70 97.95 100%
+//50000 | 5.00 7.87 13.98 21.12 31.23 50.31 69.56 92.48 100% 100% 100%
+item_logarithmic_drops: false
+
+// Can the monster's drop rate become 0? (Note 1)
+// Default: false (as in official servers).
+drop_rate0item: false
+
+// Makes your LUK value affect drop rates on an absolute basis.
+// Setting to 100 means each luk adds 0.01% chance to find items
+// (regardless of item's base drop rate).
+drops_by_luk: 0
+
+// Makes your LUK value affect drop rates on a relative basis.
+// Setting to 100 means each luk adds 1% chance to find items
+// (So at 100 luk, everything will have double chance of dropping).
+drops_by_luk2: 0
+
+// Whether or not Marine Spheres and Floras summoned by Alchemist drop items?
+// This setting has three available values:
+// 0: Nothing drops.
+// 1: Only marine spheres drop items.
+// 2: All alchemist summons drop items.
+alchemist_summon_reward: 1
+
+// The maximum number of full iterations that server can do when dropping an item with options.
+// When picking random options for a dropped item, it does lots of iterations to choose the option to be set,
+// this value limits the number of iterations to avoid making the server hang in a long loop.
+option_drop_max_loop: 10
+
+// Does autoloot take into account player bonuses and penalties? (Note 1)
+// If RENEWAL_DROP, Bubble Gum, or any other modifiers are active autoloot will take them into account.
+autoloot_adjust: false
diff --git a/conf/map/battle/exp.conf b/conf/map/battle/exp.conf
new file mode 100644
index 00000000..5db2cfb4
--- /dev/null
+++ b/conf/map/battle/exp.conf
@@ -0,0 +1,114 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Experience) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: The max level of classes is stored in the exp table.
+// See files db/exp.txt and db/exp2.txt to change them.
+//=========================================================================
+
+// Rate at which exp. is given. (Note 2)
+base_exp_rate: 100
+
+// Rate at which job exp. is given. (Note 2)
+job_exp_rate: 100
+
+// Turn this on to allow a player to level up more than once from a kill. (Note 1)
+multi_level_up: true
+
+// Setting this can cap the max experience one can get per kill specified as a
+// % of the current exp bar. (Every 10 = 1.0%)
+// For example, set it to 500 and no matter how much exp the mob gives,
+// it can never give you above half of your current exp bar.
+max_exp_gain_rate: 0
+
+// Method of calculating earned experience when defeating a monster:
+// 0 = uses damage given / total damage as damage ratio
+// 1 = uses damage given / max_hp as damage ratio
+// NOTE: Using type 1 disables the bonus where the first attacker gets
+// his share of the exp doubled when multiple people attack the mob.
+exp_calc_type: 0
+
+// Experience increase per attacker. That is, every additional attacker to the
+// monster makes it give this much more experience
+// (eg: 5 people attack with 25 here, +(25*4)% -> +100% exp)
+exp_bonus_attacker: 30
+
+// Max number of attackers at which exp bonus is capped
+// (eg: if set at 5, the max bonus is 4*bonus-per-char regardless of attackers)
+exp_bonus_max_attacker: 10
+
+// MVP bonus exp rate. (Note 2)
+mvp_exp_rate: 100
+
+// Rate of base/job exp given by NPCs. (Note 2)
+quest_exp_rate: 100
+
+// The rate of job exp. from using Heal skill (100 is the same as the heal amount, 200 is double.
+// The balance of the exp. rate is best used with 5 to 10)
+heal_exp: 0
+
+// The rate of exp. that is gained by the process of resurrection, a unit is 0.01%.
+// Experience calculations for the experience value * level difference of the person revived / 100 * resurrection_exp/10000 which the revived player has can be got.
+resurrection_exp: 0
+
+// The rate of job exp. when using discount and overcharge on an NPC
+// (in 0.01% increments - 100 is 1%, 10000 is normal, 20000 is double.)
+// The way it is calculated is (money received * skill lv) * shop_exp / 10000.
+shop_exp: 0
+
+// PVP exp. Do players get exp in PvP maps
+// (Note: NOT exp from players, but from normal leveling)
+pvp_exp: true
+
+// When a player dies, how should we penalize them?
+// 0 = No penalty.
+// 1 = Lose % of current level when killed.
+// 2 = Lose % of total experience when killed.
+death_penalty_type: 0
+
+// Base exp. penalty rate (Each 100 is 1% of their exp)
+death_penalty_base: 100
+
+// Job exp. penalty rate (Each 100 is 1% of their exp)
+death_penalty_job: 100
+
+// When a player dies (to another player), how much zeny should we penalize them with?
+// NOTE: It is a percentage of their zeny, so 100 = 1%
+zeny_penalty: 0
+
+// Will display experience gained from killing a monster. (Note 1)
+disp_experience: false
+
+// Will display zeny earned (from mobs, trades, etc) (Note 1)
+disp_zeny: false
+
+// Use the contents of db/statpoint.txt when doing a stats reset and leveling up? (Note 1)
+// If false, an equation will be used which preserves statpoints earned/lost
+// through external means (ie: stat point buyers/sellers)
+use_statpoint_table: true
diff --git a/conf/map/battle/feature.conf b/conf/map/battle/feature.conf
new file mode 100644
index 00000000..ea0a5e54
--- /dev/null
+++ b/conf/map/battle/feature.conf
@@ -0,0 +1,101 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Feature) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+//=========================================================================
+
+features: {
+ // Buying store (Note 1)
+ // Requires: 2010-04-27aRagexeRE or later
+ buying_store: false
+
+ // Search stores (Note 1)
+ // Requires: 2010-08-03aRagexeRE or later
+ search_stores: false
+
+ // Atcommand suggestions (Note 1)
+ // If one type incomplete atcommand, it will suggest the complete ones.
+ atcommand_suggestions: false
+
+ // Banking (Note 1)
+ // Requires: 2013-07-24aRagexe or later
+ banking: true
+
+ // Auction (Note 1)
+ // Feature became unstable on clients 2012 onwards (exact date not known),
+ // it has been fixed on clients 2013-05-15 onwards however.
+ auction: false
+
+ // Roulette (Note 1)
+ // Requires: 2014-10-22bRagexe or later
+ // Disabled by default while test version is out; enable at your own risk -- the mean dev.
+ roulette: false
+
+ // Enabled RoDEX (Note 1)
+ // Requires: 2015-05-13aRagexe or later
+ rodex: true
+
+ // Allow usage of "Account Mail" box in RoDEX?
+ // Requires: 2016-03-16aRagexeRE or later
+ // This is disabled in client-side in some client versions
+ // Disabled by default
+ rodex_use_accountmail: false
+
+ // Allow Homunculus autofeeding
+ // true: enable (Default)
+ // false: disable
+ enable_homun_autofeed: true
+
+ // Allow Pet autofeeding
+ // true: enable (Default)
+ // false: disable
+ enable_pet_autofeed: true
+
+ // Enable Attendance System for clients >= 2018-03-07bRagexeRE or 2018-04-04bRagexe or 2018-04-11aRagexe_zero
+ // true: enable (Default)
+ // false: disable
+ enable_attendance_system: false
+
+ // Attendance End time in the format YearMonthDay
+ feature_attendance_endtime: 20180331
+
+ // Enable Achievement System
+ // true: enable (Default)
+ // false: disable
+ enable_achievement_system: false
+
+ // Enable Refinery UI (requires 2016-10-05Ragexe/RE)
+ // true: enable (Default)
+ // false: disable
+ enable_refinery_ui: false
+
+ // Replace Refine NPCs with Refinery UI
+ // true: enable
+ // false: disable (default)
+ replace_refine_npcs: false
+}
diff --git a/conf/map/battle/gm.conf b/conf/map/battle/gm.conf
new file mode 100644
index 00000000..2155940e
--- /dev/null
+++ b/conf/map/battle/gm.conf
@@ -0,0 +1,66 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (GM) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+//=========================================================================
+
+// The maximum quantity of monsters that can be summoned per GM command (0 denotes an unlimited quantity)
+atcommand_spawn_quantity_limit: 100
+
+// Maximum number of slave-clones that can be have by using the @slaveclone at command. (0 denotes unlimited quantity)
+atcommand_slave_clone_limit: 25
+
+// If false, commands require exact player name. If true, entering a partial
+// name will work, as long as there's only one match from all players in the
+// current map server.
+partial_name_scan: false
+
+// (@) @allstats/@str/@agi/@vit/@int/@dex/@luk
+// allow gms to bypass the maximum stat parameter? ( if true gm stats can go up to 32k )
+// default: false
+atcommand_max_stat_bypass: false
+
+// Ban people that try trade dupe.
+// Duration of the ban, in minutes (default: 5). To disable the ban, set 0.
+ban_hack_trade: 0
+
+// requires RENEWAL_DROP to be enabled (src/map/config/renewal.h)
+// modifies @mobinfo to display the users' real drop rate as per renewal_drop formula
+// modifies @iteminfo to not display the minimum item drop rate (since it can't tell the mob level)
+atcommand_mobinfo_type: 0
+
+// Ignore warpable area configuration.
+// Set the minimum group id to ignore invalid cells when warping.
+// Default group is 2. Use 100 to disable this setting.
+gm_ignore_warpable_area: 20
+
+// Should atcommands trigger level up events for NPCs? (Note 1)
+// This option is for @baselevelup and @joblevelup
+// Default: false
+atcommand_levelup_events: false
diff --git a/conf/map/battle/guild.conf b/conf/map/battle/guild.conf
new file mode 100644
index 00000000..bd26b667
--- /dev/null
+++ b/conf/map/battle/guild.conf
@@ -0,0 +1,73 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2020 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Guild) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+//=========================================================================
+
+// When making a guild, an Emperium is consumed? (Note 1)
+guild_emperium_check: false
+
+// Maximum tax limit on a guild member.
+guild_exp_limit: 50
+
+// Maximum castles one guild can own (0 = unlimited)
+guild_max_castles: 0
+
+// How guild skills cooldown works?
+// 0 - you relog with the same cooldown remaining as from when you logged out
+// 1 - restarts the cooldown upon login to its full duration.
+// 2 - like 1, but your logged off time is also decreased from the remaining cooldown (Aegis)
+guild_skill_relog_delay: 2
+
+// Flee penalty on gvg grounds. Official value is 20 (Note 2)
+// NOTE: It's %, not absolute, so 20 is -20% of your total flee
+gvg_flee_penalty: 20
+
+// Can the 'Glory of Guild' skill be learnt in the Guild window,
+// and does changing emblems require it? (Note 1)
+// P.S: This skill is not implemented on official servers
+require_glory_guild: false
+
+// Limit Guild alliances. Value is 0 to 3.
+// If you want to change this value, clear the guild alliance table.
+// Default is 3
+max_guild_alliance: 3
+
+// When to display the guild notice?
+// 0x0 - Never display guild notice.
+// 0x1 - Display guild notice upon login.
+// 0x2 - Display guild notice upon map change.
+// 0x4 - Display guild notice upon teleporting (regardless of changing maps).
+// Default: 0x7 (Official behavior.)
+guild_notice_changemap: 0x1
+
+// Can guild members invite/expel members inside guild castles in WoE/GvG? (Note 1)
+// default: false
+guild_castle_invite: false
+guild_castle_expulsion: false
diff --git a/conf/map/battle/homunc.conf b/conf/map/battle/homunc.conf
new file mode 100644
index 00000000..f2ed4d8d
--- /dev/null
+++ b/conf/map/battle/homunc.conf
@@ -0,0 +1,71 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Homunculus) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given,
+// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//=========================================================================
+
+// Homunculus setting (Note 3)
+// Activates various 'quirks' that makes them behave unlike normal characters.
+// 0x001: Can't be targetted by support skills (except for their master)
+// 0x004: Mobs will always go after them instead of players until attacked
+// 0x008: Copy their master's speed on spawn/map-change
+// 0x010: They display luk/3+1 instead of their actual critical in the
+// stat window (by default they don't crit)
+// 0x020: Their Min-Matk is always the same as their max
+// 0x040: Skill re-use delay is reset when they are vaporized.
+hom_setting: 0x1D
+
+// The rate a homunculus will get friendly by feeding it. (Note 2)
+homunculus_friendly_rate: 100
+
+// Can you name a homunculus more then once? (Note 1)
+hom_rename: false
+
+// Intimacy needed to use Evolved Vanilmirth's Bio Explosion
+hvan_explosion_intimate: 45000
+
+// Show stat growth to the owner when an Homunculus levels up
+homunculus_show_growth: true
+
+// Does autoloot work, when a monster is killed by homunculus only?
+homunculus_autoloot: true
+
+// Should homunculi Vaporize when Master dies?
+homunculus_auto_vapor: true
+
+// Max level for regular Homunculus
+homunculus_max_level: 99
+
+// Max level for Homunculus S
+homunculus_S_max_level: 150
+
+// Bonus EXP homunculus received from master? (Note 2)
+hom_bonus_exp_from_master: 10
diff --git a/conf/map/battle/items.conf b/conf/map/battle/items.conf
new file mode 100644
index 00000000..e2925a3d
--- /dev/null
+++ b/conf/map/battle/items.conf
@@ -0,0 +1,137 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2020 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Items) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given,
+// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//=========================================================================
+
+// The highest value at which an item can be sold via the merchant vend skill. (in zeny)
+vending_max_value: 1000000000
+
+// Whether to allow buying from vending chars that are at their max. zeny limit.
+// If set to true, the rest of the zeny above the char's capacity will disappear.
+vending_over_max: true
+
+// Tax to apply to all vending transactions (eg: 10000 = 100%, 50 = 0.50%)
+// When a tax is applied, the item's full price is charged to the buyer, but
+// the vender will not get the whole price paid (they get 100% - this tax).
+vending_tax: 200
+
+// Show the buyer's name when successfully vended an item
+buyer_name: true
+
+// Forging success rate. (Note 2)
+weapon_produce_rate: 100
+
+// Prepare Potion success rate. (Note 2)
+potion_produce_rate: 100
+
+// Do produced items have the maker's name on them? (Note 3)
+// 0x01: Produced Weapons
+// 0x02: Produced Potions
+// 0x04: Produced Arrows
+// 0x08: Produced Holy Water/Ancilla
+// 0x10: Produced Deadly Potions
+// 0x80: Other produced items.
+produce_item_name_input: 0x03
+
+// Is a monster summoned via dead branch aggressive? (Note 1)
+dead_branch_active: true
+
+// Should summoned monsters check the player's base level? (dead branches) (Note 1)
+// On officials this is false - monsters summoned from dead/bloody branches can be ANY level.
+// Change to true to only summon monsters less than or equal to the player's base level.
+random_monster_checklv: false
+
+// Can any player equip any item regardless of the gender restrictions
+// NOTE: Wedding Rings and Whips/Musical Instruments will check gender regardless of setting.
+ignore_items_gender: true
+
+// Item check? (Note 1)
+// On map change it will check for items not tagged as "available" and
+// auto-delete them from inventory/cart.
+// NOTE: An item is not available if it was not loaded from the item_db or you
+// specify it as unavailable in db/item_avail.txt
+item_check: false
+
+// How much time must pass between item uses?
+// Only affects the delay between using items, prevents healing item abuse. Recommended ~500 ms
+// On officials this is 0, but it's set to 100ms as a measure against bots/macros.
+item_use_interval: 100
+
+// Required level of bNoMagicDamage before Status Changes are blocked (Golden Thief Bug card).
+// For example, if left at 50. An item can give bNoMagicDamage,40;
+// which reduces magic damage by 40%, but does not blocks status changes.
+gtb_sc_immunity: 50
+
+// Enable autospell card effects to stack?
+// NOTE: Different cards that grant the same skill will both
+// always work independently of each other regardless of setting.
+autospell_stacking: false
+
+// Will disabled consumables (disabled by map_zone_db.conf) be consumed when trying to use them?
+// Default: true (official)
+item_restricted_consumption_type: false
+
+// Which item actions are allowed while interacting with NPC? (Note 3)
+// Script commands 'enable_items/disable_items' will not be overridden. (See doc/script_commands.txt.)
+// 0x0 (ITEMENABLEDNPC_NONE) - Don't allow any item actions.
+// 0x1 (ITEMENABLEDNPC_EQUIP) - Allow changing equipment.
+// 0x2 (ITEMENABLEDNPC_CONSUME) - Allow consuming usable items.
+// Official RE: 0x1 (Default value.)
+// Official Pre-RE: 0x3
+item_enabled_npc: 0x1
+
+// Unequip the equipments that has disabled by map_zone_db.conf ?
+// 0 : disabled equipments and cards are nullify (official)
+// 1 : disabled equipments are unequip, disabled cards are nullify
+// 2 : disabled equipments are nullify, disabled cards will caused the equipment to unequip
+// 3 : disabled equipments are unequip, disabled cards will caused the equipment to unequip (1+2)
+unequip_restricted_equipment: 0
+
+// When unequip a bow with arrow equipped, it also unequip the arrow?
+// Default: true (Official behavior, applies only in Renewal)
+bow_unequip_arrow: false
+
+// How much should rental mounts increase a player's movement speed? (Note 2)
+// Official: 25 (Default)
+boarding_halter_speed: 25
+
+// Allow to use items when the storage is open?
+// Official: false (Default)
+storage_use_item: false
+
+// Minimum item buy price at shop
+// Default: 1
+min_item_buy_price: 1
+
+// Minimum item sell price at shop
+// Default: 0
+min_item_sell_price: 0
diff --git a/conf/map/battle/limits.conf b/conf/map/battle/limits.conf
new file mode 100644
index 00000000..78498219
--- /dev/null
+++ b/conf/map/battle/limits.conf
@@ -0,0 +1,57 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Limits) Configuration File
+//=========================================================================
+
+// basic attack limits
+batk_min_limit: 0
+batk_max_limit: 65535
+
+// magic attack limits
+
+matk_min_limit: 0
+matk_max_limit: 65535
+
+// weapon attack limits
+watk_min_limit: 0
+watk_max_limit: 65535
+
+// flee limits
+flee_min_limit: 1
+flee_max_limit: 32767
+
+// flee2 limits
+flee2_min_limit: 10
+flee2_max_limit: 32767
+
+// critical attack limits
+critical_min_limit: 10
+critical_max_limit: 32767
+
+// hit limits
+hit_min_limit: 1
+hit_max_limit: 32767
diff --git a/conf/map/battle/misc.conf b/conf/map/battle/misc.conf
new file mode 100644
index 00000000..4aa273f8
--- /dev/null
+++ b/conf/map/battle/misc.conf
@@ -0,0 +1,173 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Misc) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given,
+// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//=========================================================================
+
+// PK Server Mode.
+// Turns entire server pvp(excluding towns).
+// Experience loss is doubled if killed by another player.
+// When players hunt monsters over 20 levels higher, they will receive 15%
+// additional exp., and 25% chance of receiving more items.
+// There is a nopvp.txt for setting up maps not to have pk on in this mode.
+// Novices cannot be attacked and cannot attack.
+// Normal pvp counter and rank display are disabled as well.
+// Note: If pk_mode is set to 2 instead of 1, players will receive a
+// manner penalty of 5 each time they kill another player (see manner_system
+// config to adjust how this will affect players)
+pk_mode: 0
+
+// Manner/karma system configuration. Specifies how does negative manner
+// (red no chat bubble) affects players (add as needed):
+// 0: No penalties.
+// 1: Disables chatting (includes whispers, party/guild msgs, etc)
+// 2: Disables skill usage
+// 4: Disables commands usage
+// 8: Disables item usage/picking/dropping
+// 16: Disables room creation (chatrooms and vending shops)
+manner_system: 31
+
+// For PK Server Mode. Change this to define the minimum level players can start PK-ing
+pk_min_level: 55
+
+// For PK Server Mode. It specifies the maximum level difference between
+// players to let them attack each other. 0 disables said limit.
+pk_level_range: 0
+
+// Display skill usage in console? (for debug only) (default: false) (Note 3)
+skill_log: false
+
+// Display battle log? (for debug only) (default: false) (Note 1)
+battle_log: false
+
+// Display other stuff? (for debug only) (default: false) (Note 1)
+etc_log: false
+
+// Do you want to debug warp points? If set to true, warp points will appear as flags.(Note 1)
+// It will also run on start-up a warp-check to print out which warp points lead directly on
+// top of on-touch npcs (which can lead to infinite loopback warping situations)
+warp_point_debug: false
+
+// Choose if server begin with night (true) or day (false)
+night_at_start: false
+
+// Define duration in msec of the day (default: 7200000 = 2 hours)
+// Set to 0 to disable day cycle (but not @day GM command).
+// Except 0, minimum is 60000 (1 minute)
+day_duration: 0
+
+// Define duration in msec of the night (default: 1800000 = 30 min)
+// Set to 0 to disable night cycle (but not @night GM command).
+// Except 0, minimum is 60000 (1 minute)
+night_duration: 0
+
+// Using duel on pvp-maps
+duel_allow_pvp: false
+
+// Using duel on gvg-maps
+duel_allow_gvg: false
+
+// Allow using teleport/warp when dueling
+duel_allow_teleport: false
+
+// Autoleave duel when die
+duel_autoleave_when_die: true
+
+// Delay between using @duel in seconds
+duel_time_interval: 60
+
+// Restrict duel usage to same map
+duel_only_on_same_map: false
+
+// Determines max number of characters that can stack within a single cell.
+// Official - Only affects the walking routines of characters, including monsters.
+// If a unit stops walking and is on a cell with more than stack limit
+// characters on it, it will walk to the closest free cell.
+// Custom - This variation will make every full cell to be considered a wall.
+// NOTE: For this setting to take effect you have to use a server compiled
+// with Cell Stack Limit support (see src/map/map.h)
+official_cell_stack_limit: 0
+custom_cell_stack_limit: 1
+
+// If false while walking not check occupied cells
+// If true while walking check occupied cells
+check_occupied_cells: false
+
+// Allow autotrade only in map with autotrade flag?
+// Set this to "false" will allow autotrade where no "autotrade" mapflag is set
+// Set this to "true" to only allow autotrade on maps with "autotrade" mapflag
+at_mapflag: false
+
+// Set this to the amount of minutes autotrade chars will be kicked from the server.
+at_timeout: 0
+
+// Auction system, fee per hour. Default is 12000
+auction_feeperhour: 12000
+
+// Auction maximum sell price
+auction_maximumprice: 500000000
+
+// Minimum delay between each store search query in seconds.
+searchstore_querydelay: 10
+
+// Maximum amount of results a store search query may yield, before
+// it is canceled.
+searchstore_maxresults: 30
+
+// Whether or not gaining and loosing of cash points is displayed (Note 1).
+// Default: false
+cashshop_show_points: false
+
+// Whether or not mail box status is displayed upon login.
+// Default: 0
+// 0 = No
+// 1 = Yes
+// 2 = Yes, when there are unread mails
+mail_show_status: 0
+
+// Is monster transformation disabled during Guild Wars?
+// If set to true, monster transforming is automatically removed/disabled when entering castles during WoE times
+mon_trans_disable_in_gvg: false
+
+// Whether AegisName and SpriteName lookups are case sensitive
+// Default: true (as in official servers)
+// When this is set to true, item and monster lookups through atcommands and
+// script commands will match AegisNames and SpriteNames only when the case
+// matches. Display name lookups are not affected by this setting.
+// Example: Given the two items:
+// - { Id: 553, AegisName: "Bun", Name: "Bao" }
+// - { Id: 6115, AegisName: "Bun_", Name: "Bun" }
+// query when true when false
+// @item bun # 6115 # 553
+// @item Bun # 553 # 553
+// @item Bao # 553 # 553
+// @item Bun_ # 6115 # 6115
+case_sensitive_aegisnames: true
diff --git a/conf/map/battle/monster.conf b/conf/map/battle/monster.conf
new file mode 100644
index 00000000..871bcba7
--- /dev/null
+++ b/conf/map/battle/monster.conf
@@ -0,0 +1,276 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Monster) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given,
+// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//=========================================================================
+
+// The HP rate of MVPs. (Note 2)
+mvp_hp_rate: 100
+
+// The HP rate of normal monsters (that is monsters that are not MVP's) (Note 2)
+monster_hp_rate: 100
+
+// The maximum attack speed of a monster
+monster_max_aspd: 199
+
+// Defines various mob AI related settings. (Note 3)
+// 0x001: When enabled mobs will update their target cell every few iterations
+// (normally they never update their target cell until they reach it while
+// chasing)
+// 0x002: Makes mob use their "rude attack" skill (usually warping away) if they
+// are attacked and they can't attack back regardless of how they were
+// attacked (eg: GrimTooth), otherwise, their rude attack" is only activated
+// if they can't melee reach the target (eg: sniping)
+// 0x004: If not set, mobs that can change target only do so when melee attacked
+// (distance player/mob < 3), otherwise mobs may change target and chase
+// ranged attackers. This flag also overrides the 'provoke' target.
+// 0x008: When set, mobs scatter as soon as they lose their target. Use this mode
+// to make it much harder to mob-train by hiding and collecting them on a
+// single spot (ie: GrimTooth training)
+// 0x010: If set, mob skills defined for friends will also trigger on themselves.
+// 0x020: When set, the monster ai is executed for all monsters in maps that
+// have players on them, instead of only for mobs who are in the vicinity
+// of players.
+// 0x040: When set, when the mob's target changes map, the mob will walk towards
+// any npc-warps in it's sight of view (use with mob_warp below)
+// 0x100: When set, a mob will pick a random skill from it's list and start from
+// that instead of checking skills in orders (when unset, if a mob has too
+// many skills, the ones near the end will rarely get selected)
+// 0x200: When set, a mob's skill re-use delay will not be applied to all entries of
+// the same skill, instead, only to that particular entry (eg: Mob has heal
+// on six lines in the mob_skill_db, only the entry that is actually used
+// will receive the delay). This will make monsters harder, especially MvPs.
+// 0x400: Set this to make mobs have a range of 9 for all skills. Otherwise, they
+// will obey the normal skill range rules.
+// Example: 0x140 -> Chase players through warps + use skills in random order.
+monster_ai: 0x001
+
+// How often should a monster rethink its chase?
+// 0: Every 100ms (MIN_MOBTHINKTIME)
+// 1: Every cell moved
+// 2: Every 2 cells moved
+// 3: Every 3 cells moved (official)
+// x: Every x cells moved
+// Regardless of this setting, a monster will always rethink its chase if it has
+// reached its target. Increase this value if you want to make monsters continue
+// moving after they lost their target (hide, no line of sight, etc.).
+monster_chase_refresh: 2
+
+// Should mobs be able to be warped (add as needed)?
+// 0: Disable.
+// 1: Enable mob-warping when standing on NPC-warps
+// 2: Enable mob-warping when standing on Priest Warp Portals
+// 4: Disable warping when the target map is a 'nobranch' map.
+mob_warp: 0
+
+// If these are set above 0, they define the time (in ms) during which monsters
+// will have their 'AI' active after all players have left their vicinity.
+mob_active_time: 0
+boss_active_time: 0
+
+// Mobs and Pets view-range adjustment (range2 column in the mob_db) (Note 2)
+view_range_rate: 100
+
+// Chase Range is the base minimum-chase that a mob gives before giving up
+// (as long as the target is outside their field of view). This is the range3
+// column in the mob_db. (Note 2)
+chase_range_rate: 100
+
+// Allow monsters to be aggresive and attack first? (Note 1)
+monster_active_enable: true
+
+// Should the mob_db names override the mob names specified in the spawn files?
+// 0: No
+// 1: always use the mob_db Name column (english mob name)
+// 2: always use the mob_db JName column (original Kro mob name)
+override_mob_names: 0
+
+// Monster damage delay rate (Note 2)
+// Setting to 0 is like they always have endure.
+monster_damage_delay_rate: 100
+
+// Looting monster actions.
+// 0 = Monster will consume the item.
+// 1 = Monster will not consume the item.
+monster_loot_type: 0
+
+// Chance of mob casting a skill (Note 2)
+// Higher rates lead to 100% mob skill usage with no/few normal attacks.
+// Set to 0 to disable mob skills.
+mob_skill_rate: 100
+
+// Mob skill delay adjust (Note 2)
+// After a mob has casted a skill, there is a delay before being able to
+// re-cast it. Note that skills with a delay of 0 can't be affected by this
+// setting.
+mob_skill_delay: 100
+
+// Rate of monsters on a map, 200 would be twice as many as normal. (Note 2)
+mob_count_rate: 100
+
+// Respawn rate of monsters on a map. 50 would make mobs respawn twice as fast (half delay time) (Note 2)
+// Note: This does not affects mobs with immediate respawn (most normal mobs)
+mob_spawn_delay: 100
+plant_spawn_delay: 100
+boss_spawn_delay: 100
+
+// Should mobs not spawn within the viewing range of players?
+// 0 is disabled, otherwise it is the number of retries before giving up
+// and spawning the mob within player-view anyway, unless the max (100) is used,
+// in which case the mob will not be spawned, and it'll be retried again in
+// 5 seconds.
+// NOTE: This has no effect on mobs that always spawn on the very same cell
+// (like ant eggs) except if you set it to the max.
+no_spawn_on_player: 0
+
+// Should spawn coordinates in the mob-spawn files be ignored? (Note 1)
+// If set to true, all monsters will have a random respawn spot across the whole
+// map regardless of what the mob-spawn file says.
+force_random_spawn: false
+
+// Do summon slaves inherit the passive/aggressive traits of their master?
+// 0: No, retain original mode.
+// 1: Slaves are always aggressive.
+// 2: Slaves are always passive.
+// 3: Same as master's aggressive/passive state.
+slaves_inherit_mode: 3
+
+// Do summon slaves have the same walking speed as their master?
+// NOTE: The default is 3 for official servers.
+// 0: Never.
+// 1: If the master can walk
+// 2: If the master can't walk (even motionless mobs have a speed
+// entry in their mob_db)
+// 3: Always
+slaves_inherit_speed: 0
+
+// Will summoned monsters (alchemists, or @summon'ed monsters) attack cause a
+// chance of triggering the master's autospell cards? (Note 1)
+summons_trigger_autospells: true
+
+// When a mob is attacked by another monster, will the mob retaliate against the master of said mob instead of the mob itself?
+// NOTE: Summoned mobs are both those acquired via @summon and summoned by Alchemists
+retaliate_to_master: true
+
+// Whether mobs should change target temporarily when a skill triggers a counter mob skill (Note 1)
+// eg: Mob attacks player B, and player A casts a skill C. If set to true and the
+// mob has a skill that is triggered by skill C, then A will be the target of
+// the skill, otherwise B will be targetted by the reaction skill.
+mob_changetarget_byskill: false
+
+// If monster's class is changed will it fully recover HP? (Note 1)
+monster_class_change_full_recover: true
+
+// Display some mob info next to their name? (add as needed)
+// (does not works on guardian or Emperium)
+// 1: Display mob HP (Hp/MaxHp format)
+// 2: Display mob HP (Percent of full life format)
+// 4: Display mob's level
+show_mob_info: 0
+
+// Zeny from mobs
+zeny_from_mobs: false
+
+// Monsters level up (monster will level up each time a player is killed and they will grow stronger)
+// Exp rate is calculated ((monster level-original monster level)*(exp*(mobs_level_up_exp rate/100)))
+// NOTE: Does not apply to WoE Guardians.
+mobs_level_up: false
+mobs_level_up_exp_rate: 1
+
+// Dynamic Mobs Options
+// Use dynamic mobs? (recommended for small-medium sized servers)
+dynamic_mobs: true
+
+// Remove Mobs even if they are hurt
+mob_remove_damaged: true
+
+// Delay before removing mobs from empty maps (default 5 min = 300 secs)
+mob_remove_delay: 300000
+
+// Defines on who the mob npc_event gets executed when a mob is killed.
+// Type 1: On the player that killed the mob (if killed by a non-player, resorts to type 0)
+// Type 0: On the player that did the most damage to the mob.
+// NOTE: This affects who gains the Castle when the Emperium is broken.
+mob_npc_event_type: 1
+
+// Time in milliseconds to activate protection against Kill Steal
+// Set to 0 to disable it.
+// If this is activated and a player is using @noks, damage from others players (KS) not in the party
+// will be reduced to 0.
+ksprotection: 1200
+
+// Should MVP slaves retain their target when summoned back to their master?
+mob_slave_keep_target: true
+
+// Whether or not to spawn the mvp tomb.
+// See http://irowiki.org/wiki/MVP#Gravestone
+mvp_tomb_enabled: true
+
+// Delay before a tomb is spawned, in milliseconds.
+// Default: 10000 (10 seconds)
+mvp_tomb_spawn_delay: 10000
+
+// Show hp bar on monsters? (Default: yes)
+// NOTE: only works on client 2012-04-04aRagexeRE onwards
+show_monster_hp_bar: true
+
+// Whether or not the size of specially summoned mobs influences experience, drop rates,
+// and stats. The rates will be doubled for large mobs, and halved for small ones.
+// This is only invoked under the 'monster' command, @monsterbig, and @monstersmall. (Note 1)
+// Default: false
+mob_size_influence: false
+
+// How should a monster be trapped by an icewall casted directly on it?
+// On official servers, monsters can only leave an icewall to the west and south. If their target is north or east of
+// them they will continously try to chase it but fail doing so. This brings them into a loop during which they will use
+// idle and chase skills. Boss monsters on the other hand will behave like a trapped monster, do not move and will use
+// idle and rudeattacked skills (when attacked).
+// 0: Monster won't be stuck in icewall at all.
+// 1: Monster will behave like a trapped monster.
+// 2-255: Number of loops a monster will go through the behavior described above before it frees itself from icewall.
+// NOTE: On some servers, normal monsters can free themselves after 15-35 second depending on their speed. On other
+// servers, they will be stuck inside icewall until it expires. Also, many official servers (e.g. iRO) have casting
+// icewall completely blocked on all maps that have boss monsters on them.
+// Default (least exploitable): mob - 75, boss - 0
+// Default (most official): mob - 220, boss - 1
+mob_icewall_walk_block: 220
+boss_icewall_walk_block: 1
+
+// Which level of of Vulture's Eye and Snake's Eye should monsters have learned?
+// Officially monsters don't have these skills learned, so their ranged skills
+// only have a range of 9. If you put a number higher than 0, their range will
+// be increased by that number.
+monster_eye_range_bonus: 0
+
+// Should slaves chase after what their master is chasing?
+// false: Don't chase after what master is chasing. (old behavior)
+// true: Chase after what master is chasing. (official, default)
+slave_chase_masters_chasetarget: true
diff --git a/conf/map/battle/party.conf b/conf/map/battle/party.conf
new file mode 100644
index 00000000..0886e72b
--- /dev/null
+++ b/conf/map/battle/party.conf
@@ -0,0 +1,110 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Party) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+//=========================================================================
+
+// If someone steals (gank/steal skills), show name in party? (Note 1)
+show_steal_in_same_party: false
+
+// Interval before updating the party-member map mini-dots (milliseconds)
+party_update_interval: 1000
+
+// Method used to update party-mate hp-bars:
+// 0: Aegis - bar is updated every time HP changes (bandwidth intensive)
+// 1: Athena - bar is updated with the party map dots (up to 1 second delay)
+party_hp_mode: 0
+
+// When changing party leader, should the new leader be in the same map
+// as the current leader. (Note 1)
+// true: Aegis - They must be in the same map
+// false: Athena - They can be in different maps
+party_change_leader_same_map: false
+
+// When 'Party Share' item sharing is enabled in a party,
+// announce in the party which party-member received the item and what's he received? (Note 1)
+show_party_share_picker: false
+
+// What types of items are going to be announced when 'show_party_share_picker' is active?
+// 1: IT_HEALING, 2: IT_UNKNOWN, 4: IT_USABLE, 8: IT_ETC,
+// 16: IT_WEAPON, 32: IT_ARMOR, 64: IT_CARD, 128: IT_PETEGG,
+// 256: IT_PETARMOR, 512: IT_UNKNOWN2, 1024: IT_AMMO, 2048: IT_DELAYCONSUME
+// 262144: IT_CASH
+// 112: Card + Armor (rings) + Weapon
+show_picker_item_type: 112
+
+// Method of distribution when item party share is enabled in a party:
+// 0: Normal (item goes to a random party member)
+// 1: Item Share is disabled for non-mob drops (player/pet drops)
+// 2: Round Robin (items are distributed evenly and in order among members)
+// 3: 1+2
+party_item_share_type: 0
+
+// Is exp/item sharing disabled for idle members in the party?
+// Set to 0, or the amount of seconds (NOT milliseconds) that need to pass before considering
+// a character idle.
+// Characters in a chat/vending are always considered idle.
+// A character's idle status is reset upon item use/skill use/attack (auto attack counts too)/movement.
+idle_no_share: 300
+
+// Give additional experience bonus per party-member involved on even-share parties (excluding yourself)?
+// ex. If set to 10, an even-share party of 5 people will receive +40% exp (4 members * 10% exp):
+// 140% party experience in total, so each member receives 140%/5 = 28% exp (instead of 20%).
+party_even_share_bonus: 5
+
+// Display party name regardless if player is in a guild.
+// Official servers do not display party name unless the user is in a guild. (Note 1)
+display_party_name: true
+
+// When and how to send the party options? (Note 3)
+//
+// Flags for when to display the party options:
+// 0x00000 - Never send party options.
+// 0x00001 - Send party options upon login. (Default. Should always be set.)
+// 0x00002 - Send party options upon map change.
+// 0x00004 - Send party options upon teleporting (regardless of changing maps).
+// 0x00008 - Send party options upon successfully changing options manually. (Default. Should always be set.)
+// 0x00010 - Send party options upon unsuccessfully changing options manually. (Tried to enable EXP sharing if not allowed.) (Default.)
+// 0x00020 - Send party options upon changing options automatically. (Default. Should always be set.)
+// 0x00040 - Send party options upon joining party. (Default. Should always be set.)
+// 0x00080 - Send party options upon leaving party. (Default.)
+//
+// Flags for how to send the party options:
+// 0x00100 - Send party options to all party members upon unsuccessfully changing options manually. (Tried to enable EXP sharing if not allowed.) (Default.)
+// 0x00200 - Send all party options upon login.
+// 0x00400 - Send all party options upon map change.
+// 0x00800 - Send all party options upon teleporting (regardless of changing maps).
+// 0x01000 - Send all party options upon successfully changing options manually. (Default.)
+// 0x02000 - Send all party options upon unsuccessfully changing options manually. (Tried to enable EXP sharing if not allowed.) (Default.)
+// 0x04000 - Send all party options upon changing options automatically.
+// 0x08000 - Send all party options upon joining party.
+// 0x10000 - Send all party options upon leaving party.
+//
+// Default: 0x31F9 (Official behavior.)
+send_party_options: 0x31F9
diff --git a/conf/map/battle/pet.conf b/conf/map/battle/pet.conf
new file mode 100644
index 00000000..e2bf9f66
--- /dev/null
+++ b/conf/map/battle/pet.conf
@@ -0,0 +1,107 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Pet) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given,
+// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//=========================================================================
+
+// Use the offical formula to calculate the pet catch rate? (Note 1)
+// Official formula:
+// CatchRate = CaptureRate * (100 - 100 * MonsterHP / MonsterMaxHP) / 100 + CaptureRate
+// Custum *Athena formula:
+// CatchRate = (CaptureRate + (CharacterBaseLevel - MonsterLevel) * 30 + CharacterLuk * 20) * (200 - 100 * MonsterHP / MonsterMaxHP) / 100
+// (CaptureRate is defined in db/(pre-)re/pet_db.conf.)
+pet_catch_rate_official_formula: true
+
+// Rate for catching pets (Note 2)
+pet_catch_rate: 100
+
+// Can you name a pet more then once? (Note 1)
+pet_rename: true
+
+// The rate a pet will get friendly by feeding it. (Note 2)
+pet_friendly_rate: 100
+
+// The rate at which a pet will become hungry. (Note 2)
+pet_hungry_delay_rate: 100
+
+// If your pet is hungry by how much will the friendlyness decrease by. (Default is 5)
+// Note: The friendlyness is 0-1000 total, at 0 the pet runs away.
+pet_hungry_friendly_decrease: 5
+
+// Does the pet need its equipment before it does its skill? (Note 1)
+pet_equip_required: true
+
+// When the master attacks a monster, whether or not the pet will also attack. (Note 1)
+pet_attack_support: false
+
+// When the master receives damage from the monster, whether or not the pet attacks back. (Note 1)
+pet_damage_support: false
+
+// Minimum intimacy necessary for a pet to support their master. Default is 900
+// (intimacy goes from 0 to 1000). At this minimum, support rate is 50% of pet's normal value.
+// At max (1000) support rate is 150%.
+pet_support_min_friendly: 900
+
+// Same as above, but this is to use the pet_script field with official pet abilities.
+pet_equip_min_friendly: 900
+
+// Whether or not the pet's will use skills. (Note 1)
+// Note: Offensive pet skills need at least pet_attack_support or
+// pet_damage_support to work (they trigger while the pet is attacking).
+pet_status_support: false
+
+// Rate at which a pet will support it's owner in battle. (Note 2)
+// Affects pet_attack_support & pet_damage_support.
+pet_support_rate: 100
+
+// Does the pets owner receive exp from the pets damage?
+pet_attack_exp_to_master: false
+
+// The rate exp. is gained from the pet attacking monsters
+pet_attack_exp_rate: 100
+
+// Pet leveling system. Use 0 to disable (default).
+// When enabled, a pet's level is a fixed % of the master's. (Note 2)
+// If 200%, pet has double level, if 50% pet has half your level, etc.
+pet_lv_rate: 0
+
+// When pet leveling is enabled, what is the max stats for pets?
+pet_max_stats: 99
+
+// When pet leveling is enabled, these are the imposed caps on
+// min/max damage. Note that these only cap atk1 and atk2, if you
+// enable pet_str, their max damage is then their base_atk + pet_max_atk2
+pet_max_atk1: 500
+pet_max_atk2: 1000
+
+// Should the pet immediately be removed when its intimacy drops to 0? (Note 1)
+// If set to false the pet will randomly walk around the map before being removed.
+pet_remove_immediately: true
diff --git a/conf/map/battle/player.conf b/conf/map/battle/player.conf
new file mode 100644
index 00000000..263d47a6
--- /dev/null
+++ b/conf/map/battle/player.conf
@@ -0,0 +1,235 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Player) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field.
+//=========================================================================
+
+// Players' maximum HP rate? (Default is 100)
+hp_rate: 100
+
+// Players' maximum SP rate? (Default is 100)
+sp_rate: 100
+
+// Whether or not cards and attributes of the left hand are applied to the right hand attack (Note 1)
+// (It is true on official servers)
+left_cardfix_to_right: true
+
+// The amount of HP a player will respawn with, 0 is default.
+// (Unit is in percentage of total HP, 100 is full heal of HP, 0 is respawn with 1HP total.)
+restart_hp_rate: 50
+
+// The amount of SP a player will respawn with, 0 is default.
+// (Unit is in percentage of total SP, 100 is full heal of SP, 0 is respawn with 1SP total.)
+restart_sp_rate: 0
+
+// Can a normal player by-pass the skill tree? (Note 1)
+player_skillfree: false
+
+// When set to true, forces skill points gained from 1st class to be put into 1st class
+// skills, and forces novice skill points to be put into the basic skill. (Note 1)
+player_skillup_limit: true
+
+// Quest skills can be learned? (Note 1)
+// Setting this to true can open an exploit on your server!
+quest_skill_learn: false
+
+// When skills are reset, quest skills are reset as well? (Note 1)
+// Setting this to true can open an exploit on your server!
+// NOTE: If you have quest_skill_learn set to true, quest skills are always reset.
+quest_skill_reset: false
+
+// You must have basic skills to be able to sit, trade, form a party or create a chatroom? (Note 1)
+basic_skill_check: true
+
+// When teleporting, or spawning to a map, how long before a monster sees you if you don't move? (time is in milliseconds)
+// That is, when you go to a map and don't move, how long before the monsters will notice you.
+// When moving, attacking or doing similar actions, the effect ends instantly.
+// Value is also affected by 'invincible_time_inc' mapflag
+player_invincible_time: 5000
+
+// When set to true, it prevent portal abuse for avoid hits. Official value is false.
+fix_warp_hit_delay_abuse: true
+
+// The time interval for HP to restore naturally. (in milliseconds)
+natural_healhp_interval: 6000
+
+// The time interval for SP to restore naturally. (in milliseconds)
+natural_healsp_interval: 8000
+
+// Automatic healing skill's time interval. (in milliseconds)
+natural_heal_skill_interval: 10000
+
+// The maximum weight for a character to carry when the character stops healing naturally. (in %)
+natural_heal_weight_rate: 50
+
+// Maximum atk speed. (Default 190, Highest allowed 199)
+max_aspd: 190
+
+// Same as max_aspd, but for 3rd classes. (Default 193, Highest allowed 199)
+max_third_aspd: 193
+
+// Maximum walk speed rate (200 would be capped to twice the normal speed)
+max_walk_speed: 300
+
+// Maximum HP. (Default is 1000000)
+max_hp: 1000000
+
+// Maximum SP. (Default is 1000000)
+max_sp: 1000000
+
+// Max limit of char stats. (agi, str, etc.)
+max_parameter: 100
+
+// Same as max_parameter, but for 3rd classes.
+max_third_parameter: 130
+
+// Same as max_parameter, but for extended classes (Ex. Super Novice, Kagero/Oboro, Rebellion).
+max_extended_parameter: 125
+
+// Same as max_parameter, but for summoner class
+max_summoner_parameter: 120
+
+// Same as max_parameter, but for baby classes.
+max_baby_parameter: 80
+
+// Same as max_parameter, but for baby 3rd's.
+max_baby_third_parameter: 117
+
+// Max armor def/mdef
+// NOTE: This setting have no effect if server is run on Renewal Mode (RENEWAL)
+// NOTE: does not affects skills and status effects like Mental Strength
+// If weapon_defense_type is non-zero, it won't apply to max def.
+// If magic_defense_type is non-zero, it won't apply to max mdef.
+max_def: 99
+
+// Def to Def2 conversion bonus. If the armor def/mdef exceeds max_def,
+// the remaining is converted to vit def/int mdef using this multiplier
+// (eg: if set to 10, every armor point above the max becomes 10 vit defense points)
+over_def_bonus: 0
+
+// Max weight carts can hold.
+max_cart_weight: 8000
+
+// Prevent logout of players after being hit for how long (in ms, 0 disables)?
+prevent_logout: 10000
+
+// When should the server prevent a player from logging out? Have no effect if prevent_logout is disabled. (Note 3)
+// Official servers prevent players from logging out after attacking, casting skills, and taking damage.
+// 0 = Players can always logout
+// 1 = Prevent logout on login
+// 2 = Prevent logout after attacking
+// 4 = Prevent logout after casting skill
+// 8 = Prevent logout after being hit
+prevent_logout_trigger: 14
+
+// Display the drained hp/sp values from normal attacks? (Ie: Hunter Fly card)
+show_hp_sp_drain: false
+
+// Display the gained hp/sp values from killing mobs? (Ie: Sky Deleter Card)
+show_hp_sp_gain: true
+
+// Show the critical bonus for katar class weapon in player status window? On
+// official server, the critical bonus from katar class weapon isn't display.
+// (Default: false)
+show_katar_crit_bonus: true
+
+// If set, when A accepts B as a friend, B will also be added to A's friend
+// list, otherwise, only A appears in B's friend list.
+// NOTE: this setting only enables friend auto-adding; auto-deletion does not work yet
+friend_auto_add: true
+
+// Are simultaneous trade/party/guild invite requests automatically rejected?
+invite_request_check: true
+
+// Players' will drop a 'Skull' when killed?
+// 0 = Disabled
+// 1 = Dropped only in PvP maps
+// 2 = Dropped in all situations
+bone_drop: 0
+
+// Do mounted (on Peco) characters increase their size
+// 0 = no
+// 1 = only Normal Classes on Peco have Big Size
+// 2 = only Baby Classes on Peco have Medium Size
+// 3 = both Normal Classes on Peco have Big Size
+// and Baby Classes on Peco have Medium Size
+character_size: 0
+
+// Idle characters can receive autoloot?
+// Set to the time in seconds where an idle character will stop receiving
+// items from Autoloot (0: disabled).
+idle_no_autoloot: 0
+
+// Minimum distance a vending/chat room must be from a NPC in order to be placed
+// Default: 3 (0: disabled).
+min_npc_vendchat_distance: 0
+
+// If min_npc_vendchat_distance is enabled,
+// can players vend/chat room nearby hidden npc? (Ie: FAKE_NPC/HIDDEN_WARP_NPC)
+vendchat_near_hiddennpc: false
+
+// Super Novice's fury is enabled to increments of 10%, such as at 10.0%, 20.0% - 80.0%, 90.0%
+// Changing snovice_call_type config to 1 enables its use at 0%, for maxed super novices.
+// default: 0
+snovice_call_type: 0
+
+// How the server should measure the character's idle time? (Note 3)
+// 0x001 - Walk Request
+// 0x002 - UseSkillToID Request ( targetted skill use attempt )
+// 0x004 - UseSkillToPos Request ( aoe skill use attempt )
+// 0x008 - UseItem Request ( including equip/unequip )
+// 0x010 - Attack Request
+// 0x020 - Chat Request ( whisper, party, guild, bg, etca )
+// 0x040 - Sit/Standup Request
+// 0x080 - Emotion Request
+// 0x100 - DropItem Request
+// 0x200 - @/#Command Request
+// 0x400 - NPC Script Interaction
+// Please note that at least 1 option has to be enabled.
+// Be mindful that the more options used, the easier it becomes to cheat features that rely on idletime (e.g. checkidle()).
+// Default: walk ( 0x1 ) + useskilltoid ( 0x2 ) + useskilltopos ( 0x4 ) + useitem ( 0x8 ) + attack ( 0x10 ) = 0x1F
+idletime_criteria: 0x1F
+
+// Can players get ATK/DEF from refinements on costume/shadow equips?
+// Default: yes (Official behavior not known)
+costume_refine_def: true
+shadow_refine_def: true
+shadow_refine_atk: true
+
+// Keep player facing direction after warping?
+// Default: false (on official servers players always faces north)
+player_warp_keep_direction: true
+
+// Can dead players do actions like trading, open a chat room, etc.?
+// 0x0 - Don't allow trading and open chat rooms.
+// 0x1 - Allow trading when dead.
+// 0x2 - Allow open chat room when dead.
+// default: 0x3 (Official)
+allowed_actions_when_dead: 0x3
diff --git a/conf/map/battle/skill.conf b/conf/map/battle/skill.conf
new file mode 100644
index 00000000..5f2f6575
--- /dev/null
+++ b/conf/map/battle/skill.conf
@@ -0,0 +1,362 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Skill) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given,
+// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//=========================================================================
+
+// The rate of time it takes to cast a spell (Note 2, 0 = No casting time)
+casting_rate: 100
+
+// Delay time after casting (Note 2)
+delay_rate: 100
+
+// Does the delay time depend on the caster's DEX and/or AGI? (Note 1)
+// Note: On Official servers, neither Dex nor Agi affect delay time
+delay_dependon_dex: false
+delay_dependon_agi: false
+
+// Minimum allowed delay for ANY skills after casting (in milliseconds) (Note 1)
+// Note: Setting this to anything above 0 can stop speedhacks.
+min_skill_delay_limit: 100
+
+// This delay is the min 'can't walk delay' of all skills.
+// NOTE: Do not set this too low, if a character starts moving too soon after
+// doing a skill, the client will not update this, and the player/mob will
+// appear to "teleport" afterwards.
+default_walk_delay: 300
+
+// Completely disable skill delay of the following types (Note 3)
+// NOTE: By default mobs don't have the skill delay as specified in the skill
+// database, but follow their own 'reuse' skill delay which is specified on
+// the mob skill db. When set, the delay for all skills become
+// min_skill_delay_limit.
+no_skill_delay: 2
+
+// At what dex does the cast time become zero (instant cast)?
+castrate_dex_scale: 150
+
+// How much (dex*2+int) does variable cast turns zero?
+vcast_stat_scale: 530
+
+// What level of leniency should the skill system give for skills when
+// accounting attack motion (ASPD) for casting skills (Note 2, between 0 and 300)
+//
+// NOTE: Setting this to 100% may cause some issues with valid skills not being cast.
+// The time difference between client and server varies so allowing 90% leniency
+// should be enough to forgive very small margins of error.
+skill_amotion_leniency: 90
+
+// Will normal attacks be able to ignore the delay after skills? (Note 1)
+skill_delay_attack_enable: true
+
+// Range added to skills after their cast time finishes.
+// Decides how far away the target can walk away after the skill began casting before the skill fails.
+// 0 disables this range checking (default)
+skill_add_range: 0
+
+// If the target moves out of range while casting, do we take the items and SP for the skill anyway? (Note 1)
+skill_out_range_consume: false
+
+// Does the distance between caster and target define if the skill is a ranged skill? (Note 3)
+// If set, when the distance between caster and target is greater than 3 the skill is considered long-range, otherwise it's a melee range.
+// If not set, then the range is determined by the skill's range (if it is above 5, the skill is ranged).
+// Default 14 (mobs + pets + homun)
+skillrange_by_distance: 14
+
+// Should the equipped weapon's range override the skill's range defined in the skill_db for most weapon-based skills? (Note 3)
+// NOTE: Skills affected by this option are those whose range in the skill_db are negative. By default always the skill range is used.
+// Note that if you want all monster skills to have a range of 9 you need to set monster_ai&0x400.
+skillrange_from_weapon: 0
+
+// Should a check on the caster's status be performed in all skill attacks?
+// When set to true, meteors, storm gust and any other ground skills will have
+// no effect while the caster is unable to fight (eg: stunned).
+skill_caster_check: true
+
+// Should ground placed skills be removed as soon as the caster dies? (Note 3)
+clear_skills_on_death: 0
+
+// Should ground placed skills be removed when the caster changes maps? (Note 3)
+clear_skills_on_warp: 15
+
+// Setting this to true will override the target mode of ground-based skills with the flag 0x01 to "No Enemies"
+// The two skills affected by default are Pneuma and Safety Wall (if set to true, those two skills will not protect everyone, but only allies)
+// See db/skill_unit_db.txt for more info.
+defunit_not_enemy: false
+
+// Do skills do at least 'hits' damage when they don't miss/are blocked?
+// (for example, will firebolts always do "number of bolts" damage versus plants?)
+// Values (add as appropriate): 1 for weapon-based attacks, 2 for magic attacks, 4 for misc attacks.
+skill_min_damage: 6
+
+// The delay rate of monk's combo (Note 2)
+combo_delay_rate: 100
+
+// Use alternate auto Counter Attack Skill Type? (Note 3)
+// For those characters on which it is set, 100% Critical,
+// Otherwise it disregard DEF and HIT+20, CRI*2
+auto_counter_type: 15
+
+// Can ground skills be placed on top of each other? (Note 3)
+// By default, skills with UF_NOREITERATION set cannot be stacked on top of
+// other skills, this setting will override that. (skill_unit_db)
+skill_reiteration: 0
+
+// Can ground skills NOT be placed underneath/near players/monsters? (Note 3)
+// If set, only skills with UF_NOFOOTSET set will be affected (skill_unit_db)
+skill_nofootset: 1
+
+// Should traps (hunter traps + quagmire) change their target to "all" inside gvg/pvp grounds? (Note 3)
+// Default on official servers: true for player-traps
+gvg_traps_target_all: 1
+
+// Hunter's traps visibility setting (with HiddenTrap: true on skill_db.conf)
+// Here we have 2 configs:
+// visibility stands to how traps are displayed by default:
+// 0: Traps are always visible to everyone (Hercules/Pre-renewal)
+// 1: Traps with HiddenTrap: true are hidden in versus maps (PvP/GvG/BG)
+// 2: Traps with HiddenTrap: true are always invisible (Renewal) (Default)
+// Notes: - Invisibility applies to players that are not in caster's party.
+// - Invisible traps can be made visible to everyone with Hunter's Detecting skill.
+//
+// display_on_trigger tells if HiddenTraps should become visible once triggered
+// 0: Do not make traps visible once triggered (except for Ankle Snare) (Aegis)
+// 1: Always make traps visible once triggered (Hercules)
+trap_options: {
+ visibility: 2
+ display_on_trigger: 1
+}
+
+// Restrictions applied to the Alchemist's Summon Flora skill (add as necessary)
+// 1: Enable players to damage the floras outside of versus grounds.
+// 2: Disable having different types out at the same time
+// (eg: forbid summoning anything except hydras when there's already
+// one hydra out)
+summon_flora_setting: 3
+
+// When songs are canceled, terminated or the character goes out of the
+// area of effect, there's an additional effect that lasts for 20 seconds
+// Should that time be reset for each song?
+// 0: No, you must recast the song AFTER those 20 seconds to have the effect again (Aegis)
+// 1: Yes, recasting songs reset the 20 seconds timer (eathena)
+song_timer_reset: 0
+
+// Whether placed down skills will check walls (Note 1)
+// (Makes it so that Storm Gust/Lord of Vermillion/etc when cast next to a wall, won't hit on the other side)
+skill_wall_check: true
+
+// When cloaking, Whether the wall is checked or not. (Note 1)
+// Note: When the skill does not checks for walls, you will always be considered
+// as if you had a wall-next to you (you always get the wall-based speed).
+// Add the settings as required, being hit always uncloaks you.
+// 0 = doesn't check for walls
+// 1 = Check for walls
+// 2 = Cloaking is not canceled when attacking.
+// 4 = Cloaking is not canceled when using skills
+player_cloak_check_type: 1
+monster_cloak_check_type: 4
+
+// Can't place unlimited land skills at the same time (Note 3)
+land_skill_limit: 9
+
+// Determines which kind of skill-failed messages should be sent:
+// 0 - Enable by default
+// 1 - Disable all skill-failed messages.
+// 2 - Disable skill-failed messages due to can-act delays.
+// 4 - Disable failed message from Snatcher
+// 8 - Disable failed message from Envenom
+display_skill_fail: 2
+
+// Can a player in chat room (in-game), be warped by a warp portal? (Note 1)
+chat_warpportal: false
+
+// What should the wizard's "Sense" skill display on the defense fields?
+// 0: Do not show defense
+// 1: Base defense [RE default]
+// 2: Vit/Int defense
+// 3: Both (the addition of both)
+sense_type: 0
+
+// Which finger offensive style will be used?
+// 0 = Aegis style (single multi-hit attack)
+// 1 = Athena style (multiple consecutive attacks)
+finger_offensive_type: 0
+
+// Grandcross Settings (Don't mess with these)
+// If set to false, hit interval is increased based on the amount of mobs standing on the same cell
+// (means that when there's stacked mobs in the same cell, they won't receive all hits)
+gx_allhit: false
+
+// Grandcross display type (Default 1)
+// 0: Yellow character
+// 1: White character
+gx_disptype: 1
+
+// Max Level Difference for Devotion
+devotion_level_difference: 10
+
+// If false than you can use the ensemble skills alone. (Note 1)
+player_skill_partner_check: true
+
+// Remove trap type
+// 0 = Aegis system : Returns 1 'Trap' item
+// 1 = Athena system : Returns all items used to deploy the trap
+skill_removetrap_type: 0
+
+// Does using bow to do a backstab give a 50% damage penalty? (Note 1)
+backstab_bow_penalty: true
+
+// How many times you could try to steal from a mob.
+// Note: It helps to avoid stealing exploit on monsters with few rare items
+// Use 0 to disable (max allowed value is 255)
+skill_steal_max_tries: 0
+
+// Can Rogues plagiarize advanced job skills
+// 0 = no restriction
+// 1 = only stalker may plagiarize advanced skills
+// 2 = advanced skills cannot be plagiarized by anyone
+// Official servers setting: 2
+copyskill_restrict: 2
+
+// Does Berserk/Frenzy cancel other self-buffs when used?
+berserk_cancels_buffs: false
+
+// Level and Strength of "MVP heal". When someone casts a heal of this level or
+// above, the heal formula is bypassed and this value is used instead.
+max_heal: 9999
+max_heal_lv: 11
+
+// Emergency Recall Guild Skill setting (add as appropriate).
+// Note that for the skill to be usable at all,
+// you need at least one of 1/2 and 4/8
+// 1: Skill is usable outside of woe.
+// 2: Skill is usable during woe.
+// 4: Skill is usable outside of GvG grounds
+// 8: Skill is usable on GvG grounds
+//16: Disable skill from "nowarpto" maps
+// (it will work on GVG castles even if they are set to nowarpto, though)
+emergency_call: 11
+
+// Guild Aura Skills setting (add as appropriate).
+// (This affects GD_LEADERSHIP, GD_GLORYWOUNDS, GD_SOULCOLD and GD_HAWKEYES)
+// Note that for the skill to be usable at all,
+// you need at least one of 1/2 and 4/8
+// 1: Skill works outside of woe.
+// 2: Skill works during woe.
+// 4: Skill works outside of GvG grounds
+// 8: Skill works on GvG grounds
+//16: Disable skill from affecting Guild Master
+guild_aura: 31
+
+// Allows players to skip menu when casting Teleport level 1
+// Menu contains two options. "Random" and "Cancel"
+skip_teleport_lv1_menu: false
+
+// Allow use of SG skills without proper day (Sun/Moon/Star) ?
+allow_skill_without_day: false
+
+// Allow use of ES-type magic on players?
+allow_es_magic_player: false
+
+// Miracle of the Sun, Moon and Stars skill ratio (100% = 10000)
+sg_miracle_skill_ratio: 2
+
+// Miracle of the Sun, Moon and Stars skill duration in milliseconds
+sg_miracle_skill_duration: 3600000
+
+// Angel of the Sun, Moon and Stars skill ratio (100% = 10000)
+sg_angel_skill_ratio: 10
+
+// Skills that bHealPower has effect on
+// 1: Heal, 2: Sanctuary, 4: Potion Pitcher, 8: Slim Pitcher, 16: Apple of Idun, 32: Highness Heal
+skill_add_heal_rate: 7
+
+// Whether the damage of EarthQuake with a single target on screen is able to be reflected.
+// Note: On official server, EQ is reflectable when there is only one target on the screen,
+// which might be an exploit to hunt the MVPs.
+eq_single_target_reflectable: true
+
+// On official server, you will receive damage from Reflection and some Tarot Card even in invincible status.
+// When this setting is enabled, it allows you to immune to all kinds of damage, including those stated previous.
+// (The number will show but no actual damage will be done)
+invincible_nodamage: false
+
+// Dancing Weapon Switch
+// On official server, a fix is in place that prevents the switching of weapons to cancel songs.
+// Default: true
+dancing_weaponswitch_fix: true
+
+// Skill Trap Type (GvG)
+// 0: (official) Traps in GvG only make player stop moving after its walk path is complete, and it activates other traps on the way.
+// 1: Traps in GvG make player stop moving right when stepping over it.
+skill_trap_type: 0
+
+// Trap Reflect
+// Whether the damage from traps must be reflected (for example by Reflect Shield or High Orc Card)?
+// true: Aegis - traps are reflected
+// false: Athena - traps are not reflected
+trap_reflect: true
+
+// Max Possible Level of Monster skills
+// Note: If your MVPs are too tough, reduce it to 10.
+mob_max_skilllvl: 100
+
+// Area of Bowling Bash chain reaction
+// 0: Use official gutter line system
+// 1: Gutter line system without demi gutter bug
+// 2-20: Area around caster (2 = 5x5, 3 = 7x7, 4 = 9x9, ..., 20 = 41x41)
+// Note: If you knock the target out of the area it will only be hit once and won't do splash damage
+bowling_bash_area: 0
+
+// On official servers, Storm Gust consists of 81 units that all deal 3x3 splash damage "away from center". Due to
+// south-western cells being processed first, this usually leads to a knockback to the northeast. Knockback at the
+// edges will be away from SG. Knockback direction can also be influenced by Ganbantein and Land Protector. If you
+// punch a hole into SG it will for example create a "suck in" effect.
+// If you disable this setting, the knockback direction will be completely random (eAthena style).
+stormgust_knockback: true
+
+// Magic Rod's animation behavior (Note 1)
+// 0 : (official) Magic Rod's animation occurs every time it is used.
+// 1 : Magic Rod's animation would not occur unless a spell was absorbed. (old behavior)
+magicrod_type: 0
+
+// Which skills are allowed to use while interacting with NPC?
+// 0 (SKILLENABLEDNPC_NONE) - Don't allow using skills.
+// 1 (SKILLENABLEDNPC_SELF) - Allow using non-damaging self skills.
+// 2 (SKILLENABLEDNPC_ALL) - Allow using all skills.
+// Official RE: 0 (Default value.)
+// Official Pre-RE: 1
+skill_enabled_npc: 0
+
+// Close the storage/gstorage when teleported? (Note 1)
+// true : (Official)
+// false : (Athena)
+teleport_close_storage: true
diff --git a/conf/map/battle/status.conf b/conf/map/battle/status.conf
new file mode 100644
index 00000000..5f6fe68d
--- /dev/null
+++ b/conf/map/battle/status.conf
@@ -0,0 +1,47 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+// Battle (Status) Configuration File
+//=========================================================================
+// Note 1: Value is a config switch (true/false)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given,
+// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//=========================================================================
+
+// Should skill casting be canceled when inflicted by curse/stun/sleep/etc (includes silence) (Note 3)?
+status_cast_cancel: 0
+
+// Adjustment for the natural rate of resistance from status changes.
+// If 50, status defense is halved, and you need twice as much stats to block
+// them (eg: 200 vit to completely block stun)
+pc_status_def_rate: 50
+mob_status_def_rate: 50
+
+// Maximum resistance to status changes. (100 = 100%)
+// NOTE: Cards and equipment can go over this limit, so it only applies to natural resist.
+pc_max_status_def: 75
+mob_max_status_def: 75
diff --git a/conf/map/charhelp.txt b/conf/map/charhelp.txt
new file mode 100644
index 00000000..e3acddbb
--- /dev/null
+++ b/conf/map/charhelp.txt
@@ -0,0 +1,28 @@
+ 40:--- CHARACTER CMD ---
+ 40:#statsall <char name> - Set all stats of a player to maximum.
+ 40:#itemlist <char name> - Displays all items of a player.
+ 40:#storagelist <char name> - Displays all items of a player's storage.
+ 40:#stats <char name> - Displays a characters stats.
+ 60:#option <char name> <param1> <param2> <param3> - Like @option command but only to target character.
+ 50:#mountpeco <char name> - Give/remove to a player a peco (Class is required, but not skill).
+ 50:#petrename <char name> - Re-enable pet rename to a player.
+ 60:#save <char name> <map> <x> <y> - Changes the target players respawn point.
+ 60:#baselvl/#blvl <char name> <#> - Change a characters base level.
+ 60:#joblvl/#jlvl <char name> <#> - Change a characters job level.
+ 60:#job/#jobchange <char name> <job ID> - Changes target characters job.
+ 60:#zeny <char name> <amount> - Give/take a players Zeny
+ 60:#cash <char name> <amount> - Give/take a player cash points
+ 60:#points <char name> <amount> - Give/take a player Kafra points
+ 60:#stpoint <char name> <amount> - Give/take a players stat points
+ 60:#skpoint <char name> <amount> - give/take a players skill points
+ 60:#skreset <char name> - Reset skills of a character.
+ 60:#streset <char name> - Reset stats of a character.
+ 60:#reset <char name> - Reset stats AND skills of a character.
+ 60:#questskill <char name> <#> - Gives to a player the specified quest skill.
+ 60:#lostskill <char name> <#> - Takes away the specified quest skill from the player.
+ 60:#delitem <char name> <item_name_or_ID> <quantity> - Remove items from a character
+ 50:#model <char name> <hair type> <hair color> <clothes color> - Changes a player's model
+ 60:#disguise <char name> <monster_name_or_monster_ID> - Changes disguise of a player
+ 60:#undisguise <char name> - Cancels disguise of a player
+ 60:#changesex <char name> - Changes sex of a player (all characters of the account)
+ 60:#warp/#rura+ <char name> <mapname> <x> <y> - Warps character to location of choice
diff --git a/conf/map/help.txt b/conf/map/help.txt
new file mode 100644
index 00000000..45d17c75
--- /dev/null
+++ b/conf/map/help.txt
@@ -0,0 +1,309 @@
+// This is help file that contains help messages for atcommands/charcommands.
+
+// Format:
+// <command>: "<help message>"
+
+// This file uses libconfig syntax.
+
+help: "Params: <command>\n" "Shows help for specified command."
+noask: "Auto rejects deals/invites."
+me: "Params: <message>\n" "Displays normal text as a message in this format: *name message* (like /me in mIRC)."
+fakename: "Params: <name>\n" "Changes your name to your choice temporarily."
+npctalk: "Params: <NPC name> <message>\n" "Forces a NPC to display a message in normal chat."
+broadcast: "Params: <message>\n" "Broadcasts a message with your name (in yellow)."
+kami: "Params: <message>\n" "Broadcasts a message without your name (in yellow)."
+kamib: "Params: <message>\n" "Broadcasts a message without your name (in blue)."
+localbroadcast: "Params: <message>\n" "Broadcasts a message with your name (in yellow) only on your map."
+commands: "Displays a list of commands that you can use."
+rates: "Displays the server's current rates."
+uptime: "Displays how long the server has been online."
+showdelay: "Shows/hides the \"There is a delay after this skill\" message."
+exp: "Displays current levels and % progress."
+mobinfo: "Params: <monster name|ID>\n" "Shows monster info (stats, exp, drops etc)."
+iteminfo: "Params: <item name|ID>\n" "Shows item info (type, price etc)."
+whodrops: "Params: <item name|ID>\n" "Shows who drops an item (monster with highest drop rates)."
+version: "Displays SVN version of the server."
+email: "Params: <current email> <new email>\n" "Changes your account e-mail address."
+where: "Params: <char name>\n" "Tells you the location of a character."
+time: "Shows the date and time of the server."
+showexp: "Displays/hides experience gained."
+showzeny: "Displays/hides Zeny gained."
+mobsearch: "Params: <monster name|ID>\n" "Shows the location of a certain mob on the current map."
+who: "Params: [<name>]\n" "Shows a list of online players and their party and guild."
+who2: "Params: [<name>]\n" "Shows a list of online players and their job."
+who3: "Params: [<name>]\n" "Shows a list of online players and their location."
+whomap: "@whomap/@whomap2/@whomap3 [map] - like @who/@who2/@who3 but only for specified map."
+whogm: "Params: [match_text] - Like @who+@who2+who3, but only for GM."
+guildspy: "Params: <guild name|id> - You will receive all messages of the guild channel (Chat logging must be enabled)"
+partyspy: "@partyspy <party name|id> - You will receive all messages of the party channel (Chat logging must be enabled)"
+mapinfo: "Params: [<0-3> [map]] - Give information about a map (general info +: 0: no more, 1: players, 2: NPC, 3: shops/chat)."
+go: "Params: <city name|number>\n" "Warps you to a city.\n"
+ " -3: (Memo point 2) 14: louyang 31: mora\n"
+ " -2: (Memo point 1) 15: start point 32: dewata\n"
+ " -1: (Memo point 0) 16: prison/jail 33: malangdo island\n"
+ " 0: prontera 17: jawaii 34: malaya port\n"
+ " 1: morocc 18: ayothaya 35: eclage\n"
+ " 2: geffen 19: einbroch\n"
+ " 3: payon 20: lighthalzen\n"
+ " 4: alberta 21: einbech\n"
+ " 5: izlude 22: hugel\n"
+ " 6: aldebaran 23: rachel\n"
+ " 7: xmas (lutie) 24: veins\n"
+ " 8: comodo 25: moscovia\n"
+ " 9: yuno 26: midgard camp\n"
+ " 10: amatsu 27: manuk\n"
+ " 11: gonryun 28: splendide\n"
+ " 12: umbala 29: brasilis\n"
+ " 13: niflheim 30: el dicastes\n"
+jumpto: "Params: <char name>\n" "Warps you to selected character."
+follow: "Params: <char name>\n" "Follow a player."
+mount: "Give/remove you a peco (Class is required, but not skill)"
+disguise: "Params: <monster name|ID>\n" "Change your appearence to other players to a mob."
+undisguise: "Restore your normal appearance."
+disguiseguild: "Disguises all online characters of a guild."
+undisguiseguild: "Restore the normal appearance of all characters of a guild."
+model: "Params: <hair ID: 0-17> <hair color: 0-8> <clothes color: 0-4> - Changes your characters appearence."
+size: "Params: <1-3> Changes your size (1-Smallest 2-Biggest 3-Normal)"
+sizeall: "Changes the size of all players."
+sizeguild: "Changes the size of all online characters of a guild."
+invisible: "Makes you character invisible (GM invisibility). Type again to become visible."
+save: "Sets respawn point to current spot."
+load: "Warps you to your save point."
+warp: "Params: <mapname> [<x> <y>]\n" "Warps you to the selected map and position."
+jump: "Params: [<x> [<y>]]\n" "Randomly warps you like a flywing."
+jobchange: "Params: <job name|ID>\n" "Changes your job.\n"
+ "----- Novice / 1st Class -----\n"
+ " 0 Novice 1 Swordman 2 Magician 3 Archer\n"
+ " 4 Acolyte 5 Merchant 6 Thief\n"
+ "----- 2nd Class -----\n"
+ " 7 Knight 8 Priest 9 Wizard 10 Blacksmith\n"
+ " 11 Hunter 12 Assassin 14 Crusader 15 Monk\n"
+ " 16 Sage 17 Rogue 18 Alchemist 19 Bard\n"
+ " 20 Dancer\n"
+ "----- High Novice / High 1st Class -----\n"
+ "4001 Novice High 4002 Swordman High 4003 Magician High 4004 Archer High\n"
+ "4005 Acolyte High 4006 Merchant High 4007 Thief High\n"
+ "----- Transcendent 2nd Class -----\n"
+ "4008 Lord Knight 4009 High Priest 4010 High Wizard 4011 Whitesmith\n"
+ "4012 Sniper 4013 Assassin Cross 4015 Paladin 4016 Champion\n"
+ "4017 Professor 4018 Stalker 4019 Creator 4020 Clown\n"
+ "4021 Gypsy\n"
+ "----- 3rd Class (Regular) -----\n"
+ "4054 Rune Knight 4055 Warlock 4056 Ranger 4057 Arch Bishop\n"
+ "4058 Mechanic 4059 Guillotine Cross 4066 Royal Guard 4067 Sorcerer\n"
+ "4068 Minstrel 4069 Wanderer 4070 Sura 4071 Genetic\n"
+ "4072 Shadow Chaser\n"
+ "----- 3rd Class (Transcendent) -----\n"
+ "4060 Rune Knight 4061 Warlock 4062 Ranger 4063 Arch Bishop\n"
+ "4064 Mechanic 4065 Guillotine Cross 4073 Royal Guard 4074 Sorcerer\n"
+ "4075 Minstrel 4076 Wanderer 4077 Sura 4078 Genetic\n"
+ "4079 Shadow Chaser\n"
+ "----- Expanded Class -----\n"
+ " 23 Super Novice 24 Gunslinger 25 Ninja 4045 Super Baby\n"
+ "4046 Taekwon 4047 Star Gladiator 4049 Soul Linker 4050 Gangsi\n"
+ "4051 Death Knight 4052 Dark Collector 4190 Ex. Super Novice 4191 Ex. Super Baby\n"
+ "4211 Kagerou 4212 Oboro 4215 Rebellion 4218 Summoner\n"
+ "----- Baby Novice And Baby 1st Class -----\n"
+ "4023 Baby Novice 4024 Baby Swordman 4025 Baby Magician 4026 Baby Archer\n"
+ "4027 Baby Acolyte 4028 Baby Merchant 4029 Baby Thief\n"
+ "---- Baby 2nd Class ----\n"
+ "4030 Baby Knight 4031 Baby Priest 4032 Baby Wizard 4033 Baby Blacksmith\n"
+ "4034 Baby Hunter 4035 Baby Assassin 4037 Baby Crusader 4038 Baby Monk\n"
+ "4039 Baby Sage 4040 Baby Rogue 4041 Baby Alchemist 4042 Baby Bard\n"
+ "4043 Baby Dancer\n"
+ "---- Baby 3rd Class ----\n"
+ "4096 Baby Rune Knight 4097 Baby Warlock 4098 Baby Ranger 4099 Baby Arch Bishop\n"
+ "4100 Baby Mechanic 4101 Baby Glt. Cross 4102 Baby Royal Guard 4103 Baby Sorcerer\n"
+ "4104 Baby Minstrel 4105 Baby Wanderer 4106 Baby Sura 4107 Baby Genetic\n"
+ "4108 Baby Shadow Chaser\n"
+ "---- Modes And Others ----\n"
+ " 22 Wedding 26 Christmas 27 Summer 4048 Star Gladiator (Union)\n"
+option: "Params: <param1> <param2>(stackable) <param3>(stackable)\n" "Adds different visual effects on or around your character.\n"
+" <param1> <param2> <param3>\n"
+"01: Stone 01: Sight 01: Sight 512: Cart Lv. 4\n"
+"02: Frozen 02: Curse 02: Hiding 1024: Cart Lv. 5\n"
+"03: Stun 04: Silence 04: Cloaking 2048: Orc Head\n"
+"04: Sleep 08: Signum 08: Cart Lv. 1 4096: Wedding\n"
+"06: Petrify 16: Blind 16: Falcon 8192: Ruwach\n"
+"07: Burning 32: Angelus 32: Riding 16384: Chasewalk\n"
+"08: Imprison 64: Bleeding 64: Invisible\n"
+"16: (Nothing) 128: D. Poison 128: Cart Lv. 2\n"
+"32: (Nothing) 256: Fear 256: Cart Lv. 3"
+heal: "Params: [<HP> <SP>]\n" "Heals the desired amount of HP and SP. No value specified will do a full heal."
+dye: "Params: <clothes palette no.>\n" "Changes your characters clothes color."
+hairstyle: "Params: <hairstyle no.>\n" "Changes your hair style."
+haircolor: "Params <hair palette no.>\n" "Changes your hair color."
+speed: "Params: <1-1000>\n" "Changes you walking speed. 1 being the fastest and 1000 the slowest. Default is 150."
+effect: "Params: <effect id> [<flag>]\n" "Give an effect to your character."
+dropall: "Throws all your possession on the ground."
+storeall: "Puts all your possessions in storage."
+killable: "Make your character killable."
+memo: "Params: [memo position]\n" "Set/change a memo location (no position: display memo points)."
+spiritball: "Params: <1-100>\n" "Gives you \"spirit spheres\" like from the skill \"Call Spirits\".\n"
+questskill: "Params: <#>\n" "Gives you the specified quest skill\n"
+"Novice = 142: First Aid, 143: Act Dead\n"
+"Archer = 147: Create Arrow, 148: Charge Arrow\n"
+"Swordman = 144: Moving HP Recovery, 145: Attack Weak Point, 146: Auto Berserk\n"
+"Acolyte = 156: Holy Light\n"
+"Thief = 149: Throw Sand, 150: Back Sliding, 151: Take Stone, 152: Throw Stone\n"
+"Merchant = 153: Cart Revolution, 154: Change Cart, 155: Crazy Uproar, 2535: Open Buying Store\n"
+"Magician = 157: Energy Coat\n"
+"Hunter = 1009: Phantasmic Arrow\n"
+"Bard = 1010: Pang Voice\n"
+"Dancer = 1011: Wink of Charm\n"
+"Knight = 1001: Charge Attack\n"
+"Crusader = 1002: Shrink\n"
+"Priest = 1014: Redemptio\n"
+"Monk = 1015: Ki Translation, 1016: Ki Explosio\n"
+"Assassin = 1003: Sonic Acceleration, 1004: Throw Venom Knife\n"
+"Rogue = 1005: Close Confine\n"
+"Blacksmith = 1012: Unfair Trick, 1013: Greed\n"
+"Alchemist = 238: Basis of Life\n"
+"Wizard = 1006: Sight Blaster\n"
+"Sage = 1007: Create Elemental Converter, 1008: Elemental Change (Water), 1017: Elemental Change (Earth), 1018: Elemental Change (Fire), 1019: Elemental Change (Wind)"
+lostskill: "Params: <#>\n" "Takes away the specified quest skill from you\n"
+"Novice = 142: First Aid, 143: Act Dead\n"
+"Archer = 147: Create Arrow, 148: Charge Arrow\n"
+"Swordman = 144: Moving HP Recovery, 145: Attack Weak Point, 146: Auto Berserk\n"
+"Acolyte = 156: Holy Light\n"
+"Thief = 149: Throw Sand, 150: Back Sliding, 151: Take Stone, 152: Throw Stone\n"
+"Merchant = 153: Cart Revolution, 154: Change Cart, 155: Crazy Uproar, 2535: Open Buying Store\n"
+"Magician = 157: Energy Coat\n"
+"Hunter = 1009: Phantasmic Arrow\n"
+"Bard = 1010: Pang Voice\n"
+"Dancer = 1011: Wink of Charm\n"
+"Knight = 1001: Charge Attack\n"
+"Crusader = 1002: Shrink\n"
+"Priest = 1014: Redemptio\n"
+"Monk = 1015: Ki Translation, 1016: Ki Explosio\n"
+"Assassin = 1003: Sonic Acceleration, 1004: Throw Venom Knife\n"
+"Rogue = 1005: Close Confine\n"
+"Blacksmith = 1012: Unfair Trick, 1013: Greed\n"
+"Alchemist = 238: Basis of Life\n"
+"Wizard = 1006: Sight Blaster\n"
+"Sage = 1007: Create Elemental Converter, 1008: Elemental Change (Water), 1017: Elemental Change (Earth), 1018: Elemental Change (Fire), 1019: Elemental Change (Wind)"
+skillid: "Params: <name>\n" "Look up a skill by name"
+useskill: "Params: <skillid> <skillv> <target>\n" "Use a skill on target"
+skilltree: "Params: <skillnum> <charname>\n" "Prints the skill tree needed to get a skill for the target player."
+marry: "Params: <player name>\n" "Marry another player."
+divorce: "Divorce player."
+alive: "Revives yourself from death."
+blvl: "Params: <number of levels>\n" "Raises your base level the desired number of levels."
+jlvl: "Params: <number of levels>\n" "Raises your job level the desired number of levels."
+allskill: "Give you all skills."
+stpoint: "Params: <number of points> - Gives you the desired number of stat points."
+skpoint: "Params: <number of points> - Gives you the desired number of skill points."
+zeny: "Params: <amount> - Gives you desired amount of Zeny."
+cash: "Params: <amount> - Gives you the specified amount of cash points."
+points: "Params: <amount> - Gives you the specified amount of Kafra Points."
+str: "Params: <amount>\n" "Raises STR by given amount."
+agi: "Params: <amount>\n" "Raises AGI by given amount."
+dex: "Params: <amount>\n" "Raises DEX by given amount."
+vit: "Params: <amount>\n" "Raises VIT by given amount."
+int: "Params: <amount>\n" "Raises INT by given amount."
+luk: "Params: <amount>\n" "Raises LUK by given amount."
+allstats: "Params: <value>\n" "Adds value in all stats (maximum if no value)."
+addwarp: "Params: <map name> <x coord> <y coord>\n"
+killmonster2: "Kills all monsters of your map (without drops)."
+monster: "Params: <monster name|ID> [<number to spawn> [<desired_monster_name> [<x coord> [<y coord>]]]]\n"
+ "@monster2 <desired_monster_name> <monster name|ID> [<number to spawn> [<x coord> [<y coord>]]]\n"
+"@spawn/@monster/@summon/@monster2 \"desired monster name\" <monster name|ID> [<number to spawn> [<x coord> [<y coord>]]]\n"
+"@spawn/@monster/@summon/@monster2 <monster name|ID> \"desired monster name\" [<number to spawn> [<x coord> [<y coord>]]]\n"
+" Spawns the desired monster with any desired name."
+monstersmall: "Params: <monster name|ID>\n" "Spawns a smaller version of a monster."
+monsterbig: "Params: <monster name|ID>\n" "Spawns a larger version of a monster."
+killmonster: "Params: <map>\n" "Kill all monsters of the map (they drop)"
+autoloot: "Params: <on|off|#>\n" "Makes items go straight into your inventory."
+autotrade: "Allows you to vend while you are offline."
+changegm: "Params: <charname>\n" "Changes the leader of your guild (You must be guild leader)"
+changeleader: "Params: <charname>\n" "Changes the leader of your party (You must be party leader)"
+request: "Params: <message>\n" "Sends a message to all connected GMs (via the gm whisper system)"
+sound: "Params: <path to file in data folder or GRF file>\n" "Plays a sound from the data folder or GRF file located on the client."
+clone: "Params: <charname>\n" "Spawns a supportive clone of the given player."
+slaveclone: "Params: <charname>\n" "Spawns a supportive clone of the given player that follows the creator around."
+evilclone: "Params: <charname>\n" "Spawns an aggressive clone of the given player."
+changesex: "Changes your gender."
+duel: "Starts a duel."
+invite: "Invites a player to a duel."
+accept: "Accepts an invitation to a duel."
+reject: "Rejects an invitation to a duel."
+leave: "Leaves a duel."
+mail: "Open mail box."
+storage: "Opens storage."
+itemreset: "Remove all your items."
+guildstorage: "Opens guild storage."
+idsearch: "Params: <part_of_item_name>\n" "Search all items that name have part_of_item_name"
+refine: "Params: <equip position> <+/- amount>"
+produce: "Params: <equip name or equip ID> <element> <# of very's>\n"
+" Element: 0=None 1=Ice 2=Earth 3=Fire 4=Wind\n"
+" You can add up to 3 Star Crumbs and 1 element\n"
+repairall: "Repair all items of your inventory"
+item: "Params: <item name or ID> <quantity>\n" "Gives you the desired item."
+item2: "Params: <item name or ID> <quantity> <identified_flag> <refine> <broken_flag> <Card1> <Card2> <Card3> <Card4>\n" "Gives you the desired item."
+pvpon: "Turns pvp on on the current map"
+pvpoff: "Turns pvp off on the current map"
+gvgon: "Turns gvg on on the current map"
+gvgoff: "Turns gvg off on the current map"
+agitstart: "Starts War of Emperium"
+agitend: "End War of Emperium"
+party: "Params: <party_name>\n" "Create a party."
+guild: "Params: <guild_name>\n" "Create a guild."
+glvl: "Params: <# of levels>\n" "Raise Guild by desired number of levels"
+guildrecall: "Params: <guild name|ID>\n" "Warps all online characters of a guild to you."
+partyrecall: "Params: <party name|ID>\n" "Warps all online characters of a party to you."
+petrename: "Re-enable pet rename"
+pettalk: "Params: <message>\n" "Makes your pet say a message."
+petfriendly: "Params: <#>\n" "Set pet friendly amount (0-1000) 1000 = Max"
+pethungry: "Params: <#>\n" "Set pet hungry amount (0-100) 100 = Max"
+hatch: "Create a pet from your inventory eggs list."
+makeegg: "Params: <pet_id>\n" "Gives pet egg for monster number in pet DB"
+kick: "Params: <char name>\n" "Kicks specified character off the server"
+unjail: "Params: <char name>\n" "Discharges specified character/prisoner"
+kill: "Params: <char name>\n" "Kills player."
+recall: "Params: <char name>\n" "Warps target character to you."
+raise: "Params: <char name>\n" "Revives target character."
+block: "Params: <char name>\n" "Permanently blocks an account."
+unblock: "Params: <char name>\n" "Unblocks an account."
+ban: "Params: <time> <name>\n" "Temporarily ban an account.\n"
+ " time usage: adjustment (+/- value) and element (y/a, m, d/j, h, mn, s)\n"
+ " Example: @ban +1m-2mn1s-6y testplayer\n"
+unban: "Params: <name> - Unban a account"
+jail: "Params: <char name> - Sends specified character in jails"
+trade: "Params: <char name> - Open a trade window with a another player"
+recallall: "Warps every character online to you."
+doom: "Kills all NON GM chars on the server."
+doommap: "Kills all non GM characters on the map."
+raisemap: "Resurrects all characters on the map."
+night: "Enables night mode on all maps, all characters are affected."
+day: "Disables night mode and restores regular lighting, all characters are affected."
+skillon: "turn skills on for a map"
+skilloff: "turn skills on for a map"
+snow: "Makes all maps to have the snow weather effect."
+clouds: "Makes all maps to have the cloudy weather effect."
+clouds2: "Makes all maps to have another cloudy weather effect."
+fog: "Makes all maps to have the fog weather effect."
+fireworks: "Makes all maps to have the fireworks weather effect."
+sakura: "Makes all maps to have the sakura weather effect."
+leaves: "Makes all maps to have the leaves weather effect."
+shownpc: "Params: <NPC name>\n" "Enable a NPC"
+hidenpc: "Params: <NPC name>\n" "Disable a NPC"
+loadnpc: "Params: <path to script>\n" "Load the specified script file path."
+unloadnpc: "Params: <NPC name>\n" "Unload the specified NPC according to name."
+adjgroup: "Params: <level> <char name> - Do a temporary adjustment of the GM level of a player"
+kickall: "Kick all characters off the server"
+mapexit: "Kick all players and shut down map-server."
+reloaditemdb: "Reload item database."
+reloadmobdb: "Reload monster database."
+reloadquestdb: "Reload quest database."
+reloadskilldb: "Reload skills definition database."
+reloadscript: "Reload all scripts."
+gat: "For debugging (you inspect around gat)"
+send: "For debugging (packet variety)"
+nuke: "Params: <char name>\n" "Blow somebody up, including those surrounding them."
+autoloottype: "Manage a list of autolooting item types.\n"
+" To add an item type to the list, use \"@autoloottype +<type name>\".\n"
+" To remove an item type, use \"@autoloottype -<type name>\".\n"
+" Type List: healing, usable, etc, weapon, armor, card, petegg, petarmor, ammo.\n"
+" \"@autoloottype reset\" will clear your autoloottype list."
+feelreset: "Reset 'Feeling' maps."
+hatereset: "Reset 'Hatred' targets."
diff --git a/conf/map/logs.conf b/conf/map/logs.conf
new file mode 100644
index 00000000..85e110f2
--- /dev/null
+++ b/conf/map/logs.conf
@@ -0,0 +1,184 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Hercules Log configuration file.
+//=========================================================================
+// Note 1: Value is a config switch (on/off, yes/no or 1/0)
+// Note 2: Value is in percents (100 means 100%)
+// Note 3: Value is a bit field. If no description is given, assume unit
+// types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//=========================================================================
+
+map_log: {
+ // Enable Logs? (Note 3)
+ // 0x00000000 - Don't log at all
+ // 0x00000001 - (T) Log trades X
+ // 0x00000002 - (V) Log vending transactions X
+ // 0x00000004 - (P) Log items drop/picked by players X
+ // 0x00000008 - (M) Log items dropped by monsters
+ // 0x00000010 - (S) Log NPC transactions (buy/sell)
+ // 0x00000020 - (N) Log Script transactions (items deleted/acquired through quests)
+ // 0x00000040 - (D) Log items stolen from mobs (Steal/Gank)
+ // 0x00000080 - (C) Log player-used items (consumables/pet&hom&merc food/items used for skills&attacks)
+ // 0x00000100 - (O) Log produced/ingredient items
+ // 0x00000200 - (U) Log MVP prize items
+ // 0x00000400 - (A) Log player created/deleted items (through @/# commands)
+ // 0x00000800 - (R) Log items placed/retrieved from storage.
+ // 0x00001000 - (G) Log items placed/retrieved from guild storage.
+ // 0x00002000 - (E) Log mail system transactions.
+ // 0x00004000 - (I) Log auction system transactions.
+ // 0x00008000 - (B) Log buying store transactions
+ // 0x00010000 - (X) Log other transactions
+ // 0x00020000 - (K) Log account bank transactions
+ // 0x00040000 - (Y) Divorce
+ // 0x00080000 - (Z) Roulette
+ // 0x00100000 - (W) Rental
+ // 0x00200000 - (Q) Card
+ // 0x00400000 - (J) Invalid in inventory
+ // 0x00800000 - (H) Invalid in cart
+ // 0x01000000 - (@) Egg
+ // 0x02000000 - (0) Quest
+ // 0x04000000 - (1) Skill
+ // 0x08000000 - (2) Refine
+ // 0x10000000 - (L) Log items looted by monsters
+ // 0x20000000 - (3) Achievements
+ // Example: Log trades+vending+script items+created items: 1+2+32+1024 = 1059
+ // Please note that moving items from inventory to cart and back is not logged by design.
+ enable: 0xFFDF7FF
+
+ // Logging files/tables
+ // Following settings specify where to log to. If 'use_sql' is
+ // true, SQL tables are assumed, otherwise flat files.
+ database: {
+ // Use MySQL Logs? (Note 1)
+ use_sql: true
+
+ // Flat files
+ // log_gm_db: "log/atcommandlog.log"
+ // log_branch_db: "log/branchlog.log"
+ // log_chat_db: "log/chatlog.log"
+ // log_mvpdrop_db: "log/mvplog.log"
+ // log_npc_db: "log/npclog.log"
+ // log_pick_db: "log/picklog.log"
+ // log_zeny_db: "log/zenylog.log"
+ // SQL tables
+ log_gm_db: "atcommandlog"
+ log_branch_db: "branchlog"
+ log_chat_db: "chatlog"
+ log_mvpdrop_db: "mvplog"
+ log_npc_db: "npclog"
+ log_pick_db: "picklog"
+ log_zeny_db: "zenylog"
+ }
+
+ // Log Dead Branch Usage (Note 1)
+ log_branch: false
+
+ // Track Zeny Changes
+ // Filter settings
+ // 0 - don't log; 1 - log any zeny changes; 2.....1000000 - minimal absolute logging zeny value
+ log_zeny: 1
+
+ // Log MVP Monster Drops (Note 1)
+ // Outdated. Use Pick_Log instead. But this log could be useful to keep track slayed MVPs
+ log_mvpdrop: false
+
+ // Log AtCommands & Charcommands (Note 1)
+ // Only commands issued by player groups ('conf/groups.conf') with
+ // 'log_commands' setting set to 'true' will be logged.
+ log_commands: true
+
+ // Log NPC 'logmes' commands (Note 1)
+ log_npc: true
+
+ // Logging filters
+ filter: {
+ item: {
+ // Filters
+ // if any condition is true then the item will be logged
+ // 0 = Don't log at all
+ // 1 = Log any item
+ // Advanced Filter Bits by item type: ||
+ // 0x002 - Healing items (0)
+ // 0x004 - Etc Items(3) + Arrows (10)
+ // 0x008 - Usable Items(2) + Lures,Scrolls(11) + Usable Cash Items(18)
+ // 0x010 - Weapon(4)
+ // 0x020 - Shields,Armor,Headgears,Accessories,etc(5)
+ // 0x040 - Cards(6)
+ // 0x080 - Pet Accessories(8) + Eggs(7) (well, monsters don't drop 'em but we'll use the same system for ALL logs)
+ // 0x100 - Log expensive items ( >= price_items_log)
+ // 0x200 - Log big amount of items ( >= amount_items_log)
+ // 0x400 - Log refined items (if their refine >= refine_items_log )
+ // 0x800 - Log rare items (if their drop chance <= rare_items_log )
+ // Examples: (log filters)
+ // log_filter: 1 = logs ANY items
+ // log_filter: 0x2 = logs only HEALING items
+ // log_filter: 0x4 = logs only Etc Items and Arrows
+ // log_filter: 0x40 = logs only Cards
+ // log_filter: 0x142 = logs only Healing items, Cards and those items which price is >= price_items_log
+ // log_filter: 0xff0 = logs all items (including all rare, big amount) except healing, etc, arrows and useble ones
+ log_filter: 1
+
+ // Log Items which Refine >= refine_items_log
+ refine_items_log: 5
+
+ // Log Items whith min drop rate <= rare_items_log
+ // 1 = 0.01%, 100 = 1% drop chance, etc
+ rare_items_log: 100
+
+ // don't log it if the current item buy price < price_items_log
+ price_items_log: 1000
+
+ // don't log it if the current item amount < amount_items_log
+ amount_items_log: 100
+ } // item
+
+ chat: {
+ // Log CHAT (Global, Whisper, Party, Guild, Main chat) (Note 3)
+ // LOGGING FILTERS
+ // =============================================================
+ // 0x00 = Don't log at all
+ // 0x01 - Log Global messages
+ // 0x02 - Log Whisper messages
+ // 0x04 - Log Party messages
+ // 0x08 - Log Guild messages
+ // 0x10 - Log Main chat messages
+ // 0x20 - Log Clan messages
+ // Example:
+ // log_chat: 0x5 = logs both Whisper & Party messages
+ // log_chat: 0x8 = logs only Guild messages
+ // log_chat: 0x2f = logs everything
+ // FIXME: This isn't fully functional, as of now it's only checking
+ // if the log is active or not [Panikon]
+ log_chat: 0x11
+
+ // Disable chat logging when WoE is running? (Note 1)
+ log_chat_woe_disable: false
+ } // chat
+ } // filter
+}
+
+import: "conf/import/logs.conf"
diff --git a/conf/map/map-server.conf b/conf/map/map-server.conf
new file mode 100644
index 00000000..be19a1cb
--- /dev/null
+++ b/conf/map/map-server.conf
@@ -0,0 +1,114 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Map Server Configuration File
+//=========================================================================
+
+map_configuration: {
+ @include "conf/global/console.conf"
+ @include "conf/import/sql_connection.conf"
+
+ // map_list and map_removed
+ @include "conf/map/maps.conf"
+
+ // When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands.
+ help_txt: "conf/map/help.txt"
+ charhelp_txt: "conf/map/charhelp.txt"
+
+ // Enable the @guildspy and @partyspy at commands?
+ // Note that enabling them decreases packet sending performance.
+ enable_spy: false
+
+ // Read map data from GATs and RSWs in GRF files or a data directory
+ // as referenced by grf-files.txt rather than from the mapcache?
+ use_grf: false
+
+ // When employing more than one language (see db/translations.conf),
+ // this setting is used as a fallback
+ default_language: "English"
+
+ // Information related to inter-server behavior
+ inter: {
+ // Interserver communication passwords, set in the login server database
+ userid: "s1"
+ passwd: "p1"
+
+ // Character Server IP
+ // The map server connects to the character server using this IP address.
+ // NOTE: This is useful when you are running behind a firewall or are on
+ // a machine with multiple interfaces.
+ //char_ip: "127.0.0.1"
+
+ // The map server listens on the interface with this IP address.
+ // NOTE: This allows you to run multiple servers on multiple interfaces
+ // while using the same ports for each server.
+ //bind_ip: "127.0.0.1"
+
+ // Map Server IP
+ // The IP address which clients will use to connect.
+ // Set this to what your server's public IP address is.
+ //map_ip: "127.0.0.1"
+
+ @include "conf/import/ports.conf"
+ }
+
+ database: {
+ // Where should all database data be read from?
+ db_path: "db"
+
+ // Database autosave time
+ // All characters are saved on this time in seconds (example:
+ // autosave of 60 secs with 60 characters online -> one char is
+ // saved every second)
+ autosave_time: 300
+
+ // Min database save intervals (in ms)
+ // Prevent saving characters faster than at this rate (prevents
+ // char-server save-load getting too high as character-count
+ // increases)
+ minsave_time: 100
+
+ // Apart from the autosave_time, players will also get saved
+ // when involved in the following (add as needed):
+ // 0x001: After every successful trade
+ // 0x002: After every vending transaction
+ // 0x004: After closing storage/guild storage.
+ // 0x008: After hatching/returning to egg a pet.
+ // 0x010: After successfully sending a mail with attachment
+ // 0x020: After successfully submitting an item for auction
+ // 0x040: After successfully get/delete/complete a quest
+ // 0x080: After every buying store transaction
+ // 0x100: After every bank transaction (deposit/withdraw)
+ // 0x200: After every allow party flag change
+ // NOTE: These settings decrease the chance of dupes/lost items
+ // when there's a server crash at the expense of increasing the
+ // map/char server lag. If your server rarely crashes, but
+ // experiences interserver lag, you may want to set these off.
+ save_settings: 0x1ff
+ }
+}
+
+import: "conf/import/map-server.conf"
diff --git a/conf/map/maps.conf b/conf/map/maps.conf
new file mode 100644
index 00000000..68d2bd20
--- /dev/null
+++ b/conf/map/maps.conf
@@ -0,0 +1,136 @@
+map_removed: (
+)
+map_list: (
+ "000-1",
+ "001-1",
+ "001-2",
+ "001-3",
+ "002-1",
+ "002-2",
+ "002-3",
+ "002-4",
+ "002-5",
+ "003-1",
+ "003-4",
+ "004-1",
+ "004-3",
+ "004-4",
+ "004-5",
+ "005-3",
+ "006-1",
+ "006-2",
+ "006-3",
+ "007-1",
+ "007-2",
+ "008-1",
+ "009-1",
+ "009-2",
+ "009-3",
+ "009-4",
+ "009-5",
+ "009-6",
+ "009-7",
+ "009-8",
+ "010-1",
+ "010-2",
+ "011-1",
+ "011-3",
+ "011-4",
+ "011-6",
+ "012-1",
+ "012-3",
+ "012-4",
+ "013-1",
+ "013-2",
+ "013-3",
+ "014-1",
+ "014-3",
+ "015-1",
+ "015-3",
+ "016-1",
+ "016-2",
+ "017-1",
+ "017-2",
+ "017-3",
+ "017-4",
+ "017-9",
+ "018-1",
+ "018-2",
+ "018-3",
+ "019-1",
+ "019-3",
+ "019-4",
+ "020-1",
+ "020-2",
+ "020-3",
+ "021-3",
+ "023-1",
+ "023-2",
+ "023-3",
+ "025-1",
+ "025-3",
+ "025-4",
+ "026-1",
+ "026-2",
+ "027-1",
+ "027-2",
+ "027-3",
+ "027-4",
+ "027-5",
+ "027-6",
+ "027-7",
+ "027-8",
+ "028-1",
+ "028-3",
+ "029-1",
+ "029-2",
+ "029-3",
+ "029-4",
+ "030-1",
+ "030-2",
+ "030-3",
+ "030-4",
+ "031-1",
+ "031-2",
+ "031-3",
+ "031-4",
+ "032-3",
+ "033-1",
+ "034-1",
+ "034-2",
+ "035-2",
+ "036-2",
+ "041-1",
+ "042-1",
+ "043-1",
+ "043-3",
+ "043-4",
+ "045-1",
+ "046-1",
+ "046-3",
+ "047-1",
+ "047-3",
+ "048-2",
+ "051-1",
+ "051-3",
+ "052-1",
+ "052-2",
+ "055-1",
+ "055-3",
+ "056-2",
+ "057-1",
+ "069-2",
+ "070-1",
+ "070-3",
+ "099-1",
+ "099-2",
+ "099-3",
+ "099-4",
+ "099-5",
+ "099-6",
+ "099-7",
+ "099-8",
+ "botcheck",
+ "fermi",
+ "sec_pri",
+)
diff --git a/conf/map/script.conf b/conf/map/script.conf
new file mode 100644
index 00000000..98a39f52
--- /dev/null
+++ b/conf/map/script.conf
@@ -0,0 +1,74 @@
+//================= Hercules Configuration ================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//================= License ===============================================
+//= This file is part of Hercules.
+//= http://herc.ws - http://github.com/HerculesWS/Hercules
+//=
+//= Copyright (C) 2014-2019 Hercules Dev Team
+//=
+//= Hercules is free software: you can redistribute it and/or modify
+//= it under the terms of the GNU General Public License as published by
+//= the Free Software Foundation, either version 3 of the License, or
+//= (at your option) any later version.
+//=
+//= This program is distributed in the hope that it will be useful,
+//= but WITHOUT ANY WARRANTY; without even the implied warranty of
+//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//= GNU General Public License for more details.
+//=
+//= You should have received a copy of the GNU General Public License
+//= along with this program. If not, see <http://www.gnu.org/licenses/>.
+//=========================================================================
+//= Hercules Script Configuration File.
+//=========================================================================
+
+script_configuration: {
+ // Specifies whether or not an error should be outputed when there's a
+ // mismatch between the number of provided arguments and of expected
+ // arguments
+ // Default: true
+ warn_func_mismatch_paramnum: true
+
+ // Specifies whether or not each built-in function's arguments are
+ // checked for correct type. When a function is given an argument
+ // different from what it expects, a warning is thrown before the
+ // function is ran anyway.
+ // Default: true
+ warn_func_mismatch_argtypes: true
+
+ // Maximum number of operations before considering a set of operations too intensive
+ // Defaults to 655360
+ check_cmdcount: 655360
+
+ // Maximum number of iterations before considering a loop infinite
+ // Defaults to 2048
+ check_gotocount: 2048
+
+ // Default value of the 'min' argument of the script command 'input'.
+ // When the 'min' argument isn't provided, this value is used instead.
+ // Defaults to 0.
+ input_min_value: 0
+
+ // Default value of the 'max' argument of the script command 'input'.
+ // When the 'max' argument isn't provided, this value is used instead.
+ // Defaults to INT_MAX.
+ //input_max_value: 2147483647
+ input_max_value: 10000000
+
+ // Specifies whether functions not explicitly marked with a "private" or
+ // "public" keyword should be treated as "private" by default.
+ // Default: true
+ functions_private_by_default: true
+
+ // Specifies whether public functions can be invoked as NPC events. This
+ // allows, for example, to use a `public function OnDeath { ... }` instead
+ // of a `OnDeath:` label for mob death events.
+ functions_as_events: true
+}
+
+import: "conf/import/script.conf"
diff --git a/conf/messages.conf b/conf/messages.conf
new file mode 100644
index 00000000..cdb4f1e7
--- /dev/null
+++ b/conf/messages.conf
@@ -0,0 +1,1649 @@
+//===== Hercules Message Configuration =======================
+//= Hercules messages.conf
+//===== Description: =========================================
+//= This file handles all messages set throughout the server.
+//============================================================
+// For translation, just change msg here (second line),
+// no need to modify source code or alternatively,
+// use conf/import/msg_conf.txt.
+//============================================================
+// Format:
+// // English message
+// msg_number: translated message
+//============================================================
+
+// 0-499: reserved for GM commands
+// 500-549: reserved for others
+// 550-699: reserved for job names (also loaded by char server)
+// 900-1500: @atcommand
+
+// To disable a string (%s) field, make its max length 0:
+// eg:
+// 270: *%s %s* (@me format)
+// 270: *%.0s%s* (remove the character's name from it)
+
+// Messages of GM commands
+// -----------------------
+
+0: Warped.
+1: Map not found.
+2: Invalid coordinates, using random target cell.
+3: Character not found.
+4: Jump to %s
+5: Jump to %d %d
+6: Your save point has been changed.
+7: Warping to save point.
+8: Speed changed.
+9: Options changed.
+10: Invisible: Off
+11: Invisible: On
+12: Your job has been changed.
+13: You've died.
+14: Character killed.
+15: Unknown
+16: You've been revived!
+17: HP, SP recovered.
+18: Item created.
+19: Invalid item ID or name.
+20: All of your items have been removed.
+21: Base level raised.
+22: Base level lowered.
+23: Job level can't go any higher.
+24: Job level raised.
+25: Job level lowered.
+26: [%d] seconds left until you can use
+27: Storage has been not loaded yet.
+28: No player found.
+29: 1 player found.
+30: %d players found.
+31: PvP: Off.
+32: PvP: On.
+33: GvG: Off.
+34: GvG: On.
+35: This job has no alternate body styles.
+36: Appearance changed.
+37: An invalid number was specified.
+38: Invalid location number, or name.
+39: All monsters summoned!
+40: Invalid monster ID or name.
+41: Unable to decrease the number/value.
+42: Stat changed.
+43: You're not in a guild.
+44: You're not the master of your guild.
+45: Guild level change failed.
+46: %s recalled!
+47: Base level can't go any higher.
+48: Any work in progress (NPC dialog, manufacturing ...) quit and try again.
+49: Unable to Teleport in this area
+50: This skill cannot be used within this area.
+51: This item cannot be used within this area.
+//52 FREE
+53: '%s' stats:
+54: No player found in map '%s'.
+55: 1 player found in map '%s'.
+56: %d players found in map '%s'.
+//57-58 FREE
+59: Night Mode Activated.
+60: Day Mode Activated.
+61: The holy messenger has given judgement.
+62: Judgement has passed.
+63: Mercy has been shown.
+64: Mercy has been granted.
+//65-69 FREE
+70: You have learned the skill.
+71: You have forgotten the skill.
+72: War of Emperium has been initiated.
+73: War of Emperium is currently in progress.
+74: War of Emperium has been ended.
+75: War of Emperium is currently not in progress.
+76: All skills have been added to your skill tree.
+77: Search results for '%s' (name: id):
+78: %s: %d
+79: %d results found.
+80: Please specify a display name or monster name/id.
+81: Your GM level doesn't authorize you to perform this action on the specified player.
+82: Roulette is disabled
+//83 FREE
+84: All stats changed!
+85: Invalid time for ban command.
+//86-87 FREE
+88: Sending request to login server...
+89: Night mode is already enabled.
+90: Day mode is already enabled.
+//91 FREE
+92: All characters recalled!
+93: All online characters of the %s guild have been recalled to your position.
+94: Incorrect name/ID, or no one from the specified guild is online.
+95: All online characters of the %s party have been recalled to your position.
+96: Incorrect name/ID, or no one from the specified party is online.
+97: Item database has been reloaded.
+98: Monster database has been reloaded.
+99: Skill database has been reloaded.
+100: Scripts have been reloaded.
+//101 FREE
+102: You have mounted a Peco Peco.
+103: No longer spying on the %s guild.
+104: Spying on the %s guild.
+105: No longer spying on the %s party.
+106: Spying on the %s party.
+107: All items have been repaired.
+108: No item need to be repaired.
+109: Player has been nuked!
+110: NPC Enabled.
+111: This NPC doesn't exist.
+112: NPC Disabled.
+113: %d item(s) removed by a GM.
+114: %d item(s) removed from the player.
+115: %d item(s) removed. Player had only %d on %d items.
+116: Character does not have the specified item.
+117: You have been jailed by a GM.
+118: Player warped to jail.
+119: This player is not in jail.
+120: A GM has discharged you from jail.
+121: Player unjailed.
+122: Disguise applied.
+123: Invalid Monster/NPC name/ID specified.
+124: Disguise removed.
+125: You're not disguised.
+//Clone Messages
+126: Cannot clone a player of higher GM level than yourself.
+127: You've reached your slave clones limit.
+128: Evil clone spawned.
+129: Unable to spawn evil clone.
+130: Clone spawned.
+131: Unable to spawn clone.
+132: Slave clone spawned.
+133: Unable to spawn slave clone.
+//134-136 FREE (possibly for other clone types)
+137: CvC: Off
+138: CvC: On
+139: CvC ON |
+140: You can't join in a clan if you're in a guild.
+141: CvC is already Off.
+142: CvC is already On.
+143: Commands are disabled in this map.
+144: Invalid e-mail. If your email hasn't been set, use a@a.com.
+145: Invalid new e-mail. Please enter a real e-mail address.
+146: New e-mail must be a real e-mail address.
+147: New e-mail must be different from the current e-mail address.
+148: Information sent to login-server via char-server.
+149: Impossible to increase the number/value.
+150: No GM found.
+151: 1 GM found.
+152: %d GMs found.
+153: %s is Unknown Command.
+154: %s failed.
+155: You are unable to change your job.
+156: HP or/and SP modified.
+157: HP and SP have already been recovered.
+158: Base level can't go any lower.
+159: Job level can't go any lower.
+160: PvP is already Off.
+161: PvP is already On.
+162: GvG is already Off.
+163: GvG is already On.
+//164 FREE
+165: All monsters killed!
+166: No item has been refined.
+167: 1 item has been refined.
+168: %d items have been refined.
+169: The item (%d: '%s') is not equippable.
+170: The item is not equippable.
+171: %d - void
+172: Speed returned to normal.
+173: Please enter a valid madogear type.
+174: Number of status points changed.
+175: Number of skill points changed.
+176: Current amount of zeny changed.
+177: You cannot decrease that stat anymore.
+178: You cannot increase that stat anymore.
+179: Guild level changed.
+180: The monster/egg name/ID doesn't exist.
+181: You already have a pet.
+182: Pet intimacy changed.
+183: Pet intimacy is already at maximum.
+184: Sorry, but you have no pet.
+185: Pet hunger changed.
+186: Pet hunger is already at maximum.
+187: You can now rename your pet.
+188: You can already rename your pet.
+//189-194 FREE
+195: All players have been kicked!
+196: You already have this quest skill.
+197: This skill number doesn't exist or isn't a quest skill.
+198: This skill number doesn't exist.
+//199-200 FREE
+201: You don't have this quest skill.
+//202-203 FREE
+204: You can't open a shop on this cell.
+205: Maybe you meant:
+206: '%s' skill points reset.
+207: '%s' stats points reset.
+208: '%s' skill and stat points have been reset.
+//209-211 FREE
+212: Cannot mount while in disguise.
+213: You need %s to mount!
+214: You have released your Peco Peco.
+215: Your class can't mount!
+//216-218 FREE
+219: %d day
+220: %d days
+221: %d hour
+222: %d hours
+223: %d minute
+224: %d minutes
+225: and %d second
+226: and %d seconds
+227: Party modification is disabled in this map.
+228: Guild modification is disabled in this map.
+229: Your effect has changed.
+230: Server time (normal time): %A, %B %d %Y %X.
+231: Game time: The game is in permanent daylight.
+232: Game time: The game is in permanent night.
+233: Game time: The game is in night for %s.
+//234 FREE
+235: Game time: The game is in daylight for %s.
+//236 FREE
+237: Game time: After, the game will be in night for %s.
+238: Game time: A day cycle has a normal duration of %s.
+239: Game time: After, the game will be in daylight for %s.
+240: %d monster(s) summoned!
+241: You can now attack and kill players freely.
+242: You can now be attacked and killed by players.
+243: Skills have been disabled in this map.
+244: Skills have been enabled in this map.
+245: Server Uptime: %ld days, %ld hours, %ld minutes, %ld seconds.
+246: Your GM level doesn't authorize you to perform this action.
+247: You are not authorized to warp to this map.
+248: You are not authorized to warp from your current map.
+249: You are not authorized to warp to your save map.
+250: You have already opened your storage. Close it first.
+251: You have already opened your guild storage. Close it first.
+252: You are not in a guild.
+253: You already are at your destination!
+254: GM command configuration has been reloaded.
+255: Battle configuration has been reloaded.
+256: Status database has been reloaded.
+257: Player database has been reloaded.
+258: Sent packet 0x%x (%d)
+259: Invalid packet
+260: This item cannot be traded.
+261: Script could not be loaded.
+262: Script loaded.
+263: This item cannot be dropped.
+264: This item cannot be stored.
+265: %s has bought your item(s).
+266: Some of your items cannot be vended and were removed from the shop.
+//267-268 FREE
+269: Displaying first %d out of %d matches
+//@me output format
+270: * :%s %s: *
+271: You can't drop items in this map
+272: You can't trade in this map
+273: Available commands:
+274: %d commands found.
+//275 FREE
+276: You can't open a shop in this map
+277: Usage: @request <petition/message to online GMs>.
+278: (@request): %s
+279: @request sent.
+280: Invalid name.
+281: You can't create chat rooms in this map
+//Party-related
+282: You need to be a party leader to use this command.
+283: Target character must be online and in your current party.
+284: Leadership transferred.
+285: You've become the party leader.
+286: There's been no change in the setting.
+287: You cannot change party leaders in this map.
+//Missing stuff for @killer related commands.
+288: You are no longer killable.
+//289-290 FREE
+291: Weather effects will disappear after teleporting or refreshing.
+292: Killer state reset.
+//Item Bind System
+293: This bound item cannot be traded to that character.
+294: This bound item cannot be stored there.
+295: Please enter an item name or ID (usage: @itembound <item name/ID> <quantity> <bound_type>).
+296: Please enter all parameters (usage: @itembound2 <item name/ID> <quantity>
+297: <identify_flag> <refine> <attribute> <card1> <card2> <card3> <card4> <bound_type>).
+298: Invalid bound type. Valid types are - 1:Account 2:Guild 3:Party 4:Character
+//299 FREE
+// Guild Castles Number
+// --------------------
+300: None Taken
+301: One Castle
+302: Two Castles
+303: Three Castles
+304: Four Castles
+305: Five Castles
+306: Six Castles
+307: Seven Castles
+308: Eight Castles
+309: Nine Castles
+310: Ten Castles
+311: Eleven Castles
+312: Twelve Castles
+313: Thirteen Castles
+314: Fourteen Castles
+315: Fifteen Castles
+316: Sixteen Castles
+317: Seventeen Castles
+318: Eighteen Castles
+319: Nineteen Castles
+320: Twenty Castles
+321: Twenty-One Castles
+322: Twenty-Two Castles
+323: Twenty-Three Castles
+324: Twenty-Four Castles
+325: Twenty-Five Castles
+326: Twenty-Six Castles
+327: Twenty-Seven Castles
+328: Twenty-Eight Castles
+329: Twenty-Nine Castles
+330: Thirty Castles
+331: Thirty-One Castles
+332: Thirty-Two Castles
+333: Thirty-Three Castles
+// 334: Thirty-Four Castles
+334: Total Domination
+
+//335-342 FREE
+
+// Templates for @who output
+343: Name: %s
+344: (%s)
+345: | Party: '%s'
+346: | Guild: '%s'
+//You may omit the last %s, then you won't see players job name
+347: | Lv:%d/%d | Job: %s
+//You may omit 2 last %d, then you won't see players coordinates, just map name
+348: | Location: %s %d %d
+//349 FREE
+
+// @duel
+350: Duel: You can't use @invite. You aren't a duelist.
+351: Duel: The limit of players has been reached.
+352: Duel: Player name not found.
+353: Duel: The Player is in the duel already.
+354: Duel: Invitation has been sent.
+355: Duel: You can't use @duel without @reject.
+356: Duel: You can take part in duel again after %d seconds.
+357: Duel: Invalid value.
+358: Duel: You can't use @leave. You aren't a duelist.
+359: Duel: You've left the duel.
+360: Duel: You can't use @accept without a duel invitation.
+361: Duel: The duel invitation has been accepted.
+362: Duel: You can't use @reject without a duel invitation.
+363: Duel: The duel invitation has been rejected.
+364: Duel: You can't invite %s because he/she isn't in the same map.
+365: Duel: Can't use %s in duel.
+// Stylist Shop
+366: Styling Shop
+367: <MSG>2949</MSG>
+368: <MSG>2950</MSG>
+//369 FREE
+370: -- Duels: %d/%d, Members: %d/%d, Max players: %d --
+371: -- Duels: %d/%d, Members: %d/%d --
+372: -- Duel has been created (Use @invite/@leave) --
+373: -- Player %s invites %s to duel --
+374: Blue -- Player %s invites you to PVP duel (Use @accept/@reject) --
+375: <- Player %s has left the duel --
+376: -> Player %s has accepted the duel --
+377: -- Player %s has rejected the duel --
+//378-385 FREE
+// Main chat
+386: %s :Main: %s
+//387-389 FREE
+//NoAsk
+390: Autorejecting is activated.
+391: Autorejecting is deactivated.
+392: You request has been rejected by autoreject option.
+393: Autorejected trade request from %s.
+394: Autorejected party invite from %s.
+395: Autorejected guild invite from %s.
+396: Autorejected alliance request from %s.
+397: Autorejected opposition request from %s.
+398: Autorejected friend request from %s.
+//399 FREE
+400: Usage: @jailfor <time> <character name>
+//401 FREE
+402: %s in jail for %d years, %d months, %d days, %d hours and %d minutes
+// WoE SE (@agitstart2)
+403: War of Emperium SE has been initiated.
+404: War of Emperium SE is currently in progress.
+405: War of Emperium SE has been ended.
+406: War of Emperium SE is currently not in progress.
+//407 FREE
+//chrif related
+408: Disconnecting to perform change-sex request...
+409: Your sex has been changed (disconnection required to complete the process)...
+//410-411 used by cash shop
+412: Your account is 'Unregistered'.
+413: Your account has an 'Incorrect Password'...
+414: Your account has expired.
+415: Your account has been rejected from server.
+416: Your account has been blocked by the GM Team.
+417: Your Game's EXE file is not the latest version.
+418: Your account has been prohibited to log in.
+419: Server is jammed due to overpopulation.
+420: Your account is no longer authorized.
+421: Your account has been totally erased.
+//422 FREE
+423: Your account has been banished until
+424: Login-server has been asked to %s the player '%.*s'.
+425: The player '%.*s' doesn't exist.
+426: Your GM level doesn't authorize you to %s the player '%.*s'.
+427: Login-server is offline. Impossible to %s the player '%.*s'.
+428: block
+429: ban
+430: unblock
+431: unban
+432: change the sex of
+433: This character has been banned until
+434: Char-server has been asked to %s the character '%.*s'.
+//435-448 FREE
+// Homunculus messages
+449: Homunculus Experience Gained Base:%u (%.2f%%)
+450: You already have a homunculus
+
+// Return pet to egg message
+451: You can't return your pet because your inventory is full.
+452: usage @camerainfo range rotation latitude
+
+// Refinary
+453: Refinery UI is not available
+
+// Battlegrounds
+454: Server : %s is leaving the battlefield...
+455: Server : %s has been afk-kicked from the battlefield...
+456: You are a deserter! Wait %u minute(s) before you can apply again
+457: You are a deserter! Wait %u seconds before you can apply again
+458: You can't reapply to this arena so fast. Apply to the different arena or wait %u minute(s)
+459: You can't reapply to this arena so fast. Apply to the different arena or wait %u seconds
+460: Can't apply: not enough members in your team/guild that have not entered the queue in individual mode, minimum is %d
+461: Can't apply: not enough members in your team/guild, minimum is %d
+462: Can't apply: not enough members in your team/party that have not entered the queue in individual mode, minimum is %d
+463: Can't apply: not enough members in your team/party, minimum is %d
+464: Server : %s has quit the game...
+// IRC
+465: [ #%s ] User IRC.%s left the channel. [Quit: %s]
+466: [ #%s ] User IRC.%s left the channel. [%s]
+467: [ #%s ] User IRC.%s is now known as IRC.%s
+468: [ #%s ] User IRC.%s joined the channel.
+// 469-497 FREE
+
+// Messages of others (not for GM commands)
+// ----------------------------------------
+
+// @itembound / @itembound2
+498: Cannot create bound pet eggs or pet armors.
+
+//499-500 FREE
+501: Your account time limit is: %d-%m-%Y %H:%M:%S.
+502: Day Mode is activated
+503: Night Mode is activated
+
+// Cash point change messages
+504: Used %d Kafra points and %d cash points. %d Kafra and %d cash points remaining.
+505: Gained %d cash points. Total %d points.
+506: Gained %d Kafra points. Total %d points.
+410: Removed %d cash points. Total %d points.
+411: Removed %d Kafra points. Total %d points.
+
+// Trade Spoof Messages
+507: This player has been banned for %d minute(s).
+508: This player hasn't been banned (Ban option is disabled).
+//509 FREE
+
+// mail system
+//----------------------
+510: You have %d new emails (%d unread)
+511: Inbox is full (Max %d). Delete some mails.
+// 512-537 FREE
+
+// Trade Spoof Messages
+538: Hack on trade: character '%s' (account: %d) try to trade more items that he has.
+539: This player has %d of a kind of item (id: %d), and tried to trade %d of them.
+540: This player has been definitively blocked.
+//541-543 FREE
+544: <MSG>3455</MSG>
+545: <MSG>3456,%d</MSG>
+// @showmobs
+546: Please enter a mob name/id (usage: @showmobs <mob name/id>)
+547: Invalid mob name %s!
+// @clearcart
+548: You can't clean a cart while vending!
+// @Autotrade
+549: You should have a shop open in order to use @autotrade.
+
+//550 -> 699: Job Names
+550: Novice
+551: Swordsman
+552: Magician
+553: Archer
+554: Acolyte
+555: Merchant
+556: Thief
+557: Knight
+558: Priest
+559: Wizard
+560: Blacksmith
+561: Hunter
+562: Assassin
+563: Crusader
+564: Monk
+565: Sage
+566: Rogue
+567: Alchemist
+568: Bard
+569: Dancer
+570: Wedding
+571: Super Novice
+572: Gunslinger
+573: Ninja
+574: Christmas
+575: High Novice
+576: High Swordsman
+577: High Magician
+578: High Archer
+579: High Acolyte
+580: High Merchant
+581: High Thief
+582: Lord Knight
+583: High Priest
+584: High Wizard
+585: Whitesmith
+//585: Mastersmith //iRO name
+586: Sniper
+587: Assassin Cross
+588: Paladin
+589: Champion
+590: Professor
+//590: Scholar //iRO name
+591: Stalker
+592: Creator
+//592: Biochemist //iRO Name
+593: Clown
+//593: Minstrel //iRO Name
+594: Gypsy
+595: Baby Novice
+596: Baby Swordsman
+597: Baby Magician
+598: Baby Archer
+599: Baby Acolyte
+600: Baby Merchant
+601: Baby Thief
+602: Baby Knight
+603: Baby Priest
+604: Baby Wizard
+605: Baby Blacksmith
+606: Baby Hunter
+607: Baby Assassin
+608: Baby Crusader
+609: Baby Monk
+610: Baby Sage
+611: Baby Rogue
+612: Baby Alchemist
+613: Baby Bard
+614: Baby Dancer
+615: Super Baby
+616: Taekwon
+617: Star Gladiator
+618: Soul Linker
+//619 FREE
+620: Unknown Job
+621: Summer
+622: Gangsi
+623: Death Knight
+624: Dark Collector
+625: Rune Knight
+626: Warlock
+627: Ranger
+628: Arch Bishop
+629: Mechanic
+630: Guillotine Cross
+631: Royal Guard
+632: Sorcerer
+633: Minstrel
+//633: Maestro //iRO Name
+634: Wanderer
+635: Sura
+636: Genetic
+//636: Geneticist //iRO Name
+637: Shadow Chaser
+638: Baby Rune Knight
+639: Baby Warlock
+640: Baby Ranger
+641: Baby Arch Bishop
+642: Baby Mechanic
+643: Baby Guillotine Cross
+644: Baby Royal Guard
+645: Baby Sorcerer
+646: Baby Minstrel
+647: Baby Wanderer
+648: Baby Sura
+649: Baby Genetic
+650: Baby Shadow Chaser
+651: Expanded Super Novice
+652: Expanded Super Baby
+653: Kagerou
+654: Oboro
+655: Rebellion
+
+656: Rune Knight T
+657: Warlock T
+658: Ranger T
+659: Arch Bishop T
+660: Mechanic T
+661: Guillotine Cross T
+662: Royal Guard T
+663: Sorcerer T
+664: Minstrel T
+665: Wanderer T
+666: Sura T
+667: Genetic T
+668: Shadow Chaser T
+669: Summoner
+
+//670-852 FREE (please start using from the top if you need, leave the 670+ range for new jobs)
+
+853: NoPet |
+// Mapflag to disable Autoloot Commands
+854: Auto loot item are disabled on this map.
+
+// MVP exp message issue clients 2013-12-23cRagexe and newer.
+855: Congratulations! You are the MVP! Your reward EXP Points are %u !!
+
+// MvP Tomb
+856: Tomb
+857: [ ^EE0000%s^000000 ]
+858: Has met its demise
+859: Time of death : ^EE0000%s^000000
+860: Defeated by
+861: [^EE0000%s^000000]
+
+// Etc messages from source
+862: You're too close to a NPC, you must be at least %d cells away from any NPC.
+863: Duel: Can't use this item in duel.
+864: You cannot use this command when dead.
+865: Can't create chat rooms in this area.
+866: Pets are disabled in this map.
+867: You're not dead.
+868: Your current memo positions are:
+869: You broke the target's weapon.
+870: You can't leave battleground guilds.
+871: Friend already exists.
+872: Name not found in list.
+873: This action can't be performed at the moment. Please try again later.
+874: Friend removed.
+875: Cannot send mails too fast!!
+876: Alliances cannot be made during Guild Wars!
+877: Alliances cannot be broken during Guild Wars!
+878: You are no longer the Guild Master.
+879: You have become the Guild Master!
+880: You have been recovered!
+881: Shop is out of stock! Come again later!
+
+// Frost Joker / Scream text for monster (MobName : SkillName !!)
+882: %s : %s !!
+// Cursed Circle
+883: You are too close to a stone or emperium to do this skill
+//
+884: Skill Failed. [%s] requires %dx %s.
+885: Removed %dz.
+886: Gained %dz.
+887: %s stole an Unknown Item (id: %i).
+888: %s stole %s.
+889: Experience Gained Base:%llu (%.2f%%) Job:%llu (%.2f%%)
+890: [KS Warning!! - Owner : %s]
+891: [Watch out! %s is trying to KS you!]
+892: Growth: hp:%d sp:%d str(%.2f) agi(%.2f) vit(%.2f) int(%.2f) dex(%.2f) luk(%.2f)
+893: [ Kill Steal Protection Disabled. KS is allowed in this map ]
+894: %s is in autotrade mode and cannot receive whispered messages.
+// 895 FREE
+896: Base EXP : %d%% | Base Drop: %d%% | Base Death Penalty: %d%%
+897: #%s '%s' joined
+898: #%s '%s' left
+// 899 FREE
+
+//------------------------------------
+// More atcommands message
+//------------------------------------
+
+// @send
+900: Usage:
+901: @send len <packet hex number>
+902: @send <packet hex number> {<value>}*
+903: Value: <type=B(default),W,L><number> or S<length>"<string>"
+904: Packet 0x%x length: %d
+905: Unknown packet: 0x%x
+906: Not a string:
+907: Not a hexadecimal digit:
+908: Unknown type of value in:
+
+// @rura
+909: Please enter a map (usage: @warp/@rura/@mapmove <mapname> <x> <y>).
+
+// @where
+910: Please enter a player name (usage: @where <char name>).
+
+// @jumpto
+911: Please enter a player name (usage: @jumpto/@warpto/@goto <char name/ID>).
+
+// @who
+912: (CID:%d/AID:%d)
+
+// @whogm
+913: Name: %s (GM)
+914: Name: %s (GM:%d) | Location: %s %d %d
+915: BLvl: %d | Job: %s (Lvl: %d)
+916: Party: '%s' | Guild: '%s'
+917: None
+
+// @speed
+918: Please enter a speed value (usage: @speed <%d-%d>).
+
+// @storage
+919: Storage opened.
+
+// @guildstorage
+920: Guild storage opened.
+
+// @option
+921: Please enter at least one option.
+
+//922 FREE
+
+// @jobchange
+923: You can not change to this job by command.
+
+// atcommand_setzone
+924: Usage: @setzone <zone name>
+925: The zone is already set to '%s'.
+926: Zone not found. Keep in mind that the names are CaSe SenSitiVe.
+927: Zone successfully changed from '%s' to '%s'.
+
+//928-978 FREE
+
+// @hatereset
+979: Reset 'Hatred' targets.
+
+// @kami
+980: Please enter a message (usage: @kami <message>).
+981: Please enter color and message (usage: @kamic <color> <message>).
+982: Invalid color.
+
+// @item
+983: Please enter an item name or ID (usage: @item <item name/ID> <quantity>).
+
+// @item2
+984: Please enter all parameters (usage: @item2 <item name/ID> <quantity>).
+985: <identify_flag> <refine> <attribute> <card1> <card2> <card3> <card4>).
+
+// @baselevelup
+986: Please enter a level adjustment (usage: @lvup/@blevel/@baselvlup <number of levels>).
+
+// @joblevelup
+987: Please enter a level adjustment (usage: @joblvup/@jlevel/@joblvlup <number of levels>).
+
+// @help
+988: There is no help for %c%s.
+989: Help for command %c%s:
+990: Available aliases:
+
+// @model
+991: Please enter at least one value (usage: @model <hair ID: %d-%d> <hair color: %d-%d> <clothes color: %d-%d>).
+
+// @dye
+992: Please enter a clothes color (usage: @dye/@ccolor <clothes color: %d-%d>).
+
+// @hairstyle
+993: Please enter a hair style (usage: @hairstyle/@hstyle <hair ID: %d-%d>).
+
+// @haircolor
+994: Please enter a hair color (usage: @haircolor/@hcolor <hair color: %d-%d>).
+
+//995 FREE
+
+// @refine - Part 1
+996: Please enter a position bitmask and an amount (usage: @refine <equip position> <+/- amount>).
+997: %d: Headgear (Low)
+998: %d: Hand (Right)
+999: %d: Garment
+1000: %d: Accessory (Left)
+1001: %d: Body Armor
+1002: %d: Hand (Left)
+1003: %d: Shoes
+1004: %d: Accessory (Right)
+1005: %d: Headgear (Top)
+1006: %d: Headgear (Mid)
+
+// @produce
+1007: Please enter at least one item name/ID (usage: @produce <equip name/ID> <element> <# of very's>).
+
+// @memo
+1008: Please enter a valid position (usage: @memo <memo_position:%d-%d>).
+
+// @displaystatus
+1009: Please enter a status type/flag (usage: @displaystatus <status type> <flag> <tick> {<val1> {<val2> {<val3>}}}).
+
+// @stpoint
+1010: Please enter a number (usage: @stpoint <number of points>).
+
+// @skpoint
+1011: Please enter a number (usage: @skpoint <number of points>).
+
+// @zeny
+1012: Please enter an amount (usage: @zeny <amount>).
+
+// @param
+1013: Please enter a valid value (usage: @str/@agi/@vit/@int/@dex/@luk <+/-adjustment>).
+
+// @guildlevelup
+1014: Please enter a valid level (usage: @guildlvup/@guildlvlup <# of levels>).
+
+// @makeeg
+1015: Please enter a monster/egg name/ID (usage: @makeegg <pet>).
+
+// @petfriendly
+1016: Please enter a valid value (usage: @petfriendly <0-1000>).
+
+// @pethungry
+1017: Please enter a valid number (usage: @pethungry <0-100>).
+
+// @recall
+1018: Please enter a player name (usage: @recall <char name/ID>).
+1019: You are not authorized to warp someone to this map.
+
+// @recall
+1020: You are not authorized to warp this player from their map.
+
+// @block
+1021: Please enter a player name (usage: @block <char name>).
+
+// @ban
+1022: Please enter ban time and a player name (usage: @ban <time> <char name>).
+1023: You are not allowed to reduce the length of a ban.
+
+// @unblock
+1024: Please enter a player name (usage: @unblock <char name>).
+
+// @unban
+1025: Please enter a player name (usage: @unban <char name>).
+
+// @kick
+1026: Please enter a player name (usage: @kick <char name/ID>).
+
+// @questskill / @lostskill
+1027: Please enter a quest skill ID.
+
+// @spiritball
+1028: Please enter an amount (usage: @spiritball <number: 0-%d>).
+
+// @party
+1029: Please enter a party name (usage: @party <party_name>).
+
+// @guild
+1030: Please enter a guild name (usage: @guild <guild_name>).
+
+// @idsearch
+1031: Please enter part of an item name (usage: @idsearch <part_of_item_name>).
+
+// @recallall / @guildrecall / @partyrecall
+1032: You are not authorized to warp someone to your current map.
+1033: Because you are not authorized to warp from some maps, %d player(s) have not been recalled.
+
+// @guildrecall
+1034: Please enter a guild name/ID (usage: @guildrecall <guild_name/ID>).
+
+// @partyrecall
+1035: Please enter a party name/ID (usage: @partyrecall <party_name/ID>).
+
+// @reloadatcommand
+1036: Error reading groups.conf, reload failed.
+1037: Error reading atcommand.conf, reload failed.
+
+// @mapinfo
+1038: Please enter at least one valid list number (usage: @mapinfo <0-3> <map>).
+1039: ------ Map Info ------
+1040: Map: %s (Zone:%s) | Players: %d | NPCs: %d | Chats: %d | Vendings: %d
+1041: ------ Map Flags ------
+1042: Town Map
+1043: Autotrade Enabled
+1044: Autotrade Disabled
+1045: Battlegrounds ON
+1046: PvP Flags:
+1047: Pvp ON |
+1048: NoGuild |
+1049: NoParty |
+1050: NightmareDrop |
+1051: NoCalcRank |
+1052: GvG Flags:
+1053: GvG ON |
+1054: GvG Dungeon |
+1055: GvG Castle |
+1056: NoParty |
+1057: Teleport Flags:
+1058: NoTeleport |
+1059: Monster NoTeleport |
+1060: NoWarp |
+1061: NoWarpTo |
+1062: NoReturn |
+1063: NoAutoloot |
+1064: NoMemo |
+1065: No Exp Penalty: %s | No Zeny Penalty: %s
+1066: On
+1067: Off
+1068: No Save (Return to last Save Point)
+1069: No Save, Save Point: %s,Random
+1070: No Save, Save Point: %s,%d,%d
+1071: Weather Flags:
+1072: Snow |
+1073: Fog |
+1074: Sakura |
+1075: Clouds |
+1076: Clouds2 |
+1077: Fireworks |
+1078: Leaves |
+1079: NoViewID |
+1080: Displays Night |
+1081: Other Flags:
+1082: NoBranch |
+1083: NoTrade |
+1084: NoVending |
+1085: NoDrop |
+1086: NoSkill |
+1087: NoIcewall |
+1088: AllowKS |
+1089: Reset |
+1090: Other Flags:
+1091: NoCommand |
+1092: NoBaseEXP |
+1093: NoJobEXP |
+1094: NoMobLoot |
+1095: NoMVPLoot |
+1096: PartyLock |
+1097: GuildLock |
+1098: ----- Players in Map -----
+1099: Player '%s' (session #%d) | Location: %d,%d
+1100: ----- NPCs in Map -----
+1101: North
+1102: North West
+1103: West
+1104: South West
+1105: South
+1106: South East
+1107: East
+1108: North East
+1109: North
+1110: Unknown
+1111: NPC %d: %s | Direction: %s | Sprite: %d | Location: %d %d
+1112: NPC %d: %s::%s | Direction: %s | Sprite: %d | Location: %d %d
+1113: ----- Chats in Map -----
+1114: Chat: %s | Player: %s | Location: %d %d
+1115: Users: %d/%d | Password: %s | Public: %s
+1116: Yes
+1117: No
+1118: Please enter at least one valid list number (usage: @mapinfo <0-3> <map>).
+
+// @mount
+1119: You have mounted your Dragon.
+1120: You have released your Dragon.
+1121: You have mounted your Warg.
+1122: You have released your Warg.
+1123: You have mounted your Mado Gear.
+1124: You have released your Mado Gear.
+
+// @guildspy
+1125: The mapserver has spy command support disabled.
+1126: Please enter a guild name/ID (usage: @guildspy <guild_name/ID>).
+
+// @partyspy
+1127: Please enter a party name/ID (usage: @partyspy <party_name/ID>).
+
+// @nuke
+1128: Please enter a player name (usage: @nuke <char name>).
+
+// @tonpc
+1129: Please enter a NPC name (usage: @tonpc <NPC_name>).
+
+// @enablenpc
+1130: Please enter a NPC name (usage: @enablenpc <NPC_name>).
+
+// @hidenpc
+1131: Please enter a NPC name (usage: @hidenpc <NPC_name>).
+
+// @loadnpc
+1132: Please enter a script file name (usage: @loadnpc <file name>).
+
+// @unloadnpc
+1133: Please enter a NPC name (Usage: @unloadnpc <NPC_name> {<flag>}).
+
+// @jail
+1134: Please enter a player name (usage: @jail <char_name>).
+
+// @unjail
+1135: Please enter a player name (usage: @unjail/@discharge <char_name>).
+
+// @jailfor
+1136: Invalid time for jail command.
+1137: You are now
+1138: This player is now
+
+// @jailtime
+1139: You are not in jail.
+1140: You have been jailed indefinitely.
+1141: You have been jailed for an unknown amount of time.
+1142: You will remain
+
+// @disguise
+1143: Please enter a Monster/NPC name/ID (usage: @disguise <name/ID>).
+1144: Character cannot be disguised while mounted.
+
+// @disguiseall
+1145: Please enter a Monster/NPC name/ID (usage: @disguiseall <name/ID>).
+
+// @disguiseguild
+1146: Please enter a mob name/ID and guild name/ID (usage: @disguiseguild <mob name/ID>, <guild name/ID>).
+
+// @undisguiseguild
+1147: Please enter guild name/ID (usage: @undisguiseguild <guild name/ID>).
+
+// @exp
+1148: Base Level: %d (%.3f%%) | Job Level: %d (%.3f%%)
+
+// @broadcast
+1149: Please enter a message (usage: @broadcast <message>).
+
+// @localbroadcast
+1150: Please enter a message (usage: @localbroadcast <message>).
+
+// @email
+1151: Please enter two e-mail addresses (usage: @email <current@email> <new@email>).
+
+// @effect
+1152: Please enter an effect number (usage: @effect <effect number>).
+
+// @npcmove
+1153: Usage: @npcmove <X> <Y> <npc_name>
+1154: NPC is not in this map.
+1155: NPC moved.
+
+// @addwarp
+1156: Usage: @addwarp <mapname> <X> <Y> <npc name>
+1157: Unknown map '%s'.
+1158: New warp NPC '%s' created.
+
+// @follow
+1159: Follow mode OFF.
+1160: Follow mode ON.
+
+// @storeall
+1161: You currently cannot open your storage.
+1162: All items stored.
+
+// @skillid
+1163: Please enter a skill name to look up (usage: @skillid <skill name>).
+1164: skill %d: %s (%s)
+
+// @useskill
+1165: Usage: @useskill <skill ID> <skill level> <target>
+
+// @displayskill
+1166: Usage: @displayskill <skill ID> {<skill level>}
+
+// @skilltree
+1167: Usage: @skilltree <skill ID> <target>
+1168: Player is using %s skill tree (%d basic points).
+1169: The player cannot use that skill.
+1170: Player requires level %d of skill %s.
+1171: The player meets all the requirements for that skill.
+
+// @marry
+1172: Usage: @marry <char name>
+1173: They are married... wish them well.
+1174: The two cannot wed because one is either a baby or already married.
+
+// @divorce
+1175: '%s' is not married.
+1176: '%s' and his/her partner are now divorced.
+
+// @changelook
+1177: Usage: @changelook {<position>} <view id>
+1178: Position: 1:Top 2:Middle 3:Bottom 4:Weapon 5:Shield 6:Shoes 7:Robe 8:Body
+
+// @autotrade
+1179: Autotrade is not allowed in this map.
+1180: You cannot autotrade when dead.
+
+// @changegm
+1181: You need to be a Guild Master to use this command.
+1182: You cannot change guild leaders in this map.
+1183: Usage: @changegm <guild_member_name>
+1184: Target character must be online and be a guild member.
+
+// @changeleader
+1185: Usage: @changeleader <party_member_name>
+
+// @partyoption
+1186: Usage: @partyoption <pickup share: yes/no> <item distribution: yes/no>
+
+// @autoloot
+1187: Autolooting items with drop rates of %0.02f%% and below.
+1188: Autoloot is now off.
+
+// @autolootitem
+1189: Item not found.
+1190: You're already autolooting this item.
+1191: Your autolootitem list is full. Remove some items first with @autolootid -<item name or ID>.
+1192: Autolooting item: '%s'/'%s' {%d}
+1193: You're currently not autolooting this item.
+1194: Removed item: '%s'/'%s' {%d} from your autolootitem list.
+1195: You can have %d items on your autolootitem list.
+1196: To add an item to the list, use "@alootid +<item name or ID>". To remove an item, use "@alootid -<item name or ID>".
+1197: "@alootid reset" will clear your autolootitem list.
+1198: Your autolootitem list is empty.
+1199: Items on your autolootitem list:
+1200: Your autolootitem list has been reset.
+
+// @guildstorage
+1201: Your guild's storage has already been opened by another member, try again later.
+
+//1202 FREE
+
+// @snow
+1203: Snow has stopped falling.
+1204: It has started to snow.
+
+// @sakura
+1205: Cherry tree leaves no longer fall.
+1206: Cherry tree leaves have begun to fall.
+
+// @clouds
+1207: Clouds have disappeared.
+1208: Clouds appeared.
+
+// @clouds2
+1209: Alternative clouds have disappeared.
+1210: Alternative clouds appeared.
+
+// @fog
+1211: The fog has gone.
+1212: Fog hangs over.
+
+// @leaves
+1213: Leaves have stopped falling.
+1214: Leaves started falling.
+
+// @fireworks
+1215: Fireworks have ended.
+1216: Fireworks are launched.
+
+// @sound
+1217: Please enter a sound filename (usage: @sound <filename>).
+
+// @mobsearch
+1218: Please enter a monster name (usage: @mobsearch <monster name>).
+1219: Invalid mob ID %s!
+1220: Mob Search... %s %s
+
+// @cleanmap
+1221: All dropped items have been cleaned up.
+
+// @npctalk
+1222: Please enter the correct parameters (usage: @npctalk <npc name>, <message>).
+1223: Please enter the correct parameters (usage: @npctalkc <color> <npc name>, <message>).
+
+// @pettalk
+1224: Please enter a message (usage: @pettalk <message>).
+
+// @summon
+1225: Please enter a monster name (usage: @summon <monster name> {duration}).
+
+// @adjgroup
+1226: Usage: @adjgroup <group_id>
+1227: Specified group does not exist.
+1228: Group changed successfully.
+1229: Your group has been changed.
+
+// @trade
+1230: Please enter a player name (usage: @trade <char name>).
+
+// @setbattleflag
+1231: Usage: @setbattleflag <flag> <value>
+1232: Unknown battle_config flag.
+1233: Set battle_config as requested.
+
+// @unmute
+1234: Please enter a player name (usage: @unmute <char name>).
+1235: Player is not muted.
+1236: Player unmuted.
+
+// @mute
+1237: Usage: @mute <time> <char name>
+
+// @identify
+1238: There are no items to appraise.
+
+// @mobinfo
+1239: Please enter a monster name/ID (usage: @mobinfo <monster_name_or_monster_ID>).
+1240: MVP Monster: '%s'/'%s'/'%s' (%d)
+1241: Monster: '%s'/'%s'/'%s' (%d)
+1242: Lv:%d HP:%d Base EXP:%u Job EXP:%u HIT:%d FLEE:%d
+1243: DEF:%d MDEF:%d STR:%d AGI:%d VIT:%d INT:%d DEX:%d LUK:%d
+1244: ATK:%d~%d Range:%d~%d~%d Size:%s Race: %s Element: %s (Lv:%d)
+1245: Drops:
+1246: This monster has no drops.
+1247: MVP Bonus EXP:%u
+1248: MVP Items:
+1249: This monster has no MVP prizes.
+
+// @showmobs
+1250: Invalid mob id %s!
+1251: Can't show boss mobs!
+1252: Mob Search... %s %s
+
+// @homlevel
+1253: Please enter a level adjustment (usage: @homlevel <number of levels>).
+
+// @homlevel / @homevolve / @homfriendly / @homhungry / @homtalk / @hominfo / @homstats
+1254: You do not have a homunculus.
+
+// @homevolve
+1255: Your homunculus doesn't evolve.
+
+// @makehomun
+1256: Please enter a homunculus ID (usage: @makehomun <homunculus id>).
+1257: Invalid Homunculus ID.
+
+// @homfriendly
+1258: Please enter an intimacy value (usage: @homfriendly <intimacy value [0-1000]>).
+
+// @homhungry
+1259: Please enter a hunger value (usage: @homhungry <hunger value [0-100]>).
+
+// @homtalk
+1260: Please enter a message (usage: @homtalk <message>).
+
+// @hominfo
+1261: Homunculus stats:
+1262: HP: %d/%d - SP: %d/%d
+1263: ATK: %d - MATK: %d~%d
+1264: Hungry: %d - Intimacy: %u
+1265: Stats: Str %d / Agi %d / Vit %d / Int %d / Dex %d / Luk %d
+
+// @homstats
+1266: Homunculus growth stats (Lv %d %s):
+1267: Max HP: %d (%d~%d)
+1268: Max SP: %d (%d~%d)
+1269: Str: %d (%d~%d)
+1270: Agi: %d (%d~%d)
+1271: Vit: %d (%d~%d)
+1272: Int: %d (%d~%d)
+1273: Dex: %d (%d~%d)
+1274: Luk: %d (%d~%d)
+
+// @homshuffle
+1275: Homunculus stats altered.
+
+// @iteminfo
+1276: Please enter an item name/ID (usage: @ii/@iteminfo <item name/ID>).
+1277: Item: '%s'/'%s'[%d] (%d) Type: %s | Extra Effect: %s
+1278: None
+1279: With script
+1280: NPC Buy:%dz, Sell:%dz | Weight: %.1f
+1281: - Available in shops only.
+1282: - Maximal monsters drop chance: %02.02f%%
+1283: - Monsters don't drop this item.
+
+// @whodrops
+1284: Please enter item name/ID (usage: @whodrops <item name/ID>).
+1285: Item: '%s'[%d]
+1286: - Item is not dropped by any mobs.
+1287: - Common mobs with highest drop chance (only max %d are listed):
+
+// @whereis
+1288: Please enter a monster name/ID (usage: @whereis <monster_name_or_monster_ID>).
+1289: %s spawns in:
+1290: This monster does not spawn normally.
+
+// @mobinfo ...
+1291: ATK:%d~%d MATK:%d~%d Range:%d~%d~%d Size:%s Race: %s Element: %s (Lv:%d)
+
+1292: PrivateAirshipStartable |
+1293: PrivateAirshipEndable |
+//1294 used by hercules chat feature
+
+// @version
+1295: %s revision '%s' (src) / '%s' (scripts)
+1296: Hercules %d-bit for %s
+
+// @mutearea
+1297: Please enter a time in minutes (usage: @mutearea/@stfu <time in minutes>).
+
+// @rates
+1298: Experience rates: Base %.2fx / Job %.2fx
+1299: Normal Drop Rates: Common %.2fx / Healing %.2fx / Usable %.2fx / Equipment %.2fx / Card %.2fx
+1300: Boss Drop Rates: Common %.2fx / Healing %.2fx / Usable %.2fx / Equipment %.2fx / Card %.2fx
+1301: Other Drop Rates: MvP %.2fx / Card-Based %.2fx / Treasure %.2fx
+
+// @me
+1302: Please enter a message (usage: @me <message>).
+
+// @size / @sizeall / @sizeguild
+1303: Size change applied.
+
+// @sizeguild
+1304: Please enter guild name/ID (usage: @sizeguild <size> <guild name/ID>).
+
+// @monsterignore
+1305: You are now immune to attacks.
+1306: Returned to normal state.
+
+// @fakename
+1307: Returned to real name.
+1308: You must enter a name.
+1309: Fake name must be at least two characters.
+1310: Fake name enabled.
+
+// @mapflag
+1311: Enabled Mapflags in this map:
+1312: Usage: "@mapflag monster_noteleport 1" (0=Off | 1=On)
+1313: Type "@mapflag available" to list the available mapflags.
+1314: Invalid flag name or flag.
+1315: Available Flags:
+
+// @showexp
+1316: Gained exp will not be shown.
+1317: Gained exp is now shown.
+
+// @showzeny
+1318: Gained zeny will not be shown.
+1319: Gained zeny is now shown.
+
+// @showdelay
+1320: Skill delay failures will not be shown.
+1321: Skill delay failures are now shown.
+
+// @cash
+1322: Please enter an amount.
+
+// @clone
+1323: You must enter a player name or ID.
+
+// @feelreset
+1324: Reset 'Feeling' maps.
+
+// @noks
+1325: [ K.S Protection Inactive ]
+1326: [ K.S Protection Active - Option: Party ]
+1327: [ K.S Protection Active - Option: Self ]
+1328: [ K.S Protection Active - Option: Guild ]
+1329: Usage: @noks <self|party|guild>
+
+// @allowks
+1330: [ Map K.S Protection Active ]
+1331: [ Map K.S Protection Inactive ]
+
+// @itemlist
+1332: ------ %s items list of '%s' ------
+1333: | equipped:
+1334: garment,
+1335: left accessory,
+1336: body/armor,
+1337: right hand,
+1338: left hand,
+1339: both hands,
+1340: feet,
+1341: right accessory,
+1342: lower head,
+1343: top head,
+1344: lower/top head,
+1345: mid head,
+1346: lower/mid head,
+1347: lower/mid/top head,
+1348: -> (pet egg, pet id: %u, named)
+1349: -> (pet egg, pet id: %u, unnamed)
+1350: -> (crafted item, creator id: %u, star crumbs %d, element %d)
+1351: -> (produced item, creator id: %u)
+1352: -> (card(s):
+1353: No item found in this player's %s.
+1354: %d item(s) found in %d %s slots.
+
+// @delitem
+1355: Please enter an item name/ID, a quantity, and a player name (usage: #delitem <player> <item_name_or_ID> <quantity>).
+
+// @font
+1356: Returning to normal font.
+1357: Use @font <1-9> to change your message font.
+1358: Use 0 or no parameter to return to normal font.
+1359: Invalid font. Use a value from 0 to 9.
+1360: Font changed.
+1361: Already using this font.
+
+// @new_mount
+1362: NOTICE: If you crash with mount your LUA is outdated.
+1363: You have mounted.
+1364: You have released your mount.
+
+// @accinfo
+1365: Usage: @accinfo/@accountinfo <account_id/char name>
+1366: You may search partial name by making use of '%' in the search, ex. "@accinfo %Mario%" lists all characters whose name contains "Mario".
+
+// @set
+1367: Usage: @set <variable name> <value>
+1368: Usage: ex. "@set PoringCharVar 50"
+1369: Usage: ex. "@set PoringCharVarSTR$ Super Duper String"
+1370: Usage: ex. "@set PoringCharVarSTR$" outputs its value, Super Duper String.
+1371: NPC variables may not be used with @set.
+1372: Instance variables may not be used with @set.
+1373: %s value is now :%d
+1374: %s value is now :%s
+1375: %s is empty
+1376: %s data type is not supported :%u
+
+// @reloadquestdb
+1377: Quest database has been reloaded.
+
+// @addperm
+1378: Usage: %s <permission_name>
+1379: -- Permission List
+1380: '%s' is not a known permission.
+1381: User '%s' already possesses the '%s' permission.
+1382: User '%s' doesn't possess the '%s' permission.
+1383: -- User '%s' Permissions
+1384: User '%s' permissions updated successfully. The changes are temporary.
+
+// @unloadnpcfile
+1385: Usage: @unloadnpcfile <path> {<flag>}
+1386: File unloaded. Be aware that some changes made by NPC are not reverted on unload. See doc/atcommands.txt for details.
+1387: File not found.
+
+// General command messages
+1388: Charcommand failed (usage: %c<command> <char name> <parameters>).
+1389: %s failed. Player not found.
+
+// @cart
+1390: Unknown Cart (usage: %s <0-%d>).
+1391: You do not possess a cart to be removed
+1392: Cart Added.
+
+// atcommand.c::is_atcommand
+1393: You can't use commands while dead.
+
+// @clearstorage
+1394: Your storage was cleaned.
+1395: Your guild storage was cleaned.
+
+// @clearcart
+1396: You do not have a cart to be cleaned.
+1397: Your cart was cleaned.
+
+// @skillid (extension)
+1398: -- Displaying first %d partial matches
+
+// @join
+1399: Unknown Channel (usage: %s <#channel_name>)
+1400: Unknown Channel '%s' (usage: %s <#channel_name>)
+1401: '%s' Channel is password protected (usage: %s <#channel_name> <password>)
+//1402 used by hercules chat feature
+1403: You're now in the '%s' channel
+
+// Hercules Chat Feature
+1402: You're not in that channel, type '@join <#channel_name>'
+1435: You're now in the '#%s' channel for '%s'
+1436: You're already in the '%s' channel
+1294: You're not allowed to talk on this channel
+
+// @channel
+1404: %s failed
+1405: Channel name must start with a '#'
+1406: Channel length must be between 3 and %d
+1407: Channel '%s' is not available
+1408: Channel password may not contain spaces
+1409: - #%s ( %d users )
+1410: -- Public Channels
+1411: Unknown color '%s'
+1412: You're not the owner of channel '%s'
+1413: '%s' channel color updated to '%s'
+1414: --- Available options:
+1415: -- %s create <channel name> <channel password>
+1416: - creates a new channel
+1417: -- %s list
+1418: - lists public channels
+1419: -- %s list colors
+1420: - lists colors available to select for custom channels
+1421: -- %s setcolor <channel name> <color name>
+1422: - changes <channel name> color to <color name>
+1423: -- %s leave <channel name>
+1424: - leaves <channel name>
+1425: You're not part of the '%s' channel
+1426: You've left the '%s' channel
+1427: -- %s bindto <channel name>
+1428: - binds your global chat to <channel name>, making anything you type in global be sent to the channel
+1429: -- %s unbind
+1430: - unbinds your global chat from its attached channel (if bound)
+1431: Your global chat is now bound to the '%s' channel
+1432: Your global chat is not bound to any channel
+1433: Your global chat is no longer bound to the '#%s' channel
+1434: Player '%s' was not found
+//1435-1436 used by hercules chat feature
+1437: Player '%s' has now been banned from the '%s' channel
+1438: You cannot join the '%s' channel because you've been banned from it
+1439: Channel '%s' has no banned players
+1440: Player '%s' is not banned from this channel
+1441: Player '%s' has now been unbanned from the '%s' channel
+1442: Removed all bans from the '%s' channel
+1443: -- '%s' ban list
+1444: - %s
+1445: - %s (%d)
+1446: You need to input a option
+1447: '%s' is not a known channel option
+1448: -- Available options
+1449: option '%s' is already enabled, if you'd like to disable it type '@channel opt %s 0'
+1450: option '%s' is now enabled for channel '%s'
+1451: value '%d' for option '%s' is out of range (limit is 0-%d)
+1452: option '%s' is now enabled for channel '%s' with %d seconds
+1453: option '%s' is now disabled for channel '%s'
+1454: option '%s' is not enabled on channel '%s'
+1455: You cannot send a message to this channel for another %d seconds.
+1456: -- %s ban <channel name> <character name>
+1457: - bans <character name> from <channel name> channel
+1458: -- %s banlist <channel name>
+1459: - lists all banned characters from <channel name> channel
+1460: -- %s unban <channel name> <character name>
+1461: - unbans <character name> from <channel name> channel
+1462: -- %s setopt <channel name> <option name> <option value>
+1463: - adds or removes <option name> with <option value> to <channel name> channel
+1464: Ban failed, it is not possible to ban this user.
+1465: Player '%s' is already banned from this channel
+1466: For '%s' you need the amount of seconds (from 0 to 10)
+1467: -- %s unbanall <channel name>
+1468: - unbans everyone from <channel name>
+
+// @costume
+1469: '%s' is not a known costume
+1470: You're already with a '%s' costume, type '@costume' to remove it.
+1471: -- %s
+1472: - Available Costumes
+1473: Costume '%s' removed.
+
+//src/map/pc.c::pc_isUseitem
+1474: You cannot use this item while sitting
+1475: You cannot use this item while your storage is open
+
+1476: You are already mounting something else
+
+//src/map/pc.c::pc_isUseitem
+1477: Item cannot be opened when inventory is full
+
+//@homlv
+1478: Homunculus reached its maximum level of '%d'
+
+//src/map/clif.c::clif_parse_GlobalMessage
+1479: Dear angel, can you hear my voice?
+1480: I am %s Super Novice~
+1481: Help me out~ Please~ T_T
+
+//Banking
+1482: You can't withdraw that much money
+1483: Banking is disabled
+
+//src/map/atcommand.c::ACMD(auction)
+1484: Auction is disabled
+
+//1485: FREE
+
+//Monster Transformation
+1486: Cannot transform into monster while in disguise.
+1487: Character cannot be disguised while in monster form.
+1488: Transforming into monster is not allowed in Guild Wars.
+
+//CashShop mapflag
+1489: Cash Shop is disabled in this map
+
+// @autoloottype
+1490: You're already autolooting this item type.
+1491: Item type not found.
+1492: Autolooting item type: '%s'
+1493: You're currently not autolooting this item type.
+1494: Removed item type: '%s' from your autoloottype list.
+1495: Your autoloottype list is empty.
+1496: Item types on your autoloottype list:
+1497: Your autoloottype list has been reset.
+
+//Item Bind
+1498: You can't add a party bound item to a character without party!
+1499: You can't add a guild bound item to a character without guild!
+
+// @dropall
+1500: Usage: @dropall {<type>}
+1501: Type List: (default) all = -1, healing = 0, usable = 2, etc = 3, weapon = 4, armor = 5, card = 6, petegg = 7, petarmor = 8, ammo = 10, delayed-consumable = 11, cash = 18
+1502: %d items are dropped (%d skipped)!
+
+// @refine - Part 2
+1503: %d: Costume Headgear (Top)
+1504: %d: Costume Headgear (Mid)
+1505: %d: Costume Headgear (Low)
+1506: %d: Costume Garment
+1507: %d: Shadow Armor
+1508: %d: Shadow Weapon
+1509: %d: Shadow Shield
+1510: %d: Shadow Shoes
+1511: %d: Shadow Accessory (Right)
+1512: %d: Shadow Accessory (Left)
+1513: %d: Refine All Equip (General)
+1514: %d: Refine All Equip (Costume)
+1515: %d: Refine All Equip (Shadow)
+
+// @reloadnpc
+1516: Usage: @reloadnpc <path> {<flag>}
+1517: Script could not be unloaded.
+
+// File name validation
+1518: Not a file.
+1519: Can't open file.
+
+//Custom translations
+import: conf/import/msg_conf.txt
diff --git a/conf/network.conf b/conf/network.conf
new file mode 100644
index 00000000..b355acb2
--- /dev/null
+++ b/conf/network.conf
@@ -0,0 +1,37 @@
+// Network configuration file
+
+/*
+ * List here any LAN subnets this server is in.
+ * Example:
+ * - char- (or map-) server's IP in LAN is 192.168.0.10
+ * - Public IP is 198.51.100.37
+ * If the list contains "192.168.0.10:255.255.255.0", any clients connecting
+ * from the same 192.168.0.0/24 network will be presented with the LAN IP
+ * (192.168.0.10) in the server list, rather than the public IP (198.51.100.37).
+ */
+lan_subnets: (
+ "127.0.0.1:255.0.0.0",
+ // "192.168.1.1:255.255.255.0",
+)
+
+/*
+ * List here any IP ranges a char- or map-server can connect from.
+ * A wildcard of "0.0.0.0:0.0.0.0" means that server connections are allowed
+ * from ANY IP. (not recommended).
+ */
+allowed: (
+ "0.0.0.0:0.0.0.0",
+ // "127.0.0.1:255.0.0.0",
+)
+
+/*
+ * List here any IP ranges a char- or map-server can connect from. These ranges
+ * will also be excluded from the automatic ipban in casee of password failure.
+ * Any entry present in this list is also automatically included in the
+ * allowed IP list.
+ * Note: This may be a security threat. Only edit this list if you know what
+ * you are doing.
+ */
+trusted: (
+ "127.0.0.1:255.0.0.0",
+)
diff --git a/conf/plugins.conf b/conf/plugins.conf
new file mode 100644
index 00000000..9084cfbb
--- /dev/null
+++ b/conf/plugins.conf
@@ -0,0 +1,41 @@
+//====================================================
+//= _ _ _
+//= | | | | | |
+//= | |_| | ___ _ __ ___ _ _| | ___ ___
+//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
+//= | | | | __/ | | (__| |_| | | __/\__ \
+//= \_| |_/\___|_| \___|\__,_|_|\___||___/
+//=
+//= http://herc.ws/board/
+//====================================================
+//== Topic Discussion ================================
+//== http://herc.ws/board/topic/549-introducing-hercules-plugin-manager/
+//====================================================
+//== Description =====================================
+//The plugin system allows you to create customized scripts
+//outside of the source. These scripts won't conflict with any
+//future source updates - think of it as a /conf/import/ for the source.
+//====================================================
+
+/* --------------- Format ---------------
+After you have listed your plugin(s) in "quotations",
+you need to put in a comma, to separate the plugins.
+-----------------------------------------
+plugins_list: [
+ "example",
+ "other",
+]
+-----------------------------------------
+Please note that your scripts need to be saved
+in the .c (source code) extension and placed in the /src/plugin/ folder.
+-----------------------------------------
+*/
+plugins_list: [
+ /* Enable HPMHooking when plugins in use rely on Hooking */
+ "HPMHooking",
+ //"db2sql",
+ "libevol_char",
+ "libevol_login",
+ "libevol_map",
+ //"other",
+]
diff --git a/conf/readme.txt b/conf/readme.txt
new file mode 100644
index 00000000..3323b568
--- /dev/null
+++ b/conf/readme.txt
@@ -0,0 +1,22 @@
+What is the import folder for?
+-------------------------------------------------------------------------------
+
+The folder provides a way for you to change your config settings without having
+to update the files every time you update your server. You store your changes,
+and the rest is updated with Hercules (usually though GIT).
+
+How does this work?
+-------------------------------------------------------------------------------
+
+Place only the settings you have changed in the import files.
+For example, if you want to change a value in conf/battle/exp.conf:
+
+ // Rate at which exp. is given. (Note 2)
+ base_exp_rate: 700
+
+You could instead copy the setting into conf/import/battle_conf.txt,
+and you'll eliminate any problems updating in the future.
+
+Neat, isn't it?
+
+- Semi-guide by Ajarn / Euphy