llRezAtRoot
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: llRezAtRoot( string inventory, vector position, vector velocity, rotation rot, integer param );0.1 | Forced Delay |
200.0 | Energy |
Instantiate inventory object rotated to rot with its root at position, moving at velocity, using param as the start parameter
• string | inventory | – | an object in the inventory of the prim this script is in | |
• vector | position | – | position in region coordinates to place the object | |
• vector | velocity | – | initial velocity | |
• rotation | rot | – | initial rotation | |
• integer | param | – | on_rez event parameter and value returned by llGetStartParameter in the rezzed object (or by each of the items in a coalesced object). |
To rez an object so its center is at position (instead of the root) use llRezObject instead.
Caveats
- This function causes the script to sleep for 0.1 seconds.
- If inventory is missing from the prim's inventory or it is not an object then an error is shouted on DEBUG_CHANNEL.
- Silently fails to rez inventory if position is more than 10 meters away from the prim trying to rez inventory.
- Silently fails if you don't have offline building rights on the land. To have the right, your objects needs to either:
- Be on land you own yourself.
- Be on land where anyone is allowed to build, e.g. a sandbox.
- Be deeded to the group that owns the land.
- Be set to the same group that owns the land and the land have the parcel flag 'allow group to build' set.
- The group role "Always allow 'Create Objects'" will only work to override this when you are online, in the region, or have a child agent in the region. See the issues under Deep Notes for more information.
Examples
<lsl>//Rez an object on touch string object = "Object";//Object in inventory integer start_param = 10; rotation rot;
default {
state_entry() { rot = llEuler2Rot(< 0, 90, 90> * DEG_TO_RAD); } touch_start(integer a) { vector vec = llGetPos() + < 0.0, 0.0, 5.0>; // 5 meter above this vector speed = llGetVel(); llRezAtRoot(object, vec, speed, rot, start_param); }
}</lsl> <lsl>//Rez an object on touch, with relative position, rotation, and velocity all described in the rezzing prim's coordinate system. string object = "Object"; // Name of object in inventory vector relativePosOffset = <2.0, 0.0, 1.0>; // "Forward" and a little "above" this prim vector relativeVel = <1.0, 0.0, 0.0>; // Traveling in this prim's "forward" direction at 1m/s rotation relativeRot = <0.707107, 0.0, 0.0, 0.707107>; // Rotated 90 degrees on the x-axis compared to this prim integer startParam = 10;
default {
touch_start(integer a) { vector myPos = llGetPos(); rotation myRot = llGetRot();
vector rezPos = myPos+relativePosOffset*myRot; vector rezVel = relativeVel*myRot; rotation rezRot = relativeRot*myRot;
llRezAtRoot(object, rezPos, rezVel, rezRot, startParam); }}</lsl>
See Also
Constants
• | PRIM_TEMP_ON_REZ |
Events
• | object_rez | – | triggered when this object rezzes an object from inventory |
Functions
• | llRezObject | |||
• | llGetStartParameter | |||
• | llGodLikeRezObject |