// SPDX-License-Identifier: MIT // Copyright (c) 2026 Incoprea // Short linked caption queue // Not compiled or tested in-world // Setup: Put in root. Owner-touch arms; other root script sends code8064 and short ASCII text. Eight pending captions maximum. // Stop / restore: Owner-touch disarms, clears queue and restores original label. // Notes: Use a spare modifiable build. Snapshot state is held only in script memory; restore before reset/removal. Do not relink during a preview. Captions are public. Overflow is dropped, not persisted or acknowledged. No remote chat listener. // License: see LICENSE in this distribution. // Original Incoprea. MIT. Not compiled or tested in-world. list saved; list queue; integer active; default { state_entry() { saved=llGetLinkPrimitiveParams(LINK_THIS,[PRIM_TEXT]); } touch_start(integer n) { if(llDetectedKey(0)!=llGetOwner())return; active=!active; queue=[]; llSetTimerEvent(0.0); if(!active)llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_TEXT]+saved); } link_message(integer sender,integer code,string s,key data) { if(!active||sender!=1||code!=8064||llGetListLength(queue)>=8||s=="")return; if(!llGetListLength(queue))llSetTimerEvent(3.0); queue+=[llGetSubString(s,0,59)]; } timer() { if(!llGetListLength(queue)) { llSetTimerEvent(0.0); llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_TEXT]+saved); return; } llSetText(llList2String(queue,0),<1.0,1.0,1.0>,1.0); queue=llDeleteSubList(queue,0,0); } }