Difference between revisions of "Second Life Black Gazza Collar"

From Panoculus Library
Jump to: navigation, search
(One intermediate revision by the same user not shown)
Line 863: Line 863:
 
Status: Not Impemented. 
 
Status: Not Impemented. 
  
== Back Button in Menus ==
+
== Back Button in Menus - Implemented ==
  
Status: Not Impemented. 
+
Also: Fix keeping track of who has control of the menu. Give Main menu a Close option to release the menu system. 
 +
 
 +
 
 +
 
 +
== Startup Management ==
 +
 
 +
Every script needs to sanely manage what it does on reset, rez, attach, and detach. 
 +
 
 +
=== Events ===
 +
 
 +
*on_rez - when rezzed in-world and not attached to an avatar
 +
*attach(key) - when rezzed attached to an avatar
 +
*attach(null_key) - when detached from an avatar
 +
*state_entry - wne scripts are reset
 +
 
 +
=== Modules ===
 +
 
 +
==== battery state_entry  ====
 +
 
 +
sets up some constants and starts a timer
 +
 
 +
==== database - state_entry ====
 +
 
 +
if attached sends database query
 +
 
 +
if not attached sets defaults
 +
 
 +
— should
 +
 
 +
attach with avatar, send database query
 +
 
 +
reset - reset variables it’s responsible for
 +
 
 +
 
 +
 
 +
==== display - state_entry ====
 +
 
 +
sets up constants and lists
 +
 
 +
enumerates links
 +
 
 +
sets texture lists
 +
 
 +
if attached - gets state out of prims. This should happen out of the wear event. 
 +
 
 +
if not attached - sets defaults. this is fine. 
 +
 
 +
 
 +
 
 +
==== leash - state_entry ====
 +
 
 +
turns off leash particles
 +
 
 +
gets leash prim number
 +
 
 +
•••        llMessageLinked(LINK_THIS, 2002, "Request", "");
 +
 
 +
resets leash system
 +
 
 +
——
 +
 
 +
Should
 +
 
 +
on rez, if there was a leash, try to reestablish it
 +
 
 +
==== menu - state_entry ====
 +
 
 +
sets up constants and lists
 +
 
 +
sends defaults (which it should not do because other things might know all this and would reset themselves in this event)
 +
 
 +
resets zap levels (which it should not do on attach)
 +
 
 +
sets up wearer listen - which it should do only when worn, and that only on attach event
 +
 
 +
 
 +
 
 +
==== RLV -  ====
 +
 
 +
state_entry - 
 +
 
 +
turns RLV variables off, 
 +
 
 +
if worn, checks RLV status - which it should not do here
 +
 
 +
sets up zap listen, which it should do only when worn
 +
 
 +
attach - 
 +
 
 +
if worn, sets Attached variable, checks RLV, registers with DB
 +
 
 +
if not worn, clears Attached variable, sends RLV off commands, registers with DB
 +
 
 +
Should try to reestablish RLV settings. Optional, default on. 
 +
 
 +
[*] Try to reestablish RLV lock on log-in
 +
 
 +
 
 +
 
 +
 
 +
 
 +
==== Speech - state_entry ====
 +
 
 +
initilializes bad words list 
 +
 
 +
if worn, try to reestablish speech setup. 
  
 
= Architecture =
 
= Architecture =

Revision as of 02:32, 22 March 2020

Contents

Introduction

This page will describe the Collar 4 project.

  • Collar 1 was entirely custom code by Lormyr Daviau.
  • Collar 2 was rewritten by Lormyr Daviau in OpenCollar. 
  • Collar 3 was rewritten by Red Usagi in OpenCollar and had a very complicated Second_Life_Black_Gazza_Collar_3_Menu_System.
  • OpenCollar has unacceptable code-sharing restrictions and other organizational issues that we'd like to separate from. Collar 3 is complicated, large, has many features that don't work well together, is hard to learn, doesn't get all its features used, and is a bear to maintain and upgrade. 

Thus the need for Collar 4. 

"Required" in a section heading means that the feature is part of the Nininum Sane Feature Set. Without this feature, the collar is practicallyuseless and not worth giving out. It's the core feature set to which the other features can be added incrementally. If something is not needed and so marked, or if something is required and not so marked, please let Timberwoof Lupindo know. 

Goals

  • UI Simplicity - keep the menu simpe, organized, discoverable
  • Feature Comprehensibility - have all the features we need and no features we don't need
  • Software Maintainability and Updates - have the code simple, segmented, documented, and not "clever"
  • Independence from OC drama - Don't use OpenCollar 
  • Software Efficiency - keep the code as focused and direct to the task as possible; eliminate one-time-use code
  • No light sources - No light sources. 

