Jail Keeper - Configuration and Setup



Initial Setup

  1. Put the Jail Keeper Server at a place where your prisoners can access it (with-in 10 meters) or can access when escorted by staff.
  2. Rez the license modules near it and touch each license module to sync it with the server. Once the server has registered the new license, you can take the license modude back into your inventory.
  3. If you have more than one Jail Keeper Server in the same region, you will need to make sure you specify a different PRISON NUMBER in the configuration notecard.
  4. Complete the server configuration before anyone requests delivery of a title.
  5. Once the server configuration is complete, your prisoners will need to touch the Jail Keeper Server to have a title given to them.
  6. Once they have received and wear the title, the title will syncronize with the server and download the configuration from the server. Each prisoner should stay with 10 meters of the server until the initial configuration downlaod is complete. After that, they can rez anywhere in the region and still receive any configuration updates.

If you have the evaluation copy (with only a single user license). Make sure you do not request a title from the server for yourself. Have a friend touch the server to get the title and be your "test prisoner" so you can evaluate the staff functions.

Configuration Overview

Jail Keeper is very flexible and you will have a number of choices to make with regard to how your jail will operate and what capabilities you want your staff to have. The configuration information can be divided into several areas:


The configuration notecard resides in the Jail Keeper Server. Each configuration setting consists of a KEYWORD following by required and <optional> parameters.

You can make a comment by putting a pound sign (#) at the start of the line

NOTE: In this notecard:

  • If a configuration Keyword is not needed, you can put a pound sign # in front of it in case you might want to change it in the future. Like this : # PRISON_ZONE
  • Parameters to Keywords that are required are enclosed in square brackets [ choice ].
  • Parameters that are optional are enclosed in angle brackets < optional >
  • If there are choices for parameters, they are separated with a bar |

Jail Parcel Setup

This defines the physical characteristics of the prison

PRISON_NAME your jail name

PRISON_NUMBER n

This is normally a "1", but you should change this when you (the owner of the KR Jail Keeper Server) have more than one jail in operation. (Even if they are in different regions) Can be any single digit number, but must be unique for each of your jails

BOX_CORNERS xxx/yyy/zzz     xxx/yyy/zzz

If your jail covers an entire region the this can be commented out and as long as a prisoner is in the region, they will be considered "in prison". Otherwise you can specify the corners of the facility. P<>Just pick 2 opposite corners that define the box that you want to consider "in the jail". Your jail is not a box? You can include up to 3 BOX_CORNERS keywords just overlap the 2 or 3 boxes so your prisoners can move from one to another without leaving one of the boxes.

Don't forget that your avatars position is above the floor and so to allow for a prisoner laying down you want to set the lower Z value to below the floor.

AUTO_RETURN xxx/yyy/zzz

This defines the location in this region where you want an escaped prisoner to be automatically teleported to. You may want to define a small holding cell in your jail where escaped prisoners are sent to.

Managing the Prisoners' Sentence

SENTENCE [ DAYS | HOURS | DAYS&HOURS | NONE ] < DefaultDays < DefaultHours >>

The SENTENCE keyword determines how the prisoner's sentence is counted down and can be specified in Real Life days, SL Hours or both.

DAYS means that all the prisoner has to do is to log in the jail once every 24 RL hours for a day to count down.

HOURS is the actual number of hours in the jail and represents more of a commitment to the RP of the jail

Most users will specify DAYS&HOURS where the sentence is not complete until both counters are zero

You can also specify NONE, if no one ever leaves your prison. :)

On the same line you can include two additional parameters. These numbers are the default number of days and hours to serve. The first is always the number of days, even if you have specified SENTENCE HOURS. Examples:

   SENTENCE  HOURS       0   20      Sentence of 20 hours
   SENTENCE  DAYS        7           Sentence of 7 days
   SENTENCE  DAYS&HOURS  5    15     Sentence of 5 day and 15 hours

SHOW [ DAYS | HOURS | DAYS&HOURS | NONE ]

Each prisoner's time remaining is always displayed in the title's floating text. The SHOW keyword controls if prisoners' original sentence is also displayed.

IDLE_DETECT [ YES | NO ]

If you are counting SL hours in your Sentence, or have Levels defined (discussed below) to use hours, you will want Idle Detect enabled.

This is not perfect, but works fairly well to detect when someone has left their avatar in SL, but is actually not at the keyboard for long periods of time. This works mostly by detecting that an avatar has not moved for sometime. When no movement is detected, a pop-up menu ask for them to respond. If they do not. counting of SL hours is stopped. The default is YES

