Rotation script TargetOmega not working
closed
Reid Parkin
TargetOmega rotation script stops working randomly when linked to a scripted child prim. Use a prim with basic rotation script from inventory library and attach a scripted prim with an alternating texture face changing animation script as used for flapping bird wings. Check it for a day or two. I can send it to you, if necessary.
Log In
Maestro Linden
closed
Maestro Linden
needs info
Maestro Linden
Hi guys, do you have any objects currently rezzed which demonstrate this issue? I don't see any objects near Reid Parkin's SLURL at http://maps.secondlife.com/secondlife/World%20of%20Elements/36/133/494
Also, if you do experience this bug, could you please include environment info including viewer version? Given reports that only some viewers fail to show llTargetOmega() properly, this seems likely to be a viewer bug.
My own repro attempt (which has been rezzed for about a week now), is still animating as expected when I view it with Second Life Release 7.1.13.14343205944.
Reid Parkin
Maestro Linden
EDIT to add: I can't reproduce the bug at all using Windows Second Life Release 7.1.13.14343205944. So far they all appear to be flying even with relog and TP.
Hi Maestro, I have put them near the floor of the skybox and made the discs bigger. You will see them now.
also the seagull here
Please have a look at both locations, especially the bird at ground level. It will be flying near the ground. Please use ctr alt t to see transparent disc. It is no mod for me.
However, the test objects are no longer consistently stopping when I relog. I can't reproduce it because it is a random thing. The pink disc with rotating script only stopped when I logged out, and then TPed to ground level and back, but other 2 still working using Windows Firestorm 7.1.11 (76496) Oct 22 2024 21:16:39
tested with
Windows Second Life Release 7.1.13.14343205944 - no problems so far
Windows Firestorm 7.1.11 (76496) Oct 22 2024 21:16:39
Windows Firestorm 6.6.17.70368
Linux Firestorm 6.6.17.7036
If you don't see the issue I think we will have to give up on it and I will thank you for trying.
Certified Lunasea
Reid Parkin I visited both locations you linked and at first I did not see the issue reproducing. However when I put the birds on the platform in edit mode to see which one you placed the workaround script into I was able to see the issue reproduce AFTER they were released from edit mode. Placing the object back in edit and releasing it again did not restore movement either. And the one with my workaround in it actually does stop periodically depending on where focus of the viewer is, but that restores automatically when the bobbing caused by the script occurs.
Once I saw this I looked at the other location (on the ground) and that bird was animating properly as well. I then put it in edit and closed the edit window as I did with the others and it also exhibited the same behavior as those on your platform.
Returning to the platform from there the two that were stopped before were still stopped and if I returned to the ground that one was still stopped there as well. I then teleported home, moved to the adjacent region from there, teleported to another two locations that aren't anywhere near your region (spending a minute or two on each region) and then returned to the ground level SLURL you posted and then to the platform level SLURL to observer all birds moving properly again. Though simply right-clicking on one without the fix was enough to stop its circular motion again.
Certified Lunasea
Due to having an older PC build with a 1st generation i7 processor, I do not have the LL viewer installed. I am intending on creating a new build before EOL of Windows 10 so I am not making changes to the current build or installed software at this point beyond viewer updates.
That said the environment details from my viewer are as follows:
Firestorm 7.1.11 (76496) Oct 22 2024 21:15:53 (64bit / SSE2) (Firestorm-Release) with Havok support
Release Notes
You are at 36.0, 133.0, 493.7 in World of Elements located at simhost-0381ef04160a2ed12.agni
(global coordinates 171,044.0, 301,957.0, 493.7)
Second Life Server 2025-03-14.13862207703
Error fetching server release notes URL.
CPU: Intel(R) Core(TM) i7 CPU 970 @ 3.20GHz (3200.12 MHz)
Memory: 18422 MB (Used: 1628 MB)
Concurrency: 12
OS Version: Microsoft Windows 10 64-bit (Build 19045.5737)
Graphics Card Vendor: NVIDIA Corporation
Graphics Card: NVIDIA GeForce GTX 1070/PCIe/SSE2
Graphics Card Memory: 8067 MB
Graphics Card Memory (Detected): 8067 MB
Graphics Card Memory (Budget): Unlimited
Windows Graphics Driver Version: 32.0.15.6109
OpenGL Version: 4.6.0 NVIDIA 561.09
RestrainedLove API: (disabled)
libcurl Version: libcurl/7.54.1 OpenSSL/1.1.1w zlib/1.3.1.zlib-ng nghttp2/1.62.1
J2C Decoder Version: KDU v8.4.1
Audio Driver Version: FMOD Studio 2.02.20
Dullahan: 1.14.0.202408091639
CEF: 118.4.1+g3dd6078+chromium-118.0.5993.54
Chromium: 118.0.5993.54
LibVLC Version: 3.0.21
Voice Server Version: Vivox 4.10.0000.32327.5fc3fe7c.5942f08
Settings mode: Phoenix
Viewer Skin: Vintage (Classic)
Window size: 1920x1017 px
Font Used: Deja Vu (96 dpi)
Font Size Adjustment: 0 pt
UI Scaling: 1
Draw distance: 128 m
Bandwidth: 3000 kbit/s
LOD factor: 2
Render quality: Ultra (7/7)
Disk cache: Max size 9984.0 MB (85.2% used)
Built with MSVC version 1941
Packets Lost: 26/106,953 (0.0%)
April 28 2025 16:51:49 SLT
Certified Lunasea
In case it might help at all, I also took a gyazo video of the birds on the platform while they exhibited the issue and with the bird that has the workaround script in it still working.
You can see it here: https://gyazo.com/02854199f9dda370708c92884d828552
Reid Parkin
Certified Lunasea thank you for taking the time. For me it resumes circular motion if I right click it, so that sounds like the opposite. It seems like a Firestorm Viewer issue, and not reproducible using Second Life Release 7.1.13.14343205944.
Certified Lunasea
Reid Parkin The funny part is I have seen it work primarily as you describe, that is, without interaction from the user/observer at all and then right clicking the object re-initiates the rotation. Your birds were the first I have seen since this started where the rotation stopped due to right-click.
Additionally most, if not all, of the viewer render pipeline comes from code that was written by Linden Lab. And while this may have been altered in subsequent LL viewer versions since the first 7.x firestorm release, many users are not on that viewer due to either having older PCs or the lack of features within the LL viewer itself that third parties are able to provide for user convenience.
I am not saying that LL should support those third party viewers at all, and understand why they wouldn't, but there do appear to have been some issues, especially in the last year, with the render pipeline that is likely do to more recent additions to it such as PBR, mirrors, and lighting probes (all of which were released with significant issues and shortcomings). My own update to a PBR capable viewer happened just before I started noticing these issues occurring frequently, so pointing out such issues may still be of value to LL if for no other reason than to prompt them to extend internal testing and external testing to better ensure issues are found and addressed prior to release.
I would encourage LL to review testing practices used when alterations to the rendering pipeline occur however, if for no other reason than this code is used by third party viewer developers and those third party viewers are used by a heavy portion of Second Life residents. That said I concur this may well be a viewer issue and as such there is no reason to continue testing the issue at this time since it may have been fixed in subsequent LL viewer releases and thus should be adopted in time.
Maestro Linden
Reid Parkin: Thanks for the SLURLs. The 3 discs and 2 seagulls are all spinning on my viewer. Given that it only occurs for you intermittently, I think it's fair to say that TargetOmega is likely always working, and that this issue is about the viewer not rendering it properly in some sessions. Since the affected viewer is Firestorm, I would recommend filing this bug on firestorm's tracker at https://jira.firestormviewer.org/secure/Dashboard.jspa
Reid Parkin
Maestro Linden Thank you for taking the time to investigate the problem. It does appear to be a Firestorm viewer issue, and also thanks to Certified for his contribution. I'll file the bug on Firestorm's tracker.
Certified Lunasea
I can confirm this issue as well. I experience the same issue with multiple scripted objects. Some of them I created and others which have been purchased from others. All of these objects were running fine for years and then suddenly stopped rotating intermittently.
Placing them into edit and then closing the edit floater seems to allow them to resume rotational motion but they stop again at random intervals.
I was not about to sit online watching these scripted objects for hours so I made a script to cause them to bob up 0.01m and down to their previous height every 2 seconds or so to force a positional update in an attempt to patch the issue. Unfortunately this isn't working so great since even with the extra script in place the objects sometimes get stuck for a bit (sometimes for as long as a minute or two) before they again resume their rotational motion. This really needs to be fixed.
Reid Parkin
I just found that if I log out and log back in it has stopped. I just tried this.
Maestro Linden
under review
Thanks for sharing the scripts. I've rezzed 2 prims and placed the scripts in them. As expected, the linkset is rotating slowly for now, while some of the child prim's faces flicker between transparent and opaque. I'll check back over the next few days and see if it stops rotating unexpectedly.
Maestro Linden
I checked back today (43 hours after rez, and 3 hours after the region restarted due to rolling restarts) and my test object still appears as it did initially.
Certified Lunasea
Maestro Linden I have to wonder if there is perhaps a difference with the region you tested the object on vs the ones we are using.
I have to ask since with two full regions that I have been helping to run for several years this particular issue is definitely something we have noticed since July of last year and effects new and old items alike regardless of creator. It should be noted that I have observed that this also effects items in which only the root prim has been scripted (no other prims are scripted in the linkset).
I'd be more than happy to show you several effected objects on the regions I help run if you would like, though I do not have open access to all of these as some were purchased from stores like Jian and Schadenfreude. Some of the effected items are ones I created myself several years ago and indeed do have open access. The common thread with all of the effected objects appears to be the use of llTargetOmega and the fact that they used to work without any issue or alteration whatsoever. As I stated previously I had to add an extra script to these items to keep them running, which I did in July of last year as a work-around.
It might be a good idea to check if it might be possible that the script and prim loads on the region are having some sort of adverse effect on llTargetOmega, though I attempt to keep my script loads fairly light on the two regions I help with. Both regions I am assisting with are full 30k regions currently running Second Life Server version 2025-03-14.13862207703 with multiple copies of the effected items rezzed across the region. Not sure if any of that is potentially effecting it but figured it was worth noting.
Since I do happen to have multiple copies of some of the effected objects rezzed out I wonder if that might be part of what is causing the issue since not all copies are necessarily effected at the same time.
Please feel free to reach out if you would like to see some of the items I have rezzed out that have exhibited this issue. I am also more than happy to post the code in the script I have used to work around this to some degree. In the mean time I will place a few of these items that are not fixed with my workaround to examine as well, perhaps a recent change has fixed the issue given restarts were just done yesterday. I hope so because having to add a script to work around this is not ideal in the least.
Certified Lunasea
llTargetOmegaFix Written by Certified Lunasea
This script causes the object to bounce 0.01m up and down several times every other second to fix issues with llTargetOmega first noticed in July 2024.
default
{
on_rez(integer start_params)
{
llResetScript();
}
state_entry()
{
llSetMemoryLimit(4096);
integer i;
for(i = 0; i < 360; ++i)
{
vector my_pos = llGetPos();
if(llGetUnixTime()%2 == 0)
{
llSetRegionPos(<my_pos.x, my_pos.y, my_pos.z+0.01>);
}
if(i > 358)
{
i = 0;
}
llSetRegionPos(my_pos);
}
}
}
Reid Parkin
Maestro Linden please also ask others to look at it since it is a local thing and not everyone sees the same thing at the same time. Some will see it spinning and someone else won't, and vice versa. Also different operating systems and different viewers all see the same problem because I have had friends look at it Some customers are reporting the problem and I'm giving refunds and unlisting items. I don't want 1 star ratings because of it.
Items I bought in 2008 that use the script are now suddenly not working - a flying seagull.
I am on a homestead, if that helps. Many of my items use the script like fish swimming in a circle.
Please don't give up on it unless we have an alternative rotation script.
Maestro Linden
Certified Lunasea: If you have a live object that you can modify, could you try adding a script like this to it to see if the object is spinning as far as the server is concerned? The output _should_ match the parameters that were set in the most recent llTargetOmega() call.
I'm asking because it's possible that this is a viewer bug, since llTargetOmega() is a purely viewer-side effect on non-physical objects. Another thing to note is that llTargetOmega() is a property of the object (much like color) rather than a property of the script; objects should continue to appear to spin after the script is gone.
default
{
state_entry()
{
llSay(0, "PRIM_OMEGA appears to be " + llList2CSV(llGetPrimitiveParams([PRIM_OMEGA])));
}
}
Certified Lunasea
Rezzed out some copies of the effected objects without my workaround script applied to them and I was again able to observe this issue. All 3 items I rezzed stopped all circular motion, but all other animation functions in use continued to work.
This continued to be the case until I relogged at which point all 3 items appear to be moving in a circular motion again. Due to this the issue may not be with the call itself but with the rendering code in the viewer I am using, so further testing might be necessary to see if it is just one viewer or if others are effected. Unfortunately that testing is difficult given the random nature of the issue observed.
I will give your script a test and see what it does if I can get it to replicate again since if it is a viewer issue then the viewer developers need to know about it and fix it. That said I will need to make modifications to it as the behavior will revert to normal if the object is put into edit and then released, which is another indicator that it may well be an issue in the rendering pipeline on the viewer in use. For this reason I have put in a 1-3 minute (60-180 second) timer and have the report message run within the timer event, and I also changed the report message llSay call to the following:
llRegionSayTo(llGetOwner(), 0, "PRIM_OMEGA appears to be " + llList2CSV(llGetPrimitiveParams([PRIM_OMEGA])));
Reid Parkin
Certified Lunasea I'm using the latest Firestorm Viewer and a friend is using the pre PBR Firestorm Viewer and we both see the same problem but not at the same time, if that helps. I'm pretty sure I tested it with the Official SL Viewer and also experienced it.
Certified Lunasea
Reid Parkin I am using Firestorm 7.1.11.76496 myself, which is the release for PBR features and mirrors and such if I remember properly.
That said there have been instances where both I and my wife saw the same objects stop rotating at the same time while those I saw unaffected appeared the same to her as well. Given I am using a self-built desktop with a wired connection and she is using an off-the-shelf laptop via wi-fi and both of us have different settings even when using the same viewer software it doesn't feel exactly right to call it strictly a viewer or client-side issue just yet as I think more testing is definitely better in this case. Having more data points to compare is awesome in cases like these after all.
In any case I will continue to test the objects I have set out, they haven't stopped again for me so I am still waiting for the outcome of the test with the modified version of the script that Maestro provided as I am quite interested in what the results might be.
Certified Lunasea
After several days I still have not seen the objects freeze again. I am not sure what is causing it to occur but have tried leaving the region and teleporting to several others before returning, logging out and back in, rapidly moving between locations within the region, and teleporting between different regions or moving to the adjacent region.
I have used both high and low draw distances and then repeated these tests with no effect in the last few days.
It should be noted that while it does appear to be a viewer issue when it is only being reported by a individual users, and especially since llTargetOmega is a client-side effect, it also has some characteristics of having some server-side component when it is triggered as multiple avatars can see the same effects on the same objects while other copies of those same objects may be completely unaffected and are also able to be viewed as such by multiple avatars. Add to this the fact that even with the script I made to work around the issue it can still exhibit itself for several minutes even with the user being able to see the bobbing effect that workaround creates. This is why I am reticent to simply label it as a client-side/viewer issue entirely.
I can report that the region has continued to see the object with the modified test script in it as rotating the entire time it has been running, and given the lack of results over several days I am not sure it will do any good to keep running these tests.
As it stands your average user that purchase an item that should rotate and sees it stop doing so randomly will think that these items are broken and may request refunds and/or leave bad reviews on said items.
With that said It may be a good idea for LL to look into the viewer code to attempt to determine what is causing these failures in the first place, and what causes them to stick in place. Especially since effected objects can have this effect persist even when an object is removed from view and well outside draw distance, or after teleports to one or more far separated regions, which shouldn't happen given these objects should need to be re-drawn by the rendering engine at that point. My question at this point is if it would be possible to have the viewer check the prim properties of items in view and cache those properties as well so that in cases of failure they can be properly restored without user intervention?
Reid Parkin
Certified Lunasea Thanks for the info and testing. I just logged in and found the one with your patch script is still working, and the one without your patch script was not. So I touched it to get it working again, then I logged out and logged in and it had stopped working again.
If you are interested in seeing my test items here's the URL
I have 3 out to test.
- rotation script - blue disc
- rotation script and your patch - yellow
- rotation script with Maestro's script - pink
Logged off and back in and only the one with your script is still working, the yellow. Maybe I'm not using Maestros script properly. I'm not a scripter.
Maestro Linden
needs info
Hi Reid, could you please attach a minimal version of the script in question?
Reid Parkin
Maestro Linden From the Inventory Library.
default
{
state_entry()
{
llTargetOmega(<0,0,0.2>,PI,1.0);
}
}
Reid Parkin
Maestro Linden
The rotation script works fine when there is nothing linked to it (or maybe also with no scripted object linked to it).
The child prim has the following script to give flapping bird wings
integer total_sides;
integer link_counter = 3;
string face_direction = "forward";
default
{
on_rez(integer start_param)
{
llResetScript();
}
state_entry()
{
llSetTimerEvent(0.10);
llSetAlpha(0.0, ALL_SIDES);
llSetAlpha(1.0, 0);
llSetAlpha(1.0, 3);
}
timer()
{
if (face_direction == "forward")
{
llSetAlpha(0.0, link_counter);
link_counter++;
llSetAlpha(1.0, link_counter);
}
if (face_direction == "backward")
{
llSetAlpha(0.0, link_counter);
link_counter--;
llSetAlpha(1.0, link_counter);
}
if(link_counter == 1)
{
face_direction = "forward";
}
if(link_counter == 7)
{
face_direction = "backward";
}
}
}