Support Required

Read Me

Black Gazza L-CON 4th Edition READ ME

Introduction

This document describes the Black Gazza "L-CON" Collar 4th Edition. Please read and understand all the safety directives before using this machinery. Black Gazza and its staff and agents will not be held responsible for your butt-hurt because you didn't understand what this collar can do. 

The collar mesh was designed for Black Gazza by Dein Newt. 

The display font is Advanced Pixel LCD-7 
https://www.dafont.com/advanced-pixel-lcd-7.font

For history and in-depth information about the V4 collar software project, please read https://library.panocul.us/mw/index.php/Second_Life_Black_Gazza_Collar#Introduction

The V4 collar software is a ground-up rewrite by Timberwoof Lupindo. It incorporates code by Lormyr Daviau, code from earlier projects, and code written by Timberwoof Lupindo for collars V2 and V3. It does not use any Open Collar code and is thus not bound by its license. 


Simplified Menus

With tons of extraneous software not incorporated and herds of creeping featurisms ruthlessly eradicated, your avatar should feel a much lighter collar than previous versions. The menus are easy to navigate and present you with only the choices you can actually make. 

The full menu tree is here: 
https://library.panocul.us/mw/index.php/Second_Life_Black_Gazza_Collar_4_Menu_System


New Features

The initial version of Collar V4 has a Minimal Feature Set: those features which, after discussion with Black Gazza members, were deemed the minimum with which a useful collar could be released. 

Set Your Own Crime - Set Inmate's Crime

There will be a box in the IC/OOC room, and in Intake, where your criminal history is entered into the database. This is stuff people don't want others messing with, and in a real prison you don't get to set your own crime. 

Lock Levels

The collar has five lock levels. 
Off has no RLV at all. You can set your permitted zap levels. 
Light - minimal RLV locking. No teleporting, no flying, no detaching the collar. To unlock, set the collar's lock level to Off. 
Medium - Some more RLV locking. No maps, no far-touch, no far-sit. To unlock, set the collar's lock level to Off. 
Heavy - Even more RLV locking. No edit, no rez, no shout, limited camera. You cannot set your own permitted zap levels. To unlock, click Safeword, It will give you a code number and a channel. You must type the code number on the channel indicated. The collar will embarrass you publicly and unlock. 
Hardcore - The same RLV locking, but no safeword. You must ask a Guard to unlock you. The guard will click the Release button, which is only available to guards.

Character Sheets

Edit your collar. Drag your character sheet, Medical information Sheet, and whatever else into your collar's main prim, right by all the scripts. When someone clicks the Info button, they will get basic info about you and your collar and a menu of those documents. No armband needed! 

Zap Levels

Click Settings. Click Zap Levels, You will see three levels with checkboxes. The X means you permit guards to zap you at that level. Don't turn them all off. 

Remote Zap

Remote Zap from Timbewoof's Evil Pad and other toys works. 

Improved zap protocol that lets devices select zap intensity and respects collars zap intensity selections is in the works. 

Battery

The battery drains with time. It drains faster at higher RLV levels. Settings access costs battery time. Settings access that requires database drain more battery time. Getting zapped drains a lot of time. When your collar's battery runs low, it will turn yellow, then red. Then the icon will disappear for a while. Then it will reappear fully charged. You don't have to do anything. A guard can, if they feel like it, make you go to a charging station for a while. For now it's just an IC thing and a cool display. When you log in or reset the collar, the battery level resets to zero. 


Same Old Features, Revised

Leash

With simplified menu. You can leash yourself. Inmates can leash you, but the collar asks you permission. Guards can leash you. If someone else leashes you, you cannot unleash yourself. 

Prisoner Class

The collars are now painted your Prisoner Class color. You can change this when OOC. A guard can set your class OOC. 

Threat

You can set your Threat when OOC. A guard can set your threat, too. 


Features Omitted

This is the new collar with Minimal Features. We will add new features as requested in All-Paws meetings. The collar does not have… 
Renamer/Sobriquet - Bad Words - Gag: oft-requested feature
Animations
Multiple Characters - requested feature
"Options"
Contraband - requested feature
Zapleash
Bookmarks/Landmarks
Camera
Bell (Really? How can you live without that?) 
Relay - 
Owners - implied in many menu funcitons with availability based on group membership of who clciked


The Plan

Features will be added a few at a time as denizens demand. The collar will gain those features that most inmates and guards find useful to enhance RP and inmates' immersive experience. 


Timberwoof Lupindo
2019-07-06

