Since it's a bit hard let's explain what each userflag means:
flag	C bot:direct	user(:service)	user:public	service/net (mode/egg)
------	- ------------	--------------	--------------	--------------
FRIEND	f -		no kick		no kick		+dontkickops
DENY	k -		ban		ban		-user(bans|exempts|invites)
ACCESS	a leaf		N:access/exempt	ban exempt	-inactive/autoreconnect
INVITE	e -		invite		invite		-secret
VOICE	v -		can ask voice	can ask voice	+autovoice
QUIET	q -		never voice	never voice	+revenge|+revengebot
HALFOP	h shared	N:local op	can get halfop	+cycle
 +AUTO	  -		N:auto-halfop	auto-halfop	-
OP	o hub		N:op		can get op	+autoop
 +AUTO	* autoconnect	N:autoop	autoop		+enforcebans/autoconnect
MASTER	m -		master/admin	master/admin	+protect(ops|friends)
DEOP	d reject	N:never op	never op	+bitch
SPEAK	s -		N:can simulate	auto-voice	+greet
OWNER	n -		full access	full access	-
NOAUTH	i -		need no auth	sticky		-dynamic(bans|exempts|invites)
UNSHARE	u local record	local record	local record	-shared
IGNORED	I -		ignore msgs	ignore msg	-

(column C is associated flag char, for reference; 'N:' in column 'user'
 means it's applied only to network/service itself (including direct one),
 i.e. there is no appropriate global flag for it)

each lower flag has more priority than upper one
each public flag has more priority that equivalent server/global one

only OWNER can change MASTER SPEAK OWNER UNSHARED IGNORED
only MASTER can change :OP :HALFOP :AUTO VOICE QUIET INVITE
only OP can change FRIEND :DEOP
only HALFOP can change :DENY :ACCESS

ierarchy: *HALFOP->*OP->*MASTER->*OWNER
          #HALFOP->#OP->*MASTER,#MASTER->*OWNER,#OWNER

so eggdrop's flags are (* not for bots):
a	OP +AUTO #chan
b	-
c	?
d	DEOP [#chan]
f	FRIEND [#chan]
g	SPEAK #chan
h	-
j	MASTER fserv
k *	DENY [#chan]
m	MASTER [#chan]
n	OWNER [#chan]
o	OP #chan
p *	ACCESS *
q	QUIET #chan
t *	OP *
u	UNSHARED *
v	VOICE [#chan]
w	-
x	ACCESS fserv

eggdrop's botattrs are:
a	OP
g	-
h	OP +AUTO
i	?
l	ACCESS
p	HALFOP
r	DEOP
s	HALFOP