RLV Controls

Jails must be escape proof and the RLV commands activated by the prisoners' title can keep them in place.

Rather than have layers of menus with all of the individual RLV commands, Jail Keeper allows for up to 6 sets of RLV commands (or "rule sets" ) to be defined for common situations. Three have been included as examples and you may want to use them as is. But you can define your own.

The first rule set defined is considered the default and is always in effect as long as the title is locked on, AND another rule set is not active. That last part means that rule sets are not additive. Each rule set must contain all of the RLV commands you want to be active when that rule set is active.

There is no menu option to select the default rule set. it will ALWAYS be made active when one of the other rule sets not active.

The keyword for defining a rule set is RLV followed by a name for the rule set, followed by the RLV command string

RLV Name     RLV_command_string

Included Rule Sets

 RLV Default     tplure=n,tploc=n,tplm=n

 RLV Confined    tplure=n,tploc=n,tplm=n,chatshout=n,rez=n,fartouch=n,showworldmap=n,showminimap=n,sittp=n

 RLV Isolation   tplure=n,tploc=n,tplm=n,chatshout=n,rez=n,fartouch=n,showworldmap=n,showminimap=n,sittp=n
 RLV Isolation   showinv=n,chatnormal=n,sendim_sec=n,recvim_sec=n

IMPORTANT: You never have to specify "detach=n" as this command (to keep the title attached) is always active as long as the title is "locked".

What does all of that mean?

Please see the RLV API specification for complete and detailed information about these and more RLV commands. But here are a few tips.

  • The commands must be separated by commas and have no spaces between them.
  • Setting the command "=n" prohibits the action.
  • Notecards have a limit on how long a line can be read by a script. So, if you need to create a rule set with a lot of RLV commands, just add another keyword with the same Rule Set name as was done in the example for Isolation above.
  • Notes on the Rule Sets provided with the system
    • The Default Rule Set prevents someone from Teleporting away once the title is attached.
    • The Confined Rule Set, adds restrictions to prevent shouting, rezzing, touching objects farther away than 1.5m, seeing where other people are on the world or mini maps, and getting out of a cell by sitting on a nearby object.
    • The Isolation Rule set adds restrictions to prevent seeing inventory, sending and receiving IMs, and forces them to whisper all the time.

RLV_STATUS_BUG

Normally the show RLV Status button will show all of the RLV restrictions a person is under from ALL devices.