Bug List

Known bugs, feature requests, and statuses. Please check this list for your bug before reporting it. Things will be handled in this order:

  • bugs
  • readme items
  • gaps
  • enhancements
  • investigations


Name Description Status Complexity Mdule
Remote Zap collar should listen to the zap channel to allow things like doors and the AI to zap inmates enhancement moderate RLV
Collar Name Collar should rename itself so when it issues a status, its owner is identified gap - fixed minor Display
Unleash When you're not leashed, "Unleash" command should not be available bug - fixed minor Leash
Leash OkayNo Dialog button list is malfored. bug - fixed trivial Leash
wrong leashAvatar When same-group avatar clicks leash, the leash confirmation dialog happens but the wearer is identified as the leasher.  bug - fixed minor Leash
explain class readme needs to explain the class setting readme minor readme
battery status There's an animation left over from the development of the mesh. Write a script that clears the animation. Remove the script. Distribite that collar. bug - fixed minor Display
vendor role Collar vendor should IM the user that has the wrong role bug minor Vendor
collar coor Inmate should be able to set collar coor when OOC bug - fixed minor Menu
who zapped Collar should report who or what initiated Zap command. enhancement-fixed minor RLV
latch sound Collar should make a clunk or latch sound when RLV locks enhancement - fixed minor RLV
explain battery readme needs to explain how the battery works readme minor Readme
collar no-mod Some people got collars that were no-mod, but others got collars they could resize and add documents to investigate moderate
leash list Limit the leash list to 12 things, if possible in order of distance. It gives an ugly error message when there are too many objects nearby.  bug - fixed minor Leash
Heavy to hardcore Allow someone locked Heavy to change to Hardcore without safewording. enhancement - fixed minor Menu
blinky lights

Threat and zap lights re reversed; straighten that out. Change Class light to sow Lock level. 

  1. highest zap
  2. lock level
  3. class
  4. threat
bug - fixed minor Display and Menu
reset charge Reset charge level to 100% on relog. Most of the time this will simulate having recharged the battery while logged off.  enhancement - fixed minor Battery
RLV notifications RLV should not announce that it's turning everything off except when the new state is off. Also review the no-op settings.  enhancement - fixed minor RLV
leash to holder Investigate Lockmeister script and channel -8888 enhancement moderate to heavy Leash
set crime Remove the Set Crime settings option, or give it to the wearer in OOC mode only  bug - menu position fixed minor Menu
set crime actually set the crime enhancement






threat doesn't work click Settings, threat, nothing happens bug - fixed minor Menu
detect RLV new collar doesn't detect RLV properly when worn bug - investigate minor RLV
forgets mood  It loses the mood selection every time I check the info. Not like OOC but just nothing selected at all.
bug minor display
Anyone can grab leash If someone else has th eleash grabbed, you can grab the leash bug minor Leash

Required Features

This section lists the minimal feature set for th Black gazza Collar, without which it's not worth doing.

RLV locking with options - Implemented

  • Three levels: casual, normal and hardcore
  • casual is much like an onowned OC collar, fun toy, but user has full control.
  • normal is much like current collar configuration, onand off, but at guard control
  • Hardcore iis total loss of control. the collars owner (the prison) has exclsive powers,
  • If the script can't detect RLV, then it should have a nice cup of Shut The Fuck Up. 
  • Teleport suppressed
  • optional auto-lock when going IC, unlock when going OOC (not implemented)
Option Off Light Medium Heavy Hardcore
"Off"/Safeword Off button Off button, Safeword button Off button, Safeword button Safeword button Must Ask Guard
Settings Mood, Set Zap, Lock Mood, Set Zap, Lock Mood, Set Zap, Lock
Mood Mood
TP landmark yes NO NO NO NO
TP location yes
NO NO NO NO
TP lure yes
yes NO NO NO
World map yes
yes
NO NO NO
Mini map yes
yes
NO NO NO
Fly yes
NO NO NO NO
Detach yes
NO NO NO NO
Edit yes
yes
yes NO NO
Rez yes
yes
yes NO NO
Shout yes
yes
yes NO NO
Say yes
yes
yes yes yes
Whisper yes
yes
yes yes yes
See Names yes
yes
yes yes yes
Sit TP yes
yes
NO NO NO
Far Touch yes
yes
NO NO NO
Camera Limited no no  no  YES YES
IMS yes yes yes yes yes

Bugs

Is it intentional that it doesn't re-apply RLV settings on login, even though it doesn't clear the lock like the old version did?  If so, having a toggle to have it auto-relock on login would be kinda cool.  Just a thought! —g81351161

