// SPDX-License-Identifier: MIT // Copyright (c) 2026 Incoprea // Three-stop child rail // Not compiled or tested in-world // Setup: Use a nonphysical child. Edit STOPS as offsets from its startup location; keep the first entry ZERO_VECTOR. // Stop / restore: Cycle until Home restored before removing or resetting. Do not relink while offset. // Notes: Use a small nonphysical rezzed build with room around it. This changes real geometry, not just a viewer effect. Restore before reset, relink, or removal; a script-memory snapshot is not a permanent backup. A step is immediate. Use short offsets within the link limits. // License: see LICENSE in this distribution. // Original Incoprea. MIT. Not compiled or tested in-world. list STOPS=[ZERO_VECTOR,<0.5,0.0,0.0>,<0.5,0.5,0.0>]; integer index; vector home; default { state_entry() { home=llGetLocalPos(); } touch_start(integer count) { if(llDetectedKey(0)!=llGetOwner()||llGetLinkNumber()<2||llGetStatus(STATUS_PHYSICS)||!llGetListLength(STOPS))return; index=(index+1)%llGetListLength(STOPS); llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_POS_LOCAL,home+llList2Vector(STOPS,index)]); if(!index)llOwnerSay("Home restored."); } }