Scripting Bugs

  • Search existing bugs before submitting
  • Use for customer support issues
  • Keep posts on-topic
Objects rezzed with llRezObjectWithParams with REZ_FLAG_DIE_ON_COLLIDE ignore llCollisionFilter settings
An object rezzed with llRezObjectWithParams that has the flag REZ_FLAG_DIE_ON_COLLIDE set on it does not obey any filter applied by llCollisionFilter. That is, if an object has a script in it that sets a filter to ignore collision with some object, it will still die on collision with that object if the DIE_ON_COLLIDE setting was used. This obviously breaks legacy behavior and makes the new rez method less flexible than the old method. I posted a feature request in the combat2 section before I realized there's actually a bug here as well. This post covers the actual bug between llRezObjectWithParams and llCollisionFilter. You can see my suggestion here: To reproduce: Create an object called "ObjectA" with gravity set to 0 and this script in it default { state_entry() { llCollisionFilter("ObjectB", NULL_KEY, FALSE); } } Create a rezzing object with ObjectA in it and this script default { touch_start(integer total_number) { list rez_params = [REZ_FLAGS, REZ_FLAG_PHYSICAL | REZ_FLAG_DIE_ON_COLLIDE, REZ_POS, llGetPos()+<0.0, 0.0, 1.5>, FALSE, FALSE]; llRezObjectWithParams("ObjectA", rez_params); } } Now place an object called "ObjectB". Touch the rezzing object, then drag ObjectA that appears until it collides with ObjectB. You will observe that ObjectA dies despite the fact that collisions with ObjectB are suppressed by llCollisionFilter. You could argue that this is "working as designed" and that it's correct for REZ_FLAG_DIE_ON_COLLIDE not to be influenced by llCollisionFilter. However, back before llRezObjectsWithParams came along and an object had to have its own script to destroy itself on collision, it was useful to filter out some object by name from this behavior. There is no such capability of filtering collisions by object name with llRezObjectWithParams, so the only solution is to do things the old way, giving up the improvements made possible by this new rez API. It would be better overall for LSL development to maintain this filtered collision behavior in the new method.

under review

Load More