Zap - Implemented

  • 3 levels as now
  • available IC only to guards, OOC to wearer
  • or to inmates who manage to hack into collars at great risk of shocking themselves. - not implemented
  • Collar lets wearer (or, in Hard-Core mode, a guard) set allowable zap levels, with checkboxes for each. 
  • Later, you can only inflcit as much hurt on another inmate as your own collar is set to let you have. - not implemented
  • Devices that want to inflict shocks can access the three shock levels. - not implemented
  • Have the highest tier shock knock out the prisoner, causing a animation override, movement lock, and visual dimming, as well as a local chat restriction much like ACS robots receive when they shut down. - not implemented
  • Zap runs down the battery. 
  • All the lights and indicators turn red when zap is applied. - not impemented
  • Zap-charging circuit whines like an old photoflash before delivering the zap. 

Leash - Implemented

  • length
  • grab
  • leash to object
  • unleash if target is an avatar and logs off
  • re-leash on login

Character Sheets - Implemented

Have medical records stored in the collar rather than the armband. Having everything in one place should make things a little easier, right?

Almost No Titler - Implemented

Floaty text is ugly. Colorful walls of text are hard to read and are frequently used to transmit information that no one else would be able to have, or woud be easily able to get through observation. The proposed alternative is that clicking the collar could get a guard the immediate basics, and an inmate what an inmate can know. 

character name on the titler - implemented

  • prisoner asset number
  • Class (color)
  • Crime
  • Threat
  • Mood

prisoner number on the display - Implemented

  • Collar contacts prisoner database to get prisoner number
  • prisoner number is displayed on the collar display
  • prisoner number appears in all menu headings

character data in collar - implemented

  • click collar. Guards get Crime in the menu; inmates don't. - implemented
  • click Character button - implemented differently
  • click Character button to get Bio, Status, Medical, Guard, Limits - implemented differently
  • Wearer is notified when the collar gives something out to someone. 
  • click info; get what informaiton you can and buttons for user's character documents. 

display mood with color code - implemented

​​​​​​​The Collar text frame displays this color code: 

  • red - dominant (staff collar only)
  • orange - dominant for inmates
  • yellow - versatile
  • green - submissive
  • white - nonsexual
  • grey - OOC

[12:56] Dante (thenewflesh33 Resident): I thought it might be cool for people to have color coded messages, like violent inmates having blue text, general having orange text, medical having green text, etc

Timber's comment: Eye candy. Someone classed as violent doesn't necessarily sound angry all the time. But that has interesting implications for gag retalkers. 

Data Security and Integrity

The data in the collar shall not be dependent on SL's built-in data persistence "feature". All data shall be stored in the collar database. The acceptance criteria shall be

  • Restart collar scripts. All settings and data shall persist or be reloaded.
  • Throw the collar away and get a new one from a vendor. All settings and data shall persist or be reloaded.
  • Collar funciton that exports all personalized settings, and a matching one that will read that and set them. 

The URL for the collar shall not be hard-coded in scripts or stored in a configuration file. It will be kept in an object that a collar wearer must click to activate the collar, set the database url, establish the connection, and assign the collar number. 

Tonya says, The SL Experience datastore actually works fairly well, but it's a pain in the ass to deal with. It does have the advantage of not dependong in the largesse of someone to run an external database server.

Required Menu Functions and Options - Implemented

Wearer

  • Collar Play Level: OOC/Casual/Normal/Hardcore
  • Maximum Zap: Low/Medium/High
  • Mood: OOC/Submissive/Versatile/Dominant/Nonsexual/Story-Driven

Guard Group Members

  • Zap - Low/Medium/High
  • Leash - grab, to object, length, unleash
  • Crime - <text>
  • Classification - Unclassified/Orange/Blue/Pink/Green/Black

Everyone

  • Give Character Sheet

Menu Structure

Collar Menu Items by Role
Menu Item Choices Channel Wearer Inmates Guards Nonmembers Notes
Play Level Casual, Normal, Hard Core
Set Display Display Display

Hard Core lets guards set certain features such as allowed shock levels. Player can't set limits on severity. One of the four lights on the side gets this color. 

Zap Low, Medium, High 1100 Set Permitted Levels
Zap

Severity levels are checkboxes. Player can select which levels are permissible. Except in hard core mode; then guards can set it. 

Mood OOC, Submissive, Versatile, Dominant, Nonsexual, Story-Driven
Set Display Display Display One of the four lights on the side gets this color. 
Leash Leash To, Grab, Unleash, Length 1200

