This is basic technical docs for how to customize things in 1ring. Construction and prim contents. ----------------------------------------------- Any 1ring object needs at least three prims. The main prim has most things in it. Linked to that main prim is a prim that should have the OhSillyThreatDetector script in it, coz it listens to the DEBUG channel for errors from the other scripts, and LSL scripts can't listen for things sent from their own prims. The other prim is the one that becomes the "big yellow heart" vehicle prim, and is called "1AOor2 prim" The script inside it is really simple, and allows the main 1ring to send stuff to it after rezzing it. This prim just sits in the contents of the main prim until needed. There is a "onefang's leash holder and 1ring support" script that you can put into any leash holder object. Put it into the prim the leash should attach to. The main prim should have at least these things in it - objects - 1AOor2 prim scripts - 1chatter, 1ring, 1AOor2 notecards - .1AOor2.settings .1AOor2.theme .1ring.settings .1ring.theme .POSITIONS ZHAO II ~1AOor2.alias.data ~1AOor2.command.data ~1AOor2.settings.data ~1ring.alias.data ~1ring.command.data ~1ring.settings.data ~animations.data ~flystates.data ~states.data textures - soap-bubble, leash_chain, others beginning with "leash_" for optional leash textures. animations - loooots. The various .data notecards are used to store data that may or may not fit into scripts, coz various viewers have various limits on the length of scripts. So we just read those into memory. ~animations.data lists the viewer built in animations. The ZHAO II card is a standard ZHAO II compatible AO definition card. It can be replaced by any other ZHAO II compatible AO note card. Make sure the animations listed in it are actually in 1rings contents. .POSITIONS stores couples positions data, exactly like the ones used for MLP scripts. The format is - {pose name} followed by four vectors of position and rotation for both animations in the pose. The .settings notecards store the various settings that are configurable by the user. They are name=value pairs, one per line. The .theme note cards are where the menus are defined, and are the bits you might want to customize. // and # can be used for comments in these cards. They start with a "FOR x" line, where X is one of the script names. This means that by default the commands in the rest of the note card are commands from that particular script. Next might be an "ALIAS x | y" command. Mostly used so that "boss" can be replaced by something like "Owner" or "Parent" or whatever. The rest are commands for defining the menus. If you are familiar with MLP menus, this part is similar. There is no need for adding Exit commands, nor for breaking the menus up to fit the silly LSL menu system limitations. MENU name | title text | permissions. ----------------------------------------------------- Start defining a menu. "name" becomes the button text, "title text" becomes the title of the menu as displayed. "permissions" is a code word that defines who can use this menu. This line is followed by lines defining the menu items. Permission codes. -------------------------- NONE No one. BOSS Anyone that is a BOSS. TRUST Anyone that is aTRUSTEE. GROUP The group the wearer has currently activated. BOSSES Anyone that is a BOSS or TRUSTEE. WEARER The actual wearer. PRIV Anyone that is a BOSS, or WEARER. MORE Anyone that is a BOSS, TRUSTEE, or WEARER. MOST Anyone that is a BOSS, TRUSTEE, WEARER, or matching group member. PUBLIC Anyone. ALL Everyone. Note that GROUP and PUBLIC are controlled by the group and public toggles in the access... menu. BUTTON name | command --------------------------------------- A menu button with the label "name" that does "command" when clicked. TOGGLE name | setting ---------------------------------- A menu button with the label "☐ name" or "▣ name" that toggles boolean setting "setting" when clicked. TOMENU name ---------------------------------------- A menu button with the label "name..." that shows the named menu when clicked. TOMENU name | command ---------------------------------------- A menu button with the label "name..." that runs the command when clicked. The command likely shows another menu. POSE name | animation0 | animation1 --------------------------------------------------------- A menu button with the label "name" that animates the couple that are sitting on the 1AOor2 prim. Unless swapped, animation0 is for the tallest person, animation1 for the shortest. The .POSITIONS note card stores the actual positions and rotations for the poses. SINGLE_POSE name | animation ------------------------------------------------ A menu button with the label "name" that animates the wearer. command --------------- Commands are in the form "script.command arguments". "script" is optional, as is the . if script is left off. It's the script the command is for. If a FOR command is at the top of the script, that's the default script. "command" is the name of the actual command. "arguments" are any arguments the command needs. setting ---------- Like commands, settings have an optional "script." bit at the beginning, which works the same. animation ---------------- This can be just the animation name, either a viewer built in one, or one that is included in the 1ring contents. It can include a :: followed by another animation name, typically the built in emote_* viewer animations. Used for things like puckering up your lips for a kiss, or poking your tongue out while licking.