Version 1.9 New Features

Version 1.9.0 was released on Monday, Jan. 13, 2014. We’ve got a bunch of improvements to the programming system, including new conditions, new actions, and higher reliability. There are some exciting new features, including support for the soon-to-be-released Remote Control upgrade, which will allow an operator to remotely steer a unit, or to constrain it to remain near an object or avatar.

If you have a Remote Controller Chip, it may not work properly after this upgrade. A separate upgrader for the Remote Controller Chip will be released shortly. If Remote Controller Chip functionality is important to you, you may wish to delay upgrading to 1.9 until then.

Extra Note on Upgrading: If you have attachments that are not installed when you are upgraded to 1.9, such as alternate Access Panels or Batteries, BE SURE TO KEEP A COPY OF YOUR UN-UPGRADED CCU.? An un-upgraded attachment may not be able to connect to an upgraded CCU, which will make it impossible to upgrade your attachment. The upgrader will remind you of this – do not ignore the reminder!

Upgrade instructions.

New features in Version 1.9

  • Units now reload all programs on booting only. This has the following implications:
    • After making changes to any program module, you must reboot the unit before the changes become effective
    • Activating the unit from a shut-down state takes longer than it used to while programs are loaded and modes are initialized. The unit is frozen while this happens. (It is recommended that you use Standby rather than Shutdown for most purposes. The Shutdown button has therefore been moved to the end of Access Panel and Remote Control menus.)
    • The Defrag command has been eliminated; use Reboot (or Shut Down followed by Activate) instead.
    • A new Reconfig command has been added that may address some problems without the need for a full reboot
    • Bondage Witch Products Turn-On switches now put you in standby, rather than shutting you down, so you can be more quickly reactivated.
    • A battery that requires shutdown to charge now puts you in Standby, rather than actually shutting you down completely, so you can reactivate more quickly once you are charged.
    • When your Doll Key is completely unwound, you go into Standby rather than shutting down completely. Having your key wound, automatically reactivates you. (A Battery running out of power still shuts you down.)
  • You can now pose yourself in any pose in your CCU without having to be frozen. Click your Snowflake button, then Pose, then select a pose. To unpose, just move (using forward or back keys).
  • You can also make yourself follow another avatar or object. Click your snowflake button, then Follow (for avatars) or Tether (for objects), then choose what you want to follow. To stop following, click the snowflake again, then Untether.
  • You can now program actions to occur when an Access Panel is opened or closed:
action (panelstate=open) say:Access panel is open.
action (panelstate=closed) say:Access panel is closed.
  • You can now put multiple commands in a single action if you want. Doing so has the advantage of reducing memory usage and speeding program loading and execution because fewer lines need to be remembered and read. Choose a character that appears in NONE of the commands to be sequenced to use as a separator – “+” or “@” are often good choices. Then:
    action (x=y)...
    seq:+say:Command 1+self:Command 2+panel:close

You can use a different separator in each seq: command, but must use the same one throughout any individual seq: command. Do *not* include a wait: command in a seq:.

  • New actions “panel:open” and “panel:close” can be included in programs. They do what you’d expect. ?Ignored if you have no Access Panel, or it has no door, or its door is already in the requested state.
  • New action “timer:time:name:action”. This lets you program an action to occur some time in the future. For example:
action (panelstate=open) timer:300,autoclose,panel:close

causes the panel to automatically close five minutes after it opens. The corresponding action “stoptimer:name” cancels the timer with that name if there is one. Setting a new timer with the same name as an old one replaces the old timer.

  • You can also program an event to happen the next time a certain event occurs. This functionality was added primarily for internal purposes to support temporary malfunctions and glitches; I’m not sure why you would want to use it in programs. But if you do, it works like this:
action (state=value) trigger:(otherstate=othervalue),name,command:parameters
action (state=value) deltrigger:name

Unlike timers, you can set multiple triggers with the same name. deltrigger: will delete all triggers with the specified name.

  • When a unit is shut down or in standby, the Pose/Carry dialog will tell you if their vision, hearing, or names have been impaired for real. If no messages to that effect are present, the player can still see and hear even if the character cannot.
  • A “Fix Animation” button has been added to the Pose/Carry dialog to let you (in some cases) refreeze a unit who should be immobilized but has started running an animation.
  • When a unit is shut down, its custom controls (modes) are inaccessible until it is reactivated and finishes booting.
  • HUD and Access Panel provide more detailed information about a unit’s status while booting and executing actions.
  • The “lowestprogramlevel” setting has been eliminated. Instead, create a program module called “p## MINIMUM” to prevent the CCU from reading any program modules at a lower level than that one. (It must have some content, but it can be a single “#” if you have nothing else to put in it.)
  • When you are immobilized, your eyes no longer move or blink.

Other changes in Version 1.9

  • More reliable operation immediately after purchase, installation, or upgrade.
  • Improved sound effects during shutdown and activation
  • Speech garbling effects for speaker interference and frozen with motorspeech=1 have been distinguished and improved.
  • Handle is more likely to reconnect automatically if it loses connection.
  • When charge is very low, the up and down (jump and crouch) controls are disabled, and you now move slowly when strafing sideways (shift-leftarrow or shift-rightarrow) as well as forward or backward.
  • No more error messages if you omit a widget letter from a mode line in a program.
  • When a unit has been renamed with the “speechname” command, that name is used in place of the display name in more places (for example, on the HUD and in messages from the Access Panel).
  • When a second Access Panel, Power Source, or Handle is connected, the previously-connected one is detached, rather than having them fight each other generating repeated warning messages. (Multiple Remote Controls may still be connected at once.)
  • “You can now exit standby mode” messages will no longer be triggered by OOC chat or when you are already able to exit standby mode.
  • If you log out while shut down or in standby and with vision, hearing, or names limited, these limits are restored when you log back in.
  • A bug causing teleports to sometimes result in unexpected RLV restrictions has been fixed.
  • Access Panel and some Remote Control menus indicate when the unit is monitoring its own state and possibly trying to overcome a restriction.
  • More reliable upgrades.

See also the changes in Version 1.8.