Set
Argh. Can't easily detect groups.
Crime Set, Report
Report Report Set Report
Class Set (White, Orange, Pink, Blue, Green, Black, Red)
Report Report Set Report This color is reflected in the lighty-uppy fram around the inmate number and perhaps one of the four lights on the side. OOC the frame turns gray. 
Info (Gives character sheet)
Give Give Give

Lock Game, Real, Confine, Lock, Safeword
Set/Report Report Report
One of the four lights on the side indicates lock state. 
Hack Hack, Maintenance, Fix 1300 Hack Hack Hack

















Second Life Black Gazza Collar 4 Menu System

Desired Features

This section describes additonal features that would be nice to have.

Each section has a Status section. 

Alternate Characters

  • Up to 6 alternate characters, each with its prisoner number and data. 
  • Need to slurp existing database into ours.
  • Need new BG database implemented first. 
  • Requires titler

Status: Old database access is understood. New Database access is being worked out. Once writing characters to new database is set up, there will be two devices. One will read characters from the old database into the new one. The other will let users set up their character for access in their collar. 

Listen Channel

The collar opens a listen on the inmate's priosner number as the channel. The channel number is 1; the key to opening it is the pgrase FLmenu where F and L are the wearer's first and last initial. If someone else us ising the menu it will say so. 

RLV/Lock - Partly Implemented

Relay

Timer - present but not finished

  • timer in-world - wearer-settable only
  • timer real-time - wearer-settable only
  • date/time of release - wearer-settable only
  • Safeword and Hardcore release as for the existing RLV settings. 
  • Status: Timebr is present but doesn't do anything. 

Safeword Enhancements

  • safeword unsits and teleports to cell. (Also usable against griefers.)
  • Set assigned cell
  • Status: Safeword and guard-only release will unlock RLV. 

Vision Restriction - Partly Implemented in Heavy RLV

The collar doesn't include glasses or a visor. Perhaps make vision reduction a side-effect or desired effect of medications the prison uses. A vision restriction feature seems like it's best implemented with Black Gazza goggles or even a Nucleus. But a Nucleus is hard to implement. There are plenty of gas masks, though, which would suit the purpose well. Maybe this can be implemented as a drop-in script. 

  • range-limited
  • focus-limited
  • color-limited
  • see no float-text
  • force a sort of moouselook
  • Status: range-limited vision under heavy RLV locking. 

Movement Restrictions

  • interface to shackles
  • poses
  • RLV force-sit on objects
  • carry: Create a method for carrying unconscious or unresponsive prisoners similar to ACS's robotic handle but with a proper "over-the-shoulder"/"princess" carry animation if possible.
  • Status: Not implemented.

Speech - Implemented

Gag

A "Gag" feature seems like it's best implemented with a Black Gazza gag or even a Nucleus. But a Nucleus is hard to implement. There are plenty of gas masks, though, which would suit the purpose well. Maybe this can be implemented as a drop-in script. 

  • none
  • force whisper
  • light
  • heavy
  • hiss
  • nothing
  • (emoting and IMs are always allowed)
  • Status: Not implemented

Bad Words - implemented

  • Certain words uttered by the prisoner will cause continuous punishment until the prisoner speaks the release phrase. 

Status: minimal implementation. Red light lights up when a bad work is spoken. 

Renamer - implemented

  • The prisoner's utterances are renamed with the prisoner's number and nickname. 

BG System Interactions

Achievements

Exporing the Station should be rewarded. Achievements might include visiting levels and sections, getting locked up in Isolation, getting confined to the Mental Ward, etc. 

Status: Not Impemented. 

Restrictions Earn Rewards 

  • tally board with times and restrictions. Longest time muffled, longest time dimmed, etc. 
  • but time accrued requires interaction: walking or talking at least every 5 minutes. You can't just log in and idle to earn time. 
  • Status: Not Impemented. 

Interact with Doors - Version 1 implemented

  • doors to top elevator room won’t open when collar is RLV locked
  • doors to colored sections won’t open for wrong-colors
  • inmate's own cell opens for inmate
  • Status: Version 1 Impemented. 
  • Version 2: Responder request respons with a lot of info about the wearer: Role (prisoner, guard, robot, etc), asset number, classification, and so ofrth. Section doors coul dbe made to respond to only people of the right class. 

Lockdown

  • When lockdown is called, warn the wearer. 
  • If lockdown is violated, enact sleepygas effects. 
  • Status: Not Impemented. 


Contraband 

If possible, perhaps have certain sectors of the prison that the collar recognizes when in range as locations of appropriate contraband. Perhaps have a set number of posts over a certain period of time be necessary for them to steal contraband so guards have a chance to catch them and retrieving the contraband has more weight and meaning...so that losing it also actually means something.

