Summary:
When editing a vehicle owned by another resident, replacing the script responsible for setting vehicle physics parameters can leave the object in a broken physical state. The object no longer behaves as a vehicle and instead falls/flops as if llSetVehicleType() / vehicle parameters were not applied.
This appears to happen specifically (and consistently) when a non-owner with edit rights deletes the existing vehicle motor script and inserts a new version into the object. Resetting scripts does not help to recover from this bad state. The only workaround is for the owner to take the vehicle back into inventory and rez it again. Only then, will the vehicle physics start working correctly.
Steps to Reproduce:
Have Resident A own a physical vehicle object.
Resident B has permission to edit the vehicle.
Resident B deletes the existing script responsible for setting the vehicle motor / vehicle physics parameters.
Resident B inserts a new version of that script into the vehicle.
Reset the script or reset all scripts.
Attempt to use the vehicle.
Expected:
After the script is inserted and reset, the object should become a vehicle again.
The vehicle script should be able to initialize the vehicle normally by setting the vehicle type and vehicle parameters, regardless of whether the script was inserted by the object owner or by another resident with edit rights.
Actual Result:
The object fails to become a vehicle.
It behaves like a normal physical object with no vehicle physics applied. It flops/falls instead of responding as a vehicle. Resetting the vehicle script or resetting all scripts does not fix the issue.
Other Observations:
This only happens when a non-owner editor deletes and inserts the replacement vehicle script.
If the object is owned by me, I cannot reproduce the issue.
If I give the updated script to the owner and they insert it themselves, the issue does not occur.
Once the bad state happens, script resets do not recover it.
Re-rezzing the vehicle from inventory restores correct behavior.