Skip to content
lsl.devlsl.devLSL Dev

llListFindListNext

function
Function syntax
integer llListFindListNext(
  1. list src,// List to search within.
  2. list test,// List elements to search for.
  3. integer instance// Zero-based occurrence index of the match to find.
);
Returns
integer
Energy
10

If test is not found in src, -1 (in LSL) or nil (in SLua) is returned.

The index of the first entry in the list is 0

An expansion of llListFindList which adds an instance parameter to select the nth match to test parameter.

llListFindListNext(src, test, 0); is functionally equivalent to llListFindList(src, test);

Given a list like [ ‘Resident’, ‘Alexia’, ‘Resident’, ‘Bob’, ‘Resident’, ‘Steve’, ‘Resident’, ‘Evil’ ]

using a test of [ ‘Resident’ ] and an instance of 0, 1, 2, 3 would return indices of 0, 2, 4, and 6 respectively.

Selecting the 4th or greater instance will not be found and will return -1.

Reverse indexing is also supported. Using an instance of -1, -2, -3, -4 would respectively return 6, 4, 2, 0

And -5 and lower would again return -1

If test is found at the last index in src the positive index is returned (5th entry of 5 returns 4).

How to use
integer result = llListFindListNext([], [], 0);
  • Strict type matching and case sensitivity is enforced.
  • “1” != 1
  • “1.0” != 1.0
  • 1 != 1.0
  • “a822ff2b-ff02-461d-b45d-dcd10a2de0c2” != (key)“a822ff2b-ff02-461d-b45d-dcd10a2de0c2”
  • “Justice” != “justice”
  • If test is an empty list the value returned is 0 rather than -1.
Example 1
default
{
touch_end(integer i)
{
list myList = [];
list toFind = [];
llSay(0, "both lists empty (expect '0', early abort): " + (string)llListFindListNext(myList, toFind, 0));
myList = [1,2];
//Consistent with behavior of llListFindList
llSay(0, "toFind empty (expect immediate match at 0): " + (string)llListFindListNext(myList, toFind, 0));
llSay(0, "toFind empty (expect immediate match at 1): " + (string)llListFindListNext(myList, toFind, 1)); myList = [];
toFind = [1,2];
llSay(0, "myList empty, toFind populated (expect -1): " + (string)llListFindListNext(myList, toFind, 0));
//indices: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
myList = ["A", 0, "B", 1, "C", 2, "A", 0, "A", 1, "A", "A", 0, <1,2,3>, "c"];
toFind = ["A", 0];
llSay(0, "llListFindListNext(myList, toFind, 0) (expect '0'): " + (string)llListFindListNext(myList, toFind, 0));
llSay(0, "llListFindListNext(myList, toFind, 1) (expect '6'): " + (string)llListFindListNext(myList, toFind, 1));
llSay(0, "llListFindListNext(myList, toFind, 2) (expect '11'): " + (string)llListFindListNext(myList, toFind, 2));
llSay(0, "llListFindListNext(myList, toFind, 3) (expect '-1'): " + (string)llListFindListNext(myList, toFind, 3));
llSay(0, "llListFindListNext(myList, toFind, -1) (expect '11'): " + (string)llListFindListNext(myList, toFind, -1));
llSay(0, "llListFindListNext(myList, toFind, -2) (expect '6'): " + (string)llListFindListNext(myList, toFind, -2));
llSay(0, "llListFindListNext(myList, toFind, -3) (expect '0'): " + (string)llListFindListNext(myList, toFind, -3));
llSay(0, "llListFindListNext(myList, toFind, -4) (expect '-1'): " + (string)llListFindListNext(myList, toFind, -4)); toFind = [3];
llSay(0, "3 not matched with vector<1,2,3> content (expect '-1'): " + (string)llListFindListNext(myList, toFind, 0));
toFind = [<1,2,3>];
llSay(0, "Find a vector: (expect '13'): " + (string)llListFindListNext(myList, toFind, -1));
toFind =[<1,2,3>, "c"];
llSay(0, "Find a vector: (expect '13'): " + (string)llListFindListNext(myList, toFind, -1));
toFind =[ "c"];
llSay(0, "Find last element in reverse (expect '14'): " + (string)llListFindListNext(myList, toFind, -1));
llSay(0, "Find last element fwd (expect '14'): " + (string)llListFindListNext(myList, toFind, 0));
llSay(0, "Find last element with llListFindList (expect '14'): " + (string)llListFindList(myList, toFind)); }
}
Original wiki source

Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.

From the Second Life Wiki

Community documentation adapted from LlListFindListNext, by Linden Research, Inc. and contributing residents.View contributors and history.

Imported wiki revision:

Licensed under CC BY-SA 3.0. Last wiki edit: .Formatting and links have been adapted for this site; API metadata follows the LSL definitions.