Status: Not Impemented. 

Medical Tracking

  • Fitbit Movement reminders (with collar zap)
  • Rewards for walking, running, and stair climbing
  • Scheduled medical exams: remind/force players to visit the medics once a month of rl play time or so. Time should only tick down when the collar is on and in rp mode and should be easily reset (by medical staff only) when they go in for a checkup. This can also aid in giving medical staff much needed tasks. — Kagenokami
  • If medical records are kept in the collar, perhaps find a way to allow the collar to communicate with a central database, permitting guards and/or robots to ACTUALLY view a person's complete file in a simple, short and sweet manner? It would mean having to pay more attention on keeping up on paperwork but would also be an interesting rp tool and might potentially be a cyborg perk to help draw new players.— Kagenokami
  • Status: Not Impemented. 

Recharge

"I gave the collar a small battery display at the back since I had a funny idea: The collar needs weekly recharging. It won't come off if it runs out, but it might knock-out zap the wearer if they neglected going to a recharge booth (soft leashing)." —DeinRa

VERY IMPORATNT NOTE ABOUT THE CHARGER OPTION: The optional charger option would be optional, and adveritised as optional. The optional option would have an optional button that people could oiptionaly click to activate it optionally.

There need to be in-game consequences for not recharing one's collar. Ideas so far:

  • Replacing or augumenting one of the vertebrae right near where the neck/collar interface is.  If the collar leaves proximity of that, the artificial or augumented vertebrae stops certain signals from going from body parts to the brain. the person likely would be paralyzed until they can get recharged.
  • Genital sensations woudl probably be blocked. 
  •  Beacons. Guards would have to do work to get them there.  It'll add social pressure to obey next time.  Yeah, ideally not only that, but it pings nearby guards or ICly alerts them
  • Deny food privileges until charged up. Though " That sounds problematic for long rp scenes or those that find them self in a padded cell of iso" 
  • Hopefully it's not like... once every few hours while requiring an hour or two of just standing still would be problematic. Ripping RP apart to satisfy a mechanical requirement might get annoying very fast. Balanced with a tiny reward much like the "fit-bit" system has might make it good
  • maybe recharge once a day?
    [12:33] Glaciusor - C0r (Glaciusor Resident): if recharge doesn't take too long and chargers are in common RP spots, might work
  •  A few minutes for a day or two (of IC time) seems fair. It's not like the collars are running CPUs or servos
  •  also think about a recharge would have to happen to be sooner if the inmate gets shocked a lot
  • battery should beep or buzz or something when charge gets low. 
  • Normal charge lasts 4 days. 
  • light zap takes off 4 hours
  • medium zap takes off 12 hours
  • heavy zap takes off 1 day. 
  • [21:17] Ferovox (Thunderwolf726 Resident): There was no discussion about this. There was no public input. It was just one guy saying "Hmm, this seems like a fun idea. Let's go with it." And it's just being thrust upon the inmate RPers with no chance to say whether they think it's a good idea or not. And I think it makes it seem a bit too much like you'd be playing a robot character, having to charge the collar once every three-four days.
  • [08:46] Lynxi (LynxiBoy Resident): (Saved Sun Jun 30 00:53:31 2019)My verdict would be: forcing the recharge option, resulting in restricting my character without my OOC consent. I do not agree to this. I am not here to RP an iPhone who needs to be recharged. I could say the same example with food or going to the potty - it's not the RP i focus on.
    EXAMPLE: "Your bladder is full, please sit on the potty for 5min."
    Suggestion - the option in collar to disable this for those who do not want to participate.
  • Status: Not Impemented. 

Hack

  • Collar is hackable and fixable, but with painful consequences for failure. 
  • A "hack" functionality so that clever inmates who get into the mechanics guild have the chance to tamper with a collar and potentially aid another inmate in retrieving contraband or attacking a guard.
  • Mechanics can succeed better. Interfaces with mechanics HUD. 
  • occasionally a collar might fail or a timer that counts down until the collar will need serviced, so as to give mechanics crew members more to do.

When you select Hack, some things could happen.

  • Nothing
  • You get shocked
  • The wearer gets shocked
  • You get a menu of things to hack. 

If you get the next menu, you may select to change the crime, class, threat level, or permissible zap levels. (Mood and RLV are OOC settings so it makes no sense to change them.) When you select the thing to change, some things could happen.

  • Nothing
  • You get shocked
  • The wearer gets shocked
  • You get the settings menu for that item