When this keyword is present (not commented out with # sign), the show RLV Status button will only show status for restrictions imposed by the Jail Keeper Title. This is needed due to a problem seen (so far only with the MSM prison system) where the prisoner's client crashes when the "@getallstatus" RLV command is issued. All other RLV control devices seem to support this command as expected.

Extra Information in the Titles

These are extra features that may be useful in your prison.

PRIVILEGE days hours description

Privilege Levels (you can define up to 6 of them) are labels the title will display based on the number of DAYS and/or HOURS a prisoner has spend inside your prison.

This would typically be used to indicate additional privileges based having made a commitment to being in your prison. Days and Hours both define the requirement to reach the next level (not total time in prison) . This allows for staff to manually reduce a prisoners level as a punishment or increase it as a reward.

This means that the order of the PRIVILEGE keywords defines increasing privileges.

If you don't want Privilege Levels, just add at # sign to the front of the line: # PRIVILEGE days hours description

If you want to count hours but not days, enter zero for the days for all Levels

   PRIVILEGE  0   0  First Day   displays right away
   PRIVILEGE  2   8  Level 1     displays after  2 days and 8  hours
   PRIVILEGE  10 20  Level 2     displays after 10 days and at least 20 more hours after reaching "Level 1".
   PRIVILEGE  20 40  Trustee     displays after 20 days and at least 40 more hours after reaching "Level 2".

PUNISHMENT_TEXT [ YES | NO ]

One problem that can occur when your staff come and go during a day, is that a prisoner may be given a punishment (say "wash the floor" for 2 hours) by one guard; but when another guard arrives, they don't realize the prisoner has only performed 30 minutes of that punishment and then releases the prisoner to do something else.

Enabling this feature enables staff to enter text describing a special punishment that is in effect for a prisoner and to also setup a count down timer for SL hours to indicate when this punishment is to end.

This allows other staff to arrive and know why a prisoner is performing some task or restrained in some special way.

Staff can also set a Count of times some task is to be performed by the prisoner. Other staff can then decrement this counter when they observe the prisoner completing one instance of the task.

SPECIAL_STATUS description

Up to 5 special status labels can be defined here and then manually set by your jail staff for each prisoner.

A given prisoner does not have to have a special status. but those defined here are available to be set by staff.

Examples:

   SPECIAL_STATUS  Waiting for Trial
   SPECIAL_STATUS  Trustee

TEXT On | OFF

Allow staff to enter any short text string to be displayed in the title.

NOTIFY_KEY admin staff key (UUID) < optional name >

A series of NOTIFY_KEY keywords define a list of administrative staff that are to be notified when a prisoner rezzes outside the jail or without RLV enabled.

IMPORTANT: EACH person included will get an IM with the prisoners name and location, so you probably want this list to only a few people. The IM will include the SLURL so you can quickly TP to the prisoner's location and confront them.

This list of people will also be able to offer a prisoner a Teleport invitation when the prisoner is on "work release"

Example:

   NOTIFY_KEY c9811700-02a1-4ebc-8188-fb5479cbxxxx     Warden

Access Levels for your staff

Title Menu Access Controls

You may not want all of your staff to have access to all title menu functions. The Jail Keeper Title uses a hierarchical system of access where your Guards, Captains and Wardens (for example) each has increasing access to title functions

Four access levels (with Level 4 requiring the highest authority) are assigned to each of the primary title functions:

ACCESS_SENTENCE       level number
ACCESS_UNLOCK         level number
ACCESS_PUNISHMENT   level number
ACCESS_RLV                 level number
ACCESS_PRIVILEGE     level number
ACCESS_SPECIAL         level number
ACCESS_TEXT               level number

The number following each keyword is a staff Access level number which allows you to limit what Title functions are accessible to your staff based on position. For example you may want only senior staff to be able to change a prisoners sentence or release them.

Access Level 4 is the highest authority and Access Level 1 the lowest. These work with the PIN_CODE_n definitions (below), and also external authentication provided with with the KR Access Server that is part of the KR Prison Cuffs and Leg Shackles product.

A menu with Access level of 2 can be accessed by staff at access level 2, 3 or 4, but not by staff at Access Level 1 For a small staff with equal authority, you can make them all the same.

Examples:

   ACCESS_PUNISHMENT  1
   ACCESS_TEXT        1
   ACCESS_PRIVILEGE   2
   ACCESS_SPECIAL     2
   ACCESS_RLV         2
   ACCESS_UNLOCK      3
   ACCESS_SENTENCE    3

Tip: To disable a menu function that you do not want to use (such as Privileges or Special), use Level 3 for your highest staff level and assign Level 4 to the unused function.

Staff Authentication

AUTHENTICATION [ PIN | PLUG_IN ]

Most users will find the Staff Pin system a convenient way to manage authentication for your staff and default value for the AUTHENTICATION keyword is "PIN".

PIN Codes

PIN_CODE_1 nnnn
PIN_CODE_2 nnnn
PIN_CODE_3 nnnn
PIN_CODE_4 nnnn

PIN codes allow your staff to access a title without needed to maintain access lists of names. The PIN number can be any length, but typically 4 digits are easily remembered.

The numbers in the keywords are the same as the access levels described above.

If you change the PIN numbers in the Server configuration, the new ones will go in effect on the next rez of each prisoner's Title. This means that there will be period of time after you change the PIN codes in the server, where titles for prisoners present at the time of the change will still use the old codes. Note: Prisoner titles have a "New Config" button to request a download of a new server configuraiton.

Note to avoid your staff from having to enter a PIN Code EACH time they access a Title, each Title has a short term memory of avatars that have recently been authorized and will not prompt for a PIN code until they age out of the local memory.

Pin codes are an easy way to set up access. but are only as secure as your staff are trustworthy. If you think a pin code is known to people you don't want to know it, change the PIN Code in the server configuration file and it will be sent to each Title the next time they log on and the title rezzes. When a new PIN code is received, the local memory is cleared, requiring everyone to enter the new pin code.

Server Controlled Access

However you can use an in-world server to control who is on your staff and what their access levels should be for the title.

To enable this, specify PLUG_IN as a parameter to the AUTHENTICATION keyword, purchase the KR Prison Cuffs and Leg Shackles product. Then maintain a list of your staff and their access levels in the KR Access Server. (You don't have to use the cuffs and leg shackles for the KR Access Server to work with Jail Keeper).

The level definitions for menu functions are still used to limit access to some menus and functions, but the access server will now provide the level for each staff person each time they touch the title. In the KR Access Server you will use the keyword LEVEL n with each staff person's name to specify their level of access.