Jump to content


  • Posts

  • Joined

  • Last visited

Posts posted by agentronin

  1. A benefit of Mono is that multiple instances of the same script share the same memory in the server, with consequence that each additional instance of a rezzed object that contains the Mono script is not an additional burden on the sever in regard to script memory.

    Would the same be true if the same script were in different inventory objects that were rezzed? In this case how would the server recognize that the different objects, which are not instances of the same object, have an identical script in common with them?

    • Like 1
  2. There will be several attached objects to an avatar, each with one identical script, and communicating to one HUD. To communicate between HUD and the other attachments on only one channel, I need to come up with a scheme of automatically created addresses, such that each script will act only on messages it sees is addressed to itself. I am exploring the use of using the UUID of the object the script resides in to create a script's. I would like not to use the entire UUID for it is very long. What minimum amount of characters from the UUID would mean zero chance of more than one script having the same address? My interest is not in negligible chance, rather, it is in no chance.

  3. Since starting this thread I have realized the diagram I posted is wrong. The arrow, when shot, does not pick up a lateral velocity component from the shooting avatar's sideways motion as it would in RL. The lateral correction compensates for the lag between mouse button click, and arrow rez time, by rezzing the arrow where the avatar was when the mouse button was clicked.

    When the dynamic aim correction is enabled the arrow trajectory's point of origin is where the avatar was when the mouse button was clicked,

    When the dynamic aim correction is disabled the arrow trajectory's point of origin where the avatar is when the arrow rezzes.

    I do not know right now what happens to the trajectory's direction in either the enabled, or disabled, cases between the time instant the mouse is clicked, and the instant the arrow is rezzed, if in this time the mouse is moved on its pad, and so the direction the avatar faces is changed. It the mouse does not move, definitely the trajectory's direction is as aimed.

    • Thanks 1
  4. My application reads names, or UUIDs, for animations, and sounds, from a configuration notecard at start up. As the notecard is read I need to verity that these names, and UUIDs, are valid before the script attempts to use them later. I attempted to use: llGetInventoryType() to do this. I find this works only on items in the object's Content tab. The need is to verify the validity of any name, or UUID, that can be passed to the functions llStartAnimation(), and llPlaySound(), regardless of where the item is. How can that be done short of playing the animations, and sounds, in advance?


  5. This question regards bow weapons used in combat in Gorean sims.

    I have a bow that has, as one of its features, "Lateral Aim Correction". As described by the vendor, when this feature is not enabled, the avatar's lateral motion (sideways motion of avatar with respect to the direction the avatar is facing), pushes the arrow sideways, causing the shooter to have to compensate aim for this. While this feature is enabled the claim is it is no longer necessary to compensate for this sideways push while aiming.

    To understand this I created the attached velocity vector diagram, and did calculations in a LibreOffice spreadsheet file which can be downloaded from:


    The calculations are based on the arrow's ground speed is a constant 60 m/s.

    The equation used is:

    Val = Va sin( atan( Vl/Va ) )


      Val = Arrow lateral velocity component
      Va = Arrow velocity
      Vl = Avatar running speed.

      Vl = 5.13 m/s
      Va = 60 m/s

    The calculated result is:
      Val = 5.11 m/s

    I did some In-World testing with some bow weapons. While running laterally I shot at a stationary avatar with Lateral Aim Correction off. If the arrow is shot while the crosshairs are at canter of the targeted avatar's hitbox from a distance of 60 meters, according to the above, that arrow should miss that hitbox center by 5.11 m. But this is not what I saw. Judging from a hitbox frontal width of 0.6 meters, the arrow missed by about 0.3 meters because it grazed the hitbox's side. 0.3 meters was confirmed when I shot when the crosshair was on the hotbox's edge, and got a hits near the hitbox center. I believe this 0.3 hitbox center has more to do with a bit of lag between a left mouse button click, and arrow rez. This seemed to be confirmed with shots done at 30 m.

    I appears to me that the arrow flight path is already where aimed when shot even without "Lateral Aim Correction" in effect, and the avatar's lateral motion does not introduce a lateral velocity component.

    I did testing with Lateral Aim Correction enabled, and could not see what difference it made.

    I am interested in hearing from weapon developers, and others who have detailed knowledge of this, about why I did not get the expected result, and what benefit, if any, "Lateral Aim Correction"  has.


    1:1 Lateral Correction.png

  6. Are there any characters that are not allowed to be in a group name?

    I am asking because I am writing a script that does, as one of its functions, read in a list of group names from a notecard's line. I need a character to use to delimit the group names. This character must be one that never appears in a group name.

  7. Which of these two command string prefixes is the correct one to use:

    @clear=attach,attachallover:<folder path>=force

    @clear=attachallover,attachallover:<folder path>=force


    On this page:


    I see many commands suffixed with "=force". According to the Backus-Nauer notations given for these commands this is not an optional suffix for the commands that have them. What is the meaning meaning of this "=force" suffix? 

  8. I have seen in the RLV documentation here


    the commands that attach all in a given folder. It is not clear to me if there is also a command that will attach a specific item in a folder, and nothing else in that folder. Is there?


  9. This concerns RLV scripting:

    I strongly suspect the command "@attachallover", and other RLV commands like that which attach, or detach, Inventory items are triggering attach events for the attach() event handler. In my application this is undesirable. Is there a way to prevent this happening? Or at least detect in the event handler that the event was triggered not by direct user action, but by that RLV command? I would like to avoid using counters that I would increment with every such command, and decrement when the change() event handler is called.

    The script is meant to run inside a prim that attaches to an avatar.

    I know these unexpected events are happening because I have many llOwnerSay debug statements in it I trace execution with.

  10. I have written a script I want to offer for sale on the Marketplace. There would be, I expect, a lot of demand for this script because it meets a need I see. There is nothing else like it available anywhere. The question is how to determine a fair price for it. I had thought of asking someone to appraise it, but I am concerned about giving away the idea to what would be, I expect, a skilled scripter. So what are other ways to determine a fair price?

  11. Thanks for your reply. Your suggestion worked. Putting that clothing layer somewhere inside the #RLV folder worked to get it to disappear from the avatar when removed in Inventory.

    Doing the same solved another problem I had regarding mesh objects that are also part of the outfit. They were very often only partially rezzing, or not rezzing at all. Forcing rebake, or refreshing attachments, would not work to make them appear. Yet they were attached, and when the item was right clicked in Inventory and Edit selected, it would fully rezz.

    I have created an invisible #RLV subfolder named .outfits and moved the entire folder the outfit was delivered in into it. I link to this folder from elsewhere in the #RLV folder. This going to be my standard practice for any outfit I use in the #RLV folder.


  12. I wrote a script that attaches a list of #RLV subfolders when the prim the script runs in is attached, and detaches that same list when that prim is detached, on my BOM mesh body. In the list's subfolders are two clothing layers  that attach as expected. When the prim is detached, I can see the layers disappear from the system "Current Outfit" folder as expected, but they do not disappear from my avatar. Nor do they disappear from other people's viewers. In the Firestorm Viewer's "Avatar => Avatar Health" menu I tried "Refresh Attachments", and "Force Appearance Update (Rebake)", to no effect.

    The command used to attach is:

        @attachover:  <subfolder>=force

    The command used to detach is:

        @detach:  <subfolder> =force

    These layers are present as links in the two #RLV subfolders. The original items linked to are in subfolders of the system Clothing folder.

    Any ideas about why these layers remain on the avatar anyone?


  13. I am looking at the document at: https://davrosharkness.wordpress.com/2018/01/31/rlv-folders/ . Is it necessary that the .core folder be a subfolder of the .outfits folder to prevent detachment of items that should never be detached? Should it also work for the entire #RLV folder if it were a direct subfolder of #RLV?

  14. I have solved this problem. Instead turning toenails on upon detach, I had to have the script RLV attach a prim with a script that turns the toenails on. So now there is a system of two scripts. Here are the two scripts:


    // Slink Toenails Hide
    // Written by:
    // Agent Ronin (agentronin)
    // secondlife:///app/agent/28e3faba-fcac-458a-8dab-b00145b057cf/about
    // February 8, 2021
    // This script turns off the toenails on a Slink Physique Redux
    // avatar when the prim this script is in is attached. When its prim
    // is detached this script attaches all in the folder:
    // #RLV/.Slink Toennails Show
    // This folder must contain a prim with script in it that turns the toenails on, and
    // then detaches its prim.
    // RLV must be enabled in the user's viewer to be able to attach that folder.
    // The script "Slink Toennails Show" is the companion script meant to work with
    // this "Slink Toennails Hide" script, and should be in a prim, and in the
    // folder above.
    // This "Slink Toenails Hide" script, and its companion "Slink Toennails Show" is
    // necessary because alpha layers do not hide toenails. These scripts should be used
    // wherever an alpha layer is required to hide the toes.
    // In cases where the feet clip through shoes, and so must be hidden by
    // alpha layer, this "Slink Toenails Hide" script, and its companion
    // "Slink Toenails Show" script counterpart, make possible toenails looking right after RLV
    // stripping shoes, or boots, without the user having to do anything to turn the toenails on.
    // References:
    //    http://wiki.secondlife.com/wiki/Attach
    //    http://wiki.secondlife.com/wiki/LSL_Protocol/RestrainedLoveAPI#Inventory.2C_Editing_and_Rezzing

    default {
      attach(key AvatarKey)
        if (AvatarKey)
        { llSay(15,"toenails off");
        }else //if( llGetAttached() == 0 ) // This attached check turned out to be unnecessary.
           // The below commented out section does not work. So it had to be
           // done by means of RLV.
           // Reference: https://community.secondlife.com/forums/topic/467818-sending-a-command-on-detach/
           llSay(15,"toenails on");
           llOwnerSay( "toenails on" );
           // Attach the script that will make the toenails show.
           // Note that the folder path begins with a "." charadter.
           // This hides the folder from a collar's menu system.
           llOwnerSay( "@attachover:.Slink Toenails Show=force" );
      // Minimize reserved memory for ths script. Needed for security orbs
      // that control for resource usage.
              integer i;
               while( i++ < 10 && !llSetMemoryLimit( llGetUsedMemory() + 500 ))



    // Slink Toenails Show
    // Written by:
    // Agent Ronin (agentronin)
    // secondlife:///app/agent/28e3faba-fcac-458a-8dab-b00145b057cf/about
    // February 8, 2021
    // This is the counterpart script to the "Slink Toenails Hide" script.
    // This script must be put in its own prim, and must be on the #RLV
    // folder path that is pointed to in the "Slink Toenails Hide"
    // script.
    // See the comments in the "Slink Toenails Show" script for details.

    default {
      attach(key AvatarKey) {
        if (AvatarKey) {
          llSay(15,"toenails on");
          llRequestPermissions(AvatarKey, PERMISSION_ATTACH );
      run_time_permissions(integer perm)
            if(perm & PERMISSION_ATTACH)
                llDetachFromAvatar( );


  15. According to:
    The code:

    llGetAttached() == 0

    is necessary as explained in that wiki's first caveat.

    That the message "toenails on" appears in Firestorm's Nearby Chat shows the script had to have enough to time to get to the point of executing:

    llSay(15,"toenails on")

    because the line that sent the "toenails on" message to Nearby Chat is executed after this.

    • Thanks 1
  16. default
      attach(key AvatarKey)
      {   if (AvatarKey)
          {  llSay(15,"toenails off");
             llOwnerSay("toenails off");
          }  else  if ((llGetAttached() == 0)
          {  llSay(15,"toenails on");
             llOwnerSay("toenails on");

    The above code is intended to turn off toenails on a Slink Physique Redux BOM body when the prim it is in is attached, and on again when detached. It is needed because the alpha layer, that is needed when shoes are attached, does make the feet disappear but not the toenails.

    This code is inserted in a prim that is attached to the avatar when shoes are attached, and is detached when the shoes are detached.

    The two llOwnerSay() calls are there for debugging. The script does turn off the toenails when attached. But it fails to turn them on when detached. I know the llSay(15,"toenails on") statement gets executed upon detachment because I get the "toenails on" text in local chat.

    I know the command to turn them on is the correct one because typing "/15 toenails on" in Firestorm's "Nearby Chat" does work to turn on the toenails.

    Why does this code fail to turn on toenails?

  17. I decided to rent instead of purchase.

    I wanted that specific plot because it was within view of the political activity near there. I wanted to answer that political activity with a satirical statement of my own. That statement is on display there now.

    I decided to rent because after the USA presidential inauguration there is no difference it would make anymore, and there is no other purpose it would be useful to me for. If I change my mind later, I will make an offer.

    I am interested in knowing how to know where lag is coming from in a region.

  18. Your replies are appreciated, thanks.

    I got the region name wrong. When I posted this question I failed to notice I had crossed a region boundary. The parcels I am looking at are actually in the adjacent Arket region. There is lag in Arket also. I experience low FPS, and when moving my avatar in Arket it frequently rubber bands. There is a large adult RP sim in this region, which might have something to do with the lag.

    The parcels are on an invisible protected roadside.

    It looks to me like someone has subdivided a lot of land in this region, and is attempting to profit by selling off all the subdivisions for prices that total a greater price than the acquisition cost of parcel, or region, that was subdivided.

    I am interested in how one looks up what percentage of scripts are getting to run each frame. How is this done?

  • Create New...