There currently isn't any way to determine whether an agent is able to unsit from a sit target or not. If SIT_FLAG_ALLOW_UNSIT and SIT_FLAG_SCRIPTED_ONLY are both not set on a sit target, then sitters can be in either of the following states: manually sat down, can unsit force-sitted via llSitOnLink , cannot unsit Scripts can't currently distinguish between these two scenarios. Although it's theoretically possible to watch for the return code of llSitOnLink , the experience_permissions event, and the experience_permissions_denied event, because the actual 'sit' occurs asynchronously it's impossible to know with certainty if the "unsit restriction" is in place. One possible solution might be to add a new read-only flag to llGetLinkSitFlags that indicates whether an avatar is sitting and was seated by script (by llSitOnLink ). For example, SIT_FLAG_SEATED_BY_SCRIPT . A script could then check that the SIT_FLAG_ALLOW_UNSIT flag is unset and SIT_FLAG_SEATED_BY_SCRIPT is set to determine whether they can actually unsit or not.