Difference between revisions of "Second Life Black Gazza Collar"
|(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 ==
= Architecture =
= Architecture =
Revision as of 02:32, 22 March 2020
- 1 Introduction
- 2 Goals
- 3 Support Required
- 4 Read Me
- 4.1 Introduction
- 4.2 Simplified Menus
- 4.3 New Features
- 4.4 Same Old Features, Revised
- 4.5 Features Omitted
- 4.6 The Plan
- 5 Bug List
- 6 Required Features
- 6.1 RLV locking with options - Implemented
- 6.2 Zap - Implemented
- 6.3 Leash - Implemented
- 6.4 Character Sheets - Implemented
- 6.5 Almost No Titler - Implemented
- 6.6 Data Security and Integrity
- 6.7 Required Menu Functions and Options - Implemented
- 7 Desired Features
- 7.1 Alternate Characters
- 7.2 Listen Channel
- 7.3 RLV/Lock - Partly Implemented
- 7.4 Speech - Implemented
- 7.5 BG System Interactions
- 7.6 Staff Collar
- 7.7 Back Button in Menus - Implemented
- 7.8 Startup Management
- 8 Architecture
- 8.1 Separate Settings and Actions
- 8.2 Modules - Required
- 8.2.1 RLV - implemented (16kB)
- 8.2.2 Zap - Implemented in RLV
- 8.2.3 Menu - implemented (23kB)
- 8.2.4 State
- 8.2.5 Database - Implemented (7kB)
- 8.2.6 Leash - Implemented (8kB)
- 8.2.7 Display - Implemented (14kB)
- 8.2.8 Update - Not to be Implemented
- 8.2.9 manages scripts and retrieves updated ones from a server.
- 8.2.10 Keypad - Implemented (4kB)
- 8.2.11 Responder - Implemented (2kB)
- 8.2.12 Battery - 4kB
- 8.3 Modules
- 8.4 Database
- 8.5 Link Messages
- 9 Idea Credits
- 10 Feature Requests
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.
- 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.
- Github for source control and bugbase https://github.com/timberwoof/Black-Gazza/tree/master/Collar4
- wiki for major documentation
- External Database
Black Gazza L-CON 4th Edition READ ME
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
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.
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:
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.
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.
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!
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 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.
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
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.
The collars are now painted your Prisoner Class color. You can change this when OOC. A guard can set your class OOC.
You can set your Threat when OOC. A guard can set your threat, too.
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
Multiple Characters - requested feature
Contraband - requested feature
Bell (Really? How can you live without that?)
Owners - implied in many menu funcitons with availability based on group membership of who clciked
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.
Known bugs, feature requests, and statuses. Please check this list for your bug before reporting it. Things will be handled in this order:
- readme items
|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|
Threat and zap lights re reversed; straighten that out. Change Class light to sow Lock level.
|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.
|Anyone can grab leash||If someone else has th eleash grabbed, you can grab the leash||bug||minor||Leash|
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)
|"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
|TP location|| yes
|TP lure|| yes
|World map|| yes
|Mini map|| yes
|See Names|| yes
|Sit TP|| yes
|Far Touch|| yes
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
- 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)
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
- 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
- Give Character Sheet
|Play Level||Casual, Normal, Hard Core||
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||
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||
|| Argh. Can't easily detect groups.|
|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)||
|Lock||Game, Real, Confine, Lock, Safeword||
|| One of the four lights on the side indicates lock state. |
|Hack||Hack, Maintenance, Fix||1300||Hack||Hack||Hack||
This section describes additonal features that would be nice to have.
Each section has a Status section.
- 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.
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
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 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.
- see no float-text
- force a sort of moouselook
- Status: range-limited vision under heavy RLV locking.
- interface to shackles
- 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
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.
- force whisper
- (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
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.
- When lockdown is called, warn the wearer.
- If lockdown is violated, enact sleepygas effects.
- Status: Not Impemented.
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.
- 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.
"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.
- 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.
- 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.
- 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.
- 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.
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.
Every script needs to sanely manage what it does on reset, rez, attach, and detach.
- 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
sets up some constants and starts a timer
database - state_entry
if attached sends database query
if not attached sets defaults
attach with avatar, send database query
reset - reset variables it’s responsible for
display - state_entry
sets up constants and lists
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
on rez, if there was a leash, try to reestablish it
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
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
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.
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)
- 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
- 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.
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.
- tracks activity and uses up electrons
- handles character data:
- switches character context,
- retrieves from database,
- sends to other modules,
- handles all visual aspects of the collar
- light colors
- surface textures
- utility with numbers for setting timers
- handles the leash RLV effects and chain particle effects
- generates and presents most menus
- sets up speech redirects and filters
- lock, various restrictions
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.
- Player UUID - One database document (collection of records) per SL agent UUID
- Role - any reasonable number of roles (inmate, guard, medic, etc.)
- Asset Number - Each role can have any reasonable number of asset numbers. A Role-Asset combination is a character.
- 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|| |
|| name, rank, start_date,
|| name, rank, start_date, specialty
|| 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 are handled by the modules passing JSON objects back and forth. Anyone can change a JSON object; anyone can listen in.
Thanks to ideas from
- Collins Carter Obrian
- Glo SoftPaw
- Darkefur Fraker
- Lormyr Daviau
- Seth Helsby (Zatch244 Resident)
- Kagenokami Resident
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.
- 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"
- 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)
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.
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.