I suspect most of us have seen this ‘No Room’ message at one time of another. When I first ran into it I wondered how they did that. Later I wondered about why they did that. I asked around and never got an answer for how or that it could be deliberate. I asked in the College of Scripting and Music Science in-world group. I explored the Ivory Tower Library of Primitive. I read forum threads. I never got a good answer.
There are two similar messages:
- No room to sit here, try another spot
- There is no suitable surface to sit on, try another spot.
I suspect most of us thought these a simple annoyance. Playing in combat regions and wanting to build defendable fortresses I realized the “No room to sit here, try another spot” thing could help with defenses, if I could just figure out how to make it work on demand. Try as I might, I couldn’t figure it out.
When I would fall through a street or whatever when making a region crossing I often found myself trapped in a space below with no way out. I would try to sit on anything outside that was close by. When that failed with No Room messages from everything I clicked on, I would rez a prim, sit on it, and move myself out. In general rezzing a prim to move yourself in a combat area is a no-no. But, it works. When everything fails TP out of the region.
This seemed like an ideal way to fortify a combat base. But, then along comes teleport-on-double-click. I figured that sort of made no sit prims pointless. When I fall through a street, I turn on teleport-click to get out. Many builds will trap one inside a building’s foundation when a crossing messes up. In these inadvertent traps there is often no way to walk or fly the avatar out. But, double-click-teleport will get you out when the age old SIT-My-Way-Out-Trick fails.
Listening in one of the User Groups the discussion turned to SIT problems, more about that in another article. I finally got an answer to how one controls No Room to stop sits.
Any object within another object is basically a no sit object. If the viewer has a problem finding the point you are clicking on, it won’t set the avatar there. You will get one of the two error messages.
If you keep in mind that your camera describes the world to the viewer, this is simple. It is way harder to describe than to do or understand.
Think of your mouse click as throwing a dart into the screen. Now imagine the Phantom Cube in the top image is 100% transparent. I have left the phantom cube partially visible in this image so we can talk about it. You can see where you would think you have clicked on the rug at click point ‘A’. If you imagine a dart coming from your eye to the rug, you can see it will run into the cube before it gets to the rug. The viewer sees you as having clicked on the cube.
How the viewer sees this is not perfectly consistent. The transparency setting and whether or not the cube is phantom, changes things. Also, the mode you are in also changes things. But, in general if you use the dart concept you’ll understand what is happening.
Now in the image the ‘A’ click tells the viewer to move my avatar and set it on ‘A’, moving from where I’m standing to the click-point. Which from the avatar in this case, is the inside surface of the cube… that is not going to work. The viewer is not going to put me inside things.
If the cube is part of a linkset, things change a bit more. To see what the selection clicks are doing, lay out cubes like I have. Link them together. I made the big cube root. Try right-clicking any of the cubes and selecting EDIT. Once in edit mode, click to enable: Edit Linked. Try clicking the cubes. You’ll see the inside cube cannot be selected until you zoom your camera inside the outer cube. Then you are tossing the darts from inside the cube, so they reach the target cube.
While you can select the inside-cube in Edit mode, if you exit Edit mode you cannot sit on the inside cube. You get a No Room error.
If one creates a hollow in the cube, one will be able to zoom in on the inside cube and sit on it. All one has to do is avoid having the dart from their eye avoid the large outer cube. It doesn’t matter if the inner cube is linked or not.
In image #2 the ‘C’ click hits the outer cube before reaching the inner cube. Cam up and look down into the cube. Then you can click the inner cube without the outer cube being in the way.
Teleporting to a double-click point is also going to work a bit differently than one may expect. Teleport clicks works pretty much like the Edit mode clicking. Whether you can see it or not, the dart hits the big outer cube. The avatar teleports or walks to a point near the click-point on the cube, where the dart would have hit.
With an invisible cube this can result in the avatar moving to some odd looking places. When you press Ctrl-Shift-T and make the invisible visible, it starts to make sense, and visible, what is happening.
It is possible to control the No Room aspect of prims. Basically, it is a matter of getting something between the desired no-room-prim and the camera. That works for sitting or click-teleporting.
Using phantom cubes with a zero hollow works best and most consistently. For stopping sit it does not matter if one zooms in on it or not.
When scripting, TOUCH events behave like the dart. Zoom inside the outer box and they trigger an event on an object inside. If the camera is outside, the touch event triggers in the outer cube, transparent or not.
Understanding how this works gives us a way to know why things won’t allow us to sit on them. Press Ctrl-Shift-T to activate highlighting of transparent objects. You may be able to see the reason for the problem.
This click-like-dart idea will also help with some of the problems with club lights and shrubbery which make the camera misbehave.