If you get the actual settings menu, you may select to change that setting. Some things could happen. 

  • Nothing
  • You could get zapped.
  • Collar wearer could get zapped.
  • Your attempt could succeed.
  • Your attempt could result in a worse outcome. 

 The collars could potentially malfunction to require mechanic intervention.  little mini-events triggered by the collar to get the various roles involved. shouldn't be too often to get people annoyed by the frequency and constant interruptions, but sometimes would be nice to give an added depth.  - Kagenokami. 

Status: Not Impemented. 

Staff Collar

Some players have been RPing "staff collars", for punishment or whatever. What features should a Staff Collar have? Ideas, please!

  • Guard Number
  • Staff Number
  • Interaction with the Station AI
  • only light shocks
  • S-numbers, instead of P-. 
  • No name-use zap.

Tonya suggests: Staff collars should be, as far as possible, the same as inmate collars, aside from the ID (and do guards have numbers assigned to them? I've never seen it. Perhaps we can introduce the concept of a payroll number, and use that as the staff ID when collared). Staff collars don't connect straight to the nervous system, so a heavy stun zap won't always work; it'll just hurt like hell.

Status: Not Impemented. 

Back Button in Menus - Implemented

Also: Fix keeping track of who has control of the menu. Give Main menu a Close option to release the menu system. 


Startup Management

Every script needs to sanely manage what it does on reset, rez, attach, and detach. 

Events

  • on_rez - when rezzed in-world and not attached to an avatar
  • attach(key) - when rezzed attached to an avatar
  • attach(null_key) - when detached from an avatar
  • state_entry - wne scripts are reset

Modules

battery state_entry

sets up some constants and starts a timer

database - state_entry

if attached sends database query

if not attached sets defaults

— should

attach with avatar, send database query

reset - reset variables it’s responsible for


display - state_entry

sets up constants and lists

enumerates links

sets texture lists

if attached - gets state out of prims. This should happen out of the wear event. 

if not attached - sets defaults. this is fine. 


leash - state_entry

turns off leash particles

gets leash prim number

•••        llMessageLinked(LINK_THIS, 2002, "Request", "");

resets leash system

——

Should

on rez, if there was a leash, try to reestablish it

menu - state_entry

sets up constants and lists

sends defaults (which it should not do because other things might know all this and would reset themselves in this event)

resets zap levels (which it should not do on attach)

sets up wearer listen - which it should do only when worn, and that only on attach event


RLV - 

state_entry - 

turns RLV variables off, 

if worn, checks RLV status - which it should not do here

sets up zap listen, which it should do only when worn

attach - 

if worn, sets Attached variable, checks RLV, registers with DB

if not worn, clears Attached variable, sends RLV off commands, registers with DB

Should try to reestablish RLV settings. Optional, default on. 

[*] Try to reestablish RLV lock on log-in



Speech - state_entry

initilializes bad words list 

if worn, try to reestablish speech setup. 

Architecture

Not one monolithic script, but separate scripts for functional areas.

Tonya Suggests: I would really, really recommend adopting the OC6 approach of having major scripts in their own prims with linked messages directed specifically at those prims. It's a major efficiency gain.

Separate Settings and Actions

Settings would all be under one menu structure for inital setup and rarely touched after that.

Actions would be on the main menu for easy access to collar functionality. 

Modules - Required

RLV - implemented (16kB)

  • locks/unlocks,
  • sets up timers and release date
  • Relay. Dead-simple only. If you need a better relay like the cool kids have, then get a better relay. I'm not going to reinvent the wheel again. 

Zap - Implemented in RLV

  • receives zap command from Menu or objects,
  • plays sound,
  • makes sparks,
  • plays animations

Menu - implemented (23kB)

  • manages SL viewer menus
  • sends commands to modules
  • receives state responses
  • responsible for menu security

State

  • stores and retrieves state so collar sets up again after relogging
  • enforces inmate group (If Inmate group is ot set, the collar gets angry)

Database - Implemented (7kB)

  • sends queries,
  • receives results.
  • automatically registers a new wearer with the database,
  • responsible for database access security. 
  • Collar 2020-02-20 has interface to old database.
  • Multiple-character database from V3 is not supported.
  • New database will require pair-programming with Timber and Lormyr.

Leash - Implemented (8kB)

  • leashes player to objects or other players,
  • sets up particles

Display - Implemented (14kB)

  • Manages appearance of collar lights, readouts, and titler
  • listens in on link messages and adjusts face textures and colors

Update - Not to be Implemented

manages scripts and retrieves updated ones from a server. 

Keypad - Implemented (4kB)

  • implements numeric input. 

Responder - Implemented (2kB)

  • Interacts with doors

Battery - 4kB

  • monitors activity and discharges the battery, sends updates to display.

http://wiki.secondlife.com/wiki/LlRemoteLoadScriptPin

Only the owner of an attachment can modify it while it is being worn. If target is an attachment owned by a different user, regardless of object modify rights granted, this function will silently fail.

People would have to remove, rez, update and wear their collars. That doesn't gain anything from just handing out new collars.

Modules 

Battery

  • tracks activity and uses up electrons

Database

  • handles character data:
  • switches character context,
  • retrieves from database,
  • sends to other modules,

Display

  • handles all visual aspects of the collar
  • light colors
  • surface textures
  • titler

Keypad

  • utility with numbers for setting timers

Leash

  • handles the leash RLV effects and chain particle effects

Menu

  • generates and presents most menus

Speech

  • sets up speech redirects and filters

RLV

  • lock, various restrictions 

Database

Data sent to and received from the external database will be encoded as JSON. Anything beyond trivial values sent to functional scripts shall be encoded as JSON and passed in the String portion of the message. Simple numerical or key values can be sent in those portions of the message. Objects can inquire a collar's state through the Database script's api. 

Data Hierarchy

  1. Player UUID - One database document (collection of records) per SL agent UUID
  2. Role - any reasonable number of roles (inmate, guard, medic, etc.)
  3. Asset Number - Each role can have any reasonable number of asset numbers. A Role-Asset combination is a character. 
  4. Keys - Each Role-Asset combination will have its own set of key-value pairs such as name, start_date, crime, shocks. 

The Prisoner Collar will only concern itself with Prisoner Roles. 

Asset Number Formats and Keys

Role Asset Number Format Role-Specific Keys
Inmate P-60361 name, rank, start_date, crime, class, threat, shocks
Guard G-673
name, rank, start_date, 

Medic M-981
name, rank, start_date, specialty

Mechanic X-241
name, rank, start_date, 

Robot R-8462 name, rank, start_date, 

K9 K-678 name, rank, start_date, 

Bureaucrat B-12 name, rank, start_date, 

Link Messages

Link Messages are handled by the modules passing JSON objects back and forth. Anyone can change a JSON object; anyone can listen in. 

Idea Credits

Thanks to ideas from 

  • Collins Carter Obrian
  • Glo SoftPaw
  • Darkefur Fraker
  • Lormyr Daviau
  • Seth Helsby  (Zatch244 Resident)
  • Kagenokami Resident
  • Jared 

Feature Requests

Off-Sim Use

Davina Drezelan (Alacaster Drezelan): i would also make it so it can be used outside bg also cause i do enjoy to use the collar when I am rping in star trek as it is a nice tool to keep my avie in check by the commanding officers and security.

Offsim Mode:
- OOC mode, but with additional benefits
- Permits off-sim:
  - display of prisoner number
    - Example: "Prisoner ***** of Black Gazza"
      - May be broken into multiline, like:
       "Black Gazza Prisoner"
              "P-#####"
    - Discussions about display should be had, to minimize text on the actual collar, while suitably promoting sim in offsim mode
  - LEDs in preferred color
  - optional sobriquet 
  - optional hover text
  - Optional shock enabling
    - Shock text in this mode contains link to BG
    - Shock enabling requires BG inmate group active
- Offsim mode possibly requiring BG inmate group active to work
- Collar may only be obtained by prisoner role and through processing, to avoid "grab and run"
  - Utilizes "foot in the door" technique to get people all the way into the sim and prepared for RP, more likely to stay
  
Collar name should be indicative that it's a Black Gazza collar, in menus, on hover, and and in chat to promote the sim passively
(Discussion between Kagenokami and Glaciusor)

Bad Words

Captain Marx (Dirty Marx): timber I like the badwords as a training tool for making well behaved inmates, but perhaps make it a little less annoying

Raffia Kiryuin (RaffiaKiryuin Resident): The badwords is a really good system but the penance accepted message should be an exclusion to stop the infinite punisment loops

[17:28] Kagenokami Resident: Touching on that a moment. Removing the wildcard from the bad word search in the new version might be a good idea. Why punish someone for saying "applesauce" if the bad word is only "apple" you know?

Status: Implemented. Lots of discussion led to defanging the collar, which now just blinks red. Suggest what the collar should do when it detects bad words. 

Gravity Loss

During power failure, simulate loss of gavity by setting llSetBuoyancy(0.0); — Raffia Kiryuin

Report an Inmate 

objects could allow inmates to rat on each other. Inmates could submit reports, which guards could review, and then decide whether to zap the inmate reported or the inmate who reported.