<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Augren+Ferguson</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Augren+Ferguson"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Augren_Ferguson"/>
	<updated>2026-07-27T02:16:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlKey2Name/ja&amp;diff=1177223</id>
		<title>LlKey2Name/ja</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlKey2Name/ja&amp;diff=1177223"/>
		<updated>2013-03-07T21:04:29Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/uuid/ja|id|sim=*}}{{LSL_Function/ja&lt;br /&gt;
|inject-2={{Issues/SVC-215}}{{Issues/SVC-4170}}{{Issues/SVC-3935}}&lt;br /&gt;
|func_id=210|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=Key2Name|func=llKey2Name&lt;br /&gt;
|return_type=string|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; には、現在あるか、もしくはスクリプトが実行されている時に SIM にあるとわかっている、 rez されたオブジェクトかアバターの正しいキーを指定しなければならず、そうでなければ空の文字列が返ります。アバターの場合、アバターが SIM の子となるエージェントであるか (つまり、隣接している SIM にいるが、現在スクリプトが入っているものを覗くことができる状態) 、もしくは当該 SIM を離れて間もない場合 (仕様上、クライアントが、メインまたは子のエージェントとして、 SIM から完全に切断されたとき) 、この関数は依然として正しい名前を返します。  &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
インベントリアイテムのキーでは動作しません。この場合、代わりに {{LSLG/ja|llGetInventoryName}} を使ってください。&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=&#039;&#039;&#039;id&#039;&#039;&#039; で指定されたプリムまたはアバターの{{LSLGC|Avatar/Name/ja|名前}}&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* 空の文字列を名前にもつプリムと SIM に存在しないプリム、もしくは不正なキーが指定されたために空の文字列が返っていることの区別をつけるのは困難です。この問題を回避するには、 {{LSLG/ja|llGetObjectDetails}} を使用してください。&lt;br /&gt;
* 「アバターがいなければならない」制約を回避するために、 {{LSLG/ja|llRequestAgentData}} 関数と {{LSLG/ja|dataserver}} イベントを使って、キーからアバターの名前を取得することができます。&lt;br /&gt;
* 逆の関数 ({{LSLG|llName2Key}}) は使用できません。しかし、 {{LSLG/ja|llHTTPRequest}} 関数と {{LSLG/ja|http_response}} イベントを使って問い合わせを行うことのできる、サードパーティの Web サイトがあります。&lt;br /&gt;
* アバターが（ずっとあるサーバのバグが原因となって時々起こる）幽霊状態になると、アバターが実質そこにいて {{LSLG/ja|llSensor}} や[[Mini-Map|ミニマップ]]で表示されていても、空文字列が返ります。この原理を応用して[[Ghost Detector|幽霊発見器]]スクリプトを作ることができます。&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;// チャット履歴 (ctrl-h) で最適な表示&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    collision_start(integer a)//誰がぶつかったかアナウンスします&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0,&amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||{{LSLG/ja|llGetUsername}}}}&lt;br /&gt;
{{LSL DefineRow||{{LSLG/ja|llGetDisplayName}}}}&lt;br /&gt;
{{LSL DefineRow||{{LSLG/ja|llGetObjectDetails}}}}&lt;br /&gt;
{{LSL DefineRow||{{LSLG/ja|llRequestAgentData}}|{{LSLG/ja|dataserver}} を使ってアバターの情報を取得します}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes=&#039;&#039;&#039;アクティブな Name2Key データベース:&#039;&#039;&#039;&lt;br /&gt;
*http://w-hat.com/name2key&lt;br /&gt;
*http://kdc.ethernia.net/sys/name2key.php&lt;br /&gt;
*http://wiki.apez.biz/Development (Web サービス API 関数 getAvatarKey と getAvatarName)&lt;br /&gt;
*http://kubwa.net/index.php?cmd=name2key (ボットベースの name2key データベースです。{{LSLGC/ja|Legacy Name|レガシーネーム}} と {{LSLGC/ja|Username|ユーザネーム}} のフォーマットに対応しています)&lt;br /&gt;
&#039;&#039;&#039;Name2Key ライブラリ:&#039;&#039;&#039;&lt;br /&gt;
*[[Name2Key_in_LSL]]&lt;br /&gt;
&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Key&lt;br /&gt;
|cat4=Avatar/Name&lt;br /&gt;
|cat5=Legacy Name&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1177222</id>
		<title>LlKey2Name</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1177222"/>
		<updated>2013-03-07T21:03:52Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|inject-2={{Issues/SVC-215}}{{Issues/SVC-4170}}{{Issues/SVC-3935}}{{LSL_Function/uuid|id|sim=*}}&lt;br /&gt;
|func_id=210|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=Key2Name|func=llKey2Name&lt;br /&gt;
|return_type=string|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; must specify a valid rezzed prim or avatar key, present in or otherwise known to the sim in which the script is running, otherwise an empty string is returned. In the case of an avatar, this function will still return a valid name if the avatar is a child agent of the sim (i.e., in an adjacent sim, but presently able to see into the one the script is in), or for a short period after the avatar leaves the sim (specifically, when the client completely disconnects from the sim, either as a main or child agent).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Keys of inventory items will not work; in the case of these, use [[llGetInventoryName]] instead.&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the {{LSLGC|Avatar/Name|legacy name}} of the prim or avatar specified by &#039;&#039;&#039;id&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* It is difficult to tell the difference between a prim that has a name that is an empty string and a prim that is not in the sim, or because an invalid key was specified. Use [[llGetObjectDetails]] to avoid this problem.&lt;br /&gt;
* To get around the &amp;quot;avatar must be present&amp;quot; limitation, you can use the [[llRequestAgentData]] function and the [[dataserver]] event to obtain the avatar&#039;s name from a key.&lt;br /&gt;
* There is no opposite function ([[llName2Key]]) available. However, there are third-party websites which can be queried using the [[llHTTPRequest]] function and the [[http_response]] event.&lt;br /&gt;
* If an avatar is &amp;quot;ghosted&amp;quot; (which occasionally happens due to a longstanding server bug), an empty string is returned even though the avatar is seemingly present and shows up in [[llSensor]] and the [[Mini-Map]].  This fact can be used as the basis of a [[Ghost Detector]] script.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Best viewed in Chat History (ctrl-h)&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    collision_start(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        key id = llDetectedKey(0);&lt;br /&gt;
        string name = llKey2Name(id);&lt;br /&gt;
&lt;br /&gt;
        string detectedName = llDetectedName(0);&lt;br /&gt;
&lt;br /&gt;
        // PUBLIC_CHANNEL has the integer value 0&lt;br /&gt;
        llSay(PUBLIC_CHANNEL,&lt;br /&gt;
            &amp;quot;llKey2Name: &amp;quot; + name&lt;br /&gt;
            + &amp;quot;\nllDetectedName: &amp;quot; + detectedName);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        key id = llDetectedKey(0);&lt;br /&gt;
        string name = llKey2Name(id);&lt;br /&gt;
&lt;br /&gt;
        string detectedName = llDetectedName(0);&lt;br /&gt;
&lt;br /&gt;
        // PUBLIC_CHANNEL has the integer value 0&lt;br /&gt;
        llSay(PUBLIC_CHANNEL,&lt;br /&gt;
            &amp;quot;llKey2Name: &amp;quot; + name&lt;br /&gt;
            + &amp;quot;\nllDetectedName: &amp;quot; + detectedName);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetUsername]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetDisplayName]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetObjectDetails]]}}&lt;br /&gt;
{{LSL DefineRow||[[llRequestAgentData]]|Uses the [[dataserver]] to request avatar information}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes=&#039;&#039;&#039;World Wide Web Consortium&#039;&#039;&#039;&lt;br /&gt;
*[[N2K]] - Independent of databases or bots, this uses the [http://cgi.w3.org/cgi-bin/html2txt W3C html2text] to convert the viewer search to text and extract the key from Second Life&#039;s own services.&lt;br /&gt;
&#039;&#039;&#039;Active Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*[http://w-hat.com/name2key W-Hat name2key] (last names replaced with the &#039;&#039;Resident&#039;&#039; word for the {{LSLGC|Username|Usernames}})&lt;br /&gt;
*[http://kdc.ethernia.net/sys/name2key.php KDC name2key]&lt;br /&gt;
*[http://kubwa.net/index.php?cmd=name2key Kubwa name2key] (Bot based name2key Database; Supports: {{LSLGC|Legacy Name|Legacy}} and {{LSLGC|Username}} formats; Shows related names; SSL support.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dead Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://wiki.apez.biz/Development (web-service API functions getAvatarKey and getAvatarName)&amp;lt;/s&amp;gt; &amp;lt;font color=red&amp;gt;(Apez seems to be gone ? - May 2011)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.libsecondlife.org/protocol/index.php/Name2key&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008, but search for name2key on that site for more information)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.ulrikasheim.org/tools/name2key.html&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[http://www.db4mv.info DB4MV name2key] (Name2Key Database for Avatars ({{LSLGC|Legacy Name|Legacy Names}},{{LSLGC|Username|Usernames}}, and {{LSLGC|Display Name|Display Names}}, GroupNames and Keys, LSL API)&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Currently listed as non-existant by host)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name2Key Libraries:&#039;&#039;&#039;&lt;br /&gt;
*[[Name2Key_in_LSL]]&lt;br /&gt;
*[[User:Ugleh_Ulrik/Name2Key|Ugleh Ulrik&#039;s Name2Key PHP script]]&lt;br /&gt;
*[[Failsafename2key|Failsafe name2key script]]&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Key&lt;br /&gt;
|cat4=Avatar/Name&lt;br /&gt;
|cat5=Legacy Name&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1170008</id>
		<title>LlKey2Name</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1170008"/>
		<updated>2012-07-01T22:20:24Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: Moved db4mv.info from active to dead&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|inject-2={{Issues/SVC-215}}{{Issues/SVC-4170}}{{Issues/SVC-3935}}{{LSL_Function/uuid|id|sim=*}}&lt;br /&gt;
|func_id=210|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=Key2Name|func=llKey2Name&lt;br /&gt;
|return_type=string|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; must specify a valid rezzed prim or avatar key, present in or otherwise known to the sim in which the script is running, otherwise an empty string is returned. In the case of an avatar, this function will still return a valid name if the avatar is a child agent of the sim (i.e., in an adjacent sim, but presently able to see into the one the script is in), or for a short period after the avatar leaves the sim (specifically, when the client completely disconnects from the sim, either as a main or child agent).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Keys of inventory items will not work; in the case of these, use [[llGetInventoryName]] instead.&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the {{LSLGC|Avatar/Name|legacy name}} of the prim or avatar specified by &#039;&#039;&#039;id&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* It is difficult to tell the difference between a prim that has a name that is an empty string and a prim that is not in the sim, or because an invalid key was specified. Use [[llGetObjectDetails]] to avoid this problem.&lt;br /&gt;
* To get around the &amp;quot;avatar must be present&amp;quot; limitation, you can use the [[llRequestAgentData]] function and the [[dataserver]] event to obtain the avatar&#039;s name from a key.&lt;br /&gt;
* There is no opposite function ([[llName2Key]]) available. However, there are third-party websites which can be queried using the [[llHTTPRequest]] function and the [[http_response]] event.&lt;br /&gt;
* If an avatar is &amp;quot;ghosted&amp;quot; (which occasionally happens due to a longstanding server bug), an empty string is returned even though the avatar is seemingly present and shows up in [[llSensor]] and the [[Mini-Map]].  This fact can be used as the basis of a [[Ghost Detector]] script.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;// Best viewed in Chat History (ctrl-h)&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    collision_start(integer a)//Announce who collided&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0,&amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetUsername]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetDisplayName]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetObjectDetails]]}}&lt;br /&gt;
{{LSL DefineRow||[[llRequestAgentData]]|Uses the [[dataserver]] to request avatar information}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes=&#039;&#039;&#039;World Wide Web Consortium&#039;&#039;&#039;&lt;br /&gt;
*[[N2K]] - Independent of databases or bots, this uses the [http://cgi.w3.org/cgi-bin/html2txt W3C html2text] to convert the viewer search to text and extract the key from Second Life&#039;s own services.&lt;br /&gt;
&#039;&#039;&#039;Active Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*[http://n2k.danardlabs.com DanardLabs N2K] (SSL, {{LSLGC|Legacy Name|Legacy Names}} &amp;amp; {{LSLGC|Username|Usernames}} supported)&lt;br /&gt;
*[http://w-hat.com/name2key W-Hat name2key] (last names replaced with the &#039;&#039;Resident&#039;&#039; word for the {{LSLGC|Username|Usernames}})&lt;br /&gt;
*[http://kdc.ethernia.net/sys/name2key.php KDC name2key]&lt;br /&gt;
*[http://kubwa.net/index.php?cmd=name2key Kubwa name2key] (Bot based name2key Database; Supports: {{LSLGC|Legacy Name|Legacy}} and {{LSLGC|Username}} formats; Shows related names; SSL support.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dead Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://wiki.apez.biz/Development (web-service API functions getAvatarKey and getAvatarName)&amp;lt;/s&amp;gt; &amp;lt;font color=red&amp;gt;(Apez seems to be gone ? - May 2011)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.libsecondlife.org/protocol/index.php/Name2key&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008, but search for name2key on that site for more information)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.ulrikasheim.org/tools/name2key.html&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[http://www.db4mv.info DB4MV name2key] (Name2Key Database for Avatars ({{LSLGC|Legacy Name|Legacy Names}},{{LSLGC|Username|Usernames}}, and {{LSLGC|Display Name|Display Names}}, GroupNames and Keys, LSL API)&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Currently listed as non-existant by host)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name2Key Libraries:&#039;&#039;&#039;&lt;br /&gt;
*[[Name2Key_in_LSL]]&lt;br /&gt;
*[[User:Ugleh_Ulrik/Name2Key|Ugleh Ulrik&#039;s Name2Key PHP script]]&lt;br /&gt;
*[[Failsafename2key|Failsafe name2key script]]&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Key&lt;br /&gt;
|cat4=Avatar/Name&lt;br /&gt;
|cat5=Legacy Name&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:N2K&amp;diff=1160660</id>
		<title>Talk:N2K</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:N2K&amp;diff=1160660"/>
		<updated>2012-01-06T08:54:00Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: /* SL Search API limits and More */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Needs &amp;quot;Resident&amp;quot; as a last name for newer names?===&lt;br /&gt;
Thanks so much.  This is a great help.&lt;br /&gt;
&lt;br /&gt;
However, the only way I could get it to work for my newer alts (that is, ones with only one name) was to change it to&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{    &lt;br /&gt;
    link_message(integer sender_num, integer num, string str, key id) {&lt;br /&gt;
        lReqNum = sender_num;&lt;br /&gt;
        if(llGetListLength(llParseString2List(str,[&amp;quot; &amp;quot;],[&amp;quot;&amp;quot;]))==1){//test for legacy name or new one&lt;br /&gt;
            str+=&amp;quot; Resident&amp;quot;;//if it&#039;s a new name&lt;br /&gt;
        }&lt;br /&gt;
       // llOwnerSay(str);&lt;br /&gt;
        kReq = str;&lt;br /&gt;
        state kn2k;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
[[User:Innula Zenovka|Innula Zenovka]] 08:50, 22 November 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
No problem. Yes, very true. &amp;quot;new members&amp;quot; *do* have second names. It&#039;s just that they are all &amp;quot;Resident&amp;quot;. In fact, if you pass the _full name_ to the script (including the &amp;quot;Resident&amp;quot; last name), it would work out of the box. Added a note, ty.&lt;br /&gt;
&lt;br /&gt;
Kira Komarov 08:47, 23 November 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
===SL Search API limits and More===&lt;br /&gt;
Note that keys of people who choose to not list their avatars in search are not available via the vwrsearch API. You may want to add a fallback of some sort, or update your recommendation that for any critical system the operation of one&#039;s own caching database with multiple sources may be the safest option.&lt;br /&gt;
&lt;br /&gt;
There is also the risk of W3C blacklisting SL IP ranges if using their service becomes overly popular, in which case it&#039;s again safer to run the same functionality on one&#039;s own server. This incurs costs, of course, which makes that route viable only for commercial applications.&lt;br /&gt;
&lt;br /&gt;
[[User:Augren Ferguson|Augren Ferguson]] 00:51, 6 January 2012 (PST)&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:N2K&amp;diff=1160659</id>
		<title>Talk:N2K</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:N2K&amp;diff=1160659"/>
		<updated>2012-01-06T08:53:15Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: /* SL Search API limits and More */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Needs &amp;quot;Resident&amp;quot; as a last name for newer names?===&lt;br /&gt;
Thanks so much.  This is a great help.&lt;br /&gt;
&lt;br /&gt;
However, the only way I could get it to work for my newer alts (that is, ones with only one name) was to change it to&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{    &lt;br /&gt;
    link_message(integer sender_num, integer num, string str, key id) {&lt;br /&gt;
        lReqNum = sender_num;&lt;br /&gt;
        if(llGetListLength(llParseString2List(str,[&amp;quot; &amp;quot;],[&amp;quot;&amp;quot;]))==1){//test for legacy name or new one&lt;br /&gt;
            str+=&amp;quot; Resident&amp;quot;;//if it&#039;s a new name&lt;br /&gt;
        }&lt;br /&gt;
       // llOwnerSay(str);&lt;br /&gt;
        kReq = str;&lt;br /&gt;
        state kn2k;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
[[User:Innula Zenovka|Innula Zenovka]] 08:50, 22 November 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
No problem. Yes, very true. &amp;quot;new members&amp;quot; *do* have second names. It&#039;s just that they are all &amp;quot;Resident&amp;quot;. In fact, if you pass the _full name_ to the script (including the &amp;quot;Resident&amp;quot; last name), it would work out of the box. Added a note, ty.&lt;br /&gt;
&lt;br /&gt;
Kira Komarov 08:47, 23 November 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
===SL Search API limits and More===&lt;br /&gt;
Note that keys of people who choose to not list their avatars in search are not available via the vwrsearch API. You may want to add a fallback of some sort, or update your recommendation that for any critical system that the operation of one&#039;s own caching database with multiple sources may be the safest option.&lt;br /&gt;
&lt;br /&gt;
There is also the risk of W3C blacklisting SL IP ranges if using their service becomes overly popular, in which case it&#039;s again safer to run the same functionality on one&#039;s own server. This incurs costs, of course, which makes that route viable only for commercial applications.&lt;br /&gt;
&lt;br /&gt;
[[User:Augren Ferguson|Augren Ferguson]] 00:51, 6 January 2012 (PST)&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:N2K&amp;diff=1160658</id>
		<title>Talk:N2K</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:N2K&amp;diff=1160658"/>
		<updated>2012-01-06T08:51:34Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: /* Needs &amp;quot;Resident&amp;quot; as a last name for newer names? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Needs &amp;quot;Resident&amp;quot; as a last name for newer names?===&lt;br /&gt;
Thanks so much.  This is a great help.&lt;br /&gt;
&lt;br /&gt;
However, the only way I could get it to work for my newer alts (that is, ones with only one name) was to change it to&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{    &lt;br /&gt;
    link_message(integer sender_num, integer num, string str, key id) {&lt;br /&gt;
        lReqNum = sender_num;&lt;br /&gt;
        if(llGetListLength(llParseString2List(str,[&amp;quot; &amp;quot;],[&amp;quot;&amp;quot;]))==1){//test for legacy name or new one&lt;br /&gt;
            str+=&amp;quot; Resident&amp;quot;;//if it&#039;s a new name&lt;br /&gt;
        }&lt;br /&gt;
       // llOwnerSay(str);&lt;br /&gt;
        kReq = str;&lt;br /&gt;
        state kn2k;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
[[User:Innula Zenovka|Innula Zenovka]] 08:50, 22 November 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
No problem. Yes, very true. &amp;quot;new members&amp;quot; *do* have second names. It&#039;s just that they are all &amp;quot;Resident&amp;quot;. In fact, if you pass the _full name_ to the script (including the &amp;quot;Resident&amp;quot; last name), it would work out of the box. Added a note, ty.&lt;br /&gt;
&lt;br /&gt;
Kira Komarov 08:47, 23 November 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
===SL Search API limits and More===&lt;br /&gt;
Note that keys of people who choose to not list their avatars in search are not available via the vwrsearch API. You may want to add a fallback of some sort, or update your recommendation that for any critical system the operation of one&#039;s own caching database with multiple sources may be the safest option.&lt;br /&gt;
&lt;br /&gt;
There is also the risk of W3C blacklisting SL IP ranges if using their service becomes overly popular, in which case it&#039;s again safer to run the same functionality on one&#039;s own server. This incurs costs, of course, which makes that route viable only for commercial applications.&lt;br /&gt;
&lt;br /&gt;
[[User:Augren Ferguson|Augren Ferguson]] 00:51, 6 January 2012 (PST)&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1153381</id>
		<title>LlKey2Name</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1153381"/>
		<updated>2011-09-12T06:17:39Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: Labelled name2key links to reduce likelihood that new users try to use the link verbatim in their scripts without going to the respecitve URL to read up on correct api syntax.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|inject-2={{Issues/SVC-215}}{{Issues/SVC-4170}}{{Issues/SVC-3935}}{{LSL_Function/uuid|id|sim=*}}&lt;br /&gt;
|func_id=210|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=Key2Name|func=llKey2Name&lt;br /&gt;
|return_type=string|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; must specify a valid rezzed prim or avatar key, present in or otherwise known to the sim in which the script is running, otherwise an empty string is returned. In the case of an avatar, this function will still return a valid name if the avatar is a child agent of the sim (i.e., in an adjacent sim, but presently able to see into the one the script is in), or for a short period after the avatar leaves the sim (specifically, when the client completely disconnects from the sim, either as a main or child agent).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Keys of inventory items will not work; in the case of these, use [[llGetInventoryName]] instead.&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the {{LSLGC|Avatar/Name|legacy name}} of the prim or avatar specified by &#039;&#039;&#039;id&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* It is difficult to tell the difference between a prim that has a name that is an empty string and a prim that is not in the sim, or because an invalid key was specified. Use [[llGetObjectDetails]] to avoid this problem.&lt;br /&gt;
* To get around the &amp;quot;avatar must be present&amp;quot; limitation, you can use the [[llRequestAgentData]] function and the [[dataserver]] event to obtain the avatar&#039;s name from a key.&lt;br /&gt;
* There is no opposite function ([[llName2Key]]) available. However, there are third-party websites which can be queried using the [[llHTTPRequest]] function and the [[http_response]] event.&lt;br /&gt;
* If an avatar is &amp;quot;ghosted&amp;quot; (which occasionally happens due to a longstanding server bug), an empty string is returned even though the avatar is seemingly present and shows up in [[llSensor]] and the [[Mini-Map]].  This fact can be used as the basis of a [[Ghost Detector]] script.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;// Best viewed in Chat History (ctrl-h)&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    collision_start(integer a)//Announce who collided&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0,&amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetUsername]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetDisplayName]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetObjectDetails]]}}&lt;br /&gt;
{{LSL DefineRow||[[llRequestAgentData]]|Uses the [[dataserver]] to request avatar information}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes=&#039;&#039;&#039;Active Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*[http://n2k.danardlabs.com DanardLabs N2K] (SSL, {{LSLGC|Legacy Name|Legacy Names}} &amp;amp; {{LSLGC|Username|Usernames}} supported)&lt;br /&gt;
*[http://w-hat.com/name2key W-Hat name2key] (last names replaced with the &#039;&#039;Resident&#039;&#039; word for the {{LSLGC|Username|Usernames}})&lt;br /&gt;
*[http://kdc.ethernia.net/sys/name2key.php KDC name2key]&lt;br /&gt;
*[http://kubwa.net/index.php?cmd=name2key Kubwa name2key] (Bot based name2key Database; Supports: {{LSLGC|Legacy Name|Legacy}} and {{LSLGC|Username}} formats; Shows related names; SSL support.)&lt;br /&gt;
*[http://www.db4mv.info DB4MV name2key] (Name2Key Database for Avatars ({{LSLGC|Legacy Name|Legacy Names}},{{LSLGC|Username|Usernames}}, and {{LSLGC|Display Name|Display Names}}, GroupNames and Keys, LSL API)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dead Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://wiki.apez.biz/Development (web-service API functions getAvatarKey and getAvatarName)&amp;lt;/s&amp;gt; &amp;lt;font color=red&amp;gt;(Apez seems to be gone ? - May 2011)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.libsecondlife.org/protocol/index.php/Name2key&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008, but search for name2key on that site for more information)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.ulrikasheim.org/tools/name2key.html&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name2Key Libraries:&#039;&#039;&#039;&lt;br /&gt;
*[[Name2Key_in_LSL]]&lt;br /&gt;
*[[User:Ugleh_Ulrik/Name2Key|Ugleh Ulrik&#039;s Name2Key PHP script]]&lt;br /&gt;
*[[Failsavename2key|Failsave name2key script]]&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Key&lt;br /&gt;
|cat4=Avatar/Name&lt;br /&gt;
|cat5=Legacy Name&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlKey2Name/ja&amp;diff=1124542</id>
		<title>LlKey2Name/ja</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlKey2Name/ja&amp;diff=1124542"/>
		<updated>2010-12-10T07:51:23Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/uuid/ja|id|sim=*}}{{LSL_Function/ja&lt;br /&gt;
|func_id=210|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=Key2Name|func=llKey2Name&lt;br /&gt;
|return_type=string|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; には、現在あるか、もしくはスクリプトが実行されている時に SIM にあるとわかっている、 rez されたオブジェクトかアバターの正しいキーを指定しなければならず、そうでなければ空の文字列が返ります。アバターの場合、アバターが SIM の子となるエージェントであるか (つまり、隣接している SIM にいるが、現在スクリプトが入っているものを覗くことができる状態) 、もしくは当該 SIM を離れて間もない場合 (仕様上、クライアントが、メインまたは子のエージェントとして、 SIM から完全に切断されたとき) 、この関数は依然として正しい名前を返します。  &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
インベントリアイテムのキーでは動作しません。この場合、代わりに {{LSLG/ja|llGetInventoryName}} を使ってください。&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=&#039;&#039;&#039;id&#039;&#039;&#039; で指定されたプリムまたはアバターの名前&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* 空の文字列を名前にもつプリムと SIM に存在しないプリム、もしくは不正なキーが指定されたために空の文字列が返っていることの区別をつけるのは困難です。この問題を回避するには、 {{LSLG/ja|llGetObjectDetails}} を使用してください。&lt;br /&gt;
* 「アバターがいなければならない」制約を回避するために、 {{LSLG/ja|llRequestAgentData}} 関数と {{LSLG/ja|dataserver}} イベントを使って、キーからアバターの名前を取得することができます。&lt;br /&gt;
* 逆の関数 ({{LSLG|llName2Key}}) は使用できません。しかし、 {{LSLG/ja|llHTTPRequest}} 関数と {{LSLG/ja|http_response}} イベントを使って問い合わせを行うことのできる、サードパーティの Web サイトがあります。&lt;br /&gt;
* バグにより ([http://jira.secondlife.com/browse/SVC-4170 SVC-4170] と [http://jira.secondlife.com/browse/SVC-3935 SVC-3935]) この関数はときどき間違えて &amp;quot;(Loading...)&amp;quot; と返したり、ファーストネームとラストネームの間にスペースを 2 個つけたアバター名を返したりすることがあります。&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;// チャット履歴 (ctrl-h) で最適な表示&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    collision_start(integer a)//誰がぶつかったかアナウンスします&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0,&amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||{{LSLG/ja|llGetObjectDetails}}}}&lt;br /&gt;
{{LSL DefineRow||{{LSLG/ja|llRequestAgentData}}|{{LSLG/ja|dataserver}} を使ってアバターの情報を取得します}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes=&#039;&#039;&#039;アクティブな Name2Key データベース:&#039;&#039;&#039;&lt;br /&gt;
*http://n2k.danardlabs.com (SSL, {{LSLGC|Legacy Name|Legacy Names}} &amp;amp; {{LSLGC|Username|Usernames}} サポートされている)&lt;br /&gt;
*http://w-hat.com/name2key&lt;br /&gt;
*http://kdc.ethernia.net/sys/name2key.php&lt;br /&gt;
*http://wiki.apez.biz/Development (Web サービス API 関数 getAvatarKey と getAvatarName)&lt;br /&gt;
&#039;&#039;&#039;Name2Key ライブラリ:&#039;&#039;&#039;&lt;br /&gt;
*[[Name2Key_in_LSL]]&lt;br /&gt;
&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Key&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1124532</id>
		<title>LlKey2Name</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1124532"/>
		<updated>2010-12-10T07:50:59Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-215}}{{Issues/SVC-4170}}{{Issues/SVC-3935}}{{LSL_Function/uuid|id|sim=*}}{{LSL_Function&lt;br /&gt;
|func_id=210|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=Key2Name|func=llKey2Name&lt;br /&gt;
|return_type=string|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; must specify a valid rezzed prim or avatar key, present in or otherwise known to the sim in which the script is running, otherwise an empty string is returned. In the case of an avatar, this function will still return a valid name if the avatar is a child agent of the sim (i.e., in an adjacent sim, but presently able to see into the one the script is in), or for a short period after the avatar leaves the sim (specifically, when the client completely disconnects from the sim, either as a main or child agent).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Keys of inventory items will not work; in the case of these, use [[llGetInventoryName]] instead.&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the {{LSLGC|Avatar/Name|legacy name}} of the prim or avatar specified by &#039;&#039;&#039;id&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* It is difficult to tell the difference between a prim that has a name that is an empty string and a prim that is not in the sim, or because an invalid key was specified. Use [[llGetObjectDetails]] to avoid this problem.&lt;br /&gt;
* To get around the &amp;quot;avatar must be present&amp;quot; limitation, you can use the [[llRequestAgentData]] function and the [[dataserver]] event to obtain the avatar&#039;s name from a key.&lt;br /&gt;
* There is no opposite function ([[llName2Key]]) available. However, there are third-party websites which can be queried using the [[llHTTPRequest]] function and the [[http_response]] event.&lt;br /&gt;
* If an avatar is &amp;quot;ghosted&amp;quot; (which occasionally happens due to a longstanding server bug), an empty string is returned even though the avatar is seemingly present and shows up in [[llSensor]] and the [[Mini-Map]].  This fact can be used as the basis of a [[Ghost Detector]] script.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;// Best viewed in Chat History (ctrl-h)&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    collision_start(integer a)//Announce who collided&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0,&amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetUsername]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetDisplayName]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetObjectDetails]]}}&lt;br /&gt;
{{LSL DefineRow||[[llRequestAgentData]]|Uses the [[dataserver]] to request avatar information}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes=&#039;&#039;&#039;Active Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*http://n2k.danardlabs.com (SSL, {{LSLGC|Legacy Name|Legacy Names}} &amp;amp; {{LSLGC|Username|Usernames}} supported)&lt;br /&gt;
*http://w-hat.com/name2key&lt;br /&gt;
*http://kdc.ethernia.net/sys/name2key.php&lt;br /&gt;
*http://wiki.apez.biz/Development (web-service API functions getAvatarKey and getAvatarName)&lt;br /&gt;
*http://insl.kubwa.de/name2key.php?name=name (Bot based name2key Database. Supports: {{LSLGC|Legacy Name|Legacy}} and {{LSLGC|Username}} formats)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dead Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.libsecondlife.org/protocol/index.php/Name2key&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008, but search for name2key on that site for more information)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.ulrikasheim.org/tools/name2key.html&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name2Key Libraries:&#039;&#039;&#039;&lt;br /&gt;
*[[Name2Key_in_LSL]]&lt;br /&gt;
*[[User:Ugleh_Ulrik/Name2Key|Ugleh Ulrik&#039;s Name2Key PHP script]]&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Key&lt;br /&gt;
|cat4=Avatar/Name&lt;br /&gt;
|cat5=Legacy Name&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlKey2Name/ja&amp;diff=1124512</id>
		<title>LlKey2Name/ja</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlKey2Name/ja&amp;diff=1124512"/>
		<updated>2010-12-10T07:29:23Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/uuid/ja|id|sim=*}}{{LSL_Function/ja&lt;br /&gt;
|func_id=210|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=Key2Name|func=llKey2Name&lt;br /&gt;
|return_type=string|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; には、現在あるか、もしくはスクリプトが実行されている時に SIM にあるとわかっている、 rez されたオブジェクトかアバターの正しいキーを指定しなければならず、そうでなければ空の文字列が返ります。アバターの場合、アバターが SIM の子となるエージェントであるか (つまり、隣接している SIM にいるが、現在スクリプトが入っているものを覗くことができる状態) 、もしくは当該 SIM を離れて間もない場合 (仕様上、クライアントが、メインまたは子のエージェントとして、 SIM から完全に切断されたとき) 、この関数は依然として正しい名前を返します。  &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
インベントリアイテムのキーでは動作しません。この場合、代わりに {{LSLG/ja|llGetInventoryName}} を使ってください。&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=&#039;&#039;&#039;id&#039;&#039;&#039; で指定されたプリムまたはアバターの名前&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* 空の文字列を名前にもつプリムと SIM に存在しないプリム、もしくは不正なキーが指定されたために空の文字列が返っていることの区別をつけるのは困難です。この問題を回避するには、 {{LSLG/ja|llGetObjectDetails}} を使用してください。&lt;br /&gt;
* 「アバターがいなければならない」制約を回避するために、 {{LSLG/ja|llRequestAgentData}} 関数と {{LSLG/ja|dataserver}} イベントを使って、キーからアバターの名前を取得することができます。&lt;br /&gt;
* 逆の関数 ({{LSLG|llName2Key}}) は使用できません。しかし、 {{LSLG/ja|llHTTPRequest}} 関数と {{LSLG/ja|http_response}} イベントを使って問い合わせを行うことのできる、サードパーティの Web サイトがあります。&lt;br /&gt;
* バグにより ([http://jira.secondlife.com/browse/SVC-4170 SVC-4170] と [http://jira.secondlife.com/browse/SVC-3935 SVC-3935]) この関数はときどき間違えて &amp;quot;(Loading...)&amp;quot; と返したり、ファーストネームとラストネームの間にスペースを 2 個つけたアバター名を返したりすることがあります。&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;// チャット履歴 (ctrl-h) で最適な表示&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    collision_start(integer a)//誰がぶつかったかアナウンスします&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0,&amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||{{LSLG/ja|llGetObjectDetails}}}}&lt;br /&gt;
{{LSL DefineRow||{{LSLG/ja|llRequestAgentData}}|{{LSLG/ja|dataserver}} を使ってアバターの情報を取得します}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes=&#039;&#039;&#039;アクティブな Name2Key データベース:&#039;&#039;&#039;&lt;br /&gt;
*http://n2k.danardlabs.com ({{LSLGC|Legacy Name|Legacy Names}} &amp;amp; {{LSLGC|Username|Usernames}} サポートされている)&lt;br /&gt;
*http://w-hat.com/name2key&lt;br /&gt;
*http://kdc.ethernia.net/sys/name2key.php&lt;br /&gt;
*http://wiki.apez.biz/Development (Web サービス API 関数 getAvatarKey と getAvatarName)&lt;br /&gt;
&#039;&#039;&#039;Name2Key ライブラリ:&#039;&#039;&#039;&lt;br /&gt;
*[[Name2Key_in_LSL]]&lt;br /&gt;
&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Key&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1114052</id>
		<title>LlKey2Name</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1114052"/>
		<updated>2010-11-24T23:33:28Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-215}}{{Issues/SVC-4170}}{{Issues/SVC-3935}}{{LSL_Function/uuid|id|sim=*}}{{LSL_Function&lt;br /&gt;
|func_id=210|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=Key2Name|func=llKey2Name&lt;br /&gt;
|return_type=string|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; must specify a valid rezzed prim or avatar key, present in or otherwise known to the sim in which the script is running, otherwise an empty string is returned. In the case of an avatar, this function will still return a valid name if the avatar is a child agent of the sim (i.e., in an adjacent sim, but presently able to see into the one the script is in), or for a short period after the avatar leaves the sim (specifically, when the client completely disconnects from the sim, either as a main or child agent).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Keys of inventory items will not work; in the case of these, use [[llGetInventoryName]] instead.&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the {{LSLGC|Avatar/Name|legacy name}} of the prim or avatar specified by &#039;&#039;&#039;id&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* It is difficult to tell the difference between a prim that has a name that is an empty string and a prim that is not in the sim, or because an invalid key was specified. Use [[llGetObjectDetails]] to avoid this problem.&lt;br /&gt;
* To get around the &amp;quot;avatar must be present&amp;quot; limitation, you can use the [[llRequestAgentData]] function and the [[dataserver]] event to obtain the avatar&#039;s name from a key.&lt;br /&gt;
* There is no opposite function ([[llName2Key]]) available. However, there are third-party websites which can be queried using the [[llHTTPRequest]] function and the [[http_response]] event.&lt;br /&gt;
* If an avatar is &amp;quot;ghosted&amp;quot; (which occasionally happens due to a longstanding server bug), an empty string is returned even though the avatar is seemingly present and shows up in [[llSensor]] and the [[Mini-Map]].  This fact can be used as the basis of a [[Ghost Detector]] script.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;// Best viewed in Chat History (ctrl-h)&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    collision_start(integer a)//Announce who collided&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0,&amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetUsername]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetDisplayName]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetObjectDetails]]}}&lt;br /&gt;
{{LSL DefineRow||[[llRequestAgentData]]|Uses the [[dataserver]] to request avatar information}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes=&#039;&#039;&#039;Active Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*http://n2k.danardlabs.com (dedicated caching database, {{LSLGC|Legacy Name|Legacy Names}} and {{LSLGC|Username|Usernames}} supported)&lt;br /&gt;
*http://w-hat.com/name2key&lt;br /&gt;
*http://kdc.ethernia.net/sys/name2key.php&lt;br /&gt;
*http://wiki.apez.biz/Development (web-service API functions getAvatarKey and getAvatarName)&lt;br /&gt;
*http://insl.kubwa.de/name2key.php?name=name (Bot based name2key Database. Supports: {{LSLGC|Legacy Name|Legacy}} and {{LSLGC|Username}} formats)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dead Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.libsecondlife.org/protocol/index.php/Name2key&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008, but search for name2key on that site for more information)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.ulrikasheim.org/tools/name2key.html&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name2Key Libraries:&#039;&#039;&#039;&lt;br /&gt;
*[[Name2Key_in_LSL]]&lt;br /&gt;
*[[User:Ugleh_Ulrik/Name2Key|Ugleh Ulrik&#039;s Name2Key PHP script]]&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Key&lt;br /&gt;
|cat4=Avatar/Name&lt;br /&gt;
|cat5=Legacy Name&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1113872</id>
		<title>LlKey2Name</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1113872"/>
		<updated>2010-11-24T17:39:21Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-215}}{{Issues/SVC-4170}}{{Issues/SVC-3935}}{{LSL_Function/uuid|id|sim=*}}{{LSL_Function&lt;br /&gt;
|func_id=210|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=Key2Name|func=llKey2Name&lt;br /&gt;
|return_type=string|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; must specify a valid rezzed prim or avatar key, present in or otherwise known to the sim in which the script is running, otherwise an empty string is returned. In the case of an avatar, this function will still return a valid name if the avatar is a child agent of the sim (i.e., in an adjacent sim, but presently able to see into the one the script is in), or for a short period after the avatar leaves the sim (specifically, when the client completely disconnects from the sim, either as a main or child agent).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Keys of inventory items will not work; in the case of these, use [[llGetInventoryName]] instead.&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the {{LSLGC|Avatar/Name|legacy name}} of the prim or avatar specified by &#039;&#039;&#039;id&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* It is difficult to tell the difference between a prim that has a name that is an empty string and a prim that is not in the sim, or because an invalid key was specified. Use [[llGetObjectDetails]] to avoid this problem.&lt;br /&gt;
* To get around the &amp;quot;avatar must be present&amp;quot; limitation, you can use the [[llRequestAgentData]] function and the [[dataserver]] event to obtain the avatar&#039;s name from a key.&lt;br /&gt;
* There is no opposite function ([[llName2Key]]) available. However, there are third-party websites which can be queried using the [[llHTTPRequest]] function and the [[http_response]] event.&lt;br /&gt;
* If an avatar is &amp;quot;ghosted&amp;quot; (which occasionally happens due to a longstanding server bug), an empty string is returned even though the avatar is seemingly present and shows up in [[llSensor]] and the [[Mini-Map]].  This fact can be used as the basis of a [[Ghost Detector]] script.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;// Best viewed in Chat History (ctrl-h)&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    collision_start(integer a)//Announce who collided&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0,&amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetUsername]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetDisplayName]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetObjectDetails]]}}&lt;br /&gt;
{{LSL DefineRow||[[llRequestAgentData]]|Uses the [[dataserver]] to request avatar information}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes=&#039;&#039;&#039;Active Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*http://n2k.danardlabs.com (dedicated caching database, {{LSLGC|Legacy Name|Legacy}} and {{LSLGC|Username}} supported)&lt;br /&gt;
*http://w-hat.com/name2key&lt;br /&gt;
*http://kdc.ethernia.net/sys/name2key.php&lt;br /&gt;
*http://wiki.apez.biz/Development (web-service API functions getAvatarKey and getAvatarName)&lt;br /&gt;
*http://insl.kubwa.de/name2key.php?name=name (Bot based name2key Database. Supports: {{LSLGC|Legacy Name|Legacy}} and {{LSLGC|Username}} formats)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dead Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.libsecondlife.org/protocol/index.php/Name2key&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008, but search for name2key on that site for more information)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.ulrikasheim.org/tools/name2key.html&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name2Key Libraries:&#039;&#039;&#039;&lt;br /&gt;
*[[Name2Key_in_LSL]]&lt;br /&gt;
*[[User:Ugleh_Ulrik/Name2Key|Ugleh Ulrik&#039;s Name2Key PHP script]]&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Key&lt;br /&gt;
|cat4=Avatar/Name&lt;br /&gt;
|cat5=Legacy Name&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1113193</id>
		<title>LlKey2Name</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlKey2Name&amp;diff=1113193"/>
		<updated>2010-11-23T15:36:49Z</updated>

		<summary type="html">&lt;p&gt;Augren Ferguson: added n2k.danardlabs.com name2key service&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-215}}{{Issues/SVC-4170}}{{Issues/SVC-3935}}{{LSL_Function/uuid|id|sim=*}}{{LSL_Function&lt;br /&gt;
|func_id=210|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=Key2Name|func=llKey2Name&lt;br /&gt;
|return_type=string|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; must specify a valid rezzed prim or avatar key, present in or otherwise known to the sim in which the script is running, otherwise an empty string is returned. In the case of an avatar, this function will still return a valid name if the avatar is a child agent of the sim (i.e., in an adjacent sim, but presently able to see into the one the script is in), or for a short period after the avatar leaves the sim (specifically, when the client completely disconnects from the sim, either as a main or child agent).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Keys of inventory items will not work; in the case of these, use [[llGetInventoryName]] instead.&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the {{LSLGC|Avatar/Name|legacy name}} of the prim or avatar specified by &#039;&#039;&#039;id&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* It is difficult to tell the difference between a prim that has a name that is an empty string and a prim that is not in the sim, or because an invalid key was specified. Use [[llGetObjectDetails]] to avoid this problem.&lt;br /&gt;
* To get around the &amp;quot;avatar must be present&amp;quot; limitation, you can use the [[llRequestAgentData]] function and the [[dataserver]] event to obtain the avatar&#039;s name from a key.&lt;br /&gt;
* There is no opposite function ([[llName2Key]]) available. However, there are third-party websites which can be queried using the [[llHTTPRequest]] function and the [[http_response]] event.&lt;br /&gt;
* If an avatar is &amp;quot;ghosted&amp;quot; (which occasionally happens due to a longstanding server bug), an empty string is returned even though the avatar is seemingly present and shows up in [[llSensor]] and the [[Mini-Map]].  This fact can be used as the basis of a [[Ghost Detector]] script.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;// Best viewed in Chat History (ctrl-h)&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    collision_start(integer a)//Announce who collided&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0,&amp;quot;llKey2Name: &amp;quot; + llKey2Name(llDetectedKey(0)) +&lt;br /&gt;
               &amp;quot;\nllDetectedName: &amp;quot; + llDetectedName(0));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetUsername]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetDisplayName]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetObjectDetails]]}}&lt;br /&gt;
{{LSL DefineRow||[[llRequestAgentData]]|Uses the [[dataserver]] to request avatar information}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes=&#039;&#039;&#039;Active Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*http://n2k.danardlabs.com (beta)&lt;br /&gt;
*http://w-hat.com/name2key&lt;br /&gt;
*http://kdc.ethernia.net/sys/name2key.php&lt;br /&gt;
*http://wiki.apez.biz/Development (web-service API functions getAvatarKey and getAvatarName)&lt;br /&gt;
*http://insl.kubwa.de/name2key.php?name=name (Bot based name2key Database. Supports: {{LSLGC|Legacy Name|Legacy}} and {{LSLGC|Username}} formats)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dead Name2Key Databases:&#039;&#039;&#039;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.libsecondlife.org/protocol/index.php/Name2key&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008, but search for name2key on that site for more information)&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;http://www.ulrikasheim.org/tools/name2key.html&amp;lt;/s&amp;gt;&amp;lt;font color=red&amp;gt;(Appears to be gone as of Apr 2008)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name2Key Libraries:&#039;&#039;&#039;&lt;br /&gt;
*[[Name2Key_in_LSL]]&lt;br /&gt;
*[[User:Ugleh_Ulrik/Name2Key|Ugleh Ulrik&#039;s Name2Key PHP script]]&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Key&lt;br /&gt;
|cat4=Avatar/Name&lt;br /&gt;
|cat5=Legacy Name&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Augren Ferguson</name></author>
	</entry>
</feed>