/*
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/log_athena.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
Upgrading from revisions before r15572
-------------------------------------
http://rathena.org/board/index.php?showtopic=58877
*/
groups: (
{
id: 0 /* group 0 is the default group for every new account */
name: "Player"
level: 0
inherit: ( /*empty list*/ )
commands: {
/* no commands by default */
go: true
who: true
rates: true
request: true
return: true
storage: true
duel: true
invite: true
leave: true
accept: true
reject: true
autoloot: true
alootid: true
whodrops: true
whereis: true
noask: true
commands: true
mi: true
ii: true
monsterinfo: true
iteminfo: true
mobinfo: true
whodrops: true
autotrade: true
at: true
}
permissions: {
/* without this basic permissions regular players could not
trade or party */
can_trade: true
can_party: true
any_warp: true
}
},
{
id: 1
name: "Super Player"
inherit: ( "Player" ) /* can do everything Players can and more */
level: 0
commands: {
/* informational commands */
commands: true
charcommands: true
help: true
rates: true
uptime: true
showdelay: true
exp: true
mobinfo: true
iteminfo: true
whodrops: true
time: true
jailtime: true
hominfo: true
homstats: true
showexp: true
showzeny: true
whereis: true
/* feature commands */
refresh: true
noask: true
noks: true
autoloot: true
alootid: true
autotrade: true
request: true
go: true
breakguild: true
channel: true
langtype: true
}
permissions: {
}
},
{
id: 2
name: "Support"
inherit: ( "Super Player" )
level: 1
commands: {
version: true
where: true
jumpto: true
who: true
who2: true
who3: true
whomap: true
whomap2: true
whomap3: true
users: true
broadcast: true
localbroadcast: true
speed: true
disguise: true
undisguise: true
warp: true
}
log_commands: true
permissions: {
receive_requests: true
view_equipment: true
can_trade: false
any_warp: true
}
},
{
id: 3
name: "Script Manager"
inherit: ( "Support" )
level: 1
commands: {
tonpc: true
hidenpc: true
shownpc: true
loadnpc: true
unloadnpc: true
npcmove: true
addwarp: true
}
log_commands: true
permissions: {
any_warp: true
}
},
{
id: 4
name: "Event Manager"
inherit: ( "Support" )
level: 50
commands: {
monster: true
monstersmall: true
monsterbig: true
killmonster2: true
cleanarea: true
cleanmap: true
item: [false, false]
zeny: [false, false]
disguise: [true, true]
undisguise: [true, true]
size: [true, true]
raise: false
raisemap: false
day: false
night: false
skillon: true
skilloff: true
pvpon: true
pvpoff: true
gvgon: true
gvgoff: true
allowks: true
me: true
marry: true
divorce: true
refreshall: true
partyrecall: true
guildrecall: true
recall: true
speed: true
hide: true
kami: true
kamib: true
commands: true
broadcast: true
localbroadcast: true
mi: true
ii: true
}
log_commands: true
permissions: {
can_trade: true
any_warp: true
log_commands: true
}
},
{
id: 10
name: "Law Enforcement"
inherit: ( "Support" )
level: 70
commands: {
hide: true
follow: true
kick: true
disguise: true
fakename: true
option: true
speed: true
warp: true
kill: true
recall: true
ban: true
block: true
jail: true
jailfor: true
mute: true
storagelist: true
cartlist: true
itemlist: true
stats: true
partyrecall: true
guildrecall: true
undisguise: true
job: true
jlvl: true
blvl: true
mute: true
unmute: true
kami: true
item: true
}
log_commands: true
permissions: {
join_chat: true
kick_chat: true
hide_session: true
who_display_aid: true
hack_info: true
any_warp: true
view_hpmeter: true
can_trade: true
}
},
{
id: 99
name: "Admin"
level: 99
inherit: ( "Support", "Law Enforcement" )
commands: {
/* not necessary due to all_commands: true */
}
log_commands: true
permissions: {
can_trade: true
can_party: true
all_skill: false
all_equipment: false
skill_unconditional: false
use_check: true
use_changemaptype: true
all_commands: true
channel_admin: true
can_trade_bounded: true
item_unconditional: false
}
}
)