Skip to main content


Discworld room help



citizenship - where you can become a citizen


apply for citizenship
sponsor <person> for citizenship
deny citizenship [application] of <person> because <reason>
list honour roll
expression list
check [my] sponsors

Magistrates only:
approve <person> for citizenship
blacklist add <person> for <reason>
blacklist remove <person>
blacklist list {verbose|brief}
expression citizen <citizenship requirements>
expression sponsor <citizenship requirements>
list denied
add <person> to honours
remove <person> from honours because <reason>


This is a room help file.

This is where you need to go to become a citizen of an area. It will check all the specified conditions and then put you in the list of people waiting to become a citizen if you successfuly make them all. To actually become a citizen a magistrate must approve your application. They do this by sponsoring you. If they deny you, then you will be denied.

Applicants can check how many sponsors they have.

Citizens can sponsor and deny other people to show their support or non-support for the people who are applying for citizenship.

Magistrates can do a few extra things in this room. They can add and remove people from a black list of people not allowed to use the room, they can set the expression used for citizenship approval and they can check to see why a person was denied citizenship in the past.


Expressions are used to set the requirements for both applicants for citizenship and their sponsors. An expression comprises one or more conditions, separated by the keyword "and", ie:

condition [and condition ...]

All conditions in an expression must be met for the specified action (applying or sponsoring) to be permitted.

A condition may either test that a predefined variable is higher or lower than a specified value, or whether a condition is true or not. A condition may also be negated by preceding the test with the keyword not, ie:

[not] variable operator value


[not] function(value)

The variables available for use in expressions are: ageindays, ageinhours, level and timesincedeniedindays.

The available Operators are: ">", ">=", "<", "<=" and "=".

Values for comparison should be expressed numerically, eg:

ageindays >= 10

The functions available for use in expressions are: citizenof(place) and magistrateof(place).

Place names should be in lower case and enclosed by double quotes, eg:

not citizenof("ankh-morpork")

There is a coded check to validate citizenship for sponsors, so local citizenship need not be specified in the sponsor expression.

Please also study the expression examples below. The expression handler can parse complex expressions, for example:

( (condition and condition) or ( condition ) ) and condition

using brackets to group and order conditions. The "and" operator takes precedence over the "or" operator when combining expressions. If you use complex expressions and unusual things happen, such as 10,000 elves suddenly acquiring citizenship, creators will laugh at you.


> apply for citizenship
> sponsor bec for citizenship
> deny jabba for citizenship because his name sounds like a hut
> expression citizen ageindays >= 5
> expression citizen ageindays >= 2 and timesincedeniedindays > 14
> expression citizen not citizenof("ankh-morpork") and ageindays >= 10 and timesincedeniedindays >= 30
> expression sponsor ageindays >= 10
> expression sponsor ageindays >= 20 and level >= 200 and not citizenof("ankh-morpork")

See also

cases, chambers, citizenship(concepts)