The UserRightsRecord script generates a list of all users who have been members of rights groups on a wiki, with the dates they received and lost the rights, and how long they held them. It can be customized in several ways. Note that the default output of this script can be missing dates due to software errors and hidden log entries.

    type: 'script',
    articles: [


To use the script with default behavior (listing all results in all groups for all time), simply place an element with the rightsrecord class on a page after importing the script. This can be used multiple times per page. Anything within the div is overwritten when the script runs.

<div class="rightsrecord"></div>

Here is a skeleton with placeholders for all of the available parameters, which are explained below. (As written, this code will still act like the default.)

<div class="rightsrecord" data-urr-mode="rights" data-urr-exclude="" data-urr-start="" data-urr-end="" data-urr-user="" data-urr-daymin="1" data-urr-showdays="true" data-urr-onlyknown="false" data-urr-onlypast="false">{"Username1":"Username2", "User3":"User4", "Baduser":null}</div>


The default mode is rights, which separates the list by group and places a table of contents at the top of the div. Setting the value to users separates the list by user instead, with no TOC.


This allows exclusion of specific user groups from the list. Use the name of the group as it appears in the unlimited script output. Specify multiple groups to exclude like this: data-urr-exclude="group1, group2, group3".


Allows specifying dates to start and/or end going through the rights log; rights changes that occurred before/after these dates, respectively, will not be included. These must be fully formatted dates in UTC, e.g. "2013-01-01T23:59:00Z". Both do not have to be specified at once, but end has to be after start. Note that use of these parameters will likely cause inaccurate statement of "unknown" and "present" in the list.


Allows specifying a single user for whom to display records. Must have "User:" prefix.


Specifies a minimum duration, in days, required for an entry to be listed. The default is 1.


Set this to "false" to hide the days duration for each rights entry, or set it to "divided" to separate the day counts into years, months, and days (note that this is increasingly inaccurate over longer periods of time). This will not affect other options.


Set this to "true" to hide entries for which the start date is unknown.


Set this to "true" to hide entries who still have the rights.

name changes

You can specify a list of users who changed their names so that each user's entries are grouped under the same name in the output. This is done by putting JSON syntax as the content of the div, as seen in the example above. Each key's value (the data to the right of the colon) is the username that should be displayed, or null (without quotes) to remove that user from the listing. You can have multiple keys with the same value. This must be valid JSON: all values (except null) are enclosed with double quotes ("), keys are separated from values with colons (:), pairs are delimited by commas (,), and the whole thing is surrounded by braces ({ }). Quotation marks within user names must be escaped with a backslash (\").


Please leave a message on my talk page or that of the script with any bug reports or suggestions!