Hello,
Two issues regarding the llPassTouches function:
1/ The wiki page appears to be incorrect: https://wiki.secondlife.com/wiki/LlPassTouches
It states that the default value is PASS_ALWAYS, but according to my tests (see below), the actual default is PASS_IF_NOT_HANDLED.
How to verify:
Rez two prims and name them Root and Child.
Link Child to Root.
Add the following scripts:
Root script:
default
{
touch_start(integer total_number)
{
llSay(0, "Root touched.");
}
}
Child script:
default
{
touch_start(integer total_number)
{
llSay(0, "Child touched.");
}
}
Click the Child prim: you will only see “Child touched” in local chat, which shows that PASS_ALWAYS is not the default value.
2/ According to the wiki, this is supposed to be a prim attribute.
However, if you change the value through a script and then remove the script, the value does not persist. It resets back to PASS_IF_NOT_HANDLED.
How to reproduce:
In the same linkset, add this script to the Child prim:
default
{
state_entry()
{
llPassTouches(PASS_ALWAYS);
}
}
Click the Child prim and you will see both “Root touched” and “Child touched” in local chat.
Then remove that script and click the Child prim again: you will now only see “Child touched”, proving that the behavior has reverted to PASS_IF_NOT_HANDLED.