<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.spherecommunity.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MrSugarCube</id>
		<title>SphereWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.spherecommunity.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MrSugarCube"/>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Special:Contributions/MrSugarCube"/>
		<updated>2026-05-13T16:55:20Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Es:Chapter_1&amp;diff=1026</id>
		<title>Es:Chapter 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Es:Chapter_1&amp;diff=1026"/>
				<updated>2012-03-02T01:01:57Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by CorineEwing (Talk) to last version by Sirius&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Idiomas|Chapter_1}}&lt;br /&gt;
&lt;br /&gt;
==Números==&lt;br /&gt;
&lt;br /&gt;
La primera cosa de la que te das cuenta cuando echas un vistazo a los scripts de SPHERE, es la amplia variedad de formas que hay para escribir los números. Dado que los números son realmente importantes para un programador de SPHERE, esta será la primera lección de todas. Una vez acabes la lección, espero que tengas un entendimiento general del sistema hexadecimal, decimal y binario, y la forma que tiene SPHERE de identificar cada uno. También sabrás cómo generar números aleatorios ya sea de una serie o de una lista de elecciónes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La primera cosa que necesitas comprender es que la forma en la que contamos no es la unica forma de contar. Nuestro sistema de numeración contiene diez dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8, y 9). Pero, al decimo número, tenemos que añadir una columna al número y reestablecer la primera columna a cero (1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Esa es la razón por la que nuestros sistema de numeración funciona en la forma en la que lo hace.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el sistema decimal, sin darnos cuenta, escribimos los numeros para que se entiendan como potencias de diez. Por ejemplo, si tomamos el número 17282 (que me acabo de inventar), y lo dividimos, obtenemos esto:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Potencia de diez    || 4     || 3     || 2     || 1     || 0&lt;br /&gt;
|-&lt;br /&gt;
| Diez a esa potencia || 10000 || 1000  || 100   || 10    || 1&lt;br /&gt;
|-&lt;br /&gt;
| Dígito              || 1     || 7     || 2     || 8     || 2 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para conseguir el número 17282 a partir de esto, sólo tenemos que tomar la potencia de diez de la fila superior, multiplicarlo por el número de la fila inferior, y sumar todos los resultados. Así pues obtendremos 10000 + 7000 + 200 + 80 + 2. Evidentemente, esto es mucho más simple, y ni siquiera nos damos cuenta de que lo estamos haciendo. Probablemente estés pensando &amp;quot;Vaaaaale, ¿qué se piensa Taran que está consiguiendo con esto?&amp;quot; Pues bien, no somos tan especiales como para que nuestro sistema de cuentas sea el único con el que se cuenta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, hay otro sistema numérico que es utilizado caso exclusivamente por los ordenadores. Éste solo contiene dos dígitos (1 y 0) y es por ello por lo que es llamado 'Sistema binario' (que significa 'dos'). Los números binarios tienen un aspecto parecido a este: 101011101101, y los verás con frecuencia en anuncios de ordenadores y electrónica (Muchas veces se los muestra saliendo de un grabador de CDs en anuncios de televisión). A los dígitos del sistema binario se les llama BITs (Abreviatura del inglés 'BInary digiT' - Dígito Binario). Los números en binario son prácitamente imposibles de traducir directamente al decimal, así que hay que echar algunas cuentas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El binario funciona de la misma manera que el decimal: sumando potencias de un número. En el caso del binario, dado que sólo hay dos dígitos en todo el sistema, ese número naturalmente es 'dos'. Aquí hay algunas potencias de dos. Algunas personas pueden encontrar estos números algo familiares.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Potencia de 2 || Número Binario || Número Decimal&lt;br /&gt;
|-&lt;br /&gt;
| 0             || 1              || 1&lt;br /&gt;
|-&lt;br /&gt;
| 1             || 10             || 2&lt;br /&gt;
|-&lt;br /&gt;
| 2             || 100            || 4&lt;br /&gt;
|-&lt;br /&gt;
| 3             || 1000           || 8&lt;br /&gt;
|-&lt;br /&gt;
| 4             || 10000          || 16&lt;br /&gt;
|-&lt;br /&gt;
| 5             || 100000         || 32&lt;br /&gt;
|-&lt;br /&gt;
| 6             || 1000000        || 64&lt;br /&gt;
|-&lt;br /&gt;
| 7             || 10000000       || 128&lt;br /&gt;
|-&lt;br /&gt;
| 8             || 100000000      || 256&lt;br /&gt;
|-&lt;br /&gt;
| 9             || 1000000000     || 512&lt;br /&gt;
|-&lt;br /&gt;
| 10            || 10000000000    || 1024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Absurdo, ¿verdad?  :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
¡Necesitamos un sistema mejor! La razon por la que obtenemos unos resultados tan extraños es que 10 no forma parte de las potencias de dos. Necesitamos encontrar un sistema cuya base SEA una potencia de dos. El sistema que con más frecuencia se usa es base-16, or hexadecimal. Estoy seguro de que si has seguido los foros de SPHERE, habrás visto la palabra hex danzando por ahí. No, no es una palabrota ni un hechizo malvado, es la forma rápida de decir &amp;quot;hexadecimal&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Binario || Decimal || Hexadecimal&lt;br /&gt;
|-&lt;br /&gt;
| 1       || 1       || 1&lt;br /&gt;
|-&lt;br /&gt;
| 10      || 2       || 2&lt;br /&gt;
|-&lt;br /&gt;
| 11      || 3       || 3&lt;br /&gt;
|-&lt;br /&gt;
| 100     || 4       || 4&lt;br /&gt;
|-&lt;br /&gt;
| 101     || 5       || 5&lt;br /&gt;
|-&lt;br /&gt;
| 110     || 6       || 6&lt;br /&gt;
|-&lt;br /&gt;
| 111     || 7       || 7&lt;br /&gt;
|-&lt;br /&gt;
| 1000    || 8       || 8&lt;br /&gt;
|-&lt;br /&gt;
| 1001    || 9       || 9&lt;br /&gt;
|-&lt;br /&gt;
| 1010    || 10      || A&lt;br /&gt;
|-&lt;br /&gt;
| 1011    || 11      || B&lt;br /&gt;
|-&lt;br /&gt;
| 1100    || 12      || C&lt;br /&gt;
|-&lt;br /&gt;
| 1101    || 13      || D&lt;br /&gt;
|-&lt;br /&gt;
| 1110    || 14      || E&lt;br /&gt;
|-&lt;br /&gt;
| 1111    || 15      || F&lt;br /&gt;
|-&lt;br /&gt;
| 10000   || 16      || 10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
¿Has visto como funciona? Hay seis dígitos adicionales añadidos al final del sistema numérico, y representados por las letras del alfabeto (los dígitos se nos acabaron en el 9 y de alguna manera había que representar los que faltaban, ¿no?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora, durante la programacion de SPHERE, prácticamente NUNCA vas a manejar números binarios que NO sean potencias de dos, y si lo haces, simplemente puedes usar una calculadora científica para hacerte una idea del resultado. Pero es múchísimo más fácil en hexadecimal.&lt;br /&gt;
&lt;br /&gt;
(Esta es la última tabla, ¡¡Lo prometo!!)&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Binario       || Hexadecimal  &lt;br /&gt;
|-&lt;br /&gt;
| 000000001 (1) || 01  &lt;br /&gt;
|-&lt;br /&gt;
| 000000010 (2) || 02  &lt;br /&gt;
|-&lt;br /&gt;
| 000000100 (3) || 04  &lt;br /&gt;
|-&lt;br /&gt;
| 000001000 (4) || 08  &lt;br /&gt;
|-&lt;br /&gt;
| 000010000 (5) || 010  &lt;br /&gt;
|-&lt;br /&gt;
| 000100000 (6) || 020  &lt;br /&gt;
|-&lt;br /&gt;
| 001000000 (7) || 040  &lt;br /&gt;
|-&lt;br /&gt;
| 010000000 (8) || 080  &lt;br /&gt;
|-&lt;br /&gt;
| 100000000 (9) || 0100  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como puedes ver, hay una especie de patrón en la columna hexadecimal. Puedes estar pensando que hay algún tipo de patrón con los números 1, 2, 4 y 8. Y estarias pensando acertadamente. otro detalle del que quizás te des cuenta es del de los ceros que hay delante de cada número hexadecimal (como 0100, en vez de simplemente 100). En SPHERE, ese 0 le dice al script &amp;quot;¡Oiga!, ¡este número está en HEX!&amp;quot; ya que 0100 y 100 son números muy distintos (0100 en hexadecimal equivale a 256 en decimal; 100 en decimal equivale, evidentemente, a 100 en decimal y por otro lado 100 en binario equivale a 4 en decimal; así que un poco si que cambia la cosa ¿verdad?).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Digamos que, para un script de SPHERE, necesitas establecer el decimotercer bit de un número (FLAGS, por ejemplo), podrías escribir algo parecido a:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SRC.FLAGS |= 8192'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pero, ¿realmente te acordarías de que 8192 es 2 elevado a la 13ª potencia? Lo dudo mucho. Lo que sería más fácil, es recorrer toda la lista de cabeza hasta llegar al 13er numero. (¡Recuerda!, ¡¡COMIENZA EN CERO cuando estés contando potencias!!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| 01  || 02  || 04  || 08  || 010 || 020 || 040 || 080 || 0100 || 0200 || 0400 || 0800 || 01000 || 02000  &lt;br /&gt;
|-&lt;br /&gt;
| 2^0 || 2^1 || 2^2 || 2^3 || 2^4 || 2^5 || 2^6 || 2^7 || 2^8  || 2^9  || 2^10 || 2^11 || 2^12  || 2^13  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Y ahí tienes. Las primeras 14 potencias de dos traducidas a hexademical.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SRC.FLAGS |= 02000'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El código de arriba es idéntico al ejemplo anterior. 8192 (decimal) es IGUAL que 02000 (hexadecimal)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''8192 = 02000'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podrías decir, &amp;quot;¿Y cómo sé yo que no te estás inventando todo esto?&amp;quot; Pues bien, nuestros maravillosos amigos de Microsoft nos han provisto de una herramienta genial para convertir de decimal a binario, hexadecimal y octal (OTRO sistema de numeración que no se utiliza en SPHERE, así que pasaremos de él). Se llama 'Calculadora'. Puedes encontrarla en el botón 'Inicio', yendo a 'Programas', y luego 'Accesorios'. La calculadora debería estar sentada por alli viéndose preciosa. Una vez abierta la calculadora, Ve al menu 'Ver' y pulsa sobre 'Científica'. El display debería cambiar drásticamente. Para convertir los numeros entre los distintos sistemas numéricos, simplemente pincha en el sistema original (Dec), escribe un número (8192), y pulsa en el botón del otro sistema (Hex). Auto-mágicamente, Windows convertirá tu número decimal en hexadecimal. Pégale un cero delante, y SPHERE estará encantado de comerse ese suculento plato.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Probablmente esta sea la cosa más dificil para entender de la programación en SPHERE. Afortunadamente, debido a la siguiente sección, no tendrás que estar tratando con numeros tan feos todo el rato. Si después de todo este tochaco, aún sigues leyendo esto, ¡Sé que lo vas a hacer genial!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
¡Vamos a por algo de programación en SPHERE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Defnames (Definiendo nombres)==&lt;br /&gt;
&lt;br /&gt;
Aqui hay una lista de numeros bastante feos que puedes encontrarte mientras programas SPHERE.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| El número feote  || Lo que significa...&lt;br /&gt;
|-&lt;br /&gt;
| 0EED             || ID de una moneda de oro&lt;br /&gt;
|-&lt;br /&gt;
| 0DDA             || ID de un portal rojo&lt;br /&gt;
|-&lt;br /&gt;
| 1650,1440        || Coordenadas de Britain &lt;br /&gt;
|-&lt;br /&gt;
| 021              || Código numérico para el color rojo&lt;br /&gt;
|-&lt;br /&gt;
| 04000            || El color transparente&lt;br /&gt;
|-&lt;br /&gt;
| 04000EFAD        || Identificador de un objeto&lt;br /&gt;
|-&lt;br /&gt;
| 4                || El PLEVEL de un GM  &lt;br /&gt;
|-&lt;br /&gt;
| 2048 (or 0800)   || Marca (FLAG) del hechizo Incógnito  &lt;br /&gt;
|-&lt;br /&gt;
| 010 (or 16)      || Tipo de memoria para los agresores  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evidentemente, nadie va a querer acordarse de esos números. En los viejos tiempos, antes de SPHERE y TUS (pre-.50 SPHERE) e incluso en las nieblas de Grayworld (pre-.41 TUS), todos teníamos que acordarnos de esos números. Conozco todos los números que he dicho (excepto el identificador, que me lo acabo de inventar), y una docena más, lo digo de verdad. Afortunadamente para todos aquellos que no quereis sentaros a empollar números, SPHERE ha desarrollado un sistema por el cual las cosas pueden ser identificadas por nombres en lugar de números.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De hecho, las cosas aún se identifican por números. Son los números los que se identifican por nombres.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el juego, escribe .add 0EED y pulsa intro. Aparecerá un cursor de objetivo y crearás una moneda de oro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora escribe .add i_gold y pulsa intro. Crearás la misma moneda de oro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
¿Cual de los dos es más facil de recordar, 0EED ó i_gold?. yo diría que i_gold gana de lejos. Pero, ¿cómo ocurre esta magia? Echémosle un vistazo al script que define una moneda de oro. No te molestes en entenderlo. ¡Explicaré los scripts de objetos en la siguente sección! Podemos encontrar este script en el archivo sphere_item_resources.scp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[ITEMDEF 0eed]&amp;lt;br /&amp;gt;&lt;br /&gt;
//gold coin&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;DEFNAME=i_gold&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;TYPE=T_GOLD&amp;lt;br /&amp;gt;&lt;br /&gt;
VALUE=1&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Provisiones - Miscelanea&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=Monedas&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Moneda de oro&amp;lt;br /&amp;gt;&lt;br /&gt;
DUPELIST=0eee,0eef&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
He remarcado la linea que realmente importa para los propósitos de esta lección en rojo. Fíjate en ese 0EED en la primera línea del script, e ignora el resto. Ese 0EED es el auténtico número de ese objeto. Estudiaremos más números de objetos en la siguiente sección&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pero la verdadera línea que quiero que te fijes es en &amp;lt;font color=&amp;quot;ff0000&amp;quot;&amp;gt;DEFNAME=i_gold&amp;lt;/font&amp;gt;. Ahí es donde el script le dice al servidor, &amp;quot;Quiero que el objeto 0EED sea identidifcado con el texto i_gold a partir de ahora.&amp;quot; Si has intentado acceder a i_gold antes de que el servidor lea este script (Un poco más acerca de reordenar scripts en el [[Capítulo 2]]), escupirá uno de sus errores, pero ahora ya sabe a que te refieres, y por lo tanto lo puedes usar en juego o en otros scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deberias darle SIEMPRE a los objetos que crees un DEFNAME que se ajuste a ese objeto. Normalmente el nombre por defecto se definirá en el mismo identficador [ITEMDEF] (de nuevo, más de esto luego), pero si insistes en usar números, asegurate de darle un nombre fácil de recordar (Y no gulash_dorada para definir a una espada vikinga). Esto lo hará mas facil de recordar que los números.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otra manera de definir un DEFNAME es usando la cabecera [DEFNAME] en un script. He aquí un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkgreen&amp;quot;&amp;gt;[DEFNAME colores]&amp;lt;br /&amp;gt;&lt;br /&gt;
color_azul 02&amp;lt;br /&amp;gt;&lt;br /&gt;
color_rojo 021&amp;lt;br /&amp;gt;&lt;br /&gt;
color_verde 041&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Encontraras un script parecido en spheredefs.scp, otro de los archivos que debería ser cargado antes que ningún otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aquí está el análisis, línea por línea:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Línea 1''': Aquí es donde defines el tipo de script y el nombre por defecto (Sí, colores es el nombre por defecto de este script). Esto le dice al servido qué tipo de script se debe esperar entre este y el siguiente identificador (Los identificadores son las lineas encerradas en corchetes). Todos los identificadores tienen este formato. El primer parámetro es el tipo de script. Éstos son variados, y los explicaré conforme vayamos llegando. El segundo puede ser tanto un ID como un nombre por defecto. En la mayoría de las veces, en los scripts que escribas, será un nombre. La única excepción que se me ocurre es que utilices un programa para parchear el cliente y añadir nuevos tipos de objeto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lines 2-4''': Éstas definen cada DEFNAME. Viene a decir que color_azul equivale a 02, color_rojo equivale a 021, y color_verde equivale a 041. Puedes utilizar todos los espacios que quieras entre el nombre y el valor. Las definiciones contenidas en spheredefs.scp están entre las más útiles que puedas llegar a encontrarte, dado que evitan que tengas que escribir números tan feos como los vistos en la sección anterior. Estas incluyen cosas como nombres para marcas (flags), atributos de objetos, música en MIDI o MP3, tipos de memoria, y otras muchas cosas. Échale un ojo al archivo para ver qué es lo que este te ofrece.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esto es lo que hay que saber sobre DEFNAMEs. Ya veremos un poco más conforme vayamos cubriendo otros tipos de scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aprendamos algo acerca de objetos.&lt;br /&gt;
&lt;br /&gt;
==ITEMDEF (Definiendo Objetos)==&lt;br /&gt;
O, cómo hacer una montaña de un grano de arena, al estilo SPHERE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La mayoría de la gente crea scritps de objetos de una forma mucho más dificil de lo que realmente es. Para propósitos de este tutorial, y dado que hay uno más avanzado para luego, sólamente veremos lo más básico de un script de objetos, línea a línea. Usaremos el script de la moneda de oro de la lección anterior.&lt;br /&gt;
&lt;br /&gt;
Helo aquí, ¡Coloreado convenientente para disfrute de tus ojos!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[ITEMDEF 0EED]&lt;br /&gt;
//moneda de oro&lt;br /&gt;
DEFNAME=i_gold&lt;br /&gt;
TYPE=T_GOLD&lt;br /&gt;
VALUE=1&lt;br /&gt;
CATEGORY=Provisiones - Miscelanea&lt;br /&gt;
SUBSECTION=Monedas&lt;br /&gt;
DESCRIPTION=Moneda de oro&lt;br /&gt;
DUPELIST=0EEE,0EEF&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esto es lo más simple en scripts de objetos, ya que no tiene ningún comportamiento más allá de la pura existencia. Repasaré linea por linea, describiéndote que hace cada una, y cómo afecta al resultado final.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Línea 1''': [ITEMDEF 0EED]&lt;br /&gt;
&lt;br /&gt;
La primera línea de un script de objetos es probablemente la más importante. Básicamente esta linea le dice al servidor &amp;quot;Oiga, ¡esto es un objeto y quiero que se llame 0EED!&amp;quot; El servidor, entonces mira uno de los archivos del cliente (Especificamente art.idx), Identifica si es o no es un objeto Build-in. Creo que todos los objetos por debajo de 04500 están definidos como objetos built-in, así que no definas nunca un objeto en ese rango. Escribiendo esta línea, le dices al servidor que lo siguiente es un script de objet. También defines 0EED como objeto válido, ¡Lo cual ayuda bastante cuando intentes darle oro a tus jugadores!&lt;br /&gt;
&lt;br /&gt;
'''N.T.: Dejo el resto del artículo pendiente para otra ocasión u otra persona. Disculpad las molestias, seguiré mañana.'''&lt;br /&gt;
&lt;br /&gt;
'''Línea 2''': // moneda de oro&lt;br /&gt;
&lt;br /&gt;
This is the SPHERE version of comment. C programmers will recognize the format immediately. If you type // on any line of code, everything beyond that is ignored by the script reader. This can be on a line by itself, or at the end of a line to explain what the specific line does. In all cases, it won't affect your program, just make it easier to read.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Línea 3''': DEFNAME=i_gold&lt;br /&gt;
&lt;br /&gt;
You should know by now what this does! If you don't, go back and read the previous lesson! It tells the server that i_gold and 0eed mean the same thing. In item scripts, all parameters are defined in that format:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
variable=value&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will see later on, when we get into scripting, how that format will help you more than you would believe. Items have a good number of variables that you can define, including:&lt;br /&gt;
&lt;br /&gt;
* DEFNAME&lt;br /&gt;
* ID&lt;br /&gt;
* TYPE&lt;br /&gt;
* VALUE&lt;br /&gt;
* RESOURCES&lt;br /&gt;
Other variables depend on the value of the TYPE. Which leads us right into...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 4''': TYPE=t_gold&lt;br /&gt;
&lt;br /&gt;
The first thing you might say is &amp;quot;What the heck is t_gold?&amp;quot; Well it's a DEFNAME. Actually it's a number. And that number is 72. If you want to check me on this, look in spheredefs.scp, it's there! Writing TYPE=72 would have the exact same effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are, currently, 183 built-in item types. These are hardcoded item types that contain predefined actions for an item. If an item has no type, when you click it, you get the &amp;quot;You cannot think of a way to use that item&amp;quot; message. There is a complete list of types, and how to set them up, here . All you need to know for now is that setting the type of this item to t_gold has no effect other than to make the item act like a gold coin (i.e. you can buy stuff with it!) Setting another item to type t_gold would probably make the server think that you can buy stuff with that item too. I've never tried this. It might be an interesting way to have unique currencies...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 5''': VALUE=1&lt;br /&gt;
&lt;br /&gt;
This defines how much the item costs when purchased, in gold. Of course, this is one gold piece, which is worth, well, one gold piece. So the value of the item is one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lines 6-8''': CATEGORY, SUBSECTION, DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
These are lines used only by SPHERE's GM tool, Axis, which actually saves you a lot of work by typing &amp;quot;.add i_gold&amp;quot; for you. More importantly, it types &amp;quot;.add 01737&amp;quot; and things like that for you, for items that were not important enough to get their own separate DEFNAME.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 9''': DUPEITEM&lt;br /&gt;
&lt;br /&gt;
It would be a ton of work for the SPHERE team to define all 8000 items that came with the game, especially when many of them are the same. (For an example of this, use the .xflip command on a door or sign. It cycles through all of the DUPEITEMs for that the item being flipped.) The numbers listed here are item numbers, which probably have not been defined yet. Here is the script for item 0eee:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[ITEMDEF 0EEE]&lt;br /&gt;
//gold coins&lt;br /&gt;
DUPEITEM=0EED&lt;br /&gt;
CATEGORY=Provisions - Miscellaneous&lt;br /&gt;
SUBSECTION=Coins&lt;br /&gt;
DESCRIPTION=Gold Coins&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As you can see, there is only one parameter for this whole item. It reiterates the DUPEITEM and sends the server looking to our 0eed (or i_gold) item for more information, such as TYPE and VALUE. DUPEITEM only exists to save typing. You probably won't use it.&lt;br /&gt;
&lt;br /&gt;
==CHARDEF==&lt;br /&gt;
Or, what it takes to make a naked man who can stand around and say &amp;quot;Huh?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NPCs... They make the world go around. They are what makes UO a unique multiplayer game. The monsters and NPCs you create make your server unique from any other. This section of chapter one will cover how to create a simple naked man who walks around and says little more than &amp;quot;Huh?&amp;quot; (or &amp;quot;Stop thief!&amp;quot; if you tell him to!).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First of all, we'll look at the script for a simple naked man. I'm pulling this out of spherechar_human.scp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[CHARDEF 0190]&lt;br /&gt;
DEFNAME=c_man&lt;br /&gt;
Name=Man&lt;br /&gt;
ICON=i_pet_MAN&lt;br /&gt;
CAN=MT_EQUIP|MT_WALK|MT_RUN|MT_USEHANDS&lt;br /&gt;
RESOURCES=i_flesh_head, i_flesh_torso, i_flesh_right_arm, i_flesh_left_arm&lt;br /&gt;
FOODTYPE=15 t_food, t_fruit&lt;br /&gt;
DESIRES=i_gold,e_notoriety&lt;br /&gt;
AVERSIONS=t_TRAP,t_eerie_stuff&lt;br /&gt;
SHELTER=r_house&lt;br /&gt;
BLOODCOLOR=0&lt;br /&gt;
&lt;br /&gt;
TSPEECH=spk_human_prime&lt;br /&gt;
TSPEECH=spk_human_default&lt;br /&gt;
TEVENTS=e_Human_HearUnk&lt;br /&gt;
DESCRIPTION=Man&lt;br /&gt;
SUBSECTION=Miscellaneous&lt;br /&gt;
CATEGORY=Civilized&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As you can see, it doesn't look a lot different than the item scripts we examined in the previous section. There are a lot of variables set that are the same, including DEFNAME, DESCRIPTION, and the other Axis variables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But, there are a lot of new things here that we will again go over, one line at a time! And it's longer this time! Let the good times roll! (Sorry if you're not American.. All my American clichés are probably growing irritating!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 1''': [CHARDEF 0190]&lt;br /&gt;
&lt;br /&gt;
Surprise surprise! It's an identifier, telling the server that we are going to be defined a character between this and the next [identifier]. And we also tell it that our character, or NPC, will have the ID 0190. The server knows that this ID is one of the built-in IDs. In fact, it's the ID of a naked man. You also know that 0190 is hexadecimal is 400 in decimal right?  :) Well why didn't you know that! Oh I'm just kidding, you don't need to know things like that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 2''': DEFNAME=c_man&lt;br /&gt;
&lt;br /&gt;
Nothing new here. c_man is now the same as 0190. Most character DEFNAMEs will begin with C and then an underscore (c_) like you see above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 3''': Name=Man&lt;br /&gt;
&lt;br /&gt;
Oh oh! Something new! Items come with default names, built in to the server. Characters don't. So we have to assign him a name. We can give him any name we want, but since this isn't a specific man, we just give him a name telling us what he is. In this case &amp;quot;Man&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 4''': ICON=i_pet_man&lt;br /&gt;
&lt;br /&gt;
It took me a while to figure this one out. ICON defines what little picture you see when you're using the Tracking skill and all those little miniature creatures appear in the window. Those are actually items, all the i_pet items. To find out what the i_pet item for your creature should be, create him in the game using .addnpc, then use the .shrink command on him. The ID of the item that he becomes is your i_pet item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 5''': CAN=mt_*&lt;br /&gt;
&lt;br /&gt;
(In case you don't know, * means &amp;quot;anything&amp;quot; for those who use Linux.)&lt;br /&gt;
&lt;br /&gt;
This is one of the most important lines of your character script, next to the ID we give him in the first line. First, because it allows us to tell the game what our NPC can do and what he can't do. There are only a few mt_* items, all of which are defined in spheredefs.scp. For the purpose of the lesson, I am going to copy them here. (The purple comments are mine.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;MT_NONMOVER        0 // We can't move at all&lt;br /&gt;
MT_GHOST          01 // We can walk through doors and such, like a ghost&lt;br /&gt;
MT_SWIM           02 // I can swim! (Water elementals, dolphins, etc)&lt;br /&gt;
MT_WALK           04 // I can move. Set this if you want your creature to move.&lt;br /&gt;
MT_FLY           010 // Moves through (supposed to be over) trees&lt;br /&gt;
MT_FIRE_IMMUNE   020 // Immune to damage by fire. Setting this on a player is bad.  :)&lt;br /&gt;
MT_EQUIP       00100 // Can equip things&lt;br /&gt;
MT_USEHANDS    00200 // Can use his hands to carry things (or open doors)&lt;br /&gt;
MT_MALE            0 // Is a male&lt;br /&gt;
MT_FEMALE      00800 // Is a female&lt;br /&gt;
MT_NONHUM      01000 // Non-human. I'm not sure what this does.&lt;br /&gt;
MT_RUN         02000 // Can move really fast!&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
According to this chart, we can see that if we don't give a creature a CAN flag, it will be an MT_MALE and an MT_NONMOVER (the two zeros). You can see from the example that by putting a | (found by pressing shift+backslash) between two CAN flags, we can give him more than one. In this case, we allow our man to equip things, walk, run, and use his hands. (An interesting fact is, even creatures that don't have hands can be set to use their hands, thus allowing them to carry light sources. Fire elementals do this. That's how they glow.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 6''': RESOURCES&lt;br /&gt;
&lt;br /&gt;
Resources is a very morbid name for this setting. Especially for a person. These are the items that you get whenever you chop up this creature's corpse. Scary eh?  :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 7-10''': FOODTYPE, DESIRES, AVERSIONS&lt;br /&gt;
&lt;br /&gt;
'''FOODTYPE''': Defines what kind of food the npc will eat and if NPC_AI_FOOD is on it'll make the npc look for this food + grass when he's hunger.&lt;br /&gt;
&lt;br /&gt;
'''DESIRES''': Defines what kind of items will the npc be interested in, if NPC_AI_EXTRA is on it'll show what items the npc will loot of players corpses or walk towards when it's on the ground.&lt;br /&gt;
&lt;br /&gt;
'''AVERSIONS''': No idea, but I think it tells the npc what sort of NPCs he'll try to fight, for example: I have a horse with e_horse as an event, and an imp without any events, if the npc has AVERSIONS=e_horse it'll prefer to fight the horse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Line 11''': BLOODCOLOR&lt;br /&gt;
&lt;br /&gt;
Ever wanted to make your players have green blood? This is where you do it! A color number or a color defname will work fine. (Try to learn the numbers for common colors, it makes it so much easier.)&lt;br /&gt;
&lt;br /&gt;
The rest of it: TSPEECH and TEVENTS &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We're going to cover these in sections of their own. They are probably the most complex topics in scripting! (How many times do you suppose I'm going to say that before it's actually true?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;Some other things:&amp;lt;/font&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On 56B we have some other fields like MOVERATE,RESLEVEL,RESDISPDNID and RESDISPDNHUE. They sound some difficult and strange thing but they aren't. Here's the explanation for them: &lt;br /&gt;
&lt;br /&gt;
'''MOVERATE''': This setting (that can only be writed at the npc chardef) controls how fast the npc moves. The smaller the value, the faster the npc is. For example, if I have a horse chardef with default moverate (100) and another with moverate=60, the one with 60 will walk and run a lot faster than the other horse. This is great for making really difficult monsters to kill. &lt;br /&gt;
&lt;br /&gt;
'''RESLEVEL''': This tells sphere what version of uo this monster is from, for example, a Wanderer of the Void will have RESLEVEL=3 (3=AOS) (see sphere_defs.scp for a complete list), so only accounts with RESDISP 3 or bigger can see this monster as he really is. &lt;br /&gt;
&lt;br /&gt;
''NOTE'': If you set a lower value for RESLEVEL, if the player doesn't have this npc anim he'll crash. &lt;br /&gt;
&lt;br /&gt;
'''RESDISPDNID''': As you probably have seen, I used a lot of &amp;quot;as he really&amp;quot; is, exactly because of this setting, this tells the client what monster will the player see instead of the correct one. For example, this Wanderer of the Void will show as Wanderer of the Void for those who has ACCOUNT.RESDISP=3 or bigger, but for those who has smaller values it'll show as a c_spectre (if you so define). &lt;br /&gt;
&lt;br /&gt;
'''RESDISPDNHUE''': This defines what color will the player see the monster if the RESDISPDNID id is shown to him (have an account.resdisp lower than the reslevel of this char)&lt;br /&gt;
&lt;br /&gt;
Here's an example for those new settings:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;[CHARDEF 310]&lt;br /&gt;
DEFNAME=c_Wailing_Banshee&lt;br /&gt;
NAME=Wailing Banshee&lt;br /&gt;
SOUND=snd_monster_zombie1&lt;br /&gt;
ICON=i_pet_wailingbanshee&lt;br /&gt;
DAM=11,16&lt;br /&gt;
RESDISPDNID=c_spectre&lt;br /&gt;
RESLEVEL=3&lt;br /&gt;
RESDISPDNHUE=01&lt;br /&gt;
ARMOR=20&lt;br /&gt;
CAN=MT_WALK|MT_FLY&lt;br /&gt;
DESIRES=i_gold,e_notoriety,e_horses,c_man,c_woman,t_corpse&lt;br /&gt;
CATEGORY=New Monsters&lt;br /&gt;
SUBSECTION=AOS&lt;br /&gt;
DESCRIPTION=Wailing Banshee&lt;br /&gt;
&lt;br /&gt;
ON=@Create&lt;br /&gt;
	NPC = brain_monster&lt;br /&gt;
	FAME = {100 3000}&lt;br /&gt;
	KARMA = {-5000 -6999}&lt;br /&gt;
	STR = {126 166}&lt;br /&gt;
	INT = {86 115}&lt;br /&gt;
	DEX = {41 75}&lt;br /&gt;
	MAGICRESISTANCE = {75.0 95.0}&lt;br /&gt;
	TACTICS = {45.0 75.0}&lt;br /&gt;
	WRESTLING = {50.0 70.0}&lt;br /&gt;
&lt;br /&gt;
ON=@NpcRestock&lt;br /&gt;
	ITEM = i_gold, {50 100}&lt;br /&gt;
	ITEM = i_reag_daemon_bone, {2 6}&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And there you have it. A simple character script and some new things. Read the chapter that is all about making NPCs later in the tutorial.&lt;br /&gt;
&lt;br /&gt;
==TEMPLATE==&lt;br /&gt;
Or, how to put great laggy quantities of items into one unlaggy container. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You've all seen it. Those shards out there that don't use TEMPLATEs. When you kill, say, a dragon, on those shards, and go to loot him, you find that rather than neatly organized containers, there are 100 potions scattered about the loot window. Not only that, but all your magical weapons are buried neatly beneath them! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How do we solve this problem? Well, SPHERE has given us the handy tool of TEMPLATEs. These allow you to define a container item, AND the items inside of it, AT THE SAME TIME. Isn't that neat? I thought so too, when I first figured out what they were. Let's do our traditional take-apart-the-script section. I'll place a nice TEMPLATE from the file spheretemp_loot.scp. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE 101505]&amp;lt;br /&amp;gt;&lt;br /&gt;
DEFNAME=backpack_poor&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Item Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=Loot Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Poor Backpack&amp;lt;br /&amp;gt;&lt;br /&gt;
CONTAINER=i_backpack&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_food 1 0 3 },{ 1 3 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_bottle 1 0 8 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_light 1 0 8 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_male_tops 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_all&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_male_pants 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
COLOR=colors_all&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=POOR_GOLD_PILE&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wow, that looks confusing. But don't worry, by the time we're done, you'll know exactly what it means! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE 101505]&amp;lt;/font&amp;gt;: First of all, we look at the header for our template. An interesting thing about templates is that the item name cannot be a DEFNAME like all other scripts. It must be a ridiculously high number like 101505. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;DEFNAME=backpack_poor&amp;lt;/font&amp;gt;: Of course, SPHERE developers are not entirely evil, and have provided us with the ability to give these scary numbers a DEFNAME for easier access. You tell me, which would you rather type? &amp;quot;.add 101505&amp;quot; or &amp;quot;.add backpack_poor&amp;quot;? I thought so. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;CATEGORY, SUBSECTION, DESCRIPTION&amp;lt;/font&amp;gt;: Axis crap. Optional. See the previous sections for a description of what these do. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;CONTAINER=i_backpack&amp;lt;/font&amp;gt;: Ahh, now we're getting down to the meat of this thing. This specifies the holding container that all other items in this template will be in. When you add the item in game, you will see this container. In this case, it's a backpack. Simple enough. This can be any valid item with a TYPE of t_container or t_container_locked. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;ITEM={ random_food 1 0 3},{1 3}&amp;lt;/font&amp;gt; Well, that's certainly cryptic. I think we need to break this line down even further. &lt;br /&gt;
&lt;br /&gt;
But first, we're going to cover RANDOM SELECTORS! Sounds like fun doesn't it? Nah, it doesn't sound fun to me either, but it's absolutely necessary to a good shard. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, they are an easy way to get different numbers with one command. What fun would a shard be where you killed a dragon and got a Platemail of Magic Stuff and a Super Duper Sword of Power every single time? Everyone would be running around with them. What we need is some variety! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two types of random selectors: weighted random and ranged random. Weighted random makes a statement like this: &amp;quot;Ok, 1 out of 10 times pick Number A, 3 out of 10 times pick Number B, and 6 out of 10 times pick number C&amp;quot;. Ranged random makes a statement like this: &amp;quot;Pick any number between the two numbers I give you&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Our example actually has an example of both ranged random and weighted random. We'll cover them in the order they appear: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{ random_food 1 0 3} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a weighted random selector. The way to interpret these is to take the numbers that appear between the parentheses and divide them into sets of two: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
random_food 1&amp;lt;br&amp;gt;&lt;br /&gt;
0 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add up the second numbers in both sets, and we get 4. This tells SPHERE, &amp;quot;Ok, 1 out of four times, I want you to pick random_food, and 3 out of four times, I want you to pick zero.&amp;quot; You can even have random sets within random sets, but then it just gets confusing. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{ { random_food 1 0 3} 1 random_clothing 1} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Can you figure it out? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
random_clothing 1&lt;br /&gt;
{ random_food 1 0 3} 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2 is our magic number in this case. One out of two times, SPHERE will pick random_clothing, and one out of two times, SPHERE will pick our previous random selector, which will then select one of its own options. If you're confused at this point, don't worry. This is extremely rare, and we'll see in a moment how templates help us to solve this problem. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I did mention, though, that there is another type of random selector, and you can probably see what it is: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{1 3} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: Spacing here is important. There must be ZERO spaces between the { and the first number, or the } and the last number. It will behave strangely otherwise. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This tells SPHERE &amp;quot;Pick a number between 1 and 3, inclusive&amp;quot;. Inclusive means that SPHERE can pick 1, 3, or any number in between. In this case, the range is rather limited. SPHERE will give you a 1, 2 or 3 here. Ranged random selectors are actually more often used inside of weighted random selectors. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{ {1 3} 3 {4 9} 1} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;One out of four times, pick a number between 4 and 9. Three out of four times, pick a number between 1 and 3.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And with that out of the way, we're going to analyze the actual line of the script from above. The Piece What the Line does ITEM=&lt;br /&gt;
This tells the script &amp;quot;Ok, we're going to add an item to this container. Anything after the = tells the script exactly what it is we're adding and in what amounts. You could easily say ITEM=i_platemail_chest, or something like that, without the mysterious { } sections, but the reason templates are interesting is because they can vary greatly. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;{ random_food 1 0 3}&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the item you will be creating. As we can see from our weighted random selector lesson, 1 out of 4 times, it will be random_food, and 3 out of 4 times, it will be zero. If an ITEM is zero, nothing will be created this time. Basically this is saying &amp;quot;There will be a one in four chance of getting random_food in this container.&amp;quot; What is random_food you ask? Well, it happens to be another TEMPLATE, defined in spheretemplate.scp, I believe. &lt;br /&gt;
&lt;br /&gt;
{1 3} This is the amount of the item that will be created. You should recognize this as a ranged random selector. This tells SPHERE to put between 1 and 3 of this item into the container. Of course, if the item is zero as selected above, this has no effect since one nothing and three nothings are still nothing. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So basically, that is a template script. You then fill it with as many items as you want. You may also notice the following construction: &lt;br /&gt;
&lt;br /&gt;
ITEM=i_sword_long,R11 &lt;br /&gt;
&lt;br /&gt;
This is a shorthand way of writing this: &lt;br /&gt;
&lt;br /&gt;
ITEM={ i_sword_long 1 0 10 } &lt;br /&gt;
&lt;br /&gt;
R11 means &amp;quot;one out of 11 chance of finding this item&amp;quot;. And you can add an amount selector to the end of that as well, which makes it look long and scary: &lt;br /&gt;
&lt;br /&gt;
ITEM=i_sword_long,R11,{4 5} &lt;br /&gt;
&lt;br /&gt;
But why would you want 4 or 5 long swords in one item? That would be bizzare.  :) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And that's about it for templates. Congratulations, you're finished with chapter 1. Now you should be able to understand the examples to follow on the next section. You may also have some questions which are addressed in the common questions area. If you have a question which is not addressed there, perhaps it is too advanced of a topic for chapter 1. I assure you almost every aspect of SPHERE scripting will be covered in later chapters. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''(A template example by Belgar)''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE tm_necromancer]&amp;lt;br /&amp;gt;&lt;br /&gt;
CONTAINER=i_bag&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_scroll&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_scroll&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_reagent, {5 12}&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_reagent, {5 12}&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM=random_necro_reagent, {5 12}&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
Or, um. Well I guess there really isn't another way to say &amp;quot;Examples&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This shall be my attempt to create the most basic new items available. You will see things in these examples that are NOT mentioned in the tutorials. The major factor will be ON=@Create, which is the primary topic of Chapter 2. Just know for now that things you can change in game (color, etc) must go under ON=@Create.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example 1''': A Red Sword&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[ITEMDEF i_sword_red]&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=i_sword_viking&amp;lt;br /&amp;gt;&lt;br /&gt;
TYPE=t_weapon_sword&amp;lt;br /&amp;gt;&lt;br /&gt;
NAME=The Red Sword&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Weapons&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=New Swords&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Red Sword&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ON=@Create&lt;br /&gt;
:COLOR=colors_red // This is a comment. Comments are ignored by SPHERE.&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait, what is this weird &amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;//&amp;lt;/font&amp;gt; thing we've got going here? That's called a comment. It's completely ignored by SPHERE, so you can write whatever you want to the end of the line after //. You cannot have multi-line comments in SPHERE unless you use a new //, so don't even try it. SPHERE will give funky errors and then you'll have fun finding them. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example 2''': A blue ettin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[CHARDEF c_ettin_blue]&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=02 // You could just as easily use c_ettin here.&amp;lt;br /&amp;gt;&lt;br /&gt;
NAME=My Blue Ettin&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
ON=@Create&amp;lt;br /&amp;gt;&lt;br /&gt;
:COLOR=02 // This is a dark blue color. It's often used for Counselor robes. Remember it.&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example 3''': A template from the file, since I'm too lazy to write one myself&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;font color=&amp;quot;darkblue&amp;quot;&amp;gt;[TEMPLATE 101521]&amp;lt;br /&amp;gt;&lt;br /&gt;
DEFNAME=goodie_meager_1&amp;lt;br /&amp;gt;&lt;br /&gt;
CATEGORY=Item Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
SUBSECTION=Loot Templates&amp;lt;br /&amp;gt;&lt;br /&gt;
DESCRIPTION=Meager Goodie 1&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ meager_gold_pile 1 backpack_meager 1 pouch_meager 1 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_boots 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_gorget 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_staff 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ random_necklace 1 0 4 }&amp;lt;br /&amp;gt;&lt;br /&gt;
ITEM={ i_cape 1 0 9 }&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;COLOR=colors_all&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may notice something new here (especially since I highlighted it in red), and yes, it is legal. Any lines between ITEM= lines will affect the previously created item. The COLOR= line here affects the ITEM created by the line&lt;br /&gt;
&lt;br /&gt;
ITEM={ i_cape 1 0 9 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Remember, the best way to learn this type of scripts is to read the scripts provided for you in files like sphereitem_colorarm.scp and sphereitem_beers.scp.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&amp;lt;math&amp;gt;Formel hier einfügen&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=977</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=977"/>
				<updated>2012-02-02T19:25:43Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by Culuz4lmbe (Talk) to last version by MrSugarCube&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main_Page}}&lt;br /&gt;
&lt;br /&gt;
Welcome to the retake of Taran's famous &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot; and information. His tutorial was made for Sphere 55i, but now that Sphere 56b is about to be released we have decided to rewrite his tutorials and update the information to reflect the latest changes and additions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where should I start?'''&lt;br /&gt;
&lt;br /&gt;
If you want to learn to script for Sphere 56b you should start by first reading the [[#Setting Up Sphere|Setting Up Sphere]] section. It will teach you how to set up a basic empty world to start your path. After that you should try reading the [[#Tutorials|Tutorials]], go slow, don't try to go through everything in one day as it takes time to read and fully understand everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I learned how to script! And now?'''&lt;br /&gt;
&lt;br /&gt;
If you have finished the 10 chapters then we encourage you to read the tutortials and other articles below. They may not be as important as the others but they are still quite useful and contain lots of useful information. Try making your own scripts and share with others at the [http://www.sphereserver.net/index.php SphereServer Forums]. You can also ask for help if you can't resolve something by yourself. Remember to use the [[#Reference Compendium|Reference Compendium]] below as it is really useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I want to contribute!'''&lt;br /&gt;
&lt;br /&gt;
Maintaining the information on this site involves a huge amount of work and not many of us have the time to do it. If you wish to help out then please feel free to do so! All you need to do to get started is [[Special:UserLogin|create an account]] if you haven't done so already. You can then edit any page by using the &amp;quot;Edit&amp;quot; link in the rop right corner. Before you go do this, you may want to start by reading the [[Contribution Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Special thanks to:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], for helping to add content.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], for writing the Sphere Reference Project, and [[WhoIsWho|Mordaunt]] for converting it to .chm format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], for writing the Sphere 56 Tracking Changes in Sphereserver.net&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], for writing the original and now famous Sphere Scripting for Dummies tutorials, and [[WhoIsWho|MrSugarCube]] for bringing it up-to-date directly from source.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] for continuing to develop Sphere into a powerful and very customizable Ultima Online emulator.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], for providing hosting for the original SphereWiki, and [[WhoIsWho|Torfo]] for providing the current hosting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting up Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere]]&lt;br /&gt;
* [[Installing Sphere]]&lt;br /&gt;
* [[Configuring Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Here are the chapters of Taran's original compendium, updated for Sphere56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1]] ''(Numbers, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2]] ''(Sphere files explained)''&lt;br /&gt;
* [[Chapter 3]] ''(Scripting NPC's and items, Cool commands)''&lt;br /&gt;
* [[Chapter 4]] ''(Objects, operators, speech)''&lt;br /&gt;
* [[Chapter 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7]] ''(Loops and powerful functions)''&lt;br /&gt;
* [[Chapter 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10]] ''(String Handling)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to these there are some more advanced tutorials that have been contributed by other members. Once you have read the above 10 tutorials you may wish to read these to learn more:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Common Mistakes Explained]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference Compendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Articles==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Official SphereServer Website]&lt;br /&gt;
* [http://prerelease.sphereserver.net/ Official Sphere 56b Downloads]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;br /&gt;
[[de:Main Page/de]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=954</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=954"/>
				<updated>2011-12-29T11:16:00Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by Jamxq4upbe (Talk) to last version by MrSugarCube&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main_Page}}&lt;br /&gt;
&lt;br /&gt;
Welcome to the retake of Taran's famous &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot; and information. His tutorial was made for Sphere 55i, but now that Sphere 56b is about to be released we have decided to rewrite his tutorials and update the information to reflect the latest changes and additions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where should I start?'''&lt;br /&gt;
&lt;br /&gt;
If you want to learn to script for Sphere 56b you should start by first reading the [[#Setting Up Sphere|Setting Up Sphere]] section. It will teach you how to set up a basic empty world to start your path. After that you should try reading the [[#Tutorials|Tutorials]], go slow, don't try to go through everything in one day as it takes time to read and fully understand everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I learned how to script! And now?'''&lt;br /&gt;
&lt;br /&gt;
If you have finished the 10 chapters then we encourage you to read the tutortials and other articles below. They may not be as important as the others but they are still quite useful and contain lots of useful information. Try making your own scripts and share with others at the [http://www.sphereserver.net/index.php SphereServer Forums]. You can also ask for help if you can't resolve something by yourself. Remember to use the [[#Reference Compendium|Reference Compendium]] below as it is really useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I want to contribute!'''&lt;br /&gt;
&lt;br /&gt;
Maintaining the information on this site involves a huge amount of work and not many of us have the time to do it. If you wish to help out then please feel free to do so! All you need to do to get started is [[Special:UserLogin|create an account]] if you haven't done so already. You can then edit any page by using the &amp;quot;Edit&amp;quot; link in the rop right corner. Before you go do this, you may want to start by reading the [[Contribution Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Special thanks to:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], for helping to add content.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], for writing the Sphere Reference Project, and [[WhoIsWho|Mordaunt]] for converting it to .chm format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], for writing the Sphere 56 Tracking Changes in Sphereserver.net&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], for writing the original and now famous Sphere Scripting for Dummies tutorials, and [[WhoIsWho|MrSugarCube]] for bringing it up-to-date directly from source.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] for continuing to develop Sphere into a powerful and very customizable Ultima Online emulator.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], for providing hosting for the original SphereWiki, and [[WhoIsWho|Torfo]] for providing the current hosting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting up Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere]]&lt;br /&gt;
* [[Installing Sphere]]&lt;br /&gt;
* [[Configuring Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Here are the chapters of Taran's original compendium, updated for Sphere56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1]] ''(Numbers, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2]] ''(Sphere files explained)''&lt;br /&gt;
* [[Chapter 3]] ''(Scripting NPC's and items, Cool commands)''&lt;br /&gt;
* [[Chapter 4]] ''(Objects, operators, speech)''&lt;br /&gt;
* [[Chapter 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7]] ''(Loops and powerful functions)''&lt;br /&gt;
* [[Chapter 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10]] ''(String Handling)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to these there are some more advanced tutorials that have been contributed by other members. Once you have read the above 10 tutorials you may wish to read these to learn more:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Common Mistakes Explained]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference Compendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Articles==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Official SphereServer Website]&lt;br /&gt;
* [http://prerelease.sphereserver.net/ Official Sphere 56b Downloads]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;br /&gt;
[[de:Main Page/de]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=@Logout&amp;diff=947</id>
		<title>@Logout</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=@Logout&amp;diff=947"/>
				<updated>2011-12-22T22:20:11Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by Chruse Arroyo (Talk) to last version by MrSugarCube&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
This trigger fires when a player logs out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fires on:&lt;br /&gt;
* [[Characters#Players|Players]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
The following object references are explicitly available for this trigger:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[I]] || The [[Characters#Players|player]] who logged out.&lt;br /&gt;
|-&lt;br /&gt;
| [[SRC]] || The [[Characters#Players|player]] who logged out.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Arguments==&lt;br /&gt;
The following arguments are set for this trigger. If an argument is marked as &amp;quot;In&amp;quot; then a value will be passed in to the trigger, if an argument is marked as &amp;quot;Out&amp;quot; then it can be set to a value to affect Sphere's behaviour:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Argument''' || '''In/Out''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| ARGN1 || IO || The length of time that the character will linger in the world, in tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| ARGN2 || IO || If non-zero, the character will instantly log out.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Return Values==&lt;br /&gt;
The following return values are explicitly defined for this trigger:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''No return values are handled by this trigger.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Triggers]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Es:AREADEF&amp;diff=946</id>
		<title>Es:AREADEF</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Es:AREADEF&amp;diff=946"/>
				<updated>2011-12-22T22:20:05Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by Chruse Arroyo (Talk) to last version by Davidcrma&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|AREADEF}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
Las Areas en el mundo, como las dungeons (Cuevas) o las ciudades están definidas por rectangulos. Las regiones están compuestas por una o más rectangulos en en el mapa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La sintaxis básica para definir una región es la siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
[AREADEF ''nombre por defecto'']&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT=''izquierda, arriba, derecha, abajo, mapa''&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT=''izquierda, arriba, derecha, abajo, mapa''&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT='''izquierda, arriba, derecha, abajo, mapa''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Propiedades==&lt;br /&gt;
Sin definir la región las siguiente propiedades están también disponbiles para el comportamiento del area:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ANNOUNCE]] || Leer y Escribir || Obtiene o Configura si un mensaje debe aparecer al salir o entrar en la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[ARENA]] || Leer y Escribir || Obtiene o Cofigura si la zona es tratada como una arena.&lt;br /&gt;
|-&lt;br /&gt;
| [[BUILDABLE]] || Leer y Escribir || Obtiene o Configura si los jugadores pueden construir en la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVENTS (Property)|EVENTS]] ''tiporegion_nombrepordefecto'' || Escribir || Añade un evento a una zona&lt;br /&gt;
|-&lt;br /&gt;
| [[FLAGS]] || Leer y Escribir || Obtiene o Configura los atributos de la zona-&lt;br /&gt;
|-&lt;br /&gt;
| [[GATE]] || Leer y Escribir || Obtiene o Configura si el Hechizo Gate Travel (Invocar Portal) está permitido.&lt;br /&gt;
|-&lt;br /&gt;
| [[GROUP]] || Leer y Escribir || Obtiene o Configura el nombre de la Región mayor en la que está incluida la zona&lt;br /&gt;
|-&lt;br /&gt;
| [[GUARDED]] || Leer y Escribir || Obtiene o Configura si los guardias deben estar en la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAGIC]] || Leer y Escribir || Obtiene o Configura si existe un bloqueo de la magia en la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[MARK]] || Leer y Escribir || Obtiene o Configura si el hechizo Mark (Marcar runa) está permitido en la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAME]] || Leer y Escribir || Obtiene o Configura el nombre de la región.&lt;br /&gt;
|-&lt;br /&gt;
| [[NOBUILD]] || Leer y Escribir || Obtiene o Configura si está prohibido construir en la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[NODECAY]] || Leer y Escribir || Obtiene o Configura si los objetos no tienen decay (El objeto desaparece tras un tiempo) en la zona&lt;br /&gt;
|-&lt;br /&gt;
| [[NOPVP]] || Leer y Escribir || Obtiene o Configura si el PvP está permitido en la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[P]] || Leer y Escribir || Obtiene o Configura la posición de la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECALL]] || Leer y Escribir || Obtiene o Configura si el hechizo Recall (Volver a un lugar mediante runa) está permitido en la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECALLIN]] || Leer y Escribir || Obtiene o Configura si el hechizo Recall (Volver a un lugar mediante runa) está permitido para entrar en la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECALLOUT]] || Leer y Escribir || Obtiene o Configura si el hechizo Recall (Volver a un lugar mediante runa) está permitido para salir la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECT]] ''izquierda, arriba, derecha, abajo, mapa'' || Escribir || Añade un rectángulo del mapa a la zona.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESOURCES]] ''tiporegion_nombrepordefecto'' || Escribir || Añade un evento de región a la región.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAFE]] || Leer y Escribir || Obtiene o Configura si la zona es segura.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAG]]''.name'' || Leer y Escribir || Obtiene o Configura el Valor del TAG&lt;br /&gt;
|-&lt;br /&gt;
| [[UNDERGROUND]] || Leer y Escribir || Obtiene o Configura si se supone que la zona está bajo Tierra.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ejemplo==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// La región del mundo del paquete de scripts.&lt;br /&gt;
//&lt;br /&gt;
[AREADEF a_world]&lt;br /&gt;
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass&lt;br /&gt;
NAME=Felucca&lt;br /&gt;
GROUP=ALLMAP&lt;br /&gt;
P=1323,1624,55,0&lt;br /&gt;
RECT=0,0,7168,4096,0&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Castillo de Lord British's del paquete de scripts.&lt;br /&gt;
//&lt;br /&gt;
[AREADEF a_lord_britishs_castle_1]&lt;br /&gt;
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass&lt;br /&gt;
NAME=Lord British's Castle&lt;br /&gt;
GROUP=Britain&lt;br /&gt;
FLAGS=0648e&lt;br /&gt;
P=1392,1625,30,0&lt;br /&gt;
RECT=1294,1679,1411,1697,0&lt;br /&gt;
RECT=1295,1559,1313,1577,0&lt;br /&gt;
RECT=1392,1559,1410,1577,0&lt;br /&gt;
RECT=1302,1577,1410,1680,0&lt;br /&gt;
RECT=1313,1563,1392,1577,0&lt;br /&gt;
EVENTS=r_brit_castle&lt;br /&gt;
TAG.GUARDOWNER=Lord British's Personal&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Compendio de Referencias]]&lt;br /&gt;
[[Category: Definiciones]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=936</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=936"/>
				<updated>2011-12-16T13:19:59Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by Duax2ogrwo (Talk) to last version by MrSugarCube&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main_Page}}&lt;br /&gt;
&lt;br /&gt;
Welcome to the retake of Taran's famous &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot; and information. His tutorial was made for Sphere 55i, but now that Sphere 56b is about to be released we have decided to rewrite his tutorials and update the information to reflect the latest changes and additions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where should I start?'''&lt;br /&gt;
&lt;br /&gt;
If you want to learn to script for Sphere 56b you should start by first reading the [[#Setting Up Sphere|Setting Up Sphere]] section. It will teach you how to set up a basic empty world to start your path. After that you should try reading the [[#Tutorials|Tutorials]], go slow, don't try to go through everything in one day as it takes time to read and fully understand everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I learned how to script! And now?'''&lt;br /&gt;
&lt;br /&gt;
If you have finished the 10 chapters then we encourage you to read the tutortials and other articles below. They may not be as important as the others but they are still quite useful and contain lots of useful information. Try making your own scripts and share with others at the [http://www.sphereserver.net/index.php SphereServer Forums]. You can also ask for help if you can't resolve something by yourself. Remember to use the [[#Reference Compendium|Reference Compendium]] below as it is really useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I want to contribute!'''&lt;br /&gt;
&lt;br /&gt;
Maintaining the information on this site involves a huge amount of work and not many of us have the time to do it. If you wish to help out then please feel free to do so! All you need to do to get started is [[Special:UserLogin|create an account]] if you haven't done so already. You can then edit any page by using the &amp;quot;Edit&amp;quot; link in the rop right corner. Before you go do this, you may want to start by reading the [[Contribution Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Special thanks to:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], for helping to add content.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], for writing the Sphere Reference Project, and [[WhoIsWho|Mordaunt]] for converting it to .chm format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], for writing the Sphere 56 Tracking Changes in Sphereserver.net&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], for writing the original and now famous Sphere Scripting for Dummies tutorials, and [[WhoIsWho|MrSugarCube]] for bringing it up-to-date directly from source.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] for continuing to develop Sphere into a powerful and very customizable Ultima Online emulator.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], for providing hosting for the original SphereWiki, and [[WhoIsWho|Torfo]] for providing the current hosting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting up Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere]]&lt;br /&gt;
* [[Installing Sphere]]&lt;br /&gt;
* [[Configuring Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Here are the chapters of Taran's original compendium, updated for Sphere56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1]] ''(Numbers, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2]] ''(Sphere files explained)''&lt;br /&gt;
* [[Chapter 3]] ''(Scripting NPC's and items, Cool commands)''&lt;br /&gt;
* [[Chapter 4]] ''(Objects, operators, speech)''&lt;br /&gt;
* [[Chapter 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7]] ''(Loops and powerful functions)''&lt;br /&gt;
* [[Chapter 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10]] ''(String Handling)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to these there are some more advanced tutorials that have been contributed by other members. Once you have read the above 10 tutorials you may wish to read these to learn more:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Common Mistakes Explained]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference Compendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Articles==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Official SphereServer Website]&lt;br /&gt;
* [http://prerelease.sphereserver.net/ Official Sphere 56b Downloads]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;br /&gt;
[[de:Main Page/de]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=933</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=933"/>
				<updated>2011-12-14T07:32:51Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by Jamqweb9ba (Talk) to last version by MrSugarCube&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main_Page}}&lt;br /&gt;
&lt;br /&gt;
Welcome to the retake of Taran's famous &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot; and information. His tutorial was made for Sphere 55i, but now that Sphere 56b is about to be released we have decided to rewrite his tutorials and update the information to reflect the latest changes and additions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where should I start?'''&lt;br /&gt;
&lt;br /&gt;
If you want to learn to script for Sphere 56b you should start by first reading the [[#Setting Up Sphere|Setting Up Sphere]] section. It will teach you how to set up a basic empty world to start your path. After that you should try reading the [[#Tutorials|Tutorials]], go slow, don't try to go through everything in one day as it takes time to read and fully understand everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I learned how to script! And now?'''&lt;br /&gt;
&lt;br /&gt;
If you have finished the 10 chapters then we encourage you to read the tutortials and other articles below. They may not be as important as the others but they are still quite useful and contain lots of useful information. Try making your own scripts and share with others at the [http://www.sphereserver.net/index.php SphereServer Forums]. You can also ask for help if you can't resolve something by yourself. Remember to use the [[#Reference Compendium|Reference Compendium]] below as it is really useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I want to contribute!'''&lt;br /&gt;
&lt;br /&gt;
Maintaining the information on this site involves a huge amount of work and not many of us have the time to do it. If you wish to help out then please feel free to do so! All you need to do to get started is [[Special:UserLogin|create an account]] if you haven't done so already. You can then edit any page by using the &amp;quot;Edit&amp;quot; link in the rop right corner. Before you go do this, you may want to start by reading the [[Contribution Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Special thanks to:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], for helping to add content.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], for writing the Sphere Reference Project, and [[WhoIsWho|Mordaunt]] for converting it to .chm format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], for writing the Sphere 56 Tracking Changes in Sphereserver.net&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], for writing the original and now famous Sphere Scripting for Dummies tutorials, and [[WhoIsWho|MrSugarCube]] for bringing it up-to-date directly from source.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] for continuing to develop Sphere into a powerful and very customizable Ultima Online emulator.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], for providing hosting for the original SphereWiki, and [[WhoIsWho|Torfo]] for providing the current hosting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting up Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere]]&lt;br /&gt;
* [[Installing Sphere]]&lt;br /&gt;
* [[Configuring Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Here are the chapters of Taran's original compendium, updated for Sphere56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1]] ''(Numbers, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2]] ''(Sphere files explained)''&lt;br /&gt;
* [[Chapter 3]] ''(Scripting NPC's and items, Cool commands)''&lt;br /&gt;
* [[Chapter 4]] ''(Objects, operators, speech)''&lt;br /&gt;
* [[Chapter 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7]] ''(Loops and powerful functions)''&lt;br /&gt;
* [[Chapter 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10]] ''(String Handling)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to these there are some more advanced tutorials that have been contributed by other members. Once you have read the above 10 tutorials you may wish to read these to learn more:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Common Mistakes Explained]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference Compendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Articles==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Official SphereServer Website]&lt;br /&gt;
* [http://prerelease.sphereserver.net/ Official Sphere 56b Downloads]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;br /&gt;
[[de:Main Page/de]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Help:Contents&amp;diff=926</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Help:Contents&amp;diff=926"/>
				<updated>2011-11-29T11:23:00Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by Cheaptara (Talk) to last version by MrSugarCube&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welcome==&lt;br /&gt;
Hello and welcome to the unofficial SphereServer Wiki! You are likely at this page because you are new to the wiki! This wiki is an in-depth guide and documentation to the SphereServer scripting language. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Where to Go From Here==&lt;br /&gt;
When you first view the wiki page, you will be at the [[Main Page]]. This page is the main portal which links to all of the main articles and sections! If you look at the Main Page, you will notice many different things. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the top of the page is a basic introduction and welcome message and a list of credits to different people involved in the writing of this wiki and Sphereserver. This part of the page also contains very important information on how to become a writer for this wiki! Be sure to check it out if you would like to join the writing team. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next on the page is a table of contents, which displays all of the main sections on the [[Main Page]]. You can use this table to quickly navigate to the section of the page you wish to view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the table of contents comes the real important stuff! The first section after the table of contents is the [[Main Page#Setting up Sphere|Setting up Sphere]] section! This will be the first place a new user will want to look! This section contains three articles which detail how to get Sphere, how to install it, and how to configure it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The [[Main Page#Tutorials|Tutorials]] section of the page – the next section on the page – is the place to learn to script. Beginning at the basics and ending at some of the more advanced topics of the Sphere scripting engine, these in-depth tutorials will get you on your feet and perfecting your shard in no time! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the tutorials comes the [[Main Page#Reference Compendium|Reference Compendium]], which is a very important section for both new and old Sphere script-writers. Each page of the Reference Compendium contains a very detailed list of functions and properties that can be used in various parts of SphereScript. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Main Page#Other Articles|Other Articles]] is a list of all other articles on the wiki which don't fit into any of the other categories. Many of these articles are theories and ideas about various parts of a shard, or of scripting itself. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The final section on the page, [[Main Page#External Links|External Links]], contains a brief list of important SphereServer-related links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Where Can I Get More Help?==&lt;br /&gt;
You can visit the official SphereServer forums: [http://www.sphereserver.net/ http://www.sphereserver.net]&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Client_Changes&amp;diff=925</id>
		<title>Client Changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Client_Changes&amp;diff=925"/>
				<updated>2011-11-29T11:22:55Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by Cheaptara (Talk) to last version by Sirius&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Client_Changes}}&lt;br /&gt;
&lt;br /&gt;
==2D/3D Client Updates==&lt;br /&gt;
'''Client Patch 5.0.8.1'''&amp;lt;br /&amp;gt;&lt;br /&gt;
On Monday, February 12, 2007 at 1:00PM PST (January 31 9:00PM GMT), we will deploy Client Patch 5.0.8.1 &lt;br /&gt;
* Added live event content&lt;br /&gt;
* Winter is ending, and the spring rains have begun!  The snow has melted and should no longer display on the ground, trees, or radar.&lt;br /&gt;
* Areas which have had falling snow will have falling rain instead&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client Patch 5.0.8.2'''&amp;lt;br /&amp;gt;&lt;br /&gt;
On Tuesday, February 13, 2007 at 5:00PM PST (February 14 1:00AM GMT), we will deploy Client Patch 5.0.8.2 &lt;br /&gt;
* Fixed display issue with Rose in the 3d client&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client Patch 5.0.8.3'''&amp;lt;br /&amp;gt;&lt;br /&gt;
On Tuesday, March 20, 2007 at 5:00PM PDT (March 21 1:00AM GMT), we will deploy Client Patch 5.0.8.3 &lt;br /&gt;
* Added Event Content&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client Patch 5.0.8.4'''&amp;lt;br /&amp;gt;&lt;br /&gt;
On Tuesday, March 20, 2007 at 11:00PM PDT (March 21 7:00AM GMT), we will deploy Client Patch 5.0.8.4 &lt;br /&gt;
* Fixed issue with Heartwood not displaying&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client Patch 5.0.9.0'''&amp;lt;br /&amp;gt;&lt;br /&gt;
On Friday, March 23, 2007 at 12:00PM PDT (March 23 8:00PM GMT), we will deploy Client Patch 5.0.9.0. This is a MANDATORY patch. &lt;br /&gt;
* Fixed a cliloc error with stockings&lt;br /&gt;
* Fixed a cliloc error displayed when trying to log in with a blocked account&lt;br /&gt;
* Additional technical changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client Patch 6.0.1.1'''&amp;lt;br /&amp;gt;&lt;br /&gt;
02 May 2007 20:09:38 EST&lt;br /&gt;
We have deployed client patch 6.0.1.1 - this client patch will require a server publish for all the fixes to be visible. &lt;br /&gt;
* Fixed many world art issues&lt;br /&gt;
* Fixed entrance blocking issue with the Shadowlord base&lt;br /&gt;
* Potential fix for Win98 and ME users' &amp;quot;out of memory&amp;quot; issue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client Patch 6.0.1.2'''&amp;lt;br /&amp;gt;&lt;br /&gt;
08 May 2007 15:35:36 EST&lt;br /&gt;
At 12:00PM PDT (7PM GMT) on Tuesday, May 8, we will be deploying client patch 6.0.1.2. &lt;br /&gt;
* Updated clilocs (NOTE!  Some ninjitsu spells will appear to have changed requirements- the actual changes will not occur until the server is updated.)&lt;br /&gt;
* Many map and world art fixes&lt;br /&gt;
* Further Windows 98 optimizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client Patch 6.0.1.3'''&amp;lt;br /&amp;gt;&lt;br /&gt;
17 May 2007 20:14:10 EST&lt;br /&gt;
At 4:30PM PDT (11:30PM GMT) on Thursday May 17th we will be deploying client patch 6.0.1.3: &lt;br /&gt;
* Updated clilocs&lt;br /&gt;
* Many map and world art fixes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client Patch 6.0.1.5'''&amp;lt;br /&amp;gt;&lt;br /&gt;
22 Jun 2007 19:45:05 EST&lt;br /&gt;
The following 2D Client patch (6.0.1.5) will be deployed at 4:00PM PDT (11:00PM GMT) on Friday, June 22: &lt;br /&gt;
* Added live event content&lt;br /&gt;
* Fixed bug with certain gates in custom houses that became impassable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client Patch 6.0.1.6'''&amp;lt;br /&amp;gt;&lt;br /&gt;
27 Jun 2007 18:14:40 EST&lt;br /&gt;
Beginning between 6:00PM and 8:00PM PDT on June 27 (June 28 1:00AM-3:00AM GMT) the 2D client will be patched to version 6.0.1.6, which include the following changes: &lt;br /&gt;
* Updated clilocs&lt;br /&gt;
* Added live event content&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client Patch 6.0.1.8'''&amp;lt;br /&amp;gt;&lt;br /&gt;
23 Jul 2007 15:36:36 EST&lt;br /&gt;
At 11:30AM PDT (6:30PM GMT) on Monday, July 23, 2D client patch vers 6.0.1.8 will be deployed. This patch contains the following changes: &lt;br /&gt;
* Version number change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client vers. 6.0.1.9'''&amp;lt;br /&amp;gt;&lt;br /&gt;
26 Jul 2007 18:22:28 EST&lt;br /&gt;
At 2:00PM PDT (9:00PM GMT) on Thursday, July 26, 2D client version number 6.0.1.9 was deployed: &lt;br /&gt;
* Polished Destard, Deceit, Paroxymus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client vers. 6.0.1.10'''&amp;lt;br /&amp;gt;&lt;br /&gt;
06 Aug 2007 18:45:49 EST&lt;br /&gt;
At 2:30PM PDT (9:30PM GMT) on Monday, August 6, the 2D client will be updated to version 6.0.1.10. Notes after the jump: &lt;br /&gt;
* Map file changes for compatibility&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client vers. 6.0.2.0'''&amp;lt;br /&amp;gt;&lt;br /&gt;
28 Aug 2007 18:45:55 EST&lt;br /&gt;
At 2:30PM PDT (9:30PM GMT) on Tuesday, August 28, the 2D client will be updated to version 6.0.2.0 Notes after the jump: &lt;br /&gt;
* Clilocs have been updated&lt;br /&gt;
* Unused tiles in some caves have been fixed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client vers. 6.0.3.0'''&amp;lt;br /&amp;gt;&lt;br /&gt;
20 Sep 2007 17:32:12 EST&lt;br /&gt;
At 1pm PDT (8PM GMT) on Thursday, Sept. 20, the 2D client will be updated to version 6.0.3.0. Notes after the jump: &lt;br /&gt;
* Added art for new items&lt;br /&gt;
* updated clilocs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client vers. 6.0.3.1'''&amp;lt;br /&amp;gt;&lt;br /&gt;
25 Sep 2007 14:32:39 EST&lt;br /&gt;
At 10:30AM PDT, the 2D client will be updated to version 6.0.3.1, which contains the following: &lt;br /&gt;
* Fixed unused tiles in front of dungeons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client vers. 6.0.4.0'''&amp;lt;br /&amp;gt;&lt;br /&gt;
18 Oct 2007 16:16:36 EST&lt;br /&gt;
At 1:00PM PDT (8:00PM GMT) on Thursday, October 18, the 2D client will be updated to version 6.0.4.0 Notes after the jump: &lt;br /&gt;
* Updated Magincia tiles to be vulnerable to the rage of Daemons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client vers. 6.0.5.0'''&amp;lt;br /&amp;gt;&lt;br /&gt;
20 Nov 2007 18:13:42 EST&lt;br /&gt;
At 3:15PM PST (11:15PM GMT) on Tuesday, November 20, the 2D client will be updated to version 6.0.5.0 Notes after the jump: &lt;br /&gt;
* Updated clilocs&lt;br /&gt;
* Added decoration in many areas, including the Doom Gauntlet and Serpent's Hold&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client vers. 6.0.6.0'''&amp;lt;br /&amp;gt;&lt;br /&gt;
07 Feb 2008 17:30:51 EST&lt;br /&gt;
At 5:30PM EST (10:30PM GMT) the 2D client will be updated to version 6.0.6.0. Notes after the jump: &lt;br /&gt;
* Added live event content&lt;br /&gt;
* Added worldbuilding updates to New Haven moongate&lt;br /&gt;
* Updated clilocs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client vers. 6.0.6.1'''&amp;lt;br /&amp;gt;&lt;br /&gt;
19 Feb 2008 13:26:35 EST&lt;br /&gt;
At 1:30PM EST (6:30PM GMT) the 2D client will be updated to version 6.0.6.1. Notes after the jump: &lt;br /&gt;
* Fixed an issue that could cause rubberbanding and/or movement lag&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2D Client vers. 6.0.6.2'''&amp;lt;br /&amp;gt;&lt;br /&gt;
20 Mar 2008 15:19:21 EST&lt;br /&gt;
At 4:30PM EDT the 2D client will be updated to version 6.0.6.2. Notes after the jump: &lt;br /&gt;
* Fixed several areas where players might get stuck&lt;br /&gt;
* Fixed a client crash&lt;br /&gt;
* Removed the &amp;quot;2d/3d&amp;quot; client picker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==KR Client Updates==&lt;br /&gt;
'''KR Client Patch 2.47.1.5'''&amp;lt;br /&amp;gt;&lt;br /&gt;
18 Oct 2007 16:48:53 EST&lt;br /&gt;
* Fixed an issue with flying creatures' movement animations&lt;br /&gt;
* Players can now target items on ther hotbars, provided the item is in their backpack or equipped.&lt;br /&gt;
* Using recall in your hot bar will not bring up a cursor if you have something targeted&lt;br /&gt;
* Fixed a crash when mousing over UI&lt;br /&gt;
* Client will timeout and disconnect properly when inactive for 10-15 minutes&lt;br /&gt;
* Now item properties will have each word's first letter capitalized for easier reading&lt;br /&gt;
* Fixed a bug with the theme music when logging in and out multiple times&lt;br /&gt;
* Fixed a crash when exiting the game while customizing a house.&lt;br /&gt;
* Items that are too heavy to pick up should no longer highlight or put up a properties box when moused over.&lt;br /&gt;
* Can't start to move unmovable things anymore (things too far away or too heavy)&lt;br /&gt;
* Item properties windows will now hue the strength requirement line red if you don't meet the strength requirement, just like they do in 2d.&lt;br /&gt;
* Fixed a bug with input being sent incorrectly when the KR window loses focus&lt;br /&gt;
* Players can now sort the shard list by the percent full that each shard is. More populated shards will be at the top. Test center and other language shards appear lower on the list due to other sorting effects that are happening. Also adds highlighting to selectable text on the shard list, in addition to reformatting the layout slightly.&lt;br /&gt;
* Foliage should fade more intelligently as players walk under trees&lt;br /&gt;
* Cursor hand should be silver in Felucca, gold in Trammel&lt;br /&gt;
* Mouse now always points to &amp;quot;west&amp;quot; direction when it is over a window. This &amp;quot;west&amp;quot; direction is in-game &amp;quot;west&amp;quot; direction, not the screen's west direction.&lt;br /&gt;
* Resource targeting macros are not depleting the veins.&lt;br /&gt;
* Fixed a bug where the Help buttons in japanese mode pointed to US CS pages&lt;br /&gt;
* Items should no longer get shuffled around when you cross server lines&lt;br /&gt;
* Players will now no longer have the two party related context menu items in their context menu until they have accepted the invite to join a party.&lt;br /&gt;
* The word &amp;quot;CONTINUE&amp;quot; was being cut off on a button on the release pet confirmation gump. The button label has now been changed to use the word &amp;quot;OKAY&amp;quot; instead.&lt;br /&gt;
* It is now a lot easier to drop things on the ground.&lt;br /&gt;
* Buttons on user waypoint gumps now stay inside their gump when language is set to Japanese.&lt;br /&gt;
* Male's Jester tunic uses the correct art, and the in-game colors should be closer to paper doll's.&lt;br /&gt;
* Fixed issue with system slowness related to the chat window&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KR Client Patch 2.47.1.10'''&amp;lt;br /&amp;gt;&lt;br /&gt;
06 Nov 2007 16:52:36 EST&lt;br /&gt;
* Fixed a bug with moving and looting heavy items from containers and backpacks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KR Client Patch 2.48.0.3'''&amp;lt;br /&amp;gt;&lt;br /&gt;
20 Nov 2007 18:13:22 EST&lt;br /&gt;
New Features: &lt;br /&gt;
* Legacy Art Mode - enable this in Options: User Settings: Graphics, then restart the client to enable&lt;br /&gt;
* Fully Moddable UI        &lt;br /&gt;
* Substantial number of client optimizations - should run much smoother now&lt;br /&gt;
* Improved the guild ui&lt;br /&gt;
* Added legacy container art - enable this in Options: User Settings: Graphics (no restart needed for this one)&lt;br /&gt;
* Fixed a number of windows that weren't updating properly, ncluding party window, pet window, draggable health bars, and more&lt;br /&gt;
* The item properties &amp;quot;blessed&amp;quot; &amp;quot;blessed for playername&amp;quot; and &amp;quot;insured for playername&amp;quot; are now colored blue for increased visibility&lt;br /&gt;
* &amp;quot;Macros&amp;quot; and &amp;quot;Actions&amp;quot; are two separate items on the main menu&lt;br /&gt;
* Improved the layout of the veteran rewards window&lt;br /&gt;
* Improved the animal lore window&lt;br /&gt;
* Polished spellbook window&lt;br /&gt;
* Polished char creation window&lt;br /&gt;
* Improved npc vendor window&lt;br /&gt;
* Empty slots on the paperdoll now have a tooltip telling you what goes in it&lt;br /&gt;
* Removed the &amp;quot;add by ID&amp;quot; option in the friends list (since there's no way to find an ID, it was not usable)&lt;br /&gt;
* Improved the art and functionality of the party window&lt;br /&gt;
* Added a line to specify what the target is in the tooltip for a hotbar slot&lt;br /&gt;
* Chat Improvements: &lt;br /&gt;
** The default chat config now only has one tab with all chat in it.&lt;br /&gt;
** Added a &amp;quot;reset chat to default&amp;quot; option in settings&lt;br /&gt;
** Added /r or /reply command to automatically reply to the last person to send you a /tell&lt;br /&gt;
** /tell now requires a comma after the player name (it will also handle multi-word names)&lt;br /&gt;
** Shift-left clicking on a line of chat will copy it to the clipboard&lt;br /&gt;
** Party, guild, alliance and faction messages will not show as overhead text&lt;br /&gt;
** The chat context menus now has a color selection option for text color, overhead chat color, and chat window background color&lt;br /&gt;
* Map Improvements: &lt;br /&gt;
** Added a settings:interface item to reset map icons to default&lt;br /&gt;
** Added 40 new icons for waypoints&lt;br /&gt;
** Waypoint icons on the map will show sextant coordinates when you mouse over them&lt;br /&gt;
* UI Improvements and Fixes: &lt;br /&gt;
** You can now target a player or creature by clicking the name over their head&lt;br /&gt;
** Added a user settings option to use the mouse wheel for targeting - can choose target friendly or target enemy&lt;br /&gt;
** Added stat hotbar icons - you can drag off icons from the stats window to your hotbar, where it will display the number of your stat.  (mouseover the icon for the name of the stat)&lt;br /&gt;
** Health, mana, and stamina stat icons will change when their value is under 10 - the weight icon will glow when you approach your weight limit&lt;br /&gt;
** Added dual monitor support - the kr window can now be stretched across two monitors&lt;br /&gt;
** Static objects (trees, etc) will now display their name when you click on them&lt;br /&gt;
** If you have your bandages in your hotbar, a timer will count down when you use them, telling you how long it will be until the bandage is applied&lt;br /&gt;
** Fixed a few bugs with tree foliage not fading correctly&lt;br /&gt;
** When you drag a stack of items, the number of items will automatically be selected&lt;br /&gt;
** Skill icons in your hotbar will now show your skill points in their tooltip&lt;br /&gt;
** Made toggle UI, screenshot, toggle circle of transparency, reload ui all configurable keybindings&lt;br /&gt;
** Turn off hotbar page flipping if legacy chat is enabled (use shift 0-9 to change hotbars in legacy mode)&lt;br /&gt;
** Players can now target items on ther hotbars, provided the item is in their backpack or equiped.&lt;br /&gt;
** Added a default targeting for spells, different spells now have a different default target instead of defaulting always to current target.&lt;br /&gt;
** Many macros can now be interrupted by the ESC key&lt;br /&gt;
* General Fixes and Improvements: &lt;br /&gt;
** Added decoration in many areas, including the doom gauntlet and serpent's hold&lt;br /&gt;
** Shortened the hiryu's tail&lt;br /&gt;
** Made giant beetle's beak shorter&lt;br /&gt;
** Made ostards' tails shorter&lt;br /&gt;
** Tweaked and added a number of creature graphics and animations&lt;br /&gt;
** The skills available in Character Creation now match 2d&lt;br /&gt;
** Items behind other items should be easier to select in freeform view&lt;br /&gt;
** Tweaked appearance of trees to make them blend with the background less&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KR Client Patch 2.48.0.7'''&amp;lt;br /&amp;gt;&lt;br /&gt;
21 Nov 2007 17:02:49 EST&lt;br /&gt;
* Fixed problem with client loading in fullscreen mode&lt;br /&gt;
* Fixed issue with no sounds playing&lt;br /&gt;
* Fixed issue with legacy container art not displaying for Armoires&lt;br /&gt;
* Fixed spelling of &amp;quot;Holiday Stocking&amp;quot; legacy container&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KR Client Patch 2.50.0.3'''&amp;lt;br /&amp;gt;&lt;br /&gt;
07 Feb 2008 18:12:35 EST&lt;br /&gt;
* KR: Removed clouds from the daytime display&lt;br /&gt;
* Various localization updates for text&lt;br /&gt;
* Default tab name is now Chat instead of System&lt;br /&gt;
* Fixed hueing in the Paperdoll&lt;br /&gt;
* Treasure maps fixed  &lt;br /&gt;
* KR: Shopkeeper window revamped. Now supports click and holding on + or -&lt;br /&gt;
* Many broken animations fixed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KR Client Patch 2.51.0.3'''&amp;lt;br /&amp;gt;&lt;br /&gt;
20 Mar 2008 15:20:28 EST&lt;br /&gt;
* Fixed a number of stuck areas&lt;br /&gt;
* Fixed various incorrect tiles&lt;br /&gt;
&lt;br /&gt;
[[Category: Articles]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=921</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=921"/>
				<updated>2011-11-24T23:43:59Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by Ryanapfksc (Talk) to last version by MrSugarCube&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main_Page}}&lt;br /&gt;
&lt;br /&gt;
Welcome to the retake of Taran's famous &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot; and information. His tutorial was made for Sphere 55i, but now that Sphere 56b is about to be released we have decided to rewrite his tutorials and update the information to reflect the latest changes and additions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where should I start?'''&lt;br /&gt;
&lt;br /&gt;
If you want to learn to script for Sphere 56b you should start by first reading the [[#Setting Up Sphere|Setting Up Sphere]] section. It will teach you how to set up a basic empty world to start your path. After that you should try reading the [[#Tutorials|Tutorials]], go slow, don't try to go through everything in one day as it takes time to read and fully understand everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I learned how to script! And now?'''&lt;br /&gt;
&lt;br /&gt;
If you have finished the 10 chapters then we encourage you to read the tutortials and other articles below. They may not be as important as the others but they are still quite useful and contain lots of useful information. Try making your own scripts and share with others at the [http://www.sphereserver.net/index.php SphereServer Forums]. You can also ask for help if you can't resolve something by yourself. Remember to use the [[#Reference Compendium|Reference Compendium]] below as it is really useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I want to contribute!'''&lt;br /&gt;
&lt;br /&gt;
Maintaining the information on this site involves a huge amount of work and not many of us have the time to do it. If you wish to help out then please feel free to do so! All you need to do to get started is [[Special:UserLogin|create an account]] if you haven't done so already. You can then edit any page by using the &amp;quot;Edit&amp;quot; link in the rop right corner. Before you go do this, you may want to start by reading the [[Contribution Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Special thanks to:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], for helping to add content.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], for writing the Sphere Reference Project, and [[WhoIsWho|Mordaunt]] for converting it to .chm format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], for writing the Sphere 56 Tracking Changes in Sphereserver.net&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], for writing the original and now famous Sphere Scripting for Dummies tutorials, and [[WhoIsWho|MrSugarCube]] for bringing it up-to-date directly from source.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] for continuing to develop Sphere into a powerful and very customizable Ultima Online emulator.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], for providing hosting for the original SphereWiki, and [[WhoIsWho|Torfo]] for providing the current hosting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting up Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere]]&lt;br /&gt;
* [[Installing Sphere]]&lt;br /&gt;
* [[Configuring Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Here are the chapters of Taran's original compendium, updated for Sphere56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1]] ''(Numbers, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2]] ''(Sphere files explained)''&lt;br /&gt;
* [[Chapter 3]] ''(Scripting NPC's and items, Cool commands)''&lt;br /&gt;
* [[Chapter 4]] ''(Objects, operators, speech)''&lt;br /&gt;
* [[Chapter 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7]] ''(Loops and powerful functions)''&lt;br /&gt;
* [[Chapter 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10]] ''(String Handling)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to these there are some more advanced tutorials that have been contributed by other members. Once you have read the above 10 tutorials you may wish to read these to learn more:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Common Mistakes Explained]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference Compendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Articles==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Official SphereServer Website]&lt;br /&gt;
* [http://prerelease.sphereserver.net/ Official Sphere 56b Downloads]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;br /&gt;
[[de:Main Page/de]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=919</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=919"/>
				<updated>2011-11-05T08:29:21Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Reverted edits by Richzgmjpe (Talk) to last version by Sirius&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main_Page}}&lt;br /&gt;
&lt;br /&gt;
Welcome to the retake of Taran's famous &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot; and information. His tutorial was made for Sphere 55i, but now that Sphere 56b is about to be released we have decided to rewrite his tutorials and update the information to reflect the latest changes and additions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where should I start?'''&lt;br /&gt;
&lt;br /&gt;
If you want to learn to script for Sphere 56b you should start by first reading the [[#Setting Up Sphere|Setting Up Sphere]] section. It will teach you how to set up a basic empty world to start your path. After that you should try reading the [[#Tutorials|Tutorials]], go slow, don't try to go through everything in one day as it takes time to read and fully understand everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I learned how to script! And now?'''&lt;br /&gt;
&lt;br /&gt;
If you have finished the 10 chapters then we encourage you to read the tutortials and other articles below. They may not be as important as the others but they are still quite useful and contain lots of useful information. Try making your own scripts and share with others at the [http://www.sphereserver.net/index.php SphereServer Forums]. You can also ask for help if you can't resolve something by yourself. Remember to use the [[#Reference Compendium|Reference Compendium]] below as it is really useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I want to contribute!'''&lt;br /&gt;
&lt;br /&gt;
Maintaining the information on this site involves a huge amount of work and not many of us have the time to do it. If you wish to help out then please feel free to do so! All you need to do to get started is [[Special:UserLogin|create an account]] if you haven't done so already. You can then edit any page by using the &amp;quot;Edit&amp;quot; link in the rop right corner. Before you go do this, you may want to start by reading the [[Contribution Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Special thanks to:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], for helping to add content.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], for writing the Sphere Reference Project, and [[WhoIsWho|Mordaunt]] for converting it to .chm format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], for writing the Sphere 56 Tracking Changes in Sphereserver.net&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], for writing the original and now famous Sphere Scripting for Dummies tutorials, and [[WhoIsWho|MrSugarCube]] for bringing it up-to-date directly from source.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] for continuing to develop Sphere into a powerful and very customizable Ultima Online emulator.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], for providing hosting for the original SphereWiki, and [[WhoIsWho|Torfo]] for providing the current hosting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting up Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere]]&lt;br /&gt;
* [[Installing Sphere]]&lt;br /&gt;
* [[Configuring Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Here are the chapters of Taran's original compendium, updated for Sphere56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1]] ''(Numbers, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2]] ''(Sphere files explained)''&lt;br /&gt;
* [[Chapter 3]] ''(Scripting NPC's and items, Cool commands)''&lt;br /&gt;
* [[Chapter 4]] ''(Objects, operators, speech)''&lt;br /&gt;
* [[Chapter 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7]] ''(Loops and powerful functions)''&lt;br /&gt;
* [[Chapter 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10]] ''(String Handling)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to these there are some more advanced tutorials that have been contributed by other members. Once you have read the above 10 tutorials you may wish to read these to learn more:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Common Mistakes Explained]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference Compendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Articles==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Official SphereServer Website]&lt;br /&gt;
* [http://prerelease.sphereserver.net/ Official Sphere 56b Downloads]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;br /&gt;
[[de:Main Page/de]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Override_TAGs&amp;diff=863</id>
		<title>Override TAGs</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Override_TAGs&amp;diff=863"/>
				<updated>2011-09-14T23:52:52Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Clarified behaviour of TAG.OVERRIDE.REGEN and TAG.OVERRIDE.REGENVAL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Override_TAGs}}&lt;br /&gt;
&lt;br /&gt;
==Override Common Data==&lt;br /&gt;
Ever wondered why you can't change for example 'TDATA' values on a per-item basis? Or some default values from Sphere.ini? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason is simple: The majority of items, characters and situation will not need individual values there and are working fine with the default ones (either hardcoded or set in the INI or the *DEF sections), so it simply would be a waste of memory to store them again on each game object. Therefore for example a single crossbow in the world reads what items it needs as ammunition not from it's &amp;quot;WORLDITEM&amp;quot; data object, but from it's ITEMDEF (the TDATA property). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alas, as time goes by for some stuff it showed reasonable to allow overriding the default values for a single item, character or even region. Nevertheless it still would be a waste of resources to give all crossbows an &amp;quot;ammunition&amp;quot; property what on almost all of them will read: &amp;quot;default&amp;quot;. So the Sphere developers decided to store the respective individual changes in TAGs: If the TAG exists it will be used, if not, the default is used. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Common to most overrides is the syntax of the TAG's name: '''TAG.OVERRIDE.*''' - where &amp;quot;'''*'''&amp;quot; denotes the name of the respective tag. But there are also some others what were named before this naming scheme was established. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Item-based Override TAGs==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| '''TAG.ALWAYSSEND'''&lt;br /&gt;
| When optional flag OF_OsiMultiSight is on, all items inside a multi are not sent until entering the multi. If you want an item to be always sent, set TAG.ALWYASSEND to 1. This tag also can also go under the ITEMDEF section of an item.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.NOSAVE'''&lt;br /&gt;
| If set to 1 the object will NOT be saved.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.AMMOANIM'''&lt;br /&gt;
| Overrides TDATA4 for bow/crossbow type weapons.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.AMMOANIMHUE'''&lt;br /&gt;
| Sets the colour of the effect when firing bow/crossbow type weapons.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.AMMOANIMRENDER'''&lt;br /&gt;
| Sets the render mode of the effect when firing bow/crossbow type weapons.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.AMMOTYPE'''&lt;br /&gt;
| Overrides TDATA3 for bow/crossbow type weapons.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.DAMAGETYPE'''&lt;br /&gt;
| Sets the damage type for a weapon (ARGN2 in @GetHit trigger).&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.DOORSOUND_CLOSE'''&lt;br /&gt;
| Overrides the sound that will be played for a door when it is being closed.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.DOORSOUND_OPEN'''&lt;br /&gt;
| Overrides the sound that will be played for a door when it is being opened.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.DROPSOUND'''&lt;br /&gt;
| Overrides the sound that will be played when the item is dropped somewhere.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE_LIGHT'''&lt;br /&gt;
| Overrides TDATA3 for lights (T_LIGHT_LIT, T_LIGHT_OUT). Take notice that there is an underscore in this TAG's name.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.MAXITEMS'''&lt;br /&gt;
| Overrides the maximum number of items that can be placed into a container (default: 255)&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.MAXWEIGHT'''&lt;br /&gt;
| Overrides the maximum total weight that can be placed into a container.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.PORTCULUSSOUND'''&lt;br /&gt;
| Overrides the sound that will be played for a portcullis when it is used.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.PRACTICEMAX.SKILL_$skillid'''&lt;br /&gt;
| Overrides SKILLPRACTICEMAX setting from Sphere.ini for a particular skill. $skillid is the numeric ID of the skill.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.RANGE'''&lt;br /&gt;
| Overrides the RANGE property of the ITEMDEF for a weapon. If this tag exists on both the character and the weapon then the largest value will be used.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.SHIPSPEED.PERIOD'''&lt;br /&gt;
| Overrides SHIPSPEED.PERIOD for a ship (the length of time it takes for the ship to move one step, in tenths of a second)&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.SHIPSPEED.TILES'''&lt;br /&gt;
| Overrides SHIPSPEED.TILES for a ship (the number of tiles that a ship moves in one step)&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.SKILL'''&lt;br /&gt;
| Overrides the SKILL property of the ITEMDEF for a weapon.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.SOUND_HIT'''&lt;br /&gt;
| Overrides the hit sound for a weapon. Take notice that there is an underscore in this TAG's name.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.SOUND_MISS'''&lt;br /&gt;
| Overrides the miss sound for a weapon. Take notice that there is an underscore in this TAG's name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Character-based Override TAGs==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| '''TAG.DEATHFLAGS'''&lt;br /&gt;
| Changes some death related behaviour. The list of supported flags are in sphere_defs.scp.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.MAXPLAYERPETS'''&lt;br /&gt;
| Overrides the maximum number of pets that a player can stable. Default is 10.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.NAME.ALT'''&lt;br /&gt;
| Sets an alternative name, useful for incognito effects.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.NAME.HUE'''&lt;br /&gt;
| Changes the colour of the name displayed above a character.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.NAME.PREFIX'''&lt;br /&gt;
| Sets some text to display before the character's name.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.NAME.SUFFIX'''&lt;br /&gt;
| Sets some text to display after the character's name.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.NOSKILLMSG'''&lt;br /&gt;
| When set to 1, character will receive the &amp;quot;gainradius_not_met&amp;quot; defmessage (sphere_msgs.scp) when skillgain is aborted due to the GAINRADIUS on a skill.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.MOVERATE'''&lt;br /&gt;
| Overrides the MOVERATE property of the CHARDEF.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.RANGE'''&lt;br /&gt;
| Overrides the RANGE property of the CHARDEF. If this tag exists on both the character and the weapon then the largest value will be used.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.REGEN_$statid'''&lt;br /&gt;
| This is used as a modifier for the REGEN rate from Sphere.ini. The value is ''subtracted'' from the normal REGEN rate.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.REGENVAL_$statid'''&lt;br /&gt;
| A modifier for the amount of points gained when a stat regenerates. The value is ''added'' to the normal regeneration amount.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.ROCK'''&lt;br /&gt;
| Sets the ID of an item that the NPC can throw at enemies.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.RUNNINGPENALTY'''&lt;br /&gt;
| Overrides RUNNINGPENALTY from Sphere.ini&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.SKILLCAP_$skillid'''&lt;br /&gt;
| Overrides skill settings from the character's SKILLCLASS. $skillid is the numeric ID of the skill.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.SKILLSUM'''&lt;br /&gt;
| Overrides SKILLSUM setting from the character's SKILLCLASS.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.SPIDERWEB&lt;br /&gt;
| When set to 1, NPC will be able to drop spider webs (for a giant spider, if this set to 1 then it will stop it from dropping webs)&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.STAMINALOSSATWEIGHT'''&lt;br /&gt;
| Overrides STAMINALOSSATWEIGHT from Sphere.ini&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.STATCAP_$statid'''&lt;br /&gt;
| Overrides STR/DEX/INT settings from the character's SKILLCLASS. (0=STR, 1=INT, 2=DEX)&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.STATSUM&lt;br /&gt;
| Overrides STATSUM setting from the character's SKILLCLASS.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.TRAINSKILLMAX'''&lt;br /&gt;
| Overrides NPCTRAINMAX setting from Sphere.ini&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.OVERRIDE.TRAINSKILLMAXPERCENT'''&lt;br /&gt;
| Overrides NPCTRAINPERCENT setting from Sphere.ini&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.PARTY_AUTODECLINEINVITE'''&lt;br /&gt;
| When set to 1, character will automatically decline party invitations.&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.PARTY_CANLOOTME'''&lt;br /&gt;
| When set to 1, party members will be allow to loot this character without it being counted as a criminal action (linked to the option in the party menu).&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.VENDORMARKUP'''&lt;br /&gt;
| This value is added to the markup percentage that vendors apply to their buy and sell prices. Since the default markup is 15%, this means that a vendor will sell something worth 100gp at 115gp and buy it back for 85gp. If you set this tag to -15 the markup will be cancelled out to 0%, or you can raise/lower it if you want your vendor to sell things at a higher/lower price.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Region-based Override TAGs==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| '''TAG.OVERRIDE.GUARDS'''&lt;br /&gt;
| Specifies the character that will be summoned when guards are called in the region, overriding the &amp;lt;tt&amp;gt;guards {c_h_guard 1 c_h_guard_f 1}&amp;lt;/tt&amp;gt; defname in sphere_defs.scp&lt;br /&gt;
|-&lt;br /&gt;
| '''TAG.VENDORMARKUP'''&lt;br /&gt;
| This value is added to the markup percentage that vendors apply to their buy and sell prices. Since the default markup is 15%, this means that a vendor will sell something worth 100gp at 115gp and buy it back for 85gp. If you set this tag to -15 the markup will be cancelled out to 0%, or you can raise/lower it if you want your vendor to sell things at a higher/lower price. If the vendor has this tag set directly on them then this region TAG will not be used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Articles]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=@Rename&amp;diff=823</id>
		<title>@Rename</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=@Rename&amp;diff=823"/>
				<updated>2011-06-18T15:43:59Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Expanded description of RETURN 1 during character creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
This trigger fires when a player renames another character. The trigger also fires at character creation when the player's name is set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fires on:&lt;br /&gt;
* [[Characters#Players|Players]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
The following object references are explicitly available for this trigger:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ARGO]] || The [[Characters|character]] being renamed.&lt;br /&gt;
|-&lt;br /&gt;
| [[I]] || The [[Characters#Players|player]] renaming the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[SRC]] || The [[Characters#Players|player]] renaming the character.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Arguments==&lt;br /&gt;
The following arguments are set for this trigger. If an argument is marked as &amp;quot;In&amp;quot; then a value will be passed in to the trigger, if an argument is marked as &amp;quot;Out&amp;quot; then it can be set to a value to affect Sphere's behaviour:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Argument''' || '''In/Out''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| ARGS || I || The name that is being set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Return Values==&lt;br /&gt;
The following return values are explicitly defined for this trigger:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Return Value''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Disallows the new name.&lt;br /&gt;
'''Note:''' During character creation, this will force the character to be named using the NAMES_HUMANMALE or NAMES_HUMANFEMALE [[NAMES|name pool]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Triggers]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Error_Codes&amp;diff=805</id>
		<title>Error Codes</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Error_Codes&amp;diff=805"/>
				<updated>2011-05-02T02:08:47Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Changed description of garbage collection codes 1103 and 1104 to indicate how the NPC is linked to its mount item&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Error_Codes}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Exit Codes==&lt;br /&gt;
When Sphere closes, an 'exit code' will normally be shown in the console to describe why it is being shut down. In general, an exit code less than 0 is considered to be an error code, and values above 0 are normal shutdown codes. In most cases, a more descriptive error will be shown in the console and/or log file to help better diagnose the reason behind error codes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following table lists all of the current codes and their meanings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| '''Code''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| -10 || Unexpected error occurred&lt;br /&gt;
|-&lt;br /&gt;
| -9 || Failed to bind server port&lt;br /&gt;
|-&lt;br /&gt;
| -8 || Failed to load world save(s)&lt;br /&gt;
|-&lt;br /&gt;
| -3 || Failed to load server settings (script, ini, mul files)&lt;br /&gt;
|-&lt;br /&gt;
| -1 || Shutdown via commandline (/?, /T and /Q switches)&lt;br /&gt;
|-&lt;br /&gt;
|  1 || X in console ''or'' &amp;lt;br /&amp;gt;SIGHUP signal, terminal closed (Linux Only)&lt;br /&gt;
|-&lt;br /&gt;
|  2 || SHUTDOWN command&lt;br /&gt;
|-&lt;br /&gt;
|  4 || Service shutdown ''(Windows Only)''&lt;br /&gt;
|-&lt;br /&gt;
|  5 || Console window closed ''(Windows Only)''&lt;br /&gt;
|-&lt;br /&gt;
|  6 || SIGABRT signal, process aborted ''(Linux Only)''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Garbage Collection==&lt;br /&gt;
The purpose of garbage collection is to validate all of the server objects and free up unused UIDs. Garbage collection is initiated:&lt;br /&gt;
* After the world save is loaded at startup.&lt;br /&gt;
* Before a world save begins, if the [[FORCEGARBAGECOLLECT]] setting is enabled in Sphere.ini.&lt;br /&gt;
* After the [[IMPORT]] or [[RESTORE]] functions have been used on the [[Server|server]] object.&lt;br /&gt;
* When the 'G' command is entered via the Sphere console&lt;br /&gt;
* When the [[GARBAGE]] function is used on the [[Server|server]] object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When garbage collection encounters a problem with an object it may attempt to automatically correct the error, otherwise the object will be removed. When an object is removed by garbage collection there will normally be an error shown in the console describing the item that was removed along with the reason. The following table lists all of the garbage collection codes along with their description:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| '''Code''' || '''Message''' || '''Description''' ||&lt;br /&gt;
|-&lt;br /&gt;
| 1102 || Disconnected charr not acting as such || A character has been marked disconnected from the world, but it is not listed in the sector's disconnected character's list. || *&lt;br /&gt;
|-&lt;br /&gt;
| 1103 || Ridden NPC not acting as such || An NPC has the [[FLAGS|statf_ridden]] flag set, but does not have its [[ACTION]] property set to 111. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1104 || Ridden NPC without a mount item || An NPC has the [[FLAGS|statf_ridden]] flag set, but its [[ACTARG1]] property isn't set to the [[UID]] of an item whose [[TYPE]] property is set to [[TYPE|t_figurine]] or [[TYPE|t_eq_horse]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1105 || Ridden NPC with a mislinked mount item || An NPC has the [[FLAGS|statf_ridden]] flag set, but its [[ACTARG1]] property isn't set to the [[UID]] of an item whose [[MORE2]] property matches the NPC's [[UID]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1106 || Disconnected NPC neither dead nor ridden || An NPC has been disconnected from the world, but does not have either one of the [[FLAGS|statf_ridden]] or [[FLAGS|statf_dead]] flags set. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1107 || In game char that is neither a player nor an NPC || A character is not a player or an NPC. || *&lt;br /&gt;
|-&lt;br /&gt;
| 1108 || Char not on a valid position || A character's [[P|position]] is outside of the map boundaries. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1203 || Ridden NPC not acting as such || Same as 1103. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1204 || Ridden NPC without a mount item || Same as 1104. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1205 || In game char that is neither a player nor an NPC || Same as 1107. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2102 || Item without ITEMDEF || An item does not have an [[ITEMDEF]] section. || *&lt;br /&gt;
|-&lt;br /&gt;
| 2103 || Item ITEMDEF with ID = 0 || An item's [[ITEMDEF]] has an [[ID]] of zero. || *&lt;br /&gt;
|-&lt;br /&gt;
| 2104 || Disconnected item || An item has been marked as disconnected from the world. || *&lt;br /&gt;
|-&lt;br /&gt;
| 2105 || Item not on a valid position || An item is not in a container and its [[P|position]] is outside of the map boundaries. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2106 || Item flagged as being in a container but it isn't || An item is flagged as not being top level, but it does not have a container. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2202 || Item flagged as equipped but it isn't || An item is flagged as being equipped, but its parent is not a character. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2205 || Mislinked item || An item's [[LINK]] property matches its [[UID]], or has been set to a [[UID]] that doesn't exist. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2206 || Gm Robe / Deathshroud not on a char || A GM robe or death shroud ([[ID]] of 0204E or 0204F) is not equipped to a character. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2207 || Deathshroud not on a dead char || A death shroud ([[ID]] of 0204F) is equipped to a character without the [[FLAGS|statf_dead]] flag set. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2208 || Gm Robe on a char without privilege || A GM robe ([[ID]] of 0204E) is equipped to a character whose [[PLEVEL]] is less than 2. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2220 || Trade window memory not equipped in the correct layer || A [[TYPE|t_eq_trade window]] item type is not equipped, has its [[LAYER]] property set to something other than [[LAYER|layer_none]], or is equipped to an NPC. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2221 || Client linger memory not equipped in the correct layer || A [[TYPE|t_eq_client_linger]] item type is not equipped, has its [[LAYER]] property set to something other than [[LAYER|layer_flag_clientlinger]], or is equipped to an NPC. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2222 || Memory not equipped / not in the memory layer / without color || A memory item ([[ID]] of 02007) is not equipped, or a non-memory item has had its [[TYPE]] set to [[TYPE|t_eq_memory_obj]] after creation. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2226 || Mount memory not equipped in the correct layer || A [[TYPE|t_eq_horse]] item type is not equipped, or has its [[LAYER]] property set to something other than [[LAYER|layer_horse]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2227 || Hair/Beard item not equipped / not in a corpse / not in a vendor box || A [[TYPE|t_hair]] or [[TYPE|t_beard]] item type that isn't equipped, is either not in a container or its container has an [[ID]] other than 02006 or 02AF8. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2228 || Hair/Beard item not equipped / not in a corpse / not in a vendor box || A [[TYPE|t_hair]] or [[TYPE|t_beard]] item is equipped, but has its [[LAYER]] property set to something other than [[LAYER|layer_hair]] or [[LAYER|layer_beard]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2229 || Game piece not in a game board || A [[TYPE|t_game_piece]] item has been found outside of a container. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2230 || Item equipped in the trade window layer but it isn't a trade window || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_none]], but its [[TYPE|type]] is not [[TYPE|t_eq_trade_window]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2231 || Item equipped in the memory layer but it isn't a memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_special]], but its [[TYPE|type]] is not [[TYPE|t_eq_memory_obj]] or [[TYPE|t_eq_script]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2233 || Item equipped in the mount memory layer but it isn't a mount memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_horse]], but its [[TYPE|type]] is not [[TYPE|t_eq_horse]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2234 || Item equipped in the client linger layer but it isn't a client linger memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_flag_clientlinger]], but its [[TYPE|type]] is not [[TYPE|t_eq_client_linger]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2235 || Item equipped in the murder memory layer but it isn't a murder memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_flag_murders]], but the character is an NPC or the player has its [[KILLS]] property set to 0. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2236 || Item flagged as decay but without timer set || A top-level item has the [[ATTR|attr_decay]] flag set, but its [[TIMER]] property has not been set. ||&lt;br /&gt;
|-&lt;br /&gt;
| 3101 || Object is totaly lost, no parent exists || An object has no parent. || *&lt;br /&gt;
|-&lt;br /&gt;
| 3102 || Object was deleted or UID is incorrect || An object does not have a valid [[UID]]. || *&lt;br /&gt;
|-&lt;br /&gt;
| 3201 || Object not correctly loaded by server (UID conflict) || More than one object has the same [[UID]] value. || *&lt;br /&gt;
|-&lt;br /&gt;
| 4222 || Memory not equipped / not in the memory layer / without color || A memory item is not flagged as equipped, has its [[LAYER]] property set to something other than [[LAYER|layer_special]], or has its [[COLOR]] property set to 0. ||&lt;br /&gt;
|-&lt;br /&gt;
| 4223 || Memory not on a char || A memory item is flagged as equipped, but it's [[CONT|parent]] is not a character. ||&lt;br /&gt;
|-&lt;br /&gt;
| 4224 || Stone/Guild memory mislinked || A memory item's [[COLOR]] property has one of the [[COLOR|memory_guild]] or [[COLOR|memory_town]] flags set, but the [[LINK]] property is not set to the [[UID]] of a guild or town stone. ||&lt;br /&gt;
|-&lt;br /&gt;
| 4225 || Stone/Guild memory linked to the wrong stone || A memory item's [[COLOR]] property has one of the [[COLOR|memory_guild]] or [[COLOR|memory_town]] flags set, but the character the memory is equipped to is not a member of the guild or town. ||&lt;br /&gt;
|-&lt;br /&gt;
| 7101 || Object's UID does not match up with server's UID table. || An object does not have the expected [[UID]] value. || *&lt;br /&gt;
|-&lt;br /&gt;
| 7102 || Object does not exist. || An object does not exist. || *&lt;br /&gt;
|-&lt;br /&gt;
| FFFF || Bad memory allocation || An exception was thrown whilst checking the object's validity. || *&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note''': ''Garbage collection codes marked with * generally indicate a serious error within an object's internal state and should not normally be seen. If you are experiencing and are able to reliably reproduce any such errors then please report the details to the [http://tracker.sphere.torfo.org/bugs/main_page.php bug tracker].''&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Error_Codes&amp;diff=804</id>
		<title>Error Codes</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Error_Codes&amp;diff=804"/>
				<updated>2011-05-02T01:27:08Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Error_Codes}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Exit Codes==&lt;br /&gt;
When Sphere closes, an 'exit code' will normally be shown in the console to describe why it is being shut down. In general, an exit code less than 0 is considered to be an error code, and values above 0 are normal shutdown codes. In most cases, a more descriptive error will be shown in the console and/or log file to help better diagnose the reason behind error codes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following table lists all of the current codes and their meanings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| '''Code''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| -10 || Unexpected error occurred&lt;br /&gt;
|-&lt;br /&gt;
| -9 || Failed to bind server port&lt;br /&gt;
|-&lt;br /&gt;
| -8 || Failed to load world save(s)&lt;br /&gt;
|-&lt;br /&gt;
| -3 || Failed to load server settings (script, ini, mul files)&lt;br /&gt;
|-&lt;br /&gt;
| -1 || Shutdown via commandline (/?, /T and /Q switches)&lt;br /&gt;
|-&lt;br /&gt;
|  1 || X in console ''or'' &amp;lt;br /&amp;gt;SIGHUP signal, terminal closed (Linux Only)&lt;br /&gt;
|-&lt;br /&gt;
|  2 || SHUTDOWN command&lt;br /&gt;
|-&lt;br /&gt;
|  4 || Service shutdown ''(Windows Only)''&lt;br /&gt;
|-&lt;br /&gt;
|  5 || Console window closed ''(Windows Only)''&lt;br /&gt;
|-&lt;br /&gt;
|  6 || SIGABRT signal, process aborted ''(Linux Only)''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Garbage Collection==&lt;br /&gt;
The purpose of garbage collection is to validate all of the server objects and free up unused UIDs. Garbage collection is initiated:&lt;br /&gt;
* After the world save is loaded at startup.&lt;br /&gt;
* Before a world save begins, if the [[FORCEGARBAGECOLLECT]] setting is enabled in Sphere.ini.&lt;br /&gt;
* After the [[IMPORT]] or [[RESTORE]] functions have been used on the [[Server|server]] object.&lt;br /&gt;
* When the 'G' command is entered via the Sphere console&lt;br /&gt;
* When the [[GARBAGE]] function is used on the [[Server|server]] object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When garbage collection encounters a problem with an object it may attempt to automatically correct the error, otherwise the object will be removed. When an object is removed by garbage collection there will normally be an error shown in the console describing the item that was removed along with the reason. The following table lists all of the garbage collection codes along with their description:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| '''Code''' || '''Message''' || '''Description''' ||&lt;br /&gt;
|-&lt;br /&gt;
| 1102 || Disconnected charr not acting as such || A character has been marked disconnected from the world, but it is not listed in the sector's disconnected character's list. || *&lt;br /&gt;
|-&lt;br /&gt;
| 1103 || Ridden NPC not acting as such || An NPC has the [[FLAGS|statf_ridden]] flag set, but does not have its [[ACTION]] property set to 111. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1104 || Ridden NPC without a mount item || An NPC has the [[FLAGS|statf_ridden]] flag set, but its rider does not have a mount item. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1105 || Ridden NPC with a mislinked mount item || An NPC has the [[FLAGS|statf_ridden]] flag set, but the mount item's [[MORE2]] property does not match the NPC's [[UID]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1106 || Disconnected NPC neither dead nor ridden || An NPC has been disconnected from the world, but does not have either one of the [[FLAGS|statf_ridden]] or [[FLAGS|statf_dead]] flags set. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1107 || In game char that is neither a player nor an NPC || A character is not a player or an NPC. || *&lt;br /&gt;
|-&lt;br /&gt;
| 1108 || Char not on a valid position || A character's [[P|position]] is outside of the map boundaries. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1203 || Ridden NPC not acting as such || Same as 1103. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1204 || Ridden NPC without a mount item || Same as 1104. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1205 || In game char that is neither a player nor an NPC || Same as 1107. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2102 || Item without ITEMDEF || An item does not have an [[ITEMDEF]] section. || *&lt;br /&gt;
|-&lt;br /&gt;
| 2103 || Item ITEMDEF with ID = 0 || An item's [[ITEMDEF]] has an [[ID]] of zero. || *&lt;br /&gt;
|-&lt;br /&gt;
| 2104 || Disconnected item || An item has been marked as disconnected from the world. || *&lt;br /&gt;
|-&lt;br /&gt;
| 2105 || Item not on a valid position || An item is not in a container and its [[P|position]] is outside of the map boundaries. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2106 || Item flagged as being in a container but it isn't || An item is flagged as not being top level, but it does not have a container. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2202 || Item flagged as equipped but it isn't || An item is flagged as being equipped, but its parent is not a character. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2205 || Mislinked item || An item's [[LINK]] property matches its [[UID]], or has been set to a [[UID]] that doesn't exist. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2206 || Gm Robe / Deathshroud not on a char || A GM robe or death shroud ([[ID]] of 0204E or 0204F) is not equipped to a character. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2207 || Deathshroud not on a dead char || A death shroud ([[ID]] of 0204F) is equipped to a character without the [[FLAGS|statf_dead]] flag set. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2208 || Gm Robe on a char without privilege || A GM robe ([[ID]] of 0204E) is equipped to a character whose [[PLEVEL]] is less than 2. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2220 || Trade window memory not equipped in the correct layer || A [[TYPE|t_eq_trade window]] item type is not equipped, has its [[LAYER]] property set to something other than [[LAYER|layer_none]], or is equipped to an NPC. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2221 || Client linger memory not equipped in the correct layer || A [[TYPE|t_eq_client_linger]] item type is not equipped, has its [[LAYER]] property set to something other than [[LAYER|layer_flag_clientlinger]], or is equipped to an NPC. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2222 || Memory not equipped / not in the memory layer / without color || A memory item ([[ID]] of 02007) is not equipped, or a non-memory item has had its [[TYPE]] set to [[TYPE|t_eq_memory_obj]] after creation. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2226 || Mount memory not equipped in the correct layer || A [[TYPE|t_eq_horse]] item type is not equipped, or has its [[LAYER]] property set to something other than [[LAYER|layer_horse]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2227 || Hair/Beard item not equipped / not in a corpse / not in a vendor box || A [[TYPE|t_hair]] or [[TYPE|t_beard]] item type that isn't equipped, is either not in a container or its container has an [[ID]] other than 02006 or 02AF8. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2228 || Hair/Beard item not equipped / not in a corpse / not in a vendor box || A [[TYPE|t_hair]] or [[TYPE|t_beard]] item is equipped, but has its [[LAYER]] property set to something other than [[LAYER|layer_hair]] or [[LAYER|layer_beard]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2229 || Game piece not in a game board || A [[TYPE|t_game_piece]] item has been found outside of a container. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2230 || Item equipped in the trade window layer but it isn't a trade window || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_none]], but its [[TYPE|type]] is not [[TYPE|t_eq_trade_window]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2231 || Item equipped in the memory layer but it isn't a memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_special]], but its [[TYPE|type]] is not [[TYPE|t_eq_memory_obj]] or [[TYPE|t_eq_script]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2233 || Item equipped in the mount memory layer but it isn't a mount memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_horse]], but its [[TYPE|type]] is not [[TYPE|t_eq_horse]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2234 || Item equipped in the client linger layer but it isn't a client linger memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_flag_clientlinger]], but its [[TYPE|type]] is not [[TYPE|t_eq_client_linger]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2235 || Item equipped in the murder memory layer but it isn't a murder memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_flag_murders]], but the character is an NPC or the player has its [[KILLS]] property set to 0. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2236 || Item flagged as decay but without timer set || A top-level item has the [[ATTR|attr_decay]] flag set, but its [[TIMER]] property has not been set. ||&lt;br /&gt;
|-&lt;br /&gt;
| 3101 || Object is totaly lost, no parent exists || An object has no parent. || *&lt;br /&gt;
|-&lt;br /&gt;
| 3102 || Object was deleted or UID is incorrect || An object does not have a valid [[UID]]. || *&lt;br /&gt;
|-&lt;br /&gt;
| 3201 || Object not correctly loaded by server (UID conflict) || More than one object has the same [[UID]] value. || *&lt;br /&gt;
|-&lt;br /&gt;
| 4222 || Memory not equipped / not in the memory layer / without color || A memory item is not flagged as equipped, has its [[LAYER]] property set to something other than [[LAYER|layer_special]], or has its [[COLOR]] property set to 0. ||&lt;br /&gt;
|-&lt;br /&gt;
| 4223 || Memory not on a char || A memory item is flagged as equipped, but it's [[CONT|parent]] is not a character. ||&lt;br /&gt;
|-&lt;br /&gt;
| 4224 || Stone/Guild memory mislinked || A memory item's [[COLOR]] property has one of the [[COLOR|memory_guild]] or [[COLOR|memory_town]] flags set, but the [[LINK]] property is not set to the [[UID]] of a guild or town stone. ||&lt;br /&gt;
|-&lt;br /&gt;
| 4225 || Stone/Guild memory linked to the wrong stone || A memory item's [[COLOR]] property has one of the [[COLOR|memory_guild]] or [[COLOR|memory_town]] flags set, but the character the memory is equipped to is not a member of the guild or town. ||&lt;br /&gt;
|-&lt;br /&gt;
| 7101 || Object's UID does not match up with server's UID table. || An object does not have the expected [[UID]] value. || *&lt;br /&gt;
|-&lt;br /&gt;
| 7102 || Object does not exist. || An object does not exist. || *&lt;br /&gt;
|-&lt;br /&gt;
| FFFF || Bad memory allocation || An exception was thrown whilst checking the object's validity. || *&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note''': ''Garbage collection codes marked with * generally indicate a serious error within an object's internal state and should not normally be seen. If you are experiencing and are able to reliably reproduce any such errors then please report the details to the [http://tracker.sphere.torfo.org/bugs/main_page.php bug tracker].''&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Error_Codes&amp;diff=803</id>
		<title>Error Codes</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Error_Codes&amp;diff=803"/>
				<updated>2011-05-02T01:22:25Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Tried to improve the garbage collection table with more accurate error descriptions, and the actual error message to help with searching&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Error_Codes}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
==Exit Codes==&lt;br /&gt;
When Sphere closes, an 'exit code' will normally be shown in the console to describe why it is being shut down. In general, an exit code less than 0 is considered to be an error code, and values above 0 are normal shutdown codes. In most cases, a more descriptive error will be shown in the console and/or log file to help better diagnose the reason behind error codes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following table lists all of the current codes and their meanings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| '''Code''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| -10 || Unexpected error occurred&lt;br /&gt;
|-&lt;br /&gt;
| -9 || Failed to bind server port&lt;br /&gt;
|-&lt;br /&gt;
| -8 || Failed to load world save(s)&lt;br /&gt;
|-&lt;br /&gt;
| -3 || Failed to load server settings (script, ini, mul files)&lt;br /&gt;
|-&lt;br /&gt;
| -1 || Shutdown via commandline (/?, /T and /Q switches)&lt;br /&gt;
|-&lt;br /&gt;
|  1 || X in console ''or'' &amp;lt;br /&amp;gt;SIGHUP signal, terminal closed (Linux Only)&lt;br /&gt;
|-&lt;br /&gt;
|  2 || SHUTDOWN command&lt;br /&gt;
|-&lt;br /&gt;
|  4 || Service shutdown ''(Windows Only)''&lt;br /&gt;
|-&lt;br /&gt;
|  5 || Console window closed ''(Windows Only)''&lt;br /&gt;
|-&lt;br /&gt;
|  6 || SIGABRT signal, process aborted ''(Linux Only)''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Garbage Collection==&lt;br /&gt;
The purpose of garbage collection is to validate all of the server objects and free up unused UIDs. Garbage collection is initiated:&lt;br /&gt;
* After the world save is loaded at startup.&lt;br /&gt;
* Before a world save begins, if the [[FORCEGARBAGECOLLECT]] setting is enabled in Sphere.ini.&lt;br /&gt;
* After the [[IMPORT]] or [[RESTORE]] functions have been used on the [[Server|server]] object.&lt;br /&gt;
* When the 'G' command is entered via the Sphere console&lt;br /&gt;
* When the [[GARBAGE]] function is used on the [[Server|server]] object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When garbage collection encounters a problem with an object it may attempt to automatically correct the error, otherwise the object will be removed. When an object is removed by garbage collection there will normally be an error shown in the console describing the item that was removed along with the reason. The following table lists all of the garbage collection codes along with their description:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| '''Code''' || '''Message''' || '''Description''' ||&lt;br /&gt;
|-&lt;br /&gt;
| 1102 || Disconnected charr not acting as such || A character has been marked disconnected from the world, but it is not listed in the sector's disconnected character's list. || *&lt;br /&gt;
|-&lt;br /&gt;
| 1103 || Ridden NPC not acting as such || An NPC has the [[FLAGS|statf_ridden]] flag set, but does not have its [[ACTION]] property set to 111. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1104 || Ridden NPC without a mount item || An NPC has the [[FLAGS|statf_ridden]] flag set, but its rider does not have a mount item. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1105 || Ridden NPC with a mislinked mount item || An NPC has the [[FLAGS|statf_ridden]] flag set, but the mount item's [[MORE2]] property does not match the NPC's [[UID]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1106 || Disconnected NPC neither dead nor ridden || An NPC has been disconnected from the world, but does not have either one of the [[FLAGS|statf_ridden]] or [[FLAGS|statf_dead]] flags set. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1107 || In game char that is neither a player nor an NPC || A character is not a player or an NPC. || *&lt;br /&gt;
|-&lt;br /&gt;
| 1108 || Char not on a valid position || A character's [[P|position]] is outside of the map boundaries. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1203 || Ridden NPC not acting as such || Same as 1103. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1204 || Ridden NPC without a mount item || Same as 1104. ||&lt;br /&gt;
|-&lt;br /&gt;
| 1205 || In game char that is neither a player nor an NPC || Same as 1107. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2102 || Item without ITEMDEF || An item does not have an [[ITEMDEF]] section. || *&lt;br /&gt;
|-&lt;br /&gt;
| 2103 || Item ITEMDEF with ID = 0 || An item's [[ITEMDEF]] has an [[ID]] of zero. || *&lt;br /&gt;
|-&lt;br /&gt;
| 2104 || Disconnected item || An item has been marked as disconnected from the world. || *&lt;br /&gt;
|-&lt;br /&gt;
| 2105 || Item not on a valid position || An item is not in a container and its [[P|position]] is outside of the map boundaries. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2106 || Item flagged as being in a container but it isn't || An item is flagged as not being top level, but it does not have a container. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2202 || Item flagged as equipped but it isn't || An item is flagged as being equipped, but its parent is not a character. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2205 || Mislinked item || An item's [[LINK]] property matches its [[UID]], or has been set to a [[UID]] that doesn't exist. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2206 || Gm Robe / Deathshroud not on a char || A GM robe or death shroud ([[ID]] of 0204E or 0204F) is not equipped to a character. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2207 || Deathshroud not on a dead char || A death shroud ([[ID]] of 0204F) is equipped to a character without the [[FLAGS|statf_dead]] flag set. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2208 || Gm Robe on a char without privilege || A GM robe ([[ID]] of 0204E) is equipped to a character whose [[PLEVEL]] is less than 2. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2220 || Trade window memory not equipped in the correct layer || A [[TYPE|t_eq_trade window]] item type is not equipped, has its [[LAYER]] property set to something other than [[LAYER|layer_none]], or is equipped to an NPC. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2221 || Client linger memory not equipped in the correct layer || A [[TYPE|t_eq_client_linger]] item type is not equipped, has its [[LAYER]] property set to something other than [[LAYER|layer_flag_clientlinger]], or is equipped to an NPC. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2222 || Memory not equipped / not in the memory layer / without color || A memory item ([[ID]] of 02007) is not equipped, or a non-memory item has had its [[TYPE]] set to [[TYPE|t_eq_memory_obj]] after creation. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2226 || Mount memory not equipped in the correct layer || A [[TYPE|t_eq_horse]] item type is not equipped, or has its [[LAYER]] property set to something other than [[LAYER|layer_horse]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2227 || Hair/Beard item not equipped / not in a corpse / not in a vendor box || A [[TYPE|t_hair]] or [[TYPE|t_beard]] item type that isn't equipped, is either not in a container or its container has an [[ID]] other than 02006 or 02AF8. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2228 || Hair/Beard item not equipped / not in a corpse / not in a vendor box || A [[TYPE|t_hair]] or [[TYPE|t_beard]] item is equipped, but has its [[LAYER]] property set to something other than [[LAYER|layer_hair]] or [[LAYER|layer_beard]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2229 || Game piece not in a game board || A [[TYPE|t_game_piece]] item has been found outside of a container. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2230 || Item equipped in the trade window layer but it isn't a trade window || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_none]], but its [[TYPE|type]] is not [[TYPE|t_eq_trade_window]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2231 || Item equipped in the memory layer but it isn't a memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_special]], but its [[TYPE|type]] is not [[TYPE|t_eq_memory_obj]] or [[TYPE|t_eq_script]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2233 || Item equipped in the mount memory layer but it isn't a mount memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_horse]], but its [[TYPE|type]] is not [[TYPE|t_eq_horse]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2234 || Item equipped in the client linger layer but it isn't a client linger memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_flag_clientlinger]], but its [[TYPE|type]] is not [[TYPE|t_eq_client_linger]]. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2235 || Item equipped in the murder memory layer but it isn't a murder memory || An equipped item has been found with its [[LAYER]] property set to [[LAYER|layer_flag_murders]], but the character is an NPC or the player has its [[KILLS]] property set to 0. ||&lt;br /&gt;
|-&lt;br /&gt;
| 2236 || Item flagged as decay but without timer set || A top-level item has the [[ATTR|attr_decay]] flag set, but its [[TIMER]] property has not been set. ||&lt;br /&gt;
|-&lt;br /&gt;
| 3101 || Object is totaly lost, no parent exists || An object has no parent. || *&lt;br /&gt;
|-&lt;br /&gt;
| 3102 || Object was deleted or UID is incorrect || An object does not have a valid [[UID]]. || *&lt;br /&gt;
|-&lt;br /&gt;
| 3201 || Object not correctly loaded by server (UID conflict) || More than one object has the same [[UID]] value. || *&lt;br /&gt;
|-&lt;br /&gt;
| 4222 || Memory not equipped / not in the memory layer / without color || A memory item is not flagged as equipped, has its [[LAYER]] property set to something other than [[LAYER|layer_special]], or has its [[COLOR]] property set to 0. ||&lt;br /&gt;
|-&lt;br /&gt;
| 4223 || Memory not on a char || A memory item is flagged as equipped, but it's [[CONT|parent]] is not a character. ||&lt;br /&gt;
|-&lt;br /&gt;
| 4224 || Stone/Guild memory mislinked || A memory item's [[COLOR]] property has one of the [[COLOR|memory_guild]] or [[COLOR|memory_town]] flags set, but the [[LINK]] property is not set to the [[UID]] of a guild or town stone. ||&lt;br /&gt;
|-&lt;br /&gt;
| 4225 || Stone/Guild memory linked to the wrong stone || A memory item's [[COLOR]] property has one of the [[COLOR|memory_guild]] or [[COLOR|memory_town]] flags set, but the character the memory is equipped to is not a member of the guild or town. ||&lt;br /&gt;
|-&lt;br /&gt;
| 7101 || Object's UID does not match up with server's UID table. || An object does not have the expected [[UID]] value. || *&lt;br /&gt;
|-&lt;br /&gt;
| 7102 || Object does not exist. || An object does not exist. || *&lt;br /&gt;
|-&lt;br /&gt;
| FFFF || Bad memory allocation || An exception was thrown whilst checking the object's validity. || *&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note''': ''Garbage collection codes marked with * generally indicate a serious error within an object's internal state. If you are experiencing and are able to reliably reproduce any such errors then please report the details to the [http://tracker.sphere.torfo.org/bugs/main_page.php bug tracker].''&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Server&amp;diff=780</id>
		<title>Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Server&amp;diff=780"/>
				<updated>2011-01-29T04:44:21Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: State zero-based indexes for GMPAGE.n and CLIENT.n&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Server}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
The server object is a global object that can be accessed from any script, by using the SERV reference. The following tables detail the various properties of the server in SphereServer:&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
References return pointers to other objects (e.g. the CHAR.n reference allows you to access the characters that are attached to the account). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]]''.n'' || R || Gets the nth [[Accounts|account]] on the server. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]]''.name'' || R || Gets the [[Accounts|account]] with the specified name.&lt;br /&gt;
|-&lt;br /&gt;
| [[AREA]]''.defname'' || R || Gets the [[Regions|region]] with the specified defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[CHARDEF (Reference)|CHARDEF]]''.defname'' || R || Gets the [[CHARDEF|character definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENT]]''.n'' || R || Gets the nth [[Characters#Clients|client]] on the server. (zero-based)&amp;lt;br /&amp;gt;'''Note:''' The nth client may not be an ingame player character, check &amp;amp;lt;CLIENT.n&amp;amp;gt; first as it returns 1 for ingame clients and 0 for non-player clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n'' || R || Gets the nth [[GM Pages|GM page]] on the server. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDSTONES]]''.n'' || R || Gets the nth [[Special Items#Guild.2FTown_Stones|guild stone]] on the server. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ITEMDEF (Reference)|ITEMDEF]]''.defname'' || R || Gets the [[ITEMDEF|item definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTNEWCHAR]] || R || Gets the last [[Characters|character]] created on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTNEWITEM]] || R || Gets the last [[Items|item]] created on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]]''(x, y, map)''&amp;lt;br /&amp;gt;[[MAP]]''(x, y, z, map)'' || R || Gets the [[Map Points|map point]] for a specified location.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGIONRESOURCE (Reference)|REGIONRESOURCE]]''.defname'' || R || Gets the [[REGIONRESOURCE|region resource definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGIONTYPE (Reference)|REGIONTYPE]]''.defname'' || R || Gets the [[REGIONTYPE|region type definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROOM (Reference)|ROOM]]''.defname'' || R || Gets the [[Rooms|room]] with the specified defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILL (Reference)|SKILL]]''.defname'' || R || Gets the [[SKILL|skill definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLCLASS (Reference)|SKILLCLASS]]''.defname'' || R || Gets the [[SKILLCLASS|skillclass]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPAWN (Reference)|SPAWN]]''.defname'' || R || Gets the [[SPAWN|spawn group]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELL (Reference)|SPELL]]''.defname'' || R || Gets the [[SPELL|spell definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELL (Reference)|SPELL]]''.n'' || R || Gets the nth [[SPELL|spell definition]], ordered by skill requirements (1-based, ascending).&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWNSTONES]]''.n'' || R || Gets the nth [[Special Items#Guild.2FTown_Stones|town stone]] on the server. (zero-based)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Properties and Functions==&lt;br /&gt;
Here is a list of all item properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples. Settings from Sphere.ini can also be accessed from the server object, but they are not listed in this table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] ADD ''name password'' || W || Creates an account with the specified name and password.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] ADDMD5 ''name hash'' || W || Creates an account with the specified name and MD5 password hash.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] BLOCKED ''days command'' || W || Executes ''command'' on all accounts that have been unused for ''days'' days and are currently blocked.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] JAILED ''days command'' || W || Executes ''command'' on all accounts that have been unused for ''days'' days and are currently jailed.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] UNUSED ''days command'' || W || Executes ''command'' on all accounts that have been unused for ''days'' days.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] UPDATE || W || Saves the accounts to file.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] ''name command'' || W || Executes ''command'' on the account with the specified name.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNTS]] || RW || Gets or sets the number of accounts on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLCLIENTS]] ''command'' || W || Executes ''command'' on all online player characters.&lt;br /&gt;
|-&lt;br /&gt;
| [[B]] ''message'' || W || Broadcasts ''message'' to all clients on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[BLOCKIP]] ''address, time'' || W || Blocks an IP address for ''time'', in tenths of a second (-1 = permanent).&lt;br /&gt;
|-&lt;br /&gt;
| [[CHARS]] || RW || Gets or sets the number of characters on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARLISTS]] ''mask'' || W || Removes all LISTs whose name contains ''mask''.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARVARS]] ''prefix'' || W || Removes all VARs that start with the given prefix.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTS]] || R || Gets the total number of connected clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONSOLE]] ''command'' || W || Executes ''command'' as if it had been typed directly into the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[EXPORT]] ''file, flags, distance'' || W || Exports all objects within ''distance'' tiles of SRC to a file. (Flags: 1 = Items, 2 = Characters, 3 = Both)&lt;br /&gt;
|-&lt;br /&gt;
| [[GARBAGE]] || W || Forces an immediate garbage collection (checks for invalid objects and fixes them if possible, or else removes them).&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGES]] || R || Returns the total number of GM pages.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDS]] || R || Returns the total number of guild ''and'' town stones.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDSTONES]].COUNT || R || Returns the total number of guild stones on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEARALL]] || RW || Gets or sets whether player speech is logged to server console and log file.&lt;br /&gt;
|-&lt;br /&gt;
| [[IMPORT]] ''file, flags, distance'' || W || Imports previously exported items that were within ''distance'' tiles. (Flags: 1 = Items, 2 = Characters, 3 = Both)&lt;br /&gt;
|-&lt;br /&gt;
| [[INFORMATION]] || W || Displays server information to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[ITEMS]] || RW || Gets or sets the number of items on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOAD]] ''file'' || W || Loads a script file.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOG]] ''message'' || W || Logs ''message'' to server console and logs.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOOKUPSKILL]] ''skill_name'' || R || Looks up a skill name or key, and returns its skill number.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]]''.map_num.ALLSECTORS command'' || W || Executes ''command'' on all sectors of a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num'' || R || Returns 1 if ''map_num'' is a valid map number.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.BOUND.X || R || Returns the maximum X coordinate for a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.BOUND.Y || R || Returns the maximum Y coordinate for a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.CENTER.X || R || Returns the central X coordinate of a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.CENTER.Y || R || Returns the central Y coordinate of a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.COLS || R || Returns the number of sector columns on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.QTY || R || Returns the number of sectors on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.ROWs || R || Returns the number of sector rows on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.SIZE || R || Returns the size of the sectors on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEM]] || R || Returns the total amount of memory being used, in kilobytes.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRINTLISTS]] ''LOG'' || W || Displays a list of all LISTs to SRC, or the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]0 || RW || Gets or sets the length of time it takes for characters to regenerate 1 health point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]1 || RW || Gets or sets the length of time it takes for characters to regenerate 1 mana point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]2 || RW || Gets or sets the length of time it takes for characters to regenerate 1 stamina point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]3 || RW || Gets or sets the length of time it takes for characters to lose 1 food point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESPAWN]] || W || Respawns all dead NPCs (not corpses) in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTOCK]] || W || Restocks all NPCs in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTORE]] ''file, account_name, character_name'' || W || Restores a player character from a backup save.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESYNC]] || W || Checks all script files for any changes made since they were last loaded.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTICKS]] || R || Returns the real-world time, as a timestamp.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTICKS]].FORMAT ''timestamp, format'' || R || Returns the real-world timestamp as a formatted datetime string.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTICKS]].FROMTIME ''year, month, day, hour, minutes, seconds'' || R || Returns the specified real-world time, as a timestamp.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTIME]] || R || Returns the real-world time, as a formatted string.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTIME]].FORMAT ''format'' || R || Returns the real-world time, as a formatted string.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVE]] ''force_immediate'' || W || Begins a world save. If background saving is enabled, ''force_immediate'' can be used to force a foreground save.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVECOUNT]] || R || Returns the number of world saves that have taken place.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVESTATICS]] || W || Performs a statics save.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHRINKMEM]] || W || Temporarily reduces memory usage.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHUTDOWN]] ''time'' || W || Schedules a server shutdown in ''time'' minutes.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIME]] || R || Returns the total server uptime, in tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWNSTONES]].COUNT || R || Returns the total number of town stones on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNBLOCKIP]] ''address'' || W || Unblocks a previously blocked IP address.&lt;br /&gt;
|-&lt;br /&gt;
| [[VARLIST]] ''LOG'' || W || Displays a list of all VARs to SRC, or the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[VERSION]] || R || Returns the SphereServer version.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Characters&amp;diff=534</id>
		<title>Characters</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Characters&amp;diff=534"/>
				<updated>2010-05-29T18:03:32Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Corrected the description of the SKILLCHECK function.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
A character can be either a player or an NPC.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] || RW || Gets or sets the [[Accounts|account]] that the character belongs to.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACT]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that is related to the action the character is performing.&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDCONT]]''.n'' || R || Gets the nth [[Items|item]] equipped to the character. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDID]]''.item_id'' || R || Gets the first [[Items|item]] found equipped to the character or inside their backpack, with the matching [[BASEID]].&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDLAYER]]''.layer'' || R || Gets the [[Items|item]] that the character has equipped in a specified layer.&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDTYPE]]''.type'' || R || Gets the first [[Items|item]] found equipped to the character or inside their backpack, with the matching [[TYPE]].&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMORYFINDTYPE]].''.memory_flags'' || R || Gets a [[Items|memory item]] with the specified flags.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMORYFIND]].''object_uid'' || R || Gets a [[Items|memory item]] that is linked to the given object.&lt;br /&gt;
|-&lt;br /&gt;
| [[OWNER]] || R || Gets the character that owns this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPAWNITEM]] || R || Gets the [[Items|spawn item]] (t_spawn_char) that this character originated from.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEAPON]] || R || Gets the [[Items|weapon]] that the character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[P]] || RW || Gets or sets the [[Map Points|position]] that the character is at.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGION]] || R || Gets the [[Regions|region]] that the character is currently located in.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROOM]] || R || Gets the [[Rooms|room]] that the character is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[SECTOR]] || R || Gets the [[Sectors|sector]] that the character is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOPOBJ]] || R || Gets the top-most [[Characters|character]] or [[Items|item]] in the world that contains the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[TYPEDEF  (Reference)|TYPEDEF]] || R || Gets the [[CHARDEF]] that defines the character.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Functions==&lt;br /&gt;
Here is a list of all character properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples. If an attempt is made to access a property that does not exist on the character, the property from the [[CHARDEF]] will be accessed instead.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[AC]] || R || Returns the character's total defense.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTARG1]] || RW || Gets or sets the character's ACTARG1 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTARG2]] || RW || Gets or sets the character's ACTARG2 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTARG3]] || RW || Gets or sets the character's ACTARG3 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTDIFF]] || RW || Gets or sets the difficulty of the character's current action.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTION]] || RW || Gets or sets the skill that the character is currently using.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTP]] || RW || Gets or sets the character's ACTP value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTPRV]] || RW || Gets or sets the character's ACTPRV value.&lt;br /&gt;
|-&lt;br /&gt;
| [[AFK]] || W || Gets or sets whether or not the character is in AFK mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[AGE]] || R || Returns the age of the character since its creation, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLSKILLS]] ''amount'' || W || Sets all of the character's skills to the specified amount.&lt;br /&gt;
|-&lt;br /&gt;
| [[ANIM]] ''anim_id'' || W || Plays the specified animation on the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]] || R || Gets the number of opponents who have damaged the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.LAST'' || R || Gets the UID of the opponent who most recently damaged the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.MAX'' || R || Gets the UID of the opponent who has dealt the most damage to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.n.DAM'' || R || Gets the amount of damage that the nth opponent has dealt to the character. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.n.ELAPSED'' || R || Gets the length of time since the nth opponent has damaged the characer, in seconds. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.n.UID'' || R || Gets the UID of the nth opponent who has damaged the characer. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[BANK]] ''layer'' || W || Opens the character's bank (or the container at the specified layer) for SRC to view.&lt;br /&gt;
|-&lt;br /&gt;
| [[BANKBALANCE]] || R || Returns the total amount of gold in the character's bankbox.&lt;br /&gt;
|-&lt;br /&gt;
| [[BARK]] ''sound_id'' || W || Plays the specified sound (or the character's generic sound if not specified) to nearby clients from this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BODY]] || RW || Gets or sets the character's body.&lt;br /&gt;
|-&lt;br /&gt;
| [[BOUNCE]] ''item_uid'' || W || Places a specified item in the character's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[BOW]] || W || Makes the character bow to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANCAST]] ''spell_id, check_antimagic'' || R || Returns 1 if the character can cast a given spell, bypassing anti-magic field tests if ''check_antimagic'' set to 0.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANMAKE]] ''item_id'' || R || Returns 1 if the character has the skills and resources to craft a certain item.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANMAKESKILL]] ''item_id'' || R || Returns 1 if the character has the skills to craft a certain item.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANMOVE]] ''direction'' || R || Returns 1 if the character can move in the given direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEE]] || R || Returns 1 if SRC can see the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEELOS]] || R || Returns 1 if SRC has line of sight to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEELOSFLAG]] ''flags'' || R || Returns 1 if SRC has line of sight to the character, with flags to modify what tests take place.&lt;br /&gt;
|-&lt;br /&gt;
| [[COLOR]] || RW || Gets or sets the character's hue.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONSUME]] ''resource_list'' || W || Removes specified resources from SRC's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[COUNT]] || R || Returns the number of items equipped to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[CREATE]] || RW || Gets or sets the character's age since creation, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[CRIMINAL]] || W || Sets whether or not the character is a criminal.&lt;br /&gt;
|-&lt;br /&gt;
| [[DAMAGE]] ''amount, type, source'' || W || Inflicts damage upon the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[DEX]] || RW || Gets or sets the character's total dexterity.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOG (Function)|DIALOG]] ''dialog_id, page, parameters'' || W || Displays a dialog to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGCLOSE]] ''dialog_id button'' || W || Closes a dialog that SRC has open, simulating a button press.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGLIST]]''.COUNT'' || R || Gets the number of number of dialogs currently considered to be visible on SRC's screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGLIST]]''.n.ID'' || R || Gets the ID of the nth dialog that SRC has open (zero-based).&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGLIST]]''.n.COUNT'' || R || Gets the number of instances of nth dialog SRC has open (zero-based).&lt;br /&gt;
|-&lt;br /&gt;
| [[DIR]] || RW || Gets or setes the direction that the character is facing.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISCONNECT]] || W || Disconnects the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISMOUNT]] || W || Dismounts the character from their ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISPIDDEC]] || R || Gets the ID of the character as a decimal number.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISTANCE]] ''point_or_uid'' || R || Gets the distance between this object and either SRC, a map location or another object.&lt;br /&gt;
|-&lt;br /&gt;
| [[DCLICK]] || W || Double clicks the character, with SRC as the source of the event.&lt;br /&gt;
|-&lt;br /&gt;
| [[DCLICK]] ''object_uid'' || W || Double clicks an object, with the character as SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[DRAWMAP]] ''radius'' || W || Starts the cartography skill, drawing a map of the local area up to ''radius'' tiles.&lt;br /&gt;
|-&lt;br /&gt;
| [[DROP]] ''item_uid'' || W || Drops a specified item at the character's feet.&lt;br /&gt;
|-&lt;br /&gt;
| [[DUPE]] || W || Creates a clone of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[EDIT]] || W || Displays an editing dialog for the character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[EFFECT]] ''type, item_id, speed, loop, explode, colour, rendermode'' || W || Displays an effect to nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[EMOTE]] ''message'' || W || Displays a *You see* message to all nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[EMOTEACT]] || RW || Gets, sets or toggles whether or not the character will emote all of its actions.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIP]] ''item_uid'' || W || Equips an item to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIPARMOR]] || W || Equips the character with the best armour in their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIPHALO]] ''timeout'' || W || Equips a halo light to the character, lasting for ''timeout'' tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIPWEAPON]] || W || Equips the character with the best weapon in their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVENTS (Property)|EVENTS]] ''event_defname'' || RW || Gets a list of events attached to the object, or adds or removes an event to or from the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[EXP]] || RW || Gets or sets the character's experience points.&lt;br /&gt;
|-&lt;br /&gt;
| [[FACE]] ''object_uid'' || W || Turns the character to face a specified object or SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[FAME]] || RW || Gets or sets the character's fame.&lt;br /&gt;
|-&lt;br /&gt;
| [[FAME]]''.fame_group'' || R || Returns 1 if the character's fame falls within the specified fame group.&lt;br /&gt;
|-&lt;br /&gt;
| [[FCOUNT]] || R || Returns the total number of items equipped to the character, including subitems&lt;br /&gt;
|-&lt;br /&gt;
| [[FLAGS]] || RW || Gets or sets the character's flags.&lt;br /&gt;
|-&lt;br /&gt;
| [[FIX]] || W || Re-aligns the character's Z level to ground level.&lt;br /&gt;
|-&lt;br /&gt;
| [[FIXWEIGHT]] || W || Recalculates the character's total weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLIP]] || W || Rotates the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[FONT]] || RW || Gets or sets the character's speech font.&lt;br /&gt;
|-&lt;br /&gt;
| [[FOOD]] || RW || Gets or sets the character's food level.&lt;br /&gt;
|-&lt;br /&gt;
| [[FORGIVE]] || W || Revokes the character's jailed status.&lt;br /&gt;
|-&lt;br /&gt;
| [[GO]] ''location'' || W || Teleports the character to the specified location.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOCHAR]] ''n'' || W || Teleports the character to the nth character in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOCHARID]] ''character_defname'' || W || Teleports the character to the next characer in the world with the specified [[BASEID]]&lt;br /&gt;
|-&lt;br /&gt;
| [[GOCLI]] ''n'' || W || Teleports the character to the nth online player. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GOITEMID]] ''item_defname'' || W || Teleports the character to the next item in the world with the specified [[BASEID]].&lt;br /&gt;
|-&lt;br /&gt;
| [[GOLD]] || RW || Gets or sets the amount of gold the character has.&lt;br /&gt;
|-&lt;br /&gt;
| [[GONAME]] ''name'' || W || Teleports the character to the next character or item in the world with the specified name, accepts wildcards (*).&lt;br /&gt;
|-&lt;br /&gt;
| [[GOSOCK]] ''socket'' || W || Teleports the character to the online player with the specified socket number.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOTYPE]] ''item_type'' || W || Teleports the character to the next item in the world with the specified [[TYPE]].&lt;br /&gt;
|-&lt;br /&gt;
| [[GOUID]] ''object_uid'' || W || Teleports the character to the object with the specified [[UID]].&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDABBREV]] || R || Returns the character's guild abbreviation.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEAR]] ''text'' || W || For NPCs, acts as if SRC had spoken the specified ''text''. For players, displays ''text'' as a system message.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEIGHT]] || R || Gets the character's height.&lt;br /&gt;
|-&lt;br /&gt;
| [[HITS]] || RW || Gets or sets the character's hitpoints.&lt;br /&gt;
|-&lt;br /&gt;
| [[HOME]] || RW || Gets or sets the character's home location.&lt;br /&gt;
|-&lt;br /&gt;
| [[HUNGRY]] || W || Displays this character's hunger level to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[INVIS]] || W || Sets whether or not the character is invisible.&lt;br /&gt;
|-&lt;br /&gt;
| [[INVUL]] || W || Sets whether or not the character is invulnerable.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISARMOR]] ''object_uid'' || R || Returns 1 if the object is armour.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCHAR]] || R || Returns 1 if the object is a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCONT]] || R || Returns 1 if the object is a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISDIALOGOPEN]] ''dialog_id'' || R || Returns 1 if SRC has the specified dialog visible on their screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISEVENT]]''.event_defname'' || R || Returns 1 if the object has an event attached to it.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISITEM]] || R || Returns 1 if the object is an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNEARTYPE]] ''type, distance, flags'' || R || Returns 1 if a nearby item has the given TYPE.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNEARTYPETOP]] ''type, distance, flags'' || R || Returns a nearby world location of a nearby item which has the given TYPE.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISPLAYER]] || R || Returns 1 if the object is a player.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISTEVENT]]''.event_defname'' || R || Returns 1 if the object has an event attached to its [[CHARDEF]].&lt;br /&gt;
|-&lt;br /&gt;
| [[ISWEAPON]] ''object_uid'' || R || Returns 1 if the object is a weapon.&lt;br /&gt;
|-&lt;br /&gt;
| [[ID]] || R || Gets the character's ID.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFO]] || W || Displays an information dialog about the character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT]] || RW || Gets or sets the character's total intelligence.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISGM]] || R || Returns 1 if the character is in GM mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISINPARTY]] || R || Returns 1 if the character is in a party.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISMYPET]] || R || Returns 1 if the character belongs to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISONLINE]] || R || Returns 1 if the character is considered to be online.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISSTUCK]] || R || Returns 1 if the character cannot walk in any direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISVENDOR]] || R || Returns 1 if the character is a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISVERTICALSPACE]] ''location'' || R || Returns 1 if the ceiling at the given location is high enough for the character to fit under.&lt;br /&gt;
|-&lt;br /&gt;
| [[JAIL]] ''cell'' || W || Sends the character to jail, to a specified jail cell.&lt;br /&gt;
|-&lt;br /&gt;
| [[KARMA]] || RW || Gets or sets the character's karma.&lt;br /&gt;
|-&lt;br /&gt;
| [[KARMA]]''.karma_group'' || R || Returns 1 if the character's karma falls within the specified karma group.&lt;br /&gt;
|-&lt;br /&gt;
| [[KILL]] || W || Kills the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[LEVEL]] || RW || Gets or sets the character's experience level.&lt;br /&gt;
|-&lt;br /&gt;
| [[LIGHT]] || RW || Gets or sets the character's personal light level.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAKEITEM]] ''item_defname, amount'' ||| W || Begins an attempt to craft the specified quantity of the given item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MANA]] || RW || Gets or sets the character's mana.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]] || RW || Gets or sets the map that this object is located.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXHITS]] || RW || Gets or sets the character's maximum hitpoints.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXMANA]] || RW || Gets or sets the character's maximum mana.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXSTAM]] || RW || Gets or sets the character's maximum stamina.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXWEIGHT]] || R || Returns the maximum weight that the character can carry.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMORY]]''.object_uid'' || RW || Gets or sets the memory flags the character has for the given object.&lt;br /&gt;
|-&lt;br /&gt;
| [[MENU (Function)|MENU]] ''menu_defname'' || W || Displays a menu to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MESSAGE]] ''message'' || W || Displays a message above this character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MESSAGEUA]] ''colour, talkmode, font, lang_id, message'' || W || Displays a UNICODE message above this character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODAR]] || RW || Gets or sets a modifier for the character's armour rating.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODDEX]] || RW || Gets or sets the character's dexterity modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODINT]] || RW || Gets or sets the character's intelligence modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODMAXWEIGHT]] || RW || Gets or sets the character's maximum weight modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODSTR]] || RW || Gets or sets the character's strength modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOUNT]] || R || Gets the UID of the character's mount.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOUNT]] ''mount_uid'' || W || Attempts to mount the character on to the specified mount.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVE]] ''direction'' || R || Returns the movement flags for the tile in the given direction (see can_flags in sphere_defs.scp).&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVE]] ''direction, amount''&amp;lt;br /&amp;gt; [[MOVE]] ''x y'' || W || Moves the object relative to its current position.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVENEAR]] ''object_uid, distance'' || W || Moves the character to a random location near another object within a certain distance.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVETO]] ''location'' || W || Moves the character to a specific location.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAME]] || RW || Gets or sets the character's name.&lt;br /&gt;
|-&lt;br /&gt;
| [[NEWBIESKILL]] ''skill_id'' || W || Distributes items that are associated with the specified skill, to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[NEWGOLD]] ''amount'' || W || Generates ''amount'' gold in the character's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[NEWLOOT]] ''item_or_template_defname'' || W || Generates the specified item or template into the character's backpack, providing that they are an NPC that hasn't been summoned.&lt;br /&gt;
|-&lt;br /&gt;
| [[NIGHTSIGHT]] || RW || Gets or sets whether or not the character has nightsight enabled.&lt;br /&gt;
|-&lt;br /&gt;
| [[NOTOGETFLAG]] ''viewer_uid, allow_incognito'' || RW || Gets the character's notoriety flags as seen by the specified viewer.&lt;br /&gt;
|-&lt;br /&gt;
| [[NPC]] || RW || Gets or sets the character's AI type.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGEDOWN]] ''amount'' || W || Decreases the character's Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGEUP]] ''amount'' || W || Increases the characer's Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[OBODY]] || RW || Gets or sets the character's original body.&lt;br /&gt;
|-&lt;br /&gt;
| [[OPENPAPERDOLL]] || W || Displays the character's paperdoll to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[OPENPAPERDOLL]] ''character_uid'' || W || Displays a specified character's paperdoll to this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[OSKIN]] || RW || Gets or sets the character's original colour.&lt;br /&gt;
|-&lt;br /&gt;
| [[ODEX]] || RW || Gets or sets the character's base dexterity (without modifiers).&lt;br /&gt;
|-&lt;br /&gt;
| [[OINT]] || RW || Gets or sets the character's base intelligence (without modifiers).&lt;br /&gt;
|-&lt;br /&gt;
| [[OSTR]] || RW || Gets or sets the character's base strength (without modifiers).&lt;br /&gt;
|-&lt;br /&gt;
| [[PACK]] || W || Opens the character's backpack for SRC to view.&lt;br /&gt;
|-&lt;br /&gt;
| [[POISON]] ''strength'' || W || Poisons the character, with the specified poison strength.&lt;br /&gt;
|-&lt;br /&gt;
| [[POLY]] ''character_id'' || W || Begins casting the polymorph spell, with ''character_id'' being the character to turn into.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROMPTCONSOLE]] ''function, prompt_message'' || W || Displays a prompt message to SRC and passes their response into a specified function.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROMPTCONSOLEU]] ''function, prompt_message'' || W || Displays a prompt message to SRC and passes their response into a specified function, supporting UNICODE response.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRIVSET]] ''plevel'' || W || Sets the PLEVEL of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[RANGE]] || R || Gets the combat range of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[RELEASE]] || W || Clears the character's owners.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVE]] ''allow_player_removal'' || W || Deletes the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVEFROMVIEW]] || W || Removes the object from nearby clients' screens.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESCOLD]] || RW || Gets or sets the character's resistance to cold.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESCOUNT]] ''item_defname'' || R || Returns the total amount of a specific item equipped to the character or inside their baackpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESENDTOOLTIP]] || W || Forces Sphere to update the tooltips for nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESENERGY]] || RW || Gets or sets the character's resistance to energy.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESFIRE]] || RW || Gets or sets the character's resistance to fire.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESPOISON]] || RW || Gets or sets the character's resistance to poison.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTEST]] ''item_list'' || R || Returns 1 if all of the items in the list can be found equipped to the character or inside their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESURRECT]] ''force'' || W || Resurrects the character. If ''force'' is 1 then usual anti-magic checks are bypasses.&lt;br /&gt;
|-&lt;br /&gt;
| [[SALUTE]] ''object_uid'' || W || Makes the character salute a specified object or SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAY]] ''message'' || W || Makes the character speak a message.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAYU]] ''message'' || W || Makes the character speak a UTF-8 message&lt;br /&gt;
|-&lt;br /&gt;
| [[SAYUA]] ''colour, talkmode, font, lang_id, text'' || W || MAkes the character speak a UNICODE message.&lt;br /&gt;
|-&lt;br /&gt;
| [[SDIALOG]] ''dialog_id, page, parameters'' || W || Displays a dialog to SRC, providing that it is not already open.&lt;br /&gt;
|-&lt;br /&gt;
| [[SERIAL]] || R || Gets the item's unique ID in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[SEX]] ''value_male:value_female'' || R || Returns ''value_male'' or ''value_female'' depending on the character's gender.&lt;br /&gt;
|-&lt;br /&gt;
| [[SEXTANTP]] ''location'' || R || Converts the character's location or a specified location into sextant coordinates.&lt;br /&gt;
|-&lt;br /&gt;
| ''skill_name'' || RW || Gets or sets the character's skill level in ''skill_name''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILL (Function)|SKILL]] || W || Begins using a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLCHECK]] ''skill_id, difficulty'' || R || Performs a check for skill success, returning 1 if the attempt was successful.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLBEST]]''.n'' || R || Returns the ID of the character's nth highest skill (0 = Highest)&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLGAIN]] ''skill, difficulty'' || W || Invokes Sphere's skill gain for the specified skill, with the given difficulty (0-100)&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTEST]] ''skill_list'' || R || Returns 1 if the character possess all of the skills in the list.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] || R || Returns the total value of all the character's skills.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] ''skill_group'' || R || Returns the total value of all the character's skills with the specified group flag(s).&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] ''-amount'' || R || Returns the total value of all the character's skills that are under ''amount''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] ''+amount'' || R || Returns the total value of all the character's skills that are over ''amount''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLUSEQUICK]] ''skill_id, difficulty'' || R || Quickly uses a skill, returning 1 if the attempt was successful.&lt;br /&gt;
|-&lt;br /&gt;
| [[SLEEP]] ''fall_forwards'' || W || Makes the character appear to sleep.&lt;br /&gt;
|-&lt;br /&gt;
| [[SOUND]] ''sound_id, repeat'' || W || Plays a sound from this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELLEFFECT]] ''spell_id, strength, source_character_uid, source_item_uid'' || W || Causes the character to be affected by a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[STAM]] || RW || Gets or sets the character's stamina.&lt;br /&gt;
|-&lt;br /&gt;
| [[STONE]] || RW || Gets or sets whether or not the character is trapped in stone.&lt;br /&gt;
|-&lt;br /&gt;
| [[STR]] || RW || Gets or sets the character's total strength.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUICIDE]] || W || Forces the character to commit suicide.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUMMONCAGE]] || W || Teleports the character to SRC's, surrounded by a cage multi.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUMMONTO]] || W || Teleports the character to SRC's position.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAG]]''.name'' || RW || Gets or sets the value of a TAG.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index'' || R || Gets a TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.KEY || R || Gets the name of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.VAL || R || Gets the value of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGCOUNT]] || R || Gets the number of TAGs stored on the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGLIST]] || W || Outputs a list of the object's TAGs.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGET]]''FGMW'' ''function'' || W || Displays a targeting cursor to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMER]] || RW || Gets or sets the length of time before the item's timer expires, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERD]] || RW || Gets or sets the length of time before the item's timer expires, in tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERF]] ''time, function'' || W || Scheduled a function to be executed on this object in ''time'' seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERF]] CLEAR || W || Clears all scheduled functions from the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[TITLE]] || RW || Gets or sets the character's title.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWNABBREV]] || R || Returns the character's town abbreviation.&lt;br /&gt;
|-&lt;br /&gt;
| [[TRIGGER]] ''trig_name, trig_type'' || R || Fires a custom trigger and returns the RETURN value.&lt;br /&gt;
|-&lt;br /&gt;
| [[UID]] || R || Gets the item's unique ID in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNDERWEAR]] || W || Toggles the display of underwear on the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNEQUIP]] ''item_uid'' || W || Unequips an item from the character, placing it in their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[UPDATE]] || W || Updates the state of the character to nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[UPDATEX]] || W || Updates the state of the character to nearby clients, removing it from their view first to ensure a full refresh.&lt;br /&gt;
|-&lt;br /&gt;
| [[USEITEM]] || W || Double clicks the character, with SRC as the source of the event, without checking for line of sight.&lt;br /&gt;
|-&lt;br /&gt;
| [[USEITEM]] ''object_uid'' || W || Double clicks an object, with the character as SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[VISUALRANGE]] || RW || Gets or sets the character's sight range.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEIGHT]] || R || Gets the weight of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[WHERE]] || W || Describes the character's location to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[Z]] || R || Gets the Z position of the character.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
Here is a list of all character triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@AfterClick]] || Fires when the object has been single-clicked, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Attack]] || Fires when the character begins attacking another.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CallGuards]] || Fires when the character calls for guards.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharAttack]] || Fires when the character is attacked by another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharClick]] || Fires when the character is clicked by another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharClientTooltip]] || Fires when the tooltips are about to be sent to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharDClick]] || Fires when the character double clicks another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharTradeAccepted]] || Fires when another character accepts trade with the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Click]] || Fires when the object has been single-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ClientTooltip]] || Fires when tooltips for this character are about to be sent to a client.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuRequest]] || Fires when a client requests the context menu options for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuSelect]] || Fires when a client selects a context menu option for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Create]] || Fires when the object is initially created, before it is placed in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Criminal]] || Fires when the character becomes a criminal.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DClick]] || Fires when the object is double-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Death]] || Fires when the character's hitpoints reaches zero.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DeathCorpse]] || Fires when a corpse is created for the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Destroy]] || Fires when the object is being deleted.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Dismount]] || Fires when the character dismounts their ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[@EnvironChange]] || Fires when the environment changes for the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ExpChange]] || Fires when the character's experience points change.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ExpLevelChange]] || Fires when the character's experience level changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@FameChange]] || Fires when the character's fame changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@GetHit]] || Fires when the character receives damage.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Hit]] || Fires when the character hits another in combat.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HitMiss]] || Fires when the character fails to hit another in combat.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HitTry]] || Fires when the character tries to hit another in combat.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HouseDesignCommit]] || Fires when the character commits a new house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HouseDesignExit]] || Fires when the character exits house design mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Hunger]] || Fires when the character's food level decreases.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemAfterClick]] || Fires when the character single-clicks an item, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemBuy]] || Fires when the character buys an item from a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemClick]] || Fires when the character single-clicks an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemClientTooltip]] || Fires when the tooltips are about to be sent to the client for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemContextMenuRequest]] || Fires when the character requests the context menu options for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemContextMenuSelect]] || Fires when the character selects a context menu option for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemCreate]] || Fires when an item is initially created, before it is placed in the world, and the character is in some way responsible for it.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDamage]] || Fires when the character damages an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDClick]] || Fires when the character double-clicks an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Char]] || Fires when the character drops an item on to a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Ground]] || Fires when the character drops an item on to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Item]] || Fires when the character drops an item on to another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Self]] || Fires when the character drops an item inside another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemEquip]] || Fires when the character equips an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemEquipTest]] || Fires when the characer is about to equip an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Ground]] || Fires when the character picks an item up from the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Pack]] || Fires when the character picks an item up from inside a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Self]] || Fires when the character picks an item up from inside another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Stack]] || Fires when the character picks up an item from a stack.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemSell]] || Fires when the character sells an item to a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemSpellEffect]] || Fires when the character hits an item with a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemStep]] || Fires when the character steps on an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Cancel]] || Fires when the character cancels an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Char]] || Fires when the character targets a character with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Ground]] || Fires when the character targets the ground with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Item]] || Fires when the character targets an item with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemToolTip]] || Fires when the character requests old-style tooltips for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemUnEquip]] || Fires when the character unequips an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Jailed]] || Fires when the character is sent to jail.&lt;br /&gt;
|-&lt;br /&gt;
| [[@KarmaChange]] || Fires when the character's karma changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Kill]] || Fires when the character kills another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Login]] || Fires when the character logs in.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Logout]] || Fires when the character logs out.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Mount]] || Fires when the character mounts a ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[@MurderDecay]] || Fires when one of the character's kills is about to decay.&lt;br /&gt;
|-&lt;br /&gt;
| [[@MurderMark]] || Fires when the character is about to gain a kill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCAcceptItem]] || Fires when the NPC receives an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCActFight]] || Fires when the NPC makes a combat decision.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCActFollow]] || Fires when the NPC follows another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCAction]] || Fires when the NPC is about to perform an AI action.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCHearGreeting]] || Fires when the NPC hears a character for the first time.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCHearUnknown]] || Fires when the NPC hears something they don't understand.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLookAtChar]] || Fires then the NPC looks at a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLookAtItem]] || Fires when the NPC looks at an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLostTeleport]] || Fires when the NPC is lost and is about to be teleported back to their [[HOME]].&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCRefuseItem]] || Fires when the NPC refuses an item being given to them.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCRestock]] || Fires when the NPC is having their items restocked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSeeNewPlayer]] || Fires when the NPC first sees a player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSeeWantItem]] || Fires when the NPC sees an item they want.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSpecialAction]] || Fires when the NPC is about to perform a special action (leaving fire trail, dropping web).&lt;br /&gt;
|-&lt;br /&gt;
| [[@PersonalSpace]] || Fires when the character is stepped on.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PetDesert]] || Fires when the character deserts its owner.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Profile]] || Fires when a player attempts to read the character's profile from the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ReceiveItem]] || Fires when the NPC receives an item from another character, before they decide if they want it or not.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegionEnter]] || Fires when the character enters a region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegionLeave]] || Fires when the character leaves a region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Rename]] || Fires when the character renames another.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SeeCrime]] || Fires when the character sees a crime take place.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillAbort]] || Fires when the character aborts a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillChange]] || Fires when the character's skill level changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillFail]] || Fires when the character fails a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillGain]] || Fires when the character has a chance to gain in a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillMakeItem]] || Fires when the character crafts an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillMenu]] || Fires when a skill menu is shown to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillPreStart]] || Fires when the character starts a skill, before any hardcoded action takes place.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillSelect]] || Fires when the character selects a skill on their skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillStart]] || Fires when the character starts a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillSuccess]] || Fires when the character succeeds at a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillUseQuick]] || Fires when the character quickly uses a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellBook]] || Fires when the character opens their spellbook.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellCast]] || Fires when the character casts a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellEffect]] || Fires when the character is hit by the effects of a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellFail]] || Fires when the character fails to cast a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellSelect]] || Fires when the character selects a spell to cast.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellSuccess]] || Fires when the character successfully casts a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@StatChange]] || Fires when the character's STR, DEX or INT is changed through skill gain.&lt;br /&gt;
|-&lt;br /&gt;
| [[@StepStealth]] || Fires when the character takes a step whilst hidden.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ToolTip]] || Fires when a player requests old-style tooltips for this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TradeAccepted]] || Fires when the character accepts a trade with another player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserBugReport]] || Fires when the player submits a bug report.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserChatButton]] || Fires when the player presses the Chat button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserExtCmd]] || Fires when the player sends an extended command packet. (used by some macros)&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserExWalkLimit]] || Fires when the player's movement is restricted by the movement speed settings in Sphere.ini&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserGuildButton]] || Fires when the player presses the Guild button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserKRToolbar]] || Fires when the player presses a button on the toolbar.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserMailBag]] || Fires when the player drags the mail bag on to another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserQuestArrowClick]] || Fires when the player clicks the quest arrow.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserQuestButton]] || Fires when the player presses the Quest button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserSkills]] || Fires when the player opens their skill menu, or a skill update is sent to the player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserSpecialMove]] || Fires when the player uses a special move.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserStats]] || Fires when the player opens the status window.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserVirtue]] || Fires when the player presses on the Virtue button.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserVirtueInvoke]] || Fires when the player invokes a virtue through macros.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserWarmode]] || Fires when the player switches between war and peace mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Players==&lt;br /&gt;
Characters that are attached to an account become Player Characters. In addition to the basic character references, properties and functions they also receive the following:&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILD]] || R || Gets the [[Special Items#Guild.2FTown_Stones|guild stone]] that the player belongs to.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLCLASS (Reference)|SKILLCLASS]] || RW || Gets or sets the player's [[SKILLCLASS|skillclass]].&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWN]] || R || Gets the [[Special Items#Guild.2FTown_Stones|town stone]] that the player belongs to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all player properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[CURFOLLOWER]] || RW || Gets or sets the number of current followers the player has,&lt;br /&gt;
|-&lt;br /&gt;
| [[DEATHS]] || RW || Gets or sets the number of times the player has died.&lt;br /&gt;
|-&lt;br /&gt;
| [[DSPEECH]] ''+/-speech_id'' || RW || Gets a list of attached speech handlers, or adds or removes a speech handler to or from the player.&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n.DELETE'' || W || Deletes the nth GM page. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n.HANDLE'' || W || Sets the player as the handler for the nth GM page. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n.key'' || W || Executes the .page command with ''key'' as the arguments.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISDSPEECH]]''.speech_id'' || R || Returns 1 if the player has the given speech handler attached.&lt;br /&gt;
|-&lt;br /&gt;
| [[KICK]] || W || Disconnects and blocks the player's account.&lt;br /&gt;
|-&lt;br /&gt;
| [[KILLS]] || RW || Gets the number of murders the player has committed.&lt;br /&gt;
|-&lt;br /&gt;
| [[KRTOOLBARSTATUS]] || RW || Gets or sets whether or not the KR toolbar is enabled for this player.&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTUSED]] || RW || Gets the length of time since the player was last attached to a client, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[LUCK]] || RW || Gets or sets the luck value for the player.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXFOLLOWER]] || RW || Gets or sets the maximum number of followers the player can have.&lt;br /&gt;
|-&lt;br /&gt;
| [[PASSWORD]] || W || Sets or clears the player's password.&lt;br /&gt;
|-&lt;br /&gt;
| [[PFLAG]] || RW || Gets or sets the player's PFLAG value.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROFILE]] || RW || Gets or sets the text to display on the player's profile.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLLOCK]]''.skill_id'' || RW || Gets or sets the lock state of the player's skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPEEDMODE]] || RW || Gets or sets the speed that the player moves at. (0=Normal, 1=Double Speed on Foot, 2=Always walk, 3=Always Run on Foot/Always Walk on Mount)&lt;br /&gt;
|-&lt;br /&gt;
| [[STATLOCK]]''.stat_id || RW || Gets or sets the lock state of the player's STR, DEX or INT.&lt;br /&gt;
|-&lt;br /&gt;
| [[TITHING]] || RW || Gets or sets the number of tithing points the player has.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NPCs==&lt;br /&gt;
Characters that are not attached to an account are NPCs and are controlled by Sphere's AI. In addition to the basic character references, properties and functions they also receive the following:&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all NPC properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTPRI]] || RW || Gets or sets the NPC's motivation towards their current action.&lt;br /&gt;
|-&lt;br /&gt;
| [[BUY]] || W || Displays the shop window to SRC, in buy mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYE]] || W || Ends the NPC's current action.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLEE]] ''distance'' || W || Begins moving the NPC away from its current location.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOTO]] ''location'' || W || Begins moving the NPC towards the specified location.&lt;br /&gt;
|-&lt;br /&gt;
| [[HIRE]] || W || Begins the hiring process between the NPC and SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[LEAVE]] ''distance'' || W || Begins moving the NPC away from its current location.&lt;br /&gt;
|-&lt;br /&gt;
| [[NPC]] || RW || Gets or sets the NPC's AI type.&lt;br /&gt;
|-&lt;br /&gt;
| [[HOMEDIST]] || RW || Gets or sets the distance that the NPC can wander from its [[HOME]] position.&lt;br /&gt;
|-&lt;br /&gt;
| [[PETRETRIEVE]] || W || Enables SRC to retrieve their stabled pets from the NPC.&lt;br /&gt;
|-&lt;br /&gt;
| [[PETSTABLE]] || W || Enables SRC to stable their pet with the NPC.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTOCK]] ''force'' || W || Clears all of the NPC's stock, repopulating it when it is next accessed (or immediately if ''force''=1)&lt;br /&gt;
|-&lt;br /&gt;
| [[RUN]] ''direction'' || W || Forces the NPC to run one tile in the specified direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[SELL]] || W || Displays the shop window to SRC, in sell mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHRINK]] || W || Shrinks the NPC into a figurine item.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPEECH]] ''+/-speech_id'' || RW || Gets the list of speech handlers attached to the NPC, or adds or removes a speech handler to or from the NPC.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPEECHCOLOR]] || RW || Gets or sets the colour of the NPC's speech.&lt;br /&gt;
|-&lt;br /&gt;
| [[TRAIN]] ''skill'' || W || Initiates training between the NPC and SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[VENDCAP]] || RW || Gets or sets the amount of gold a vendor will restock to.&lt;br /&gt;
|-&lt;br /&gt;
| [[VENDGOLD]] || RW || Gets or sets the amount of gold a vendor has.&lt;br /&gt;
|-&lt;br /&gt;
| [[WALK]] ''direction'' || W || Forces the NPC to walk one tile in the specified direction.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Clients==&lt;br /&gt;
When a client is controlling a character, the following references, properties and functions will be available:&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGEP]] || R || Gets the [[GM Pages|GM page]] that the client is currently handling.&lt;br /&gt;
|-&lt;br /&gt;
| [[HOUSEDESIGN]] || R || Gets the [[Special Items#Customizable Multis|building]] that is currently being designed by the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[PARTY]] || R || Gets the [[Parties|party]] that the client is a member of.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARG]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that the client has targeted.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGP]] || RW || Gets or sets the [[Map Points|location]] that the client has targeted.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGPROP]] || RW || Gets or sets the character whose skills are shown in the client's skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGPRV]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that the client previously targeted.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all client properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ADD]] ''item_defname'' || W || Prompts the client to target a location to add the specified item at.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDBUFF]] ''icon, cliloc1, cliloc2, time, arg1, arg2, arg3'' || W || Displays a buff icon in the client's buff icon bar.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDCLILOC]] ''cliloc, args'' || W || Adds a cliloc to the tooltip being sent to the client. Only valid in @ClientTooltip triggers.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDCONTEXTENTRY]] ''entry_id, cliloc, flags, colour'' || W || Adds an entry to the context menu being sent to the client. Only valid in @ContextMenuRequest triggers.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLMOVE]] || RW || Gets or sets whether or not the client has ALLMOVE privileges.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLSHOW]] || RW || Gets or sets whether or not the client is able to see disconnected characters.&lt;br /&gt;
|-&lt;br /&gt;
| [[ARROWQUEST]] ''x, y'' || W || Displays an arrow on the client's screen that points to the specified world coordinates.&lt;br /&gt;
|-&lt;br /&gt;
| [[BADSPAWN]] || W || Teleports the client to the first invalid spawn point in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[BANKSELF]] || W || Opens up the client's bankbox.&lt;br /&gt;
|-&lt;br /&gt;
| [[CAST]] ''spell_id' || W || Begins casting a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[CHARLIST]] || W || Displays the client's character list screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARCTAGS]] || W || Removes all of the client's CTAGs.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTIS3D]] || R || Returns 1 if the client is using the 3D client.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTISKR]] || R || Returns 1 if the client is using the KR client.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTVERSION]] || R || Gets the client version the client is using, based on the encryption keys being used (unencrypted clients return 0).&lt;br /&gt;
|-&lt;br /&gt;
| [[CTAG]] || RW || Gets or sets the value of a CTAG.&lt;br /&gt;
|-&lt;br /&gt;
| [[CTAGLIST]] || W || Displays a list of the client's CTAGs to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[CTAGLIST]] LOG || W || Displays a list of the client's CTAGs on the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[DEBUG]] || RW || Gets or sets whether or not the client is in debug mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[DETAIL]] || RW || Gets or sets whether or not the client receives additional detail, such as combat messages.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVERBTARG]] ''command'' || W || Prompts the client to enter a command, or arguments to the command if specified. The complete command with arguments is then executed on TARG.&lt;br /&gt;
|-&lt;br /&gt;
| [[EXTRACT]] ''file, template_id'' || W || Extracts static items from a targeted area on the map and saves them into the specified file.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLUSH]] || W || Forces queued network data to be immediately sent to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[GM]] || RW || Gets or sets whether or not the client is in GM mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]] ''ADD message'' || W || Sends a GM page from the client with the specified message, or if no arguments provided will prompt the client for a message.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOTARG]] || W || Teleports the client to their targeted item.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEARALL]] || RW || Gets or sets whether or not the client can hear all player speech regardless of location.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFO]] || W || Displays an information dialog to the client for an object they target.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFORMATION]] || W || Displays server information to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[LAST]] || W || Forces the client to target the object referenced by [[ACT]].&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTEVENT]] || RW || Returns the time when data was last received from the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[LINK]] || W || Allows the client to target two objects to link them together.&lt;br /&gt;
|-&lt;br /&gt;
| [[MENU (Function)|MENU]] ''menu_id'' || W || Displays a menu to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[MIDILIST]] ''music1, music2, ...'' || W || Selects a random music id from the given list and tells the client to play it.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGE]] ''dx, dy, dz'' || W || Allows the client to nudge an area of items by the given coordinates, relative to the items' position.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUKE]] ''command'' || W || Allows the client to execute ''command'' on all items in a targeted area.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUKECHAR]] ''command'' || W || Allows the client to execute ''command'' on all NPCs in a targeted area.&lt;br /&gt;
|-&lt;br /&gt;
| [[PAGE]] || W || Displays the GM page menu to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRIVSHOW]] || W || Gets or sets whether or not the client's privilege level should show in their name.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVEBUFF]] ''icon'' || W || Removes a buff icon from the client's buff icon bar.&lt;br /&gt;
|-&lt;br /&gt;
| [[REPAIR]] || W || Prompts the client to target an item for them to repair.&lt;br /&gt;
|-&lt;br /&gt;
| [[REPORTEDCLIVER]] || R || Gets the client version the client is using, based on what it has identified itself as to the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[REPORTEDCLIVER]].FULL || R || Gets the client version the client is using, based on what it has identified itself as to the server, including the 4th digit.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESEND]] || W || Forces a full refresh of the client's screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVE]] ''immediate'' || W || Begins a world save. If background saving is enabled then ''[[SAVE]] 1'' will force a foreground save.&lt;br /&gt;
|-&lt;br /&gt;
| [[SCREENSIZE]] || R || Gets the client's screen size. (width,height)&lt;br /&gt;
|-&lt;br /&gt;
| [[SCREENSIZE]].X || R || Gets the width of the client's screen size.&lt;br /&gt;
|-&lt;br /&gt;
| [[SCREENSIZE]].Y || R || Gets the height of the client's screen size.&lt;br /&gt;
|-&lt;br /&gt;
| [[SCROLL]] ''scroll_id'' || W || Displays a message scroll to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SELF]] || W || Forces the client to target itself.&lt;br /&gt;
|-&lt;br /&gt;
| [[SENDPACKET]] ''data'' || W || Sends a raw data packet to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SET]] ''command'' || W || Prompts the client to target an object to execute ''command'' on.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHOWSKILLS]] || W || Refreshes the client's skills for the skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLMENU (Function)|SKILLMENU]] ''skillmenu_id'' || W || Displays a skillmenu to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLSELECT]] ''skill_id'' || W || Simulates the client selecting a skill from their skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUMMON]] ''character_id'' || W || Casts the summon spell, with ''character_id'; being the character to summon.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGE]] ''text'' || W || Displays a system message to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGELOC]] ''hue, cliloc, args'' || W || Displays a localized system message to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGELOCEX]] ''hue, cliloc, flags, affix, args'' || W || Displays a localized system message to the client with affixed text.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGEUA]] ''hue, font, mode, language, text'' || W || Displays a UNICODE system message to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGTXT]] || RW || Gets or sets the client's target text.&lt;br /&gt;
|-&lt;br /&gt;
| [[TELE]] || W || Casts the teleport spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[TILE]] ''z, item1, item2, ...'' || W || Tiles the ground within a targeted area with the listed items, at the given Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNEXTRACT]] ''file'' || W || Unextracts previously extracted statics, as dynamic items at a targeted location.&lt;br /&gt;
|-&lt;br /&gt;
| [[VERSION]] || W || Displays the server description to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEBLINK]] ''url'' || W || Opens the client's web browser to send them to the specified url.&lt;br /&gt;
|-&lt;br /&gt;
| [[X]]''command'' || W || Prompts the client to target an object to execute ''command'' on.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=@HitTry&amp;diff=533</id>
		<title>@HitTry</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=@HitTry&amp;diff=533"/>
				<updated>2010-02-21T18:49:20Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Created page with '==Description== This trigger fires when a character is about to swing their weapon or fist using a combat skill.   Fires on: * Characters   ==References== The following objec...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
This trigger fires when a character is about to swing their weapon or fist using a combat skill.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fires on:&lt;br /&gt;
* [[Characters]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
The following object references are explicitly available for this trigger:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ARGO]] || The [[Items|weapon]] being used (can be nothing, if fists are used).&lt;br /&gt;
|-&lt;br /&gt;
| [[I]] || The [[Characters|character]] doing the hitting.&lt;br /&gt;
|-&lt;br /&gt;
| [[SRC]] || The [[Characters|character]] being hit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Arguments==&lt;br /&gt;
The following arguments are set for this trigger. If an argument is marked as &amp;quot;In&amp;quot; then a value will be passed in to the trigger, if an argument is marked as &amp;quot;Out&amp;quot; then it can be set to a value to affect Sphere's behaviour:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Argument''' || '''In/Out''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| ARGN1 || IO || The time, in tenths of a second, until the swing will complete.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Return Values==&lt;br /&gt;
The following return values are explicitly defined for this trigger:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Return Value''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Prevents the combat swing.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Triggers]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Server&amp;diff=532</id>
		<title>Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Server&amp;diff=532"/>
				<updated>2010-02-21T18:43:09Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
The server object is a global object that can be accessed from any script, by using the SERV reference. The following tables detail the various properties of the server in SphereServer:&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
References return pointers to other objects (e.g. the CHAR.n reference allows you to access the characters that are attached to the account). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]]''.n'' || R || Gets the nth [[Accounts|account]] on the server. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]]''.name'' || R || Gets the [[Accounts|account]] with the specified name.&lt;br /&gt;
|-&lt;br /&gt;
| [[AREA]]''.defname'' || R || Gets the [[Regions|region]] with the specified defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[CHARDEF (Reference)|CHARDEF]]''.defname'' || R || Gets the [[CHARDEF|character definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENT]]''.n'' || R || Gets the nth [[Characters#Clients|client]] on the server.&amp;lt;br /&amp;gt;'''Note:''' The nth client may not be an ingame player character, &amp;amp;lt;CLIENT.n&amp;amp;gt; first as it returns 1 for ingame clients and 0 for non-player clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n'' || R || Gets the nth [[GM Pages|GM page]] on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDSTONES]]''.n'' || R || Gets the nth [[Special Items#Guild.2FTown_Stones|guild stone]] on the server. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ITEMDEF (Reference)|ITEMDEF]]''.defname'' || R || Gets the [[ITEMDEF|item definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTNEWCHAR]] || R || Gets the last [[Characters|character]] created on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTNEWITEM]] || R || Gets the last [[Items|item]] created on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]]''(x, y, map)''&amp;lt;br /&amp;gt;[[MAP]]''(x, y, z, map)'' || R || Gets the [[Map Points|map point]] for a specified location.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGIONRESOURCE (Reference)|REGIONRESOURCE]]''.defname'' || R || Gets the [[REGIONRESOURCE|region resource definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGIONTYPE (Reference)|REGIONTYPE]]''.defname'' || R || Gets the [[REGIONTYPE|region type definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROOM (Reference)|ROOM]]''.defname'' || R || Gets the [[Rooms|room]] with the specified defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILL (Reference)|SKILL]]''.defname'' || R || Gets the [[SKILL|skill definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLCLASS (Reference)|SKILLCLASS]]''.defname'' || R || Gets the [[SKILLCLASS|skillclass]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPAWN (Reference)|SPAWN]]''.defname'' || R || Gets the [[SPAWN|spawn group]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELL (Reference)|SPELL]]''.defname'' || R || Gets the [[SPELL|spell definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELL (Reference)|SPELL]]''.n'' || R || Gets the nth [[SPELL|spell definition]], ordered by skill requirements (1-based, ascending).&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWNSTONES]]''.n'' || R || Gets the nth [[Special Items#Guild.2FTown_Stones|town stone]] on the server. (zero-based)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Properties and Functions==&lt;br /&gt;
Here is a list of all item properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples. Settings from Sphere.ini can also be accessed from the server object, but they are not listed in this table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] ADD ''name password'' || W || Creates an account with the specified name and password.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] ADDMD5 ''name hash'' || W || Creates an account with the specified name and MD5 password hash.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] BLOCKED ''days command'' || W || Executes ''command'' on all accounts that have been unused for ''days'' days and are currently blocked.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] JAILED ''days command'' || W || Executes ''command'' on all accounts that have been unused for ''days'' days and are currently jailed.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] UNUSED ''days command'' || W || Executes ''command'' on all accounts that have been unused for ''days'' days.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] UPDATE || W || Saves the accounts to file.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] ''name command'' || W || Executes ''command'' on the account with the specified name.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNTS]] || RW || Gets or sets the number of accounts on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLCLIENTS]] ''command'' || W || Executes ''command'' on all online player characters.&lt;br /&gt;
|-&lt;br /&gt;
| [[B]] ''message'' || W || Broadcasts ''message'' to all clients on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[BLOCKIP]] ''address, time'' || W || Blocks an IP address for ''time'', in tenths of a second (-1 = permanent).&lt;br /&gt;
|-&lt;br /&gt;
| [[CHARS]] || RW || Gets or sets the number of characters on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARLISTS]] ''mask'' || W || Removes all LISTs whose name contains ''mask''.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARVARS]] ''prefix'' || W || Removes all VARs that start with the given prefix.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTS]] || R || Gets the total number of connected clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONSOLE]] ''command'' || W || Executes ''command'' as if it had been typed directly into the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[EXPORT]] ''file, flags, distance'' || W || Exports all objects within ''distance'' tiles of SRC to a file. (Flags: 1 = Items, 2 = Characters, 3 = Both)&lt;br /&gt;
|-&lt;br /&gt;
| [[GARBAGE]] || W || Forces an immediate garbage collection (checks for invalid objects and fixes them if possible, or else removes them).&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGES]] || R || Returns the total number of GM pages.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDS]] || R || Returns the total number of guild ''and'' town stones.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDSTONES]].COUNT || R || Returns the total number of guild stones on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEARALL]] || RW || Gets or sets whether player speech is logged to server console and log file.&lt;br /&gt;
|-&lt;br /&gt;
| [[IMPORT]] ''file, flags, distance'' || W || Imports previously exported items that were within ''distance'' tiles. (Flags: 1 = Items, 2 = Characters, 3 = Both)&lt;br /&gt;
|-&lt;br /&gt;
| [[INFORMATION]] || W || Displays server information to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[ITEMS]] || RW || Gets or sets the number of items on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOAD]] ''file'' || W || Loads a script file.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOG]] ''message'' || W || Logs ''message'' to server console and logs.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOOKUPSKILL]] ''skill_name'' || R || Looks up a skill name or key, and returns its skill number.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]]''.map_num.ALLSECTORS command'' || W || Executes ''command'' on all sectors of a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num'' || R || Returns 1 if ''map_num'' is a valid map number.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.BOUND.X || R || Returns the maximum X coordinate for a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.BOUND.Y || R || Returns the maximum Y coordinate for a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.CENTER.X || R || Returns the central X coordinate of a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.CENTER.Y || R || Returns the central Y coordinate of a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.COLS || R || Returns the number of sector columns on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.QTY || R || Returns the number of sectors on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.ROWs || R || Returns the number of sector rows on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.SIZE || R || Returns the size of the sectors on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEM]] || R || Returns the total amount of memory being used, in kilobytes.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRINTLISTS]] ''LOG'' || W || Displays a list of all LISTs to SRC, or the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]0 || RW || Gets or sets the length of time it takes for characters to regenerate 1 health point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]1 || RW || Gets or sets the length of time it takes for characters to regenerate 1 mana point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]2 || RW || Gets or sets the length of time it takes for characters to regenerate 1 stamina point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]3 || RW || Gets or sets the length of time it takes for characters to lose 1 food point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESPAWN]] || W || Respawns all dead NPCs (not corpses) in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTOCK]] || W || Restocks all NPCs in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTORE]] ''file, account_name, character_name'' || W || Restores a player character from a backup save.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESYNC]] || W || Checks all script files for any changes made since they were last loaded.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTICKS]] || R || Returns the real-world time, as a timestamp.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTICKS]].FORMAT ''timestamp, format'' || R || Returns the real-world timestamp as a formatted datetime string.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTICKS]].FROMTIME ''year, month, day, hour, minutes, seconds'' || R || Returns the specified real-world time, as a timestamp.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTIME]] || R || Returns the real-world time, as a formatted string.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTIME]].FORMAT ''format'' || R || Returns the real-world time, as a formatted string.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVE]] ''force_immediate'' || W || Begins a world save. If background saving is enabled, ''force_immediate'' can be used to force a foreground save.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVECOUNT]] || R || Returns the number of world saves that have taken place.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVESTATICS]] || W || Performs a statics save.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHRINKMEM]] || W || Temporarily reduces memory usage.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHUTDOWN]] ''time'' || W || Schedules a server shutdown in ''time'' minutes.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIME]] || R || Returns the total server uptime, in tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWNSTONES]].COUNT || R || Returns the total number of town stones on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNBLOCKIP]] ''address'' || W || Unblocks a previously blocked IP address.&lt;br /&gt;
|-&lt;br /&gt;
| [[VARLIST]] ''LOG'' || W || Displays a list of all VARs to SRC, or the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[VERSION]] || R || Returns the SphereServer version.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=SPAWN&amp;diff=531</id>
		<title>SPAWN</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=SPAWN&amp;diff=531"/>
				<updated>2010-02-21T18:41:35Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Instead of setting the MORE1 property of a spawn to a single [[Characters|character]] defname, a spawn group can be used instead so that a random character is spawned. A spawn group contains a set of character defnames, with optional weights to affect their chances of spawning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
The syntax for defining a spawn group is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
[SPAWN ''defname'']&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=''character_defname_1'' ''weight''&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=''character_defname_2'' ''weight''&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=''character_defname_3'' ''weight''&amp;lt;br /&amp;gt;&lt;br /&gt;
''etc..''&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The weight parameter can be used to make a defname more likely to be selected than the other defnames in the group. With a weight of 10 for example, a defname would be 10 times more likely to be selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
The following properties are available when defining a spawn group:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[CALCMEMBERINDEX]] || R || Selects a defname from the spawn group at random, and returns its zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[DEFNAME]] || W || Sets the spawn group's defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[ID]] ''defname'' ''weight'' || W || Adds a defname to the spawn group with the specified weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESOURCES]] || R || Gets a list of defnames contained in the spawn group.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESOURCES]].COUNT || R || Gets the number of defnames in the spawn group.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESOURCES]]''.n''.KEY || R || Gets the ''nth'' defname in the spawn group. ''(1-based)''&lt;br /&gt;
|-&lt;br /&gt;
| [[RESOURCES]]''.n''.VAL || R || Gets the weight of the ''nth'' defname in the spawn group. ''(1-based)''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Undead spawn from default script pack.&lt;br /&gt;
//&lt;br /&gt;
[SPAWN 08001]&lt;br /&gt;
DEFNAME=SPAWN_Undead_Weak&lt;br /&gt;
ID=c_spectre,2&lt;br /&gt;
ID=c_skeleton_w_axe&lt;br /&gt;
ID=c_skeleton_w_sword&lt;br /&gt;
ID=c_skeleton,5&lt;br /&gt;
ID=c_zombie,10&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Lists the characters of a spawn in the console, and picks one at random.&lt;br /&gt;
// Usage: DescribeSpawn &amp;lt;spawn_defname&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
[FUNCTION describespawn]&lt;br /&gt;
// validate args&lt;br /&gt;
IF !(&amp;lt;SERV.SPAWN.&amp;lt;ARGS&amp;gt;&amp;gt;)&lt;br /&gt;
	SERV.LOG Spawn '&amp;lt;ARGS&amp;gt;' does not exist.&lt;br /&gt;
	RETURN&lt;br /&gt;
ELSEIF !(&amp;lt;SERV.SPAWN.&amp;lt;ARGS&amp;gt;.RESOURCES.COUNT&amp;gt;)&lt;br /&gt;
	SERV.LOG Spawn '&amp;lt;ARGS&amp;gt;' has no contents.&lt;br /&gt;
	RETURN&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
// list characters&lt;br /&gt;
SERV.LOG Spawn '&amp;lt;SERV.SPAWN.&amp;lt;ARGS&amp;gt;.DEFNAME&amp;gt;', &amp;lt;SERV.SPAWN.&amp;lt;ARGS&amp;gt;.RESOURCES.COUNT&amp;gt; characters)&lt;br /&gt;
FOR 1 &amp;lt;SERV.SPAWN.&amp;lt;ARGS&amp;gt;.RESOURCES.COUNT&amp;gt;&lt;br /&gt;
	SERV.LOG Character &amp;lt;dLOCAL._FOR&amp;gt;: &amp;lt;dSERV.SPAWN.&amp;lt;ARGS&amp;gt;.RESOURCES.&amp;lt;LOCAL._FOR&amp;gt;.VAL&amp;gt;x &amp;lt;SERV.SPAWN.&amp;lt;ARGS&amp;gt;.RESOURCES.&amp;lt;LOCAL._FOR&amp;gt;.KEY&amp;gt;&lt;br /&gt;
ENDFOR&lt;br /&gt;
&lt;br /&gt;
// pick character (obeying weights)&lt;br /&gt;
LOCAL.INDEX = &amp;lt;EVAL &amp;lt;SERV.SPAWN.&amp;lt;ARGS&amp;gt;.CALCMEMBERINDEX&amp;gt; + 1&amp;gt;&lt;br /&gt;
SERV.LOG Picked '&amp;lt;SERV.SPAWN.&amp;lt;ARGS&amp;gt;.RESOURCES.&amp;lt;LOCAL.INDEX&amp;gt;.KEY&amp;gt;'.&lt;br /&gt;
RETURN&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Definitions]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=530</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=530"/>
				<updated>2010-02-21T18:36:34Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the retake of Taran's famous &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot; and information. His tutorial was made for Sphere 55i, but now that Sphere 56b is about to be released we have decided to rewrite his tutorials and update the information to reflect the latest changes and additions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where should I start?'''&lt;br /&gt;
&lt;br /&gt;
If you want to learn to script for Sphere 56b you should start by first reading the [[#Setting Up Sphere|Setting Up Sphere]] section. It will teach you how to set up a basic empty world to start your path. After that you should try reading the [[#Tutorials|Tutorials]], go slow, don't try to go through everything in one day as it takes time to read and fully understand everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I learned how to script! And now?'''&lt;br /&gt;
&lt;br /&gt;
If you have finished the 10 chapters then we encourage you to read the tutortials and other articles below. They may not be as important as the others but they are still quite useful and contain lots of useful information. Try making your own scripts and share with others at the [http://www.sphereserver.net/index.php SphereServer Forums]. You can also ask for help if you can't resolve something by yourself. Remember to use the [[#Reference Compendium|Reference Compendium]] below as it is really useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I want to contribute!'''&lt;br /&gt;
&lt;br /&gt;
Maintaining the information on this site involves a huge amount of work and not many of us have the time to do it. If you wish to help out then please feel free to do so! All you need to do to get started is [[Special:UserLogin|create an account]] if you haven't done so already. You can then edit any page by using the &amp;quot;Edit&amp;quot; link in the rop right corner. Before you go do this, you may want to start by reading the [[Contribution Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Special thanks to:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], for helping to add content.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], for writing the Sphere Reference Project, and [[WhoIsWho|Mordaunt]] for converting it to .chm format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], for writing the Sphere 56 Tracking Changes in Sphereserver.net&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], for writing the original and now famous Sphere Scripting for Dummies tutorials, and [[WhoIsWho|MrSugarCube]] for bringing it up-to-date directly from source.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] for continuing to develop Sphere into a powerful and very customizable Ultima Online emulator.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], for providing hosting for the original SphereWiki, and [[WhoIsWho|Torfo]] for providing the current hosting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting up Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere]]&lt;br /&gt;
* [[Installing Sphere]]&lt;br /&gt;
* [[Configuring Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Here are the chapters of Taran's original compendium, updated for Sphere56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1]] ''(Numbers, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2]] ''(Sphere files explained)''&lt;br /&gt;
* [[Chapter 3]] ''(Scripting NPC's and items, Cool commands)''&lt;br /&gt;
* [[Chapter 4]] ''(Objects, operators, speech)''&lt;br /&gt;
* [[Chapter 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7]] ''(Loops and powerful functions)''&lt;br /&gt;
* [[Chapter 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10]] ''(String Handling)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to these there are some more advanced tutorials that have been contributed by other members. Once you have read the above 10 tutorials you may wish to read these to learn more:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Common Mistakes Explained]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference Compendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Articles==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Official SphereServer Website]&lt;br /&gt;
* [http://prerelease.sphereserver.net/ Official Sphere 56b Downloads]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=529</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=529"/>
				<updated>2010-02-21T18:33:48Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the retake of Taran's famous &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot; and information. His tutorial was made for Sphere 55i, but now that Sphere 56b is about to be released we have decided to rewrite his tutorials and update the information to reflect the latest changes and additions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where should I start?'''&lt;br /&gt;
&lt;br /&gt;
If you want to learn to script for Sphere 56b you should start by first reading the [[#Setting Up Sphere|Setting Up Sphere]] section. It will teach you how to set up a basic empty world to start your path. After that you should try reading the [[#Tutorials|Tutorials]], go slow, don't try to go through everything in one day as it takes time to read and fully understand everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I learned how to script! And now?'''&lt;br /&gt;
&lt;br /&gt;
If you have finished the 10 chapters then we encourage you to read the tutortials and other articles below. They may not be as important as the others but they are still quite useful and contain lots of useful information. Try making your own scripts and share with others at the [http://www.sphereserver.net/index.php SphereServer Forums]. You can also ask for help if you can't resolve something by yourself. Remember to use the [[#Reference Compendium|Reference Compendium]] below as it is really useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I want to contribute!'''&lt;br /&gt;
&lt;br /&gt;
Maintaining the information on this site involves a huge amount of work and not many of us have the time to do it. If you wish to help out then please feel free to do so! All you need to do to get started is [[Special:UserLogin|create an account]] if you haven't done so already. You can then edit any page by using the &amp;quot;Edit&amp;quot; link in the rop right corner. Before you go do this, you may want to start by reading the [[Contribution Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Special thanks to:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], for helping to add content.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], for writing the Sphere Reference Project, and [[WhoIsWho|Mordaunt]] for converting it to .chm format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], for writing the Sphere 56 Tracking Changes in Sphereserver.net&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], for writing the original and now famous Sphere Scripting for Dummies tutorials, and [[WhoIsWho|MrSugarCube]] for bringing it up-to-date directly from source.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] for continuing to develop Sphere into a powerful and very customizable Ultima Online emulator.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], for providing hosting for the original SphereWiki, and [[WhoIsWho|Torfo]] for providing the current hosting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting up Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere]]&lt;br /&gt;
* [[Installing Sphere]]&lt;br /&gt;
* [[Configuring Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Here are the chapters of Taran's original compendium, updated for Sphere56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1]] ''(Numbers, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2]] ''(Sphere files explained)''&lt;br /&gt;
* [[Chapter 3]] ''(Scripting NPC's and items, Cool commands)''&lt;br /&gt;
* [[Chapter 4]] ''(Objects, operators, speech)''&lt;br /&gt;
* [[Chapter 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7]] ''(Loops and powerful functions)''&lt;br /&gt;
* [[Chapter 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10]] ''(String Handling)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to these there are some more advanced tutorials that have been contributed by other members. Once you have read the above 10 tutorials you may wish to read these to learn more:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Common Mistakes Explained]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference Compendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPAWN|Spawn Groups]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
** [[Spawn Groups]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Articles==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Official SphereServer Website]&lt;br /&gt;
* [http://prerelease.sphereserver.net/ Official Sphere 56b Downloads]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://uo.torfo.org/packetguide/ Jerrith's UO Packet Guide]&lt;br /&gt;
* [http://uo.torfo.org/packetguideKR/ Wyatt&amp;amp;Kons's UOKR Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=SPAWN&amp;diff=528</id>
		<title>SPAWN</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=SPAWN&amp;diff=528"/>
				<updated>2010-02-21T18:31:43Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Created page with '__FORCETOC__ Instead of setting the MORE1 property of a spawn to a single character defname, a spawn group can be used instead so that a random character is spawne...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Instead of setting the MORE1 property of a spawn to a single [[Characters|character]] defname, a spawn group can be used instead so that a random character is spawned. A spawn group contains a set of character defnames, with optional weights to affect their chances of spawning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
The syntax for defining a spawn group is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
[SPAWN ''defname'']&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=''character_defname_1'' ''weight''&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=''character_defname_2'' ''weight''&amp;lt;br /&amp;gt;&lt;br /&gt;
ID=''character_defname_3'' ''weight''&amp;lt;br /&amp;gt;&lt;br /&gt;
''etc..''&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The weight parameter can be used to make a defname more likely to be selected than the other defnames in the group. With a weight of 10 for example, a defname would be 10 times more likely to be selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
The following properties are available when defining a spawn group:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[DEFNAME]] || W || Sets the spawn group's defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[ID]] ''defname'' ''weight'' || W || Adds a defname to the spawn group with the specified weight.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Undead spawn from default script pack.&lt;br /&gt;
//&lt;br /&gt;
[SPAWN 08001]&lt;br /&gt;
DEFNAME=SPAWN_Undead_Weak&lt;br /&gt;
ID=c_spectre,2&lt;br /&gt;
ID=c_skeleton_w_axe&lt;br /&gt;
ID=c_skeleton_w_sword&lt;br /&gt;
ID=c_skeleton,5&lt;br /&gt;
ID=c_zombie,10&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Definitions]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Talk:@Damage&amp;diff=524</id>
		<title>Talk:@Damage</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Talk:@Damage&amp;diff=524"/>
				<updated>2010-01-26T19:14:57Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: (tidying up a bit)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Lincemiope|Lincemiope]] 15:40, 26 January 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think the wiki about this trigger is wrong. I tested the @damage and typed this code into the script of a custom executioner's axe.&lt;br /&gt;
&lt;br /&gt;
On=@Damage&lt;br /&gt;
src.say I'm the SRC&lt;br /&gt;
&lt;br /&gt;
and the SRC is the one who took the damage and not who dealt it.&lt;br /&gt;
----&lt;br /&gt;
:[[User:MrSugarCube|MrSugarCube]] 19:13, 26 January 2010 (UTC)&lt;br /&gt;
:SRC is not the one who dealt the damage or the one who was damaged, but is the one 'responsible' for the damage - it means something different depending on the situation.&lt;br /&gt;
:&lt;br /&gt;
:For example:&lt;br /&gt;
:* When a weapon takes damage during combat, SRC is the character hit by the weapon.&lt;br /&gt;
:* When a piece of armour (or shield) is damaged during combat, SRC is the character who dealt the damage.&lt;br /&gt;
:* When a tool takes damage when using a skill (mining, lumberjack, lockpicking), SRC is the character performing the action.&lt;br /&gt;
:* When a spider web takes damage, SRC is the character walking on it.&lt;br /&gt;
:* When an item is damaged due to someone targeting it with a weapon, SRC is the character who targeted it.&lt;br /&gt;
:* When an item is hit by a harmful spell, SRC is the character who cast the spell.&lt;br /&gt;
:* When an item is hit by an explosion potion, SRC is the character who used the potion.&lt;br /&gt;
:* When the DAMAGE function is used, SRC is the source of the damage (third parameter, or SRC from the script calling the function)&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Talk:@Damage&amp;diff=523</id>
		<title>Talk:@Damage</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Talk:@Damage&amp;diff=523"/>
				<updated>2010-01-26T19:13:19Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I think the wiki about this trigger is wrong. I tested the @damage and typed this code into the script of a custom executioner's axe.&lt;br /&gt;
&lt;br /&gt;
On=@Damage&lt;br /&gt;
src.say I'm the SRC&lt;br /&gt;
&lt;br /&gt;
and the SRC is the one who took the damage and not who dealt it.&lt;br /&gt;
----&lt;br /&gt;
:[[User:MrSugarCube|MrSugarCube]] 19:13, 26 January 2010 (UTC)&lt;br /&gt;
:SRC is not the one who dealt the damage or the one who was damaged, but is the one 'responsible' for the damage - it means something different depending on the situation.&lt;br /&gt;
:&lt;br /&gt;
:For example:&lt;br /&gt;
:* When a weapon takes damage during combat, SRC is the character hit by the weapon.&lt;br /&gt;
:* When a piece of armour (or shield) is damaged during combat, SRC is the character who dealt the damage.&lt;br /&gt;
:* When a tool takes damage when using a skill (mining, lumberjack, lockpicking), SRC is the character performing the action.&lt;br /&gt;
:* When a spider web takes damage, SRC is the character walking on it.&lt;br /&gt;
:* When an item is damaged due to someone targeting it with a weapon, SRC is the character who targeted it.&lt;br /&gt;
:* When an item is hit by a harmful spell, SRC is the character who cast the spell.&lt;br /&gt;
:* When an item is hit by an explosion potion, SRC is the character who used the potion.&lt;br /&gt;
:* When the DAMAGE function is used, SRC is the source of the damage (third parameter, or SRC from the script calling the function)&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Talk:@Damage&amp;diff=522</id>
		<title>Talk:@Damage</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Talk:@Damage&amp;diff=522"/>
				<updated>2010-01-26T19:09:27Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I think the wiki about this trigger is wrong. I tested the @damage and typed this code into the script of a custom executioner's axe.&lt;br /&gt;
&lt;br /&gt;
On=@Damage&lt;br /&gt;
src.say I'm the SRC&lt;br /&gt;
&lt;br /&gt;
and the SRC is the one who took the damage and not who dealt it.&lt;br /&gt;
&lt;br /&gt;
SRC is not the one who dealt the damage or the one who was damaged, but is the one 'responsible' for the damage - it means something different depending on the situation.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
* When a weapon takes damage during combat, SRC is the character hit by the weapon.&lt;br /&gt;
* When a piece of armour (or shield) is damaged during combat, SRC is the character who dealt the damage.&lt;br /&gt;
* When a tool takes damage when using a skill (mining, lumberjack, lockpicking), SRC is the character performing the action.&lt;br /&gt;
* When a spider web takes damage, SRC is the character walking on it.&lt;br /&gt;
* When an item is damaged due to someone targeting it with a weapon, SRC is the character who targeted it.&lt;br /&gt;
* When an item is hit by a harmful spell, SRC is the character who cast the spell.&lt;br /&gt;
* When an item is hit by an explosion potion, SRC is the character who used the potion.&lt;br /&gt;
* When the DAMAGE function is used, SRC is the source of the damage (third parameter, or SRC from the script calling the function)&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=@DClick&amp;diff=520</id>
		<title>@DClick</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=@DClick&amp;diff=520"/>
				<updated>2010-01-21T07:30:24Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Undo revision 519 by Kristy123 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
This trigger fires when an object is double clicked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fires on:&lt;br /&gt;
* [[Characters]]&lt;br /&gt;
* [[Items]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
The following object references are explicitly available for this trigger:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[I]] || The [[Characters|character]] or [[Items|item]] being double clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[SRC]] || The [[Characters|character]] doing the clicking.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Arguments==&lt;br /&gt;
The following arguments are set for this trigger. If an argument is marked as &amp;quot;In&amp;quot; then a value will be passed in to the trigger, if an argument is marked as &amp;quot;Out&amp;quot; then it can be set to a value to affect Sphere's behaviour:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''No arguments are set for this trigger.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Return Values==&lt;br /&gt;
The following return values are explicitly defined for this trigger:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Return Value''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Prevents any hardcoded behaviour taking place.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Triggers]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Revisions_Changelog&amp;diff=516</id>
		<title>Revisions Changelog</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Revisions_Changelog&amp;diff=516"/>
				<updated>2009-09-21T10:17:03Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Updated 56b revisions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Following is a list of all changes made to Sphere since version 55a. These changes can also be found by opening and reading the REVISIONS-55-SERIES.txt and REVISIONS-56-SERIES.txt files that are provided with the Sphere download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also retrieve the very latest revisions file for the 56 series from the [http://nightly.prerelease.sphere.torfo.org/files/revisions.txt Automated SVN Builds] page. This file also shows the changes that have been made for the next prerelease.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REVISIONS-55-SERIES==&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;&amp;quot;&amp;gt;---- 0.55a --------------------------------------------------------------------&lt;br /&gt;
---- * date unknown&lt;br /&gt;
&lt;br /&gt;
new crypt for clients up to 2.0.7&lt;br /&gt;
2.0.7 client has strange problem with text containing - or _ in UNICODE speech modes (this can crash the client in some cases)&lt;br /&gt;
	UNICODESpeech=off will fix for english.&lt;br /&gt;
3d beta client support.&lt;br /&gt;
new key ACCOUNT.CHARS&lt;br /&gt;
new key ACCOUNT.CHAR.x.NAME&lt;br /&gt;
use verb serv.server.0.name&lt;br /&gt;
bandages only for gm's&lt;br /&gt;
Steal Looting corpses&lt;br /&gt;
line numbers for errors where not accurate - ftell() is not accurate in text mode !!! does not work with fseek to get you back to the same place !!!&lt;br /&gt;
CHECK cant feed pets ? not GM's&lt;br /&gt;
Ghosts can't equip scriptable timers ? timers don't expire.&lt;br /&gt;
block type [REGION] changed to [REGIONTRIG]&lt;br /&gt;
added key RESOURCES= to [AREA]&lt;br /&gt;
added new block type [REGIONRESOURCES] in sphereregion.scp&lt;br /&gt;
changed [MAPRESDEF] to [REGIONRESOURCE]&lt;br /&gt;
ANIM with backwards and TimeDelay = invis in all other clients (client bug really)&lt;br /&gt;
x You put the logss in your pack&lt;br /&gt;
x. Also you can smelt Chaos and Order shields to get gold and blackrock ingots in mass amounts with no or little work.&lt;br /&gt;
x. Also with the guild stones, you can recruit the guildmaster making him a candidate and &lt;br /&gt;
	take over the guild stone and kick everyone out. Warring guilds tend to make mules and do this sort of thing.&lt;br /&gt;
18. Many guild bugs. Players can be &amp;quot;half-way&amp;quot; in a guild now. &lt;br /&gt;
	The result is other waring guilds are now orange to you and &lt;br /&gt;
	you are blue to them. They can be half way in the guild two &lt;br /&gt;
	ways. &lt;br /&gt;
	18.1. Have the guildmaster never accept you fully in. &lt;br /&gt;
	18.2. after the guildmaster accepts you in, don't click the stone. You can actually end up half way in a guild with your guild tag on. &lt;br /&gt;
19. Another guild bug is people will make a charater with 10 str &lt;br /&gt;
	and then join it to a guild thats either Chaos or Order. &lt;br /&gt;
	Then go attack greens, the player will auto attack back and &lt;br /&gt;
	easily kill the player with 10 str. Thusly giving them a kill&lt;br /&gt;
	they get guard killed and a near by guildmate loots the corpse of the person that got attacked by the guy with 10 str. No criminal tags are incured on either the looter or the attacker due to the fact that the target was green.&lt;br /&gt;
&lt;br /&gt;
---- 0.55b --------------------------------------------------------------------&lt;br /&gt;
---- * date unknown&lt;br /&gt;
&lt;br /&gt;
XBank and XCOLOR problems.&lt;br /&gt;
test inscription &lt;br /&gt;
DUPE limited to MaxItemComplexity&lt;br /&gt;
X (seems ok, script issue ?) word Bank dont work&lt;br /&gt;
immunity to ones own spells.&lt;br /&gt;
X (seems ok to me) defname of types don't work&lt;br /&gt;
x no loss of ar-value on unequipping armor or another item, but unequipping works correct with xedit &lt;br /&gt;
X (seems ok, script issue ?) scribing scrolls no longer check to see if magery is high enough to scribe a scroll&lt;br /&gt;
x The same with weapons like bow, you can shoot with the unequipt bow after unequip...&lt;br /&gt;
X ( seems ok) .shutdown 1 says it will, but never shutsdown :)&lt;br /&gt;
X returnvalue for functions . see i_test_rand_ret&lt;br /&gt;
slight damage to mining tools as used.&lt;br /&gt;
@SkillTry to @SkillStart&lt;br /&gt;
&lt;br /&gt;
---- 0.55c --------------------------------------------------------------------&lt;br /&gt;
---- 15/03/2001&lt;br /&gt;
&lt;br /&gt;
sphere list sorting. non letters and repeating letters&lt;br /&gt;
SPEECHCOLOR for NPC's&lt;br /&gt;
X Equip / unequip items that mod skills.&lt;br /&gt;
X (Seem ok ) overly heavy iron ingots ?&lt;br /&gt;
X Check - listening equipped items.&lt;br /&gt;
prevent NUKE command target in pack.&lt;br /&gt;
x test poisoned horse dies while ridden.&lt;br /&gt;
x change mapresources causes critical error on resync&lt;br /&gt;
i_runebook&lt;br /&gt;
CanSee and CanSeeLOS triggers for items&lt;br /&gt;
change unreasonable timer max length to 90 days. was 2 hours !&lt;br /&gt;
ADD items directly into pack by targetting other item in pack.&lt;br /&gt;
&lt;br /&gt;
---- 0.55d --------------------------------------------------------------------&lt;br /&gt;
---- * date unknown&lt;br /&gt;
&lt;br /&gt;
X  tag.morep_1=&amp;lt;morep&amp;gt; works&lt;br /&gt;
X Check i_rune_book&lt;br /&gt;
remove MENU_ADMIN, replace with gump and FUNCTION&lt;br /&gt;
test output for scripts and logs should use the \r\n text mode. NotePad will work again.&lt;br /&gt;
SKILLDEF effects&lt;br /&gt;
	&amp;quot;DELAY_HI&amp;quot;,&lt;br /&gt;
	&amp;quot;DELAY_LO&amp;quot;,&lt;br /&gt;
	&amp;quot;EFFECT_HI&amp;quot;,&lt;br /&gt;
	&amp;quot;EFFECT_LO&amp;quot;,&lt;br /&gt;
missing SKILLMAKE=BLACKSMTIHING x.x for item 01b73 (i_shield_buckler) in sphereitemb5.scp&lt;br /&gt;
SPELL_Reactive_Armor = effect_Lo and Effect_Hi = random max percent reflected damage.&lt;br /&gt;
Crypt for 3.0.0&lt;br /&gt;
&lt;br /&gt;
---- 0.55e --------------------------------------------------------------------&lt;br /&gt;
---- 21/03/2001&lt;br /&gt;
&lt;br /&gt;
X Taste Id doesnt work at all it doesnt give a message period.	&lt;br /&gt;
burn vs. smelt. flame effect ?&lt;br /&gt;
X -npc speech color not working properly &lt;br /&gt;
SEEMS OK = no kindling from trees -dagger on tree doesn't yield kindling &amp;quot;this is not a tree&amp;quot;   &lt;br /&gt;
SEEMS OK = Problem with resources on Multiple planes, not getting any? Problem in map file maybe?&lt;br /&gt;
X Polymorph not working  &lt;br /&gt;
SEEMS OK TO ME - When creating a t_script item, buying off a vendor, not to have the t_script attributes, &lt;br /&gt;
	the TAGS do not appear to working through the ON=@CREATE .&lt;br /&gt;
X Need the @LOGIN @LOGOUT trigger&lt;br /&gt;
x Backgammon board has chess pieces  &lt;br /&gt;
X All drinkable potions create a gold coin in pack instead of empty bottle (probably script TDATA value).  &lt;br /&gt;
? CLIENT UPDATE BUG? - when u set an amount as a gm it doesnt set the whole stack-it leaves the original 1 and then gives u the diff in a different pile	&lt;br /&gt;
-NEED to do UPDATE now - couldnt .set flags statf_nightsight &lt;br /&gt;
	-Setting colors of cchar objects is very strange, I would color my zorn, but no refeash commands would show me the color, when I mounted it, it turned the right color.	&lt;br /&gt;
- CANT CURSE self - curse, weaken, clumsy, feeblemind all consume regs but have no spell effect (no reduction of stats)  &lt;br /&gt;
new command SAYUA Color, Mode, Font, Lang, Text&lt;br /&gt;
- dices can roll a &amp;quot;0,0&amp;quot;, &amp;quot;0,x&amp;quot;, &amp;quot;x,0&amp;quot;&lt;br /&gt;
SKILLBEST or SKILLBEST.1 to get the best ranked skills&lt;br /&gt;
X unicode speech must add lost of &amp;quot;......&amp;quot; , or it will not be displayed.  &amp;quot;.......&amp;quot; amount = unicode words amount - 2  &lt;br /&gt;
TEXT problem with new client versions 2.0.7 ?&lt;br /&gt;
Yawn anim ?&lt;br /&gt;
Fix items that should decay but lose timers.&lt;br /&gt;
Eval Int message&lt;br /&gt;
TRUE - Drink one potion, then drink a different one - second one drank overwrites the first potion's effect. (IE, poison yourself, drink agility - now agile, but no longer poisoned at all)(all potions, same thing)  &lt;br /&gt;
TRUE - Var.x=rand(nnn) doesn't save output of Random function (so a number since 0 to nnn-1) but it save the function.&lt;br /&gt;
	Should use Var.x = &amp;lt;eval rand(nnn)&amp;gt;  rand() only works bare if it's an 'if' or other known math function.&lt;br /&gt;
i_shield_wood shield made of only wood.&lt;br /&gt;
&lt;br /&gt;
---- 0.55f --------------------------------------------------------------------&lt;br /&gt;
---- * date unknown&lt;br /&gt;
&lt;br /&gt;
ARCHERYMINDIST=2&lt;br /&gt;
Repairs now require some of the components of the item.&lt;br /&gt;
Double fame when order pet to attack.&lt;br /&gt;
GM equipping item to NPC.&lt;br /&gt;
Stealing can fail&lt;br /&gt;
Stealing can get you caught.&lt;br /&gt;
-archer npcs AI three steps to fire &lt;br /&gt;
X Shovel is destroyed really fast if you mine &lt;br /&gt;
&lt;br /&gt;
---- 0.55g --------------------------------------------------------------------&lt;br /&gt;
---- 29/03/2001&lt;br /&gt;
&lt;br /&gt;
BUG - missing reags = success. ? &lt;br /&gt;
LASTUSED for player chars. seconds&lt;br /&gt;
CHECK -Seems ok = released animals still follow their owner&lt;br /&gt;
CHECK -Seems OK- Spawns seems to be hovering around their spawn point and not moving&lt;br /&gt;
Meditation:  &lt;br /&gt;
[SKILL] all 0 to 100 percent.&lt;br /&gt;
DELAY=2.0,3.0 // per stroke.&lt;br /&gt;
EFFECT=0.0,100.0&lt;br /&gt;
ADV_RATE=10.0,200.0,800.0 = reveresd from old.&lt;br /&gt;
VALUES=&lt;br /&gt;
Bandage washing not working (it seems so anyway might have to wash them somewhere else)&lt;br /&gt;
NPC re-lighting torches a million times ?&lt;br /&gt;
Ingot smelting yield for one ore is 1.&lt;br /&gt;
x) If in war mode, summon a animal, you end up fighting yourself&lt;br /&gt;
Healing - you get two messages about applying bandages when you heal yourself/anyonelse  unequip on heal  healrates totally screwed up 100 heal 100 anat = crazy healing	&lt;br /&gt;
SECTOR.RAIN SECTOR.DRY weather transition problem.&lt;br /&gt;
MORE1l, MORE1h, MORE2l, MORE2h&lt;br /&gt;
remove &amp;quot;Rune to:&amp;quot; header&lt;br /&gt;
CAN'T FIND THIS- they don't count fists or daggers as a criminal offence, &lt;br /&gt;
	thus getting the npc's to attack them and making the npc grey and free to kill.&lt;br /&gt;
CALL FOR GUARDS WORKS FOR ME - Just hit the blue npc or player one time in war mode. The aggressor WILL NOT&lt;br /&gt;
 be flagged criminal until the victim die. Or the aggressor can go in peace&lt;br /&gt;
 mode and let the blue attack. The blue will become grey to him and finally&lt;br /&gt;
 the aggressor will kill the blue and loot him without any problems. I tested&lt;br /&gt;
 it, it works. Some players seem to use this for kill any blues in town.&lt;br /&gt;
NOT ON SELF = curse, weaken, clumsy, feeblemind all consume regs but have no spell effect (no reduction of stats)&lt;br /&gt;
&lt;br /&gt;
---- 0.55h --------------------------------------------------------------------&lt;br /&gt;
---- 04/04/2001&lt;br /&gt;
&lt;br /&gt;
CHECK - OK - refresh potion&lt;br /&gt;
keys to houses going blank&lt;br /&gt;
3) Hatches on boats wont open?&lt;br /&gt;
4) No Keys for tents boxes (Fixed this problem by adding a sign to the multi)&lt;br /&gt;
TAGLIST for multi, script, account, cchar&lt;br /&gt;
x loot while hidden&lt;br /&gt;
player use bandages on self,-&amp;gt; get 2 messages&lt;br /&gt;
Stealing off corspses still works, should never be able to steal off a corpse&lt;br /&gt;
murderer and criminal titles capitalized.&lt;br /&gt;
the bug appears if the archery butte is linked to an item. if the item it is linked to is dclicked, the archery butte reacts as if itself had been dclicked.  (Same with pickpocket dips and training dummies and alot of other things).&lt;br /&gt;
With GM or PC, if you try to fill a keg with potion you get the you cannot use this yet message. I have a mortar and pestle. Tested at GM alchemy skill for both GM and PC.&lt;br /&gt;
In UO3D, if you log into an account that has no characters, you get a message&lt;br /&gt;
	that says &amp;quot;You already have 5 characters&amp;quot;.  -- Fixed AD 3/31/2001.&lt;br /&gt;
Increased maximum item name length to 256.&lt;br /&gt;
The teleports in the map script, like entering dungeons should not allow NPC's to travel through them unless they are pets. This will keep monsters from harder levels roaming to easier levels.&lt;br /&gt;
CHECK - .sayua x,x,x,x,test -- Works, but was returning false, so it would say &amp;quot;Not a valid command or format&amp;quot;&lt;br /&gt;
It seem the off duty vendor brain act though it's just a vendor that has ran out of goods..&lt;br /&gt;
Party System reveals your account name (not password) to any person you ask to join.&lt;br /&gt;
CHECK - OK - 55g deletes all shrinked npcs on startup?&lt;br /&gt;
CHECK - OK - kills down by 1 each login ?&lt;br /&gt;
Can't attack things u can't see.&lt;br /&gt;
fix silly torch dupe AGAIN !&lt;br /&gt;
&lt;br /&gt;
---- 0.55i --------------------------------------------------------------------&lt;br /&gt;
---- * date unknown&lt;br /&gt;
&lt;br /&gt;
.ACCOUNT name ADD password changed to .ACCOUNT ADD name password&lt;br /&gt;
working tool tips&lt;br /&gt;
x A way to check if skill requirments when casting like IF (&amp;lt;SRC.CANMAKE&amp;gt;==i_arrow) something like that&lt;br /&gt;
x Poison needs to release a paralyzed person&lt;br /&gt;
x Item i_fire is being picked up by players when being created suring smelting&lt;br /&gt;
set color will not update imediately&lt;br /&gt;
5) Resources in Other Mapplanes like (1) and so on (MAP.SCP Attached)&lt;br /&gt;
6) Undefined Symbol error on region tags in housing.... Look at lines 4270 &amp;amp; 4263 in sphereitem_housing.scp&lt;br /&gt;
&lt;br /&gt;
---- 0.55j --------------------------------------------------------------------&lt;br /&gt;
---- * date unknown&lt;br /&gt;
&lt;br /&gt;
.55j&lt;br /&gt;
uid.x.name is broken&lt;br /&gt;
i_multi_house_wheat_cottage&lt;br /&gt;
UNICODE to UTF8 convert for LINUX&lt;br /&gt;
syntax error with &amp;quot;	if ((&amp;lt;morey&amp;gt;&amp;lt;0) || (&amp;lt;morey&amp;gt;&amp;gt;1000))&amp;quot;&lt;br /&gt;
port +1000 for the accounts ?&lt;br /&gt;
&lt;br /&gt;
REGIONRESOURCE replace AMOUNT_LO,AMOUNt_HI with AMOUNT=lo,hi&lt;br /&gt;
REGIONRESOURCE replace SKILL_LO,SKILL_HI with SKILL=lo,hi&lt;br /&gt;
REGIONRESOURCE add REAPAMOUNT = range of amount to find in 1 try.&lt;br /&gt;
&lt;br /&gt;
---- 0.55 R1 ------------------------------------------------------------------&lt;br /&gt;
---- 14/11/2003&lt;br /&gt;
&lt;br /&gt;
11-11-2003, Zorm&lt;br /&gt;
Fixed dye anything, now has to be a dye tub&lt;br /&gt;
Added checking to strings to prevent exploits&lt;br /&gt;
Candle dupe has been fixed&lt;br /&gt;
Layer_horse can no longer be picked up by players&lt;br /&gt;
Messages in message boards can no longer be picked up by players&lt;br /&gt;
Stats max on create character raised from 66 to 80, allows new prof.txt&lt;br /&gt;
Now checking colors for pants and shirt when creating a character&lt;br /&gt;
Added more checking to a players name when creating characters&lt;br /&gt;
Teleport effects should no longer harm players&lt;br /&gt;
Pets now clear all old owners when getting a new one&lt;br /&gt;
Fixed showing of hp to other players&lt;br /&gt;
Administrator account is no longer auto admin&lt;br /&gt;
If you attempt a command and can't use it it comes out as normal speech&lt;br /&gt;
death menu option is no longer sent&lt;br /&gt;
guild mates no longer give you a kill count/karma/fame when you kill them&lt;br /&gt;
speech support improved. If you send unicode text it is handled throughout as unicode&lt;br /&gt;
non unicode text is sent back out as unicode text&lt;br /&gt;
&lt;br /&gt;
12-11-2003, Kell&lt;br /&gt;
- Added @CallGuards as a propper trigger, &amp;quot;return 1&amp;quot; cancels guards being called&lt;br /&gt;
- Changed @Logout so that &amp;quot;return 1&amp;quot; disallows instalogout.&lt;br /&gt;
- Added support for the following TAGs on characters:&lt;br /&gt;
  TAG.NAME.ALT (alternate name, good for incognito effects)&lt;br /&gt;
  TAG.NAME.PREFIX (alternate prefix, if not set, defaults to Notoriety prefix - lady/lord)&lt;br /&gt;
  TAG.NAME.SUFFIX (suffix for the name)&lt;br /&gt;
  Note that a space isn't added for prefix or suffix on purpose, to allow text to be&lt;br /&gt;
  glued to the name. You can add a space by using quotes, as in: TAG.NAME.SUFFIX=&amp;quot;text &amp;quot;&lt;br /&gt;
- Using open door macro now triggers double click event.&lt;br /&gt;
- @DClick is now triggered on NPCs BEFORE attempting to mount, paperdoll or open&lt;br /&gt;
backpack (&amp;quot;return 1&amp;quot; cancels)&lt;br /&gt;
- If REAPAMOUNT isn't present, AMOUNT/3 will be used (it won't just default to 1).&lt;br /&gt;
&lt;br /&gt;
13-11-2003, Kell&lt;br /&gt;
- Player characters with conjured flag get unmounted and the flag removed on death. Useful&lt;br /&gt;
to leave no corpse behind ( under ON=@Death : flags = &amp;lt;flags&amp;gt; | statf_conjured ). This would&lt;br /&gt;
be better as a server setting.&lt;br /&gt;
- Fixed spider webs remaining for days, and spider silk too (increased item count too much)&lt;br /&gt;
&lt;br /&gt;
14-11-2003, Zorm&lt;br /&gt;
- Fixed client 1.26.x, it may now log on a 55i server&lt;br /&gt;
- Updated addbark, addbarkunicode, addbarkspeechtable to follow OSI better&lt;br /&gt;
&lt;br /&gt;
---- 0.55 R2 ------------------------------------------------------------------&lt;br /&gt;
---- 27/11/2003&lt;br /&gt;
&lt;br /&gt;
14-11-2003, Kell&lt;br /&gt;
- Fixed parsing of &amp;lt;&amp;lt;args&amp;gt;&amp;gt; or any other nested &amp;lt;var&amp;gt; btw. Also fixed parsing of numerical commands&lt;br /&gt;
  (skills) so that &amp;lt;7&amp;gt; actually works for accessing skill #7 (this didn't make it to .55R1).&lt;br /&gt;
- Fixed dumb log file being created out of place. Will still happen when Sphere is run as&lt;br /&gt;
  an NT service though.&lt;br /&gt;
&lt;br /&gt;
15-11-2003, Zorm&lt;br /&gt;
- Added LOS check for taming&lt;br /&gt;
- Changed m_defense from BYTE to WORD, thus fixing the bug with AR &amp;gt; 255&lt;br /&gt;
- CanSeeLOS fixed, now checks if target object z is greater then myz + 14 if so blocks&lt;br /&gt;
- Kill count decay should be fixed&lt;br /&gt;
- Can no longer steal from trade windows or game boards&lt;br /&gt;
- ATTR_OWNED items may no longer be magic locked&lt;br /&gt;
- Added @DeathCorpse, argn1 = corpse?&lt;br /&gt;
- Trade window items are now dumped to back before corpse is made&lt;br /&gt;
- Now checks accounts when first sent&lt;br /&gt;
- Added @start in skilldefs&lt;br /&gt;
- Provoking players disabled&lt;br /&gt;
&lt;br /&gt;
16-11-2003, Kell&lt;br /&gt;
- Identified problem regarding vanishing horses. Apparently, they stop acting as ridden, so instead&lt;br /&gt;
  of deleting them I will just try and restart their behaviour again. If this fails, they still&lt;br /&gt;
  shouldn't be deleted, and a new message should be printed out. To test, try creating a horse, mount&lt;br /&gt;
  and then worldsave.&lt;br /&gt;
- Made sure that ABORTED skills don't hand out experience for failure. Only those that actually fail do.&lt;br /&gt;
  ( this fixes lumberjacking / mining exploits ).&lt;br /&gt;
- Added support for TAG.NAME.HUE (name colour)&lt;br /&gt;
- Added @SkillSelect to character events, and @Select  to SKILLDEFs (&amp;quot;return 1&amp;quot; aborts).&lt;br /&gt;
- Added support for FORCHARS/FORITEMS/FOROBJS the correct way: SRC is retained and the default object&lt;br /&gt;
  within the FOR block is the object being looped through.&lt;br /&gt;
- Added @SkillSuccess to character events, and @Success to SKILLDEFs (&amp;quot;return 1&amp;quot; aborts).&lt;br /&gt;
- Changed @SkillStart so that &amp;quot;return 1&amp;quot; actually aborts the skill (same for @Start in SKILLDEFs).&lt;br /&gt;
- Changed @Login so that &amp;quot;return 1&amp;quot; disallows logging in.&lt;br /&gt;
- Added @UserSkills (&amp;quot;return 1&amp;quot; cancels the skill window being displayed).&lt;br /&gt;
- Added @UserStats  ( user requested stats update, return value is ignored )&lt;br /&gt;
- DBG: Added @SkillMakeItem to character events, triggered after the item has been created:&lt;br /&gt;
  &amp;quot;return 1&amp;quot; deletes the item&lt;br /&gt;
  &amp;quot;return 0&amp;quot; bounces the item as usual, but with no extra messages (potion, quality message)&lt;br /&gt;
  &amp;quot;return&amp;quot;   bounces the item as usual.&lt;br /&gt;
&lt;br /&gt;
17-11-2003, Kell&lt;br /&gt;
- Hopefully fixed the bug with resyncing SPELL sections.&lt;br /&gt;
- Added triggers to SPELL sections, so you can now independently code spells:&lt;br /&gt;
  @Select ( &amp;quot;return 1&amp;quot; cancels, &amp;quot;return 0&amp;quot; skip checks, &amp;quot;return&amp;quot; default behaviour)&lt;br /&gt;
  @Start  ( &amp;quot;return 1&amp;quot; cancels )&lt;br /&gt;
  @Fail   ( &amp;quot;return 1&amp;quot; cancels the fizzle effect).&lt;br /&gt;
  @Success&lt;br /&gt;
- Changed SERV.LOG to allow writing of messages to the log. New syntax is:&lt;br /&gt;
  serv.log @enable   -- enables logging&lt;br /&gt;
  serv.log @disable  -- disable logging&lt;br /&gt;
  serv.log @toggle   -- toggles logging&lt;br /&gt;
  serv.log text      -- log text to console and file&lt;br /&gt;
&lt;br /&gt;
18-11-2003, Zorm&lt;br /&gt;
- Fixed commands going to npcs, as well as more problems with unicode speech&lt;br /&gt;
  support - BROKEN&lt;br /&gt;
- CGTypedArray, SetCount, DestroyElements, crashes on shutdown. Needs more&lt;br /&gt;
  work to fix&lt;br /&gt;
- Fame gain fixed&lt;br /&gt;
&lt;br /&gt;
18-11-2003, Kell&lt;br /&gt;
- Moved tags to CObjBase so all types of objects can have tags. Removed special&lt;br /&gt;
  handling of TAGs from characters, script items and multi items.&lt;br /&gt;
- Fixed problem when resycing SKILL sections (spheretables.scp) would mess up&lt;br /&gt;
  Skill_ defnames ( and the ACTION field on characters ). One no longer needs&lt;br /&gt;
  to use workarounds like my FIXACTION function. Memory corruption problems&lt;br /&gt;
  when resyncing SPELL tables should also be fixed.&lt;br /&gt;
&lt;br /&gt;
18-11-2003, DarkStorm&lt;br /&gt;
- Started fixing some issues preventing sphere to compile on linux (CSocket.h)&lt;br /&gt;
- Managed to make it compile on Linux, comitted all the changes neccesary and&lt;br /&gt;
  made sure it still compiles on windows.&lt;br /&gt;
- Implemented some code changes to remove the ncurses dependency on linux and&lt;br /&gt;
  activated the console again. &lt;br /&gt;
- Implemented Colors on the Linux Console&lt;br /&gt;
&lt;br /&gt;
19-11-2003, DarkStorm&lt;br /&gt;
- Added MD5 Password support via MD5PASSWORDS=1 in sphere.ini. If you activate&lt;br /&gt;
  this, accounts will be saved with the password encoded (existing non-encoded&lt;br /&gt;
  password will be converted). WARNING: disabling it afterwards won't restore&lt;br /&gt;
  the passwords to plain text, and thus you won't be able to login with those&lt;br /&gt;
  accounts. Once enabled, and the accounts file saved this setting should not be&lt;br /&gt;
  changed (unless you set the passwords by hand).&lt;br /&gt;
- Removed the ScriptEngine Folder from the VC++6 project and wrapped an #if&lt;br /&gt;
  defined() around the three functions that used it. It seems unused in the&lt;br /&gt;
  productive gameserver, so i think we can remove the additional 400kb of&lt;br /&gt;
  possibly error prone code.&lt;br /&gt;
- Removed the ScriptEngine Folder from the VC++ 7 project too&lt;br /&gt;
- Changed the VC++ 6 projects to use the shared CRT. (It's shipped with windows&lt;br /&gt;
  since 95)&lt;br /&gt;
- Rewrote the new[], new, delete and delete[] operators and removed the memory&lt;br /&gt;
  footprinting. &lt;br /&gt;
- Tuned the optimizations for VS.NET 2003 Release mode a bit.&lt;br /&gt;
- Removed the StatusReports from ntservice.cpp before it loads the ini for now&lt;br /&gt;
  Reporting as a service if you aren't a service isn't supposed to be happening,&lt;br /&gt;
  there needs to be a better fix than mine (maybe a -service argument?)&lt;br /&gt;
- added a check to CAccount to filter out accounts named &amp;quot;eof&amp;quot;&lt;br /&gt;
- fixed the help provided by .serv.accounts&lt;br /&gt;
&lt;br /&gt;
19-11-2003, Kell&lt;br /&gt;
- Added a .DBG command, to put test code in. At the moment it'll be used to try&lt;br /&gt;
  and crash the server in various ways, to see how it behaves on Linux.&lt;br /&gt;
&lt;br /&gt;
20-11-2003, Kell&lt;br /&gt;
- Added INTERRUPT=X,Y to SPELL sections in spheretable_x.scp. This controls&lt;br /&gt;
  the chance to fizzle a spell when hit in combat, at different Magery levels.&lt;br /&gt;
  Default is 100.0, 100.0 (always fizzle). With a setting of &amp;quot;100.0 50.0&amp;quot; a GM&lt;br /&gt;
  mage would only fizzle half the times.&lt;br /&gt;
- NPCs equipping stuff that is too heavy for them on @NPCRestock won't&lt;br /&gt;
  spit hundreds of errors to the console.&lt;br /&gt;
- Added LOSTNPCTELEPORT=X to sphere.ini. If X is greater than 0, NPCs that have&lt;br /&gt;
  a HOME point set will now teleport home if the distance to their HOME is above&lt;br /&gt;
  X. This fixes it when they go through portals, then get lost in the map.&lt;br /&gt;
- Fixed problem with mounted NPCs dying and leaving a lingering object which&lt;br /&gt;
  could leak later.&lt;br /&gt;
- FINALLY made it crash resistant under Linux - it is now trapping most&lt;br /&gt;
  signals AND launching exceptions correcly. Tested with a single thread&lt;br /&gt;
  (FREEZERESTARTTIME=0 in sphere.ini) and no background saving. More tests&lt;br /&gt;
  to come.&lt;br /&gt;
- Changed the loading procedure so sphere.ini is loaded prior to any message&lt;br /&gt;
  being printed to the log file. This allows the LOG= line to be parsed and&lt;br /&gt;
  log files to be created in the appropriate folder, so to make sure, LOG=&lt;br /&gt;
  line should be among the first in sphere.ini&lt;br /&gt;
- Changed the Linux makefile to include the necessary exception flags.&lt;br /&gt;
- &amp;quot;return 1&amp;quot; from a skill's @Start or @Success trigger doesn't trigger @Fail. If you&lt;br /&gt;
  do want @Fail triggered, set ACTION=-1. This is compatible with .55i scripts, because&lt;br /&gt;
  seeing as &amp;quot;return 1&amp;quot; didn't work there, scripts which did mean for @Fail to be triggered&lt;br /&gt;
  should already be using ACTION=-1&lt;br /&gt;
&lt;br /&gt;
21-11-2003, Kell&lt;br /&gt;
- Linux version now works with secondary threads (FREEZERESTARTTIME not 0),&lt;br /&gt;
  and is able to restart the main loop if it freezes.&lt;br /&gt;
- Added a toggle to sphere.ini, &amp;quot;EXPERIMENTAL&amp;quot;, to allow setting flags&lt;br /&gt;
  which enable several experimental features. You will see these referenced&lt;br /&gt;
  in the changelog as EF 0x????.&lt;br /&gt;
- EF 0x0001 enables a packet fix for Linux servers, for XCMD_Spy. Enable this&lt;br /&gt;
  if your clients get a login error.&lt;br /&gt;
- EF 0x0002 enables new UNICODE fixes.&lt;br /&gt;
- EF 0x0004 enables zorm CanSeeLOS fix. This is required, seeing as that fix&lt;br /&gt;
  won't allow you to cast uphill - a minor problem, but worth having a flag to&lt;br /&gt;
  toggle that behaviour.&lt;br /&gt;
- EF 0x0008 disables interruption of fight skills if the ACT changes. This&lt;br /&gt;
  fixes scripts that re-implement combat, and cases where combat with multiple&lt;br /&gt;
  enemies would break swings.&lt;br /&gt;
- EF 0x0010 enables the INTERRUPT field in SPELL sections. INTERRUPT=100.0 100.0&lt;br /&gt;
  SHOULD yield the standard always fail behaviour, as should not having an &lt;br /&gt;
  INTERRUPT line at all. But seeing as this wasn't fully tested, you MUST enable&lt;br /&gt;
  this flag to make any use of the interrupt values.&lt;br /&gt;
- Suggested value for EXPERIMENTAL field in sphere.ini is:&lt;br /&gt;
  EXPERIMENTAL=013&lt;br /&gt;
&lt;br /&gt;
22-11-2003, Kell&lt;br /&gt;
- LOSTNPCTELEPORT now checks for homedist, and won't teleport if the NPCs are still&lt;br /&gt;
  within home-distance. This allows you to have low values.&lt;br /&gt;
- Further stability fixes for Linux version, it should now work fine with background&lt;br /&gt;
  world saves.&lt;br /&gt;
&lt;br /&gt;
22-11-2003, Zorm&lt;br /&gt;
- Added login crypt keys for clients up to 3.0.3, must add support for packets up to&lt;br /&gt;
  0xCC or atleast lengths.&lt;br /&gt;
- I think I fixed unicode speech now&lt;br /&gt;
&lt;br /&gt;
22-11-2003, Kell&lt;br /&gt;
- Attempted to fix the bug where setting ACT in a @Hit trigger stops&lt;br /&gt;
  the swing, by restoring it after the trigger.&lt;br /&gt;
- Added SKIPDIFFICULTY (0 by default, or 1) to SKILL sections. Setting it to 1&lt;br /&gt;
  skips the hardcoded difficulty check and allows one to do their own skill difficulty&lt;br /&gt;
  checks in @Success, and &amp;quot;return 1&amp;quot; in there for a failure.&lt;br /&gt;
- Fixed @Select triggers which return 1 leaving the character waiting for an action.&lt;br /&gt;
&lt;br /&gt;
23-11-2003, Zorm&lt;br /&gt;
- Experimental Precasting support, enable with experimental flag EF_Precast (flag 020),&lt;br /&gt;
  this is not well tested - it's a work in progress. Included here just for the sake of&lt;br /&gt;
  getting feedback.&lt;br /&gt;
&lt;br /&gt;
24-11-2003, Kell&lt;br /&gt;
- SERV.SPELL(x).yyy, where x is the number of the spell and yyy is a key from the&lt;br /&gt;
  SPELLs section, such as MANAUSE or RESOURCES. You can also use RESCAST for a&lt;br /&gt;
  descriptive name of resources (much like RESMAKE works for items).&lt;br /&gt;
- SERV.SKILL(x).yyy, where x is the skill number and yyy is a key from the SKILLs&lt;br /&gt;
  section, such as KEY or TITLE.&lt;br /&gt;
- Experimented with breaking SKILL and SPELL sections to seperate files, loading them&lt;br /&gt;
  off-order and reloading, no problems found. Notice however that files containing&lt;br /&gt;
  SPELL sections must load after the base items (like spheretable_x does).&lt;br /&gt;
&lt;br /&gt;
25-11-2003, Kell&lt;br /&gt;
- Changed it so NPCs with SPIRITSPEAK equal or above 100.0 are able to see dead players,&lt;br /&gt;
  like healers can. That allows one to use ON = @NPCSeeNewPlayer and an human brain to&lt;br /&gt;
  implement NPCs that interact with the dead, without having to put up with healer's&lt;br /&gt;
  default behaviour.&lt;br /&gt;
- Added flag NORESROBE to sphere.ini. If set to 1, players will not be given a robe&lt;br /&gt;
  when resurrected.&lt;br /&gt;
&lt;br /&gt;
26-11-2003, Kell&lt;br /&gt;
- Changed SERV.SPELL and SERV.SKILL so that they accept either number or defname&lt;br /&gt;
  (SKILL also accepts plain names, like &amp;lt;SERV.SKILL(Magery).TITLE&amp;gt;)&lt;br /&gt;
- SERV.ITEMDEF(x).yyy to access data from ITEMDEF sections (similar to the above)&lt;br /&gt;
- SERV.CHARDEF(x).yyy to access data from CHARDEF sections (similar to the above)&lt;br /&gt;
&lt;br /&gt;
27-11-2003, Kell&lt;br /&gt;
- On the brink of release, fixed a serious problem inherited from .55j where unknown&lt;br /&gt;
  keywords being evaluated would *silently* come out untouched. As an example,&lt;br /&gt;
  '&amp;lt;SERV.NONEXISTANT&amp;gt;' would silently come out as '&amp;lt;SERV.NONEXISTANT&amp;gt;' instead of ''&lt;br /&gt;
  as in .55i. If used with tags, it could end up getting weird values and make it hard&lt;br /&gt;
  to catch the error, as no error was being shown. It now returns '' for stuff it can't&lt;br /&gt;
  evaluate, BUT also prints an error in the console. I believe this is the best possible&lt;br /&gt;
  behaviour.&lt;br /&gt;
- Linux version is now declared stable. A minor problem still exists, in that pressing&lt;br /&gt;
  CTRL-C in the console is not a good way to terminate the server, and will very likely&lt;br /&gt;
  get it into a loop. This is a minor problem though, still trying to solve it. Test&lt;br /&gt;
  servers report uptimes of 2-3 days with 10-20 players online (that's all the testing&lt;br /&gt;
  I could do).&lt;br /&gt;
- Added CANMAKESKILL to test ONLY for the ability to make an item skillwise (it ONLY&lt;br /&gt;
  tests the SKILLMAKE line), not resources.&lt;br /&gt;
- Added &amp;quot;fval&amp;quot;, which works exactly like &amp;quot;eval&amp;quot;, but formats the output in x.x format.&lt;br /&gt;
- There seems to be an issue with skills that use @Success to cancel a skill, in that&lt;br /&gt;
  sometimes the skill won't be registered as finished, and using the skill again will&lt;br /&gt;
  show the &amp;quot;you must wait&amp;quot; message. Players can just double-tap TAB to overcome this,&lt;br /&gt;
  or you can use ACTION=-1 to force skill termination. Need some feedback on this, as&lt;br /&gt;
  this behaviour might actually be due to bad scripts, so feel free to post comments.&lt;br /&gt;
- Many issues with the default &lt;br /&gt;
&lt;br /&gt;
---- 0.55 R2a -----------------------------------------------------------------&lt;br /&gt;
---- 02/12/2003&lt;br /&gt;
&lt;br /&gt;
30-11-2003, Zorm&lt;br /&gt;
- Fixed text going all uppercase sometimes and gm body commands.&lt;br /&gt;
&lt;br /&gt;
01-12-2003, Kell&lt;br /&gt;
- Added @EquipTest and @ItemEquipTest (return 1 cancels equiping).&lt;br /&gt;
- Changed @SkillItemMake so that &amp;quot;return 1&amp;quot; only deletes the item if it's container hasn't&lt;br /&gt;
  been set.&lt;br /&gt;
- Fixed bug with skills apparently not finishing (also fixes cartography).&lt;br /&gt;
- Fixed summoning bug (Linux only). This has to do with doing propper memory initialization&lt;br /&gt;
  prior to using points.&lt;br /&gt;
- Removed all specific handling for SERV.xxx(y).zzz and made it generic. You can now use&lt;br /&gt;
  either syntax: SERV.xxx(y).zzz or SERV.xxx.y.zzz.&lt;br /&gt;
- Changed default release options for speed optimization.&lt;br /&gt;
&lt;br /&gt;
02-12-2003, Kell&lt;br /&gt;
- Fixed REAPAMOUNT / AMOUNT. It can now take multi-point values in a format similar to&lt;br /&gt;
  ADVANCE for skills.&lt;br /&gt;
- Added SPEECHSELF= to sphere.ini, to allow setting the name of the speech trigger that&lt;br /&gt;
  should be called to intercept player speech. Suggested: SPEECHSELF=spk_player&lt;br /&gt;
  &amp;quot;return 1&amp;quot; in said trigger stops the player from actually talking.&lt;br /&gt;
- Removed hard coded &amp;quot;home home home&amp;quot; - one can just use the default spk_player speech if&lt;br /&gt;
  that feature is desired (but mostly it's not)&lt;br /&gt;
- Added SPEECHPET= to sphere.ini, to allow setting the name of the speech trigger that&lt;br /&gt;
  is called when a pet listens to its master. &amp;quot;return 1&amp;quot; in said trigger stops the pet&lt;br /&gt;
  from listenning.&lt;br /&gt;
&lt;br /&gt;
---- 0.55 R3 rc1 --------------------------------------------------------------&lt;br /&gt;
---- 08/01/2004&lt;br /&gt;
&lt;br /&gt;
09-12-2003&lt;br /&gt;
- Added TAGs to CHARDEF/ITEMDEF sections. If a TAG does exists at an instance it overrides&lt;br /&gt;
  the def value.&lt;br /&gt;
&lt;br /&gt;
10-12-2003, Kell&lt;br /&gt;
- Added OptionFlags to sphere.ini, to set multiple options. These will be named OF_&lt;br /&gt;
- Added OF_Magic_IgnoreAR = 0001, so that AR doesn't count to stop damage spells.&lt;br /&gt;
- Added ACTDIFF to characters to obtain the current action difficulty.&lt;br /&gt;
  Suggestion: One can use ACTDIFF to modify difficulty within skill Start triggers.&lt;br /&gt;
- Added a 6th parameter to the EFFECT command, the hue for the effect.&lt;br /&gt;
- Added @Effect trigger to spells, triggered after @SpellEffect&lt;br /&gt;
- &amp;lt;TAG0.xxx&amp;gt; can now be used to assume &amp;quot;0&amp;quot; as the default value for a tag.&lt;br /&gt;
- TAG0.xxx = yyy can now be used, if yyy is 0, then no tag will be recorded (same as setting&lt;br /&gt;
  to a zero length string)&lt;br /&gt;
  Using TAG0, you can thus have tags that are only recorded if they are not 0. This is great&lt;br /&gt;
  for tags that are usually 0 and are often used (e.g. tags that must exist on all characters).&lt;br /&gt;
- Added VAR0 (same functionality as TAG0, but for VAR).&lt;br /&gt;
&lt;br /&gt;
11-12-2003, Kell&lt;br /&gt;
- Added OF_Magic_CanHarmSelf = 0002, so that spells with SPELLFLAG_HARM will still affect the&lt;br /&gt;
  caster (useful for SPELLEFFECT in scripts)&lt;br /&gt;
- Changed rand(x) to allow a 2nd parameter rand(x,y) and return a random number between x and y,&lt;br /&gt;
  if y is present.&lt;br /&gt;
&lt;br /&gt;
12-12-2003, Kell&lt;br /&gt;
- You can now use @color,font in SYSMESSAGE and MESSAGE. font ranges from 0 to 9, and I quote:&lt;br /&gt;
      FONT_BOLD,	// 0 - Bold Text = Large plain filled block letters.&lt;br /&gt;
      FONT_SHAD,	// 1 - Text with shadow = small gray&lt;br /&gt;
      FONT_BOLD_SHAD,	// 2 - Bold+Shadow = Large Gray block letters.&lt;br /&gt;
      FONT_NORMAL,	// 3 - Normal (default) = Filled block letters.&lt;br /&gt;
      FONT_GOTH,	// 4 - Gothic = Very large blue letters.&lt;br /&gt;
      FONT_ITAL,	// 5 - Italic Script&lt;br /&gt;
      FONT_SM_DARK,	// 6 - Small Dark Letters = small Blue&lt;br /&gt;
      FONT_COLOR,	// 7 - Colorful Font (Buggy?) = small Gray (hazy)&lt;br /&gt;
      FONT_RUNE,	// 8 - Rune font (Only use capital letters with this!)&lt;br /&gt;
      FONT_SM_LITE,	// 9 - Small Light Letters = small roman gray font.&lt;br /&gt;
- Changed SKILLMAKE to allow getting an individual resource in the list. SKILLMAKE.1 gets the first,&lt;br /&gt;
  SKILLMAKE.1.VAL gets the value and SKILLMAKE.1.KEY gets the associated resource key.&lt;br /&gt;
&lt;br /&gt;
13-12-2003, Kell&lt;br /&gt;
- Added &amp;quot;RELEASE&amp;quot; to character verbs, does the same as &amp;quot;release&amp;quot; when spoke to a pet.&lt;br /&gt;
- Added @NPCFollow trigger, called when an NPC is following someone.&lt;br /&gt;
&lt;br /&gt;
14-12-2003, Kell&lt;br /&gt;
- Changed ATTACK to accept as parameter the UID of the character to attack.&lt;br /&gt;
- Changed TRY to make no plevel or touch/distance checks. Use TRYP if you want those checks&lt;br /&gt;
  (TRYP 0 only checks for touch/distance, not plevel).&lt;br /&gt;
- Added an useful keyword to scripts, that allows one to use &amp;quot;OBJ&amp;quot; as pointer to an item. It's&lt;br /&gt;
  similar to ACT but it can be used anywhere. &lt;br /&gt;
  Example:&lt;br /&gt;
     OBJ	= &amp;lt;UID&amp;gt;&lt;br /&gt;
     SAY You are &amp;lt;OBJ.NAME&amp;gt;, with uid &amp;lt;OBJ.UID&amp;gt;.&lt;br /&gt;
- Changed MEMORY to allow an UID as parameter, so you can now find the memory related to a specific&lt;br /&gt;
  UID. If no argument is used, it uses SRC's UID as usual. Also changed it to be read/write.&lt;br /&gt;
  Example:&lt;br /&gt;
     MEMORY &amp;lt;SRC.UID&amp;gt; 0200	// set memory &lt;br /&gt;
     SAY Memory flag regarding &amp;lt;UID&amp;gt; is &amp;lt;MEMORY.&amp;lt;SRC.UID&amp;gt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
15-12-2003, Kell&lt;br /&gt;
- Changed @UserSkills so that &amp;lt;argn1&amp;gt; is the number of the skill being updated, or -1 for the skill&lt;br /&gt;
  list. This allows one to stop sending of skill updates to the client.&lt;br /&gt;
- NPCs will not say &amp;quot;Yes Master&amp;quot; if SPEECHPET is set in sphere.ini (you can script it in the speech&lt;br /&gt;
  triggers if you want them to). If SPEECHPET isn't set, they still won't say anything unless they&lt;br /&gt;
  can see their master (which is great for GMs). Players will no longer respond &amp;quot;Sorry&amp;quot;.&lt;br /&gt;
- Resource gathering was changed so that the SKILLMAKE of the resource item is checked. Resources&lt;br /&gt;
  which fail the canmake check are ignored and aren't part of the randomization process. If for some&lt;br /&gt;
  reason one wants to go back to the old style, just comment SKILLMAKE on the ore itemdefs.&lt;br /&gt;
- Added OF_Skill_DiffFirst = 0008. With this flag turned on, difficulty for a skill is calculated BEFORE&lt;br /&gt;
  calling @Start/@SkillStart. This has the advantage of allowing the difficulty for a skill to be changed&lt;br /&gt;
  via ACTDIFF within that trigger. Notice that for a skill to fail, ACTDIFF must be set above the current&lt;br /&gt;
  (modified) skill. Setting ACTDIFF to a negative value means that the skill will abort, that is, @Fail&lt;br /&gt;
  will not be called and no skill gain will be attempted. To always fail set ACTDIFF to a value above the&lt;br /&gt;
  possible skill (say, 1001).&lt;br /&gt;
  This has the sideffect of calling @SpellCast before @Start/@SkillStart. On the other hand, it is the&lt;br /&gt;
  ultimate tool for implementing your own skill difficulties.&lt;br /&gt;
  Here's an example of making the difficulty for arms lore AT LEAST the same value as for making the item&lt;br /&gt;
  (using the primary skill). Characters with skill above ACTDIFF will always succeed.&lt;br /&gt;
  ON = @Start&lt;br /&gt;
   if ( &amp;lt;SRC.ACTDIFF&amp;gt; &amp;lt; &amp;lt;SRC.ACT.SKILLMAKE.1.VAL&amp;gt; )&lt;br /&gt;
      SRC.ACTDIFF	= &amp;lt;SRC.ACT.SKILLMAKE.1.VAL&amp;gt;&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
16-12-2003, Kell&lt;br /&gt;
- You can now use NEWITEM, NEWNPC and NEWDUPE in item scripts, the items will be created into &amp;quot;NEW&amp;quot;. Using&lt;br /&gt;
  these commands on a character will create the items in both NEW and ACT. If you want to use these&lt;br /&gt;
  on a character without changing ACT, use SERV.NEWITEM, etc.&lt;br /&gt;
  Example:&lt;br /&gt;
    NEWITEM i_gold&lt;br /&gt;
    NEW.AMOUNT 100&lt;br /&gt;
    NEW.P	= &amp;lt;TOPOBJ.P&amp;gt;&lt;br /&gt;
  You can also use NEW as a temporary handler, much like you can use OBJ (and to an extenct, ACT).&lt;br /&gt;
&lt;br /&gt;
17-12-2003, Kell&lt;br /&gt;
- Functions can now receive &amp;quot;args&amp;quot; when being evaluated, as in &amp;lt;SRC.myfunction Say hello&amp;gt;&lt;br /&gt;
- Added RANGE=min,max or RANGE=max (min defaults to 0) for ITEMDEF and CHARDEF. Default weapon range&lt;br /&gt;
  is 1. Default character range is 1. Range is calculated as (character + weapon -1). &lt;br /&gt;
  Example: Assuming all characters are RANGE=1 (which they are), putting RANGE=2 in an halberd&lt;br /&gt;
  means characters equipping it can hit 1 square further.&lt;br /&gt;
&lt;br /&gt;
18-12-2003, Kell&lt;br /&gt;
- The main section for DIALOGs is now fully interpreted like other scripts, allowing you to add logic&lt;br /&gt;
  to your dialog, use IFs, etc. The only limitation at the moment is that gump commands are only &lt;br /&gt;
  allowed right in the DIALOG section, and not within FUNCTIONs, but hei... it's better. :)&lt;br /&gt;
- Dialogs will no longer conflict with each other, this allows for permanent on-screen dialogs. INPDLG&lt;br /&gt;
  works too, seeing as there can be only one INPDLG window onscreen at all times.&lt;br /&gt;
- Added RESOURCES.n, RESOURCES.n.KEY and RESOURCES.n.VAL to items/characters.&lt;br /&gt;
&lt;br /&gt;
19-12-2003, Kell&lt;br /&gt;
- To make writing dialogs easier, added a cursor and relative coordinates:&lt;br /&gt;
     dorigin 50 50	// sets the origin to x=50, y=50&lt;br /&gt;
  Using &amp;quot;*&amp;quot; near a coordinate makes it relative to the origin, and displaces the origin by some amount:&lt;br /&gt;
     dtext     *0    *10    0    the origin is now x=50 y=60, so is the last location&lt;br /&gt;
  Using &amp;quot;+&amp;quot; near a coordinate makes it relative to the last location w/o changing the origin.&lt;br /&gt;
     dtext     +10     -    0    adds 10 to X (y=150, o.y=100)&lt;br /&gt;
  As an example, imagine writing a list of text with 3 columns, each seperated via 200 x and 20 space&lt;br /&gt;
  between each row:&lt;br /&gt;
  dorigin 10 10&lt;br /&gt;
  // first row&lt;br /&gt;
  dtext     *0   -    5   1:&lt;br /&gt;
    dtext  +10   -    0   the text for row1, col1&lt;br /&gt;
  dtext   *200   -    5   2:		// x orig = 200&lt;br /&gt;
    dtext  +10   -    0   the text for row1, col2&lt;br /&gt;
  dtext   *200   -    5   3:		// x orig = 400&lt;br /&gt;
    dtext  +10   -    0   the text for row1, col2&lt;br /&gt;
&lt;br /&gt;
  And now one only has to go down one row. and the text is quite similar. This isn't too easy to explain, it's&lt;br /&gt;
  there for whomever might find it useful. If you can't think of a use for it, just ignore it. ;)&lt;br /&gt;
- Fixed the bug with FORCHARS/ITEMS/OBJS and keywords starting with &amp;quot;FOR&amp;quot; (like FORensics).&lt;br /&gt;
- Changed textadd and gumptext to collapse equal strings of text to the same index. So if you use&lt;br /&gt;
    gumptext 10 20  This is an example.&lt;br /&gt;
    gumptext 10 40  This is an example.&lt;br /&gt;
    gumptext 10 60  This is an example.&lt;br /&gt;
  It will only generate ONE text id. This does away with the need to have a seperate TEXT section. Granted,&lt;br /&gt;
  such a section is still useful for keeping strings all in one place (in this case it'd be useful), but it&lt;br /&gt;
  is no longer mandatory, it becomes simply a matter of style/choice.&lt;br /&gt;
&lt;br /&gt;
20-12-2003, Kell&lt;br /&gt;
- Equal PLEVEL should be able to see each other, so they are now.&lt;br /&gt;
- You can now open a dialog in a specific page, with DIALOG  d_dialog_name  pagenumber. This isn't actually&lt;br /&gt;
  possible with the UO client - what it does is recalculate the dialog page/button numbers so that the selected&lt;br /&gt;
  page is first. It's completly invisible though, and works perfectly.&lt;br /&gt;
- Added a new command - DTEXT - to gumps, which does the handling of text ids for you (d stands for dynamic):&lt;br /&gt;
     dtext x y color  Actual text comes here.&lt;br /&gt;
  Text added with gumptext is actually added to the [DIALOG ... TEXT] section. If you're only using a given&lt;br /&gt;
  text string once, then it's actually faster using this than using &amp;quot;text&amp;quot; and adding it to the TEXT section&lt;br /&gt;
  of the dialog. Simmilar commands, DCROPPEDTEXT and DTEXTENTRY are also in, also taking text instead of an&lt;br /&gt;
  index. DHTMLGUMP is also in, but notice that the syntax is like HTMLGUMP, except that you ommit the ID and add&lt;br /&gt;
  the text in the end.&lt;br /&gt;
  With these changes, you can completly ommit the [DIALOG ... TEXT] section of dialogs. Only those strings&lt;br /&gt;
  that are commonly used throughout the dialog should you put in the [DIALOG ... TEXT] section.&lt;br /&gt;
  Internally, both gumptext and textadd simply add stuff to the dialog as needed, and send normal &amp;quot;text&amp;quot;&lt;br /&gt;
  commands to the client, so they're safe to use. But they free you from having to keep track of a LONG&lt;br /&gt;
  list of numbers, and allow you to shape and modify your dialog w/o bothering with text ids.&lt;br /&gt;
- You can now use FUNCTIONs that issue gump commands. So you actually make your own gump commands!!! Death to&lt;br /&gt;
  copy &amp;amp; paste dialogs!&lt;br /&gt;
&lt;br /&gt;
21-12-2003, Kell&lt;br /&gt;
- Fixed a bug in that setting stats &amp;amp; skills via scripts wouldn't correctly parse things. For instance, numerical&lt;br /&gt;
  expressions.&lt;br /&gt;
- Started work on MANUAL.TXT, to detail the current state of things like triggers and their arguments, seeing as&lt;br /&gt;
  reading this changelog is probably a difficult task for a lot of people.&lt;br /&gt;
- Changed args in functions to be writeable. This is useful in scripts, but for triggers, the server will read&lt;br /&gt;
  back the values and use the new ones wherever it makes sense. For the time being, these triggers were&lt;br /&gt;
  changed:&lt;br /&gt;
     @GetHit, ARGN1 is the damage being apllied, ARGN2 the damage type (as usual, but now writeable). &lt;br /&gt;
     @Hit, ARGN1 is now the raw damage being applied, prior to armour (writeable). ARGO is the weapon (if any).&lt;br /&gt;
     @PersonalSpace, ARGN1 is the stamina required to move (writeable). &amp;quot;return 1&amp;quot; stops the movement, &amp;quot;return 0&amp;quot;&lt;br /&gt;
     allows the movement but shows none of the hard-coded messages. Plain &amp;quot;return&amp;quot; or no return, works as standard.&lt;br /&gt;
  @Hit, @HitTry and @HitMiss were also changed so that ARGO is the weapon being used (handy so you don't have to&lt;br /&gt;
  be looking at layers n stuff).&lt;br /&gt;
  I should add that ACTDIFF is also available, and it can be used to change the difficulty of a skill, even make&lt;br /&gt;
  a skill succedd that would otherwise fail (by setting it to 0). It can also be used in @HitTry now, and if&lt;br /&gt;
  set to any non-negative value, a missing hit will instead succeed.&lt;br /&gt;
- Added StrEat function, which removes a word up to the space, from a string (&amp;lt;streat(&amp;quot;hello there friend&amp;quot;)&amp;gt;&lt;br /&gt;
  or &amp;lt;streat hello there friend&amp;gt; return &amp;quot;there friend&amp;quot;)&lt;br /&gt;
- Added &amp;lt;SERV.LOOKUPSKILL skill name&amp;gt; which returns the skill number for some text or -1 if not found.&lt;br /&gt;
- After some beta-testing, a few fixes to dialogs.&lt;br /&gt;
- LOCAL.xxx within functions for LOCAL . They're a bit more efficient on servers with lots of global&lt;br /&gt;
  vars due to faster lookups ). LOCAL variables always come up initially as &amp;quot;0&amp;quot;.&lt;br /&gt;
- ARGN1, ARGN2 and ARGN3 are set for functions with numeric arguments. So whenever possible, use these instead&lt;br /&gt;
  of argv. Example: &amp;quot;myfunction  123 50 89&amp;quot; - these 3 values will be parsed into argn1, argn2 and argn3&lt;br /&gt;
&lt;br /&gt;
22-12-2003, Kell&lt;br /&gt;
- Functions can now return strings using &amp;quot;return&amp;quot;. Notice that this behaves like TAGs, in that if you do&lt;br /&gt;
     return 2+2&lt;br /&gt;
  then &amp;quot;2+2&amp;quot; is returned, and not &amp;quot;4&amp;quot;. You'll have to explicitly call &amp;quot;eval&amp;quot; on what you want&lt;br /&gt;
  to return:&lt;br /&gt;
     return &amp;lt;eval (2+2)&amp;gt;&lt;br /&gt;
  Returning strings causes no extra lag, seeing as the old method of returning a value relied on the same&lt;br /&gt;
  string which is returned (EVALed). So it is actually faster (although hardly noticeable).&lt;br /&gt;
  This might pose a problem problem if you have &amp;quot;return rand&amp;quot; or similar, instead of &amp;quot;return &amp;lt;eval rand...&amp;quot;&lt;br /&gt;
  seeing as multiple uses of the return value re-evaluate it, generating a new random number - again,&lt;br /&gt;
  similar to TAGs.&lt;br /&gt;
  MAKE SURE YOU HAVE &amp;quot;EVAL&amp;quot; on your &amp;quot;return&amp;quot; lines, wherever you want the result of a calculation to be&lt;br /&gt;
  returned. The next version will probably not have an EF_ReturnString flag.&lt;br /&gt;
&lt;br /&gt;
- Modified the profiling function to keep track of average consumption over time. The average time is&lt;br /&gt;
  calculated each second as 90% of the previous average time plus 10% the current time. This poses some&lt;br /&gt;
  resistence to spikes. &lt;br /&gt;
- Added a new keyword to @Create / @NPCRestock and template scripts: FULLINTERP. Set FULLINTERP=1 to allow the&lt;br /&gt;
  use of functions, ifs, etc. Example:&lt;br /&gt;
  ON = @NPCRestock&lt;br /&gt;
     ITEM=i_cape&lt;br /&gt;
     FULLINTERP&lt;br /&gt;
        ITEM=i_robe&lt;br /&gt;
        MY_FUNCTION_CALL&lt;br /&gt;
  You can use FULLINTERP 0 to disable the feature, after you've enabled it, but it's usually pointless, seeing as&lt;br /&gt;
  this FULLINTERP affects only the remainder of the current script. Bear in mind that the usual restrictions apply,&lt;br /&gt;
  seeing as the created NPC is not ingame yet.&lt;br /&gt;
&lt;br /&gt;
23-12-2003, Kell&lt;br /&gt;
- Added access to TERRAIN and STATICS either via P.key, MOREP.key or SERV.MAP(x,y).key, with key being one of:&lt;br /&gt;
    TERRAIN	The terrain ID&lt;br /&gt;
    ISDIRT	Checks the terrain ID to see if it's dirt.&lt;br /&gt;
    ISGRASS	guess&lt;br /&gt;
    ISROCK	dunno&lt;br /&gt;
    ISWATER	guess again&lt;br /&gt;
    STATICS	Number of statics in the position&lt;br /&gt;
    STATICS(n)	ID of static Nth static ( eg: &amp;lt;SERV.MAP(200,300).STATICS(0)&amp;gt;. Shows no error in the console&lt;br /&gt;
		if static isn't present, returning 0 - useful to test for a static w/o counting or looping.&lt;br /&gt;
    STATICS.n	  same&lt;br /&gt;
    STATICS(n).key	Get a key from the appropriate ITEMDEF. eg: &amp;lt;SERV.MAP(200,300).STATICS(0).NAME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Added basic iterator construct, WHILE, with the following syntax:&lt;br /&gt;
     WHILE ( condition )&lt;br /&gt;
	// do stuff, current iteration number in &amp;lt;LOCAL._WHILE&amp;gt;&lt;br /&gt;
     END // or ENDWHILE&lt;br /&gt;
&lt;br /&gt;
  also added FOR, terminated with either END or ENDFOR, with the following syntax:&lt;br /&gt;
&lt;br /&gt;
     FOR 5	// loops from 0 to 5, current iteration number in LOCAL._FOR&lt;br /&gt;
  or FOR 3 5	// loops from 3 to 5, current iteration number in LOCAL._FOR&lt;br /&gt;
  or FOR K 5	// loops from 0 to 5, current iteration number in LOCAL.K&lt;br /&gt;
  or FOR K 3 5	// loops from 3 to 5, current iteration number in LOCAL.K&lt;br /&gt;
	// do stuff&lt;br /&gt;
     END  // or ENDFOR&lt;br /&gt;
&lt;br /&gt;
  Changing these LOCAL variables has no effect on the loop.&lt;br /&gt;
- Wrote a small assembly function to access the high resolution timer. Works for both windows and Linux,&lt;br /&gt;
  now being used in profiling. Profiling works on Linux now. It also looks a lot better in the console&lt;br /&gt;
  thanks to the monospaced font.&lt;br /&gt;
- Changed the console font under Windows to Courier, which is monospaced, so things come out aligned in&lt;br /&gt;
  the console. Under Linux, the console is naturally monospaced.&lt;br /&gt;
- You can now add new SKILL sections, up to 70. SERV.MAXSKILL tells you how many skills are loaded. Notice&lt;br /&gt;
  that they won't be sent to the client though, the client doesn't support them (hint: @UserSkills). There&lt;br /&gt;
  is also a FLAGS key for SKILL section, with the following values:&lt;br /&gt;
     [DEFNAME skill_defs]&lt;br /&gt;
     SKF_SCRIPTED	01	// no hardcoded behaviour, only triggers are called.&lt;br /&gt;
     // feel free to add new tags you find useful, but only above 01000 please, to make room for future&lt;br /&gt;
     expansion&lt;br /&gt;
  This is heavily experimental, mess with it at your own risk.&lt;br /&gt;
- SKILLSELECT skill - force a button select event on the skill list&lt;br /&gt;
&lt;br /&gt;
24-12-2003, Kell&lt;br /&gt;
- Fixed TYPEDEFS section in spherefs.scp loosing values when resynced.&lt;br /&gt;
- Added &amp;lt;CANMOVE dir&amp;gt;, takes a direction as argument (like WALK), returns the area ID we're moving to,&lt;br /&gt;
  or 0 if no move is possible.&lt;br /&gt;
- Added &amp;lt;MOVE dir&amp;gt;, takes a direction as argument (like WALK), returns the TILE flags for that position.&lt;br /&gt;
  Notice that flag 04 is walkable. Here's a list of flags, you can copy&amp;amp;paste it into spheredefs.scp. This&lt;br /&gt;
  keyword might change in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[DEFNAME tile_flags]			// by Shadowlord&lt;br /&gt;
tilef_background	01		// No idea. None whatsoever. Maybe it's the blackness.&lt;br /&gt;
tilef_weapon		02		// I smack thee with this here ... club?&lt;br /&gt;
tilef_transparent	04		// Yeah. So we can see through it?&lt;br /&gt;
tilef_translucent	08		// Okay...&lt;br /&gt;
tilef_wall		010		// Hey look, we can't walk through it!&lt;br /&gt;
tilef_damaging		020		// Lava, perhaps? Fires, hmm!&lt;br /&gt;
tilef_impassable	040		// Mountains and stuff, I'll wager.&lt;br /&gt;
tilef_wet		080		// Water? Or mud? Or a slick road in a rainstorm? Probably the first.&lt;br /&gt;
tilef_unknown		0100		// Uh...&lt;br /&gt;
tilef_surface		0200		// Tables or something?&lt;br /&gt;
tilef_bridge		0400		// I wonder why they'd have a flag for that.&lt;br /&gt;
tilef_stackable		0800	&lt;br /&gt;
tilef_window		01000		// So we can see/shoot out?&lt;br /&gt;
tilef_noshoot		02000		// ? We can't shoot out or something? So, like a glass window maybe?&lt;br /&gt;
tilef_prefixA		04000		// A card&lt;br /&gt;
tilef_prefixAn		08000		// An apple&lt;br /&gt;
tilef_internal		010000		// hair, beards, etc&lt;br /&gt;
tilef_foliage		020000		// Probably bushes and tree leaves and stuff.&lt;br /&gt;
tilef_partialHue	040000		// semi-glowy?&lt;br /&gt;
tilef_unknown_1		080000		// Well, gee. I should see if it's used on anything...&lt;br /&gt;
tilef_map		0100000		// Sounds good to me.&lt;br /&gt;
tilef_container		0200000		// They flag these!?&lt;br /&gt;
tilef_wearable		0400000		// Omigod!&lt;br /&gt;
tilef_lightSource	0800000		// I'm getting tired of typing repetitive shiznit now.&lt;br /&gt;
tilef_animated		01000000	// Like fire again. And stuff. Those spinny propeller thingies!&lt;br /&gt;
tilef_noDiagonal	02000000	// !?!???!!?&lt;br /&gt;
tilef_unknown_2		04000000	// I really hope some of these unknowns are n/w/s/e facing flags.&lt;br /&gt;
tilef_armor		08000000	// Armor, okay, so does that count shields? Hmmm?&lt;br /&gt;
tilef_roof		010000000	// &amp;quot;Don't fall through me!&amp;quot; Or why isn't it just flagged surface or something?&lt;br /&gt;
tilef_door		020000000	// Okay...&lt;br /&gt;
tilef_stairBack		040000000	// Don't we have stairs that go forward or left too? This could cover both...&lt;br /&gt;
tilef_stairRight	080000000	// Well, whatever, you can climb them, so, hey... Good use for a &lt;br /&gt;
&lt;br /&gt;
NOTE :	EF flags change from version to version, so make SURE you're using only the EF&lt;br /&gt;
	flags you want, if any.&lt;br /&gt;
&lt;br /&gt;
SUMMARY of flags for Sphere.ini:&lt;br /&gt;
OptionFlags=	// Flags for options that affect server behaviour but not compatibility&lt;br /&gt;
	0001		// OF_Magic_IgnoreAR&lt;br /&gt;
	0002		// OF_Magic_CanHarmSelf&lt;br /&gt;
	0004		// OF_Magic_StackStats			(Do NOT set this yet)&lt;br /&gt;
	0008		// OF_Skill_DiffFirst&lt;br /&gt;
	0010		// OF_Archery_CanMove&lt;br /&gt;
	0020		// OF_Magic_PreCast&lt;br /&gt;
&lt;br /&gt;
Experimental=	// Flags for options that affect server behaviour and which might affect compatibility&lt;br /&gt;
	0001		// EF_XCMD_Spy&lt;br /&gt;
	0002		// EF_UNICODE&lt;br /&gt;
	0004		// EF_CanSeeLOS&lt;br /&gt;
	0008		// EF_ReturnString&lt;br /&gt;
	Suggested value: EXPERIMENTAL=01&lt;br /&gt;
&lt;br /&gt;
01-12-2003, Kell&lt;br /&gt;
- Added @EquipTest and @ItemEquipTest (return 1 cancels equiping).&lt;br /&gt;
- Changed @SkillItemMake so that &amp;quot;return 1&amp;quot; only deletes the item if it's container hasn't&lt;br /&gt;
  been set.&lt;br /&gt;
- Fixed bug with skills apparently not finishing (also fixes cartography).&lt;br /&gt;
- Fixed summoning bug (Linux only). This has to do with doing propper memory initialization&lt;br /&gt;
  prior to using points.&lt;br /&gt;
- Removed all specific handling for SERV.xxx(y).zzz and made it generic. You can now use&lt;br /&gt;
  either syntax: SERV.xxx(y).zzz or SERV.xxx.y.zzz.&lt;br /&gt;
- Changed default release options for speed optimization.&lt;br /&gt;
&lt;br /&gt;
02-12-2003, Kell&lt;br /&gt;
- Fixed REAPAMOUNT / AMOUNT. It can now take multi-point values in a format similar to&lt;br /&gt;
  ADVANCE for skills.&lt;br /&gt;
- Added SPEECHSELF= to sphere.ini, to allow setting the name of the speech trigger that&lt;br /&gt;
  should be called to intercept player speech. Suggested: SPEECHSELF=spk_player&lt;br /&gt;
  &amp;quot;return 1&amp;quot; in said trigger stops the player from actually talking.&lt;br /&gt;
- Removed hard coded &amp;quot;home home home&amp;quot; - one can just use the default spk_player speech if&lt;br /&gt;
  that feature is desired (but mostly it's not)&lt;br /&gt;
- Added SPEECHPET= to sphere.ini, to allow setting the name of the speech trigger that&lt;br /&gt;
  is called when a pet listens to its master. &amp;quot;return 1&amp;quot; in said trigger stops the pet&lt;br /&gt;
  from listenning.&lt;br /&gt;
&lt;br /&gt;
09-12-2003&lt;br /&gt;
- Added TAGs to CHARDEF/ITEMDEF sections. If a TAG does exists at an instance it overrides&lt;br /&gt;
  the def value.&lt;br /&gt;
&lt;br /&gt;
10-12-2003, Kell&lt;br /&gt;
- Added OptionFlags to sphere.ini, to set multiple options. These will be named OF_&lt;br /&gt;
- Added OF_Magic_IgnoreAR = 0001, so that AR doesn't count to stop damage spells.&lt;br /&gt;
- Added ACTDIFF to characters to obtain the current action difficulty.&lt;br /&gt;
  Suggestion: One can use ACTDIFF to modify difficulty within skill Start triggers.&lt;br /&gt;
- Added @Effect trigger to spells, triggered after @SpellEffect&lt;br /&gt;
- &amp;lt;TAG0.xxx&amp;gt; can now be used to assume &amp;quot;0&amp;quot; as the default value for a tag.&lt;br /&gt;
- TAG0.xxx = yyy can now be used, if yyy is 0, then no tag will be recorded (same as setting&lt;br /&gt;
  to a zero length string)&lt;br /&gt;
  Using TAG0, you can thus have tags that are only recorded if they are not 0. This is great&lt;br /&gt;
  for tags that are usually 0 and are often used (e.g. tags that must exist on all characters).&lt;br /&gt;
- Added VAR0 (same functionality as TAG0, but for VAR).&lt;br /&gt;
&lt;br /&gt;
11-12-2003, Kell&lt;br /&gt;
- Added OF_Magic_CanHarmSelf = 0002, so that spells with SPELLFLAG_HARM will still affect the&lt;br /&gt;
  caster (useful for SPELLEFFECT in scripts)&lt;br /&gt;
- Changed rand(x) to allow a 2nd parameter rand(x,y) and return a random number between x and y,&lt;br /&gt;
  if y is present.&lt;br /&gt;
&lt;br /&gt;
12-12-2003, Kell&lt;br /&gt;
- You can now use @color,font in SYSMESSAGE and MESSAGE. font ranges from 0 to 9, and I quote:&lt;br /&gt;
      FONT_BOLD,	// 0 - Bold Text = Large plain filled block letters.&lt;br /&gt;
      FONT_SHAD,	// 1 - Text with shadow = small gray&lt;br /&gt;
      FONT_BOLD_SHAD,	// 2 - Bold+Shadow = Large Gray block letters.&lt;br /&gt;
      FONT_NORMAL,	// 3 - Normal (default) = Filled block letters.&lt;br /&gt;
      FONT_GOTH,	// 4 - Gothic = Very large blue letters.&lt;br /&gt;
      FONT_ITAL,	// 5 - Italic Script&lt;br /&gt;
      FONT_SM_DARK,	// 6 - Small Dark Letters = small Blue&lt;br /&gt;
      FONT_COLOR,	// 7 - Colorful Font (Buggy?) = small Gray (hazy)&lt;br /&gt;
      FONT_RUNE,	// 8 - Rune font (Only use capital letters with this!)&lt;br /&gt;
      FONT_SM_LITE,	// 9 - Small Light Letters = small roman gray font.&lt;br /&gt;
- Changed SKILLMAKE to allow getting an individual resource in the list. SKILLMAKE.1 gets the first,&lt;br /&gt;
  SKILLMAKE.1.VAL gets the value and SKILLMAKE.1.KEY gets the associated resource key.&lt;br /&gt;
&lt;br /&gt;
13-12-2003, Kell&lt;br /&gt;
- Added &amp;quot;RELEASE&amp;quot; to character verbs, does the same as &amp;quot;release&amp;quot; when spoke to a pet.&lt;br /&gt;
- Added @NPCFollow trigger, called when an NPC is following someone.&lt;br /&gt;
&lt;br /&gt;
14-12-2003, Kell&lt;br /&gt;
- Changed ATTACK to accept as parameter the UID of the character to attack.&lt;br /&gt;
- Changed TRY to make no plevel or touch/distance checks. Use TRYP if you want those checks&lt;br /&gt;
  (TRYP 0 only checks for touch/distance, not plevel).&lt;br /&gt;
- Added an useful keyword to scripts, that allows one to use &amp;quot;OBJ&amp;quot; as pointer to an item. It's&lt;br /&gt;
  similar to ACT but it can be used anywhere. &lt;br /&gt;
  Example:&lt;br /&gt;
     OBJ	= &amp;lt;UID&amp;gt;&lt;br /&gt;
     SAY You are &amp;lt;OBJ.NAME&amp;gt;, with uid &amp;lt;OBJ.UID&amp;gt;.&lt;br /&gt;
- Changed MEMORY to allow an UID as parameter, so you can now find the memory related to a specific&lt;br /&gt;
  UID. If no argument is used, it uses SRC's UID as usual. Also changed it to be read/write.&lt;br /&gt;
  Example:&lt;br /&gt;
     MEMORY &amp;lt;SRC.UID&amp;gt; 0200	// set memory &lt;br /&gt;
     SAY Memory flag regarding &amp;lt;UID&amp;gt; is &amp;lt;MEMORY.&amp;lt;SRC.UID&amp;gt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
15-12-2003, Kell&lt;br /&gt;
- Changed @UserSkills so that &amp;lt;argn1&amp;gt; is the number of the skill being updated, or -1 for the skill&lt;br /&gt;
  list. This allows one to stop sending of skill updates to the client.&lt;br /&gt;
- NPCs will not say &amp;quot;Yes Master&amp;quot; if SPEECHPET is set in sphere.ini (you can script it in the speech&lt;br /&gt;
  triggers if you want them to). If SPEECHPET isn't set, they still won't say anything unless they&lt;br /&gt;
  can see their master (which is great for GMs). Players will no longer respond &amp;quot;Sorry&amp;quot;.&lt;br /&gt;
- Resource gathering was changed so that the SKILLMAKE of the resource item is checked. Resources&lt;br /&gt;
  which fail the canmake check are ignored and aren't part of the randomization process. If for some&lt;br /&gt;
  reason one wants to go back to the old style, just comment SKILLMAKE on the ore itemdefs.&lt;br /&gt;
- Added OF_Skill_DiffFirst = 0008. With this flag turned on, difficulty for a skill is calculated BEFORE&lt;br /&gt;
  calling @Start/@SkillStart. This has the advantage of allowing the difficulty for a skill to be changed&lt;br /&gt;
  via ACTDIFF within that trigger. Notice that for a skill to fail, ACTDIFF must be set above the current&lt;br /&gt;
  (modified) skill. Setting ACTDIFF to a negative value means that the skill will abort, that is, @Fail&lt;br /&gt;
  will not be called and no skill gain will be attempted. To always fail set ACTDIFF to a value above the&lt;br /&gt;
  possible skill (say, 1001).&lt;br /&gt;
  This has the sideffect of calling @SpellCast before @Start/@SkillStart. On the other hand, it is the&lt;br /&gt;
  ultimate tool for implementing your own skill difficulties.&lt;br /&gt;
  Here's an example of making the difficulty for arms lore AT LEAST the same value as for making the item&lt;br /&gt;
  (using the primary skill). Characters with skill above ACTDIFF will always succeed.&lt;br /&gt;
  ON = @Start&lt;br /&gt;
   if ( &amp;lt;SRC.ACTDIFF&amp;gt; &amp;lt; &amp;lt;SRC.ACT.SKILLMAKE.1.VAL&amp;gt; )&lt;br /&gt;
      SRC.ACTDIFF	= &amp;lt;SRC.ACT.SKILLMAKE.1.VAL&amp;gt;&lt;br /&gt;
   endif&lt;br /&gt;
&lt;br /&gt;
16-12-2003, Kell&lt;br /&gt;
- You can now use NEWITEM, NEWNPC and NEWDUPE in item scripts, the items will be created into &amp;quot;NEW&amp;quot;. Using&lt;br /&gt;
  these commands on a character will create the items in both NEW and ACT. If you want to use these&lt;br /&gt;
  on a character without changing ACT, use SERV.NEWITEM, etc.&lt;br /&gt;
  Example:&lt;br /&gt;
    NEWITEM i_gold&lt;br /&gt;
    NEW.AMOUNT 100&lt;br /&gt;
    NEW.P	= &amp;lt;TOPOBJ.P&amp;gt;&lt;br /&gt;
  You can also use NEW as a temporary handler, much like you can use OBJ (and to an extenct, ACT).&lt;br /&gt;
&lt;br /&gt;
17-12-2003, Kell&lt;br /&gt;
- Functions can now receive &amp;quot;args&amp;quot; when being evaluated, as in &amp;lt;SRC.myfunction Say hello&amp;gt;&lt;br /&gt;
- Added RANGE=min,max or RANGE=max (min defaults to 0) for ITEMDEF and CHARDEF. Default weapon range&lt;br /&gt;
  is 1. Default character range is 1. Range is calculated as (character + weapon -1). &lt;br /&gt;
  Example: Assuming all characters are RANGE=1 (which they are), putting RANGE=2 in an halberd&lt;br /&gt;
  means characters equipping it can hit 1 square further.&lt;br /&gt;
&lt;br /&gt;
18-12-2003, Kell&lt;br /&gt;
- The main section for DIALOGs is now fully interpreted like other scripts, allowing you to add logic&lt;br /&gt;
  to your dialog, use IFs, etc. The only limitation at the moment is that gump commands are only &lt;br /&gt;
  allowed right in the DIALOG section, and not within FUNCTIONs, but hei... it's better. :)&lt;br /&gt;
- Dialogs will no longer conflict with each other, this allows for permanent on-screen dialogs. INPDLG&lt;br /&gt;
  works too, seeing as there can be only one INPDLG window onscreen at all times.&lt;br /&gt;
- Added RESOURCES.n, RESOURCES.n.KEY and RESOURCES.n.VAL to items/characters.&lt;br /&gt;
&lt;br /&gt;
19-12-2003, Kell&lt;br /&gt;
- To make writing dialogs easier, added a cursor and relative coordinates:&lt;br /&gt;
     dorigin 50 50	// sets the origin to x=50, y=50&lt;br /&gt;
  Using &amp;quot;*&amp;quot; near a coordinate makes it relative to the origin, and displaces the origin by some amount:&lt;br /&gt;
     dtext     *0    *10    0    the origin is now x=50 y=60, so is the last location&lt;br /&gt;
  Using &amp;quot;+&amp;quot; near a coordinate makes it relative to the last location w/o changing the origin.&lt;br /&gt;
     dtext     +10     -    0    adds 10 to X (y=150, o.y=100)&lt;br /&gt;
  As an example, imagine writing a list of text with 3 columns, each seperated via 200 x and 20 space&lt;br /&gt;
  between each row:&lt;br /&gt;
  dorigin 10 10&lt;br /&gt;
  // first row&lt;br /&gt;
  dtext     *0   -    5   1:&lt;br /&gt;
    dtext  +10   -    0   the text for row1, col1&lt;br /&gt;
  dtext   *200   -    5   2:		// x orig = 200&lt;br /&gt;
    dtext  +10   -    0   the text for row1, col2&lt;br /&gt;
  dtext   *200   -    5   3:		// x orig = 400&lt;br /&gt;
    dtext  +10   -    0   the text for row1, col2&lt;br /&gt;
&lt;br /&gt;
  And now one only has to go down one row. and the text is quite similar. This isn't too easy to explain, it's&lt;br /&gt;
  there for whomever might find it useful. If you can't think of a use for it, just ignore it. ;)&lt;br /&gt;
- Fixed the bug with FORCHARS/ITEMS/OBJS and keywords starting with &amp;quot;FOR&amp;quot; (like FORensics).&lt;br /&gt;
- Changed textadd and gumptext to collapse equal strings of text to the same index. So if you use&lt;br /&gt;
    gumptext 10 20  This is an example.&lt;br /&gt;
    gumptext 10 40  This is an example.&lt;br /&gt;
    gumptext 10 60  This is an example.&lt;br /&gt;
  It will only generate ONE text id. This does away with the need to have a seperate TEXT section. Granted,&lt;br /&gt;
  such a section is still useful for keeping strings all in one place (in this case it'd be useful), but it&lt;br /&gt;
  is no longer mandatory, it becomes simply a matter of style/choice.&lt;br /&gt;
&lt;br /&gt;
20-12-2003, Kell&lt;br /&gt;
- Equal PLEVEL should be able to see each other, so they are now.&lt;br /&gt;
- You can now open a dialog in a specific page, with DIALOG  d_dialog_name  pagenumber. This isn't actually&lt;br /&gt;
  possible with the UO client - what it does is recalculate the dialog page/button numbers so that the selected&lt;br /&gt;
  page is first. It's completly invisible though, and works perfectly.&lt;br /&gt;
- Added a new command - DTEXT - to gumps, which does the handling of text ids for you (d stands for dynamic):&lt;br /&gt;
     dtext x y color  Actual text comes here.&lt;br /&gt;
  Text added with gumptext is actually added to the [DIALOG ... TEXT] section. If you're only using a given&lt;br /&gt;
  text string once, then it's actually faster using this than using &amp;quot;text&amp;quot; and adding it to the TEXT section&lt;br /&gt;
  of the dialog. Simmilar commands, DCROPPEDTEXT and DTEXTENTRY are also in, also taking text instead of an&lt;br /&gt;
  index. DHTMLGUMP is also in, but notice that the syntax is like HTMLGUMP, except that you ommit the ID and add&lt;br /&gt;
  the text in the end.&lt;br /&gt;
  With these changes, you can completly ommit the [DIALOG ... TEXT] section of dialogs. Only those strings&lt;br /&gt;
  that are commonly used throughout the dialog should you put in the [DIALOG ... TEXT] section.&lt;br /&gt;
  Internally, both gumptext and textadd simply add stuff to the dialog as needed, and send normal &amp;quot;text&amp;quot;&lt;br /&gt;
  commands to the client, so they're safe to use. But they free you from having to keep track of a LONG&lt;br /&gt;
  list of numbers, and allow you to shape and modify your dialog w/o bothering with text ids.&lt;br /&gt;
- You can now use FUNCTIONs that issue gump commands. So you actually make your own gump commands!!! Death to&lt;br /&gt;
  copy &amp;amp; paste dialogs!&lt;br /&gt;
&lt;br /&gt;
21-12-2003, Kell&lt;br /&gt;
- Fixed a bug in that setting stats &amp;amp; skills via scripts wouldn't correctly parse things. For instance, numerical&lt;br /&gt;
  expressions.&lt;br /&gt;
- Started work on MANUAL.TXT, to detail the current state of things like triggers and their arguments, seeing as&lt;br /&gt;
  reading this changelog is probably a difficult task for a lot of people.&lt;br /&gt;
- Changed args in functions to be writeable. This is useful in scripts, but for triggers, the server will read&lt;br /&gt;
  back the values and use the new ones wherever it makes sense. For the time being, these triggers were&lt;br /&gt;
  changed:&lt;br /&gt;
     @GetHit, ARGN1 is the damage being apllied, ARGN2 the damage type (as usual, but now writeable). &lt;br /&gt;
     @Hit, ARGN1 is now the raw damage being applied, prior to armour (writeable). ARGO is the weapon (if any).&lt;br /&gt;
     @PersonalSpace, ARGN1 is the stamina required to move (writeable). &amp;quot;return 1&amp;quot; stops the movement, &amp;quot;return 0&amp;quot;&lt;br /&gt;
     allows the movement but shows none of the hard-coded messages. Plain &amp;quot;return&amp;quot; or no return, works as standard.&lt;br /&gt;
  @Hit, @HitTry and @HitMiss were also changed so that ARGO is the weapon being used (handy so you don't have to&lt;br /&gt;
  be looking at layers n stuff).&lt;br /&gt;
  I should add that ACTDIFF is also available, and it can be used to change the difficulty of a skill, even make&lt;br /&gt;
  a skill succedd that would otherwise fail (by setting it to 0). It can also be used in @HitTry now, and if&lt;br /&gt;
  set to any non-negative value, a missing hit will instead succeed.&lt;br /&gt;
- Added StrEat function, which removes a word up to the space, from a string (&amp;lt;streat(&amp;quot;hello there friend&amp;quot;)&amp;gt;&lt;br /&gt;
  or &amp;lt;streat hello there friend&amp;gt; return &amp;quot;there friend&amp;quot;)&lt;br /&gt;
- Added &amp;lt;SERV.LOOKUPSKILL skill name&amp;gt; which returns the skill number for some text or -1 if not found.&lt;br /&gt;
- After some beta-testing, a few fixes to dialogs.&lt;br /&gt;
- LOCAL.xxx within functions for LOCAL . They're a bit more efficient on servers with lots of global&lt;br /&gt;
  vars due to faster lookups ). LOCAL variables always come up initially as &amp;quot;0&amp;quot;.&lt;br /&gt;
- ARGN1, ARGN2 and ARGN3 are set for functions with numeric arguments. So whenever possible, use these instead&lt;br /&gt;
  of argv. Example: &amp;quot;myfunction  123 50 89&amp;quot; - these 3 values will be parsed into argn1, argn2 and argn3&lt;br /&gt;
&lt;br /&gt;
22-12-2003, Kell&lt;br /&gt;
- Functions can now return strings using &amp;quot;return&amp;quot;. Notice that this behaves like TAGs, in that if you do&lt;br /&gt;
     return 2+2&lt;br /&gt;
  then &amp;quot;2+2&amp;quot; is returned, and not &amp;quot;4&amp;quot;. You'll have to explicitly call &amp;quot;eval&amp;quot; on what you want&lt;br /&gt;
  to return:&lt;br /&gt;
     return &amp;lt;eval (2+2)&amp;gt;&lt;br /&gt;
  Returning strings causes no extra lag, seeing as the old method of returning a value relied on the same&lt;br /&gt;
  string which is returned (EVALed). So it is actually faster (although hardly noticeable).&lt;br /&gt;
  This might pose a problem problem if you have &amp;quot;return rand&amp;quot; or similar, instead of &amp;quot;return &amp;lt;eval rand...&amp;quot;&lt;br /&gt;
  seeing as multiple uses of the return value re-evaluate it, generating a new random number - again,&lt;br /&gt;
  similar to TAGs.&lt;br /&gt;
  MAKE SURE YOU HAVE &amp;quot;EVAL&amp;quot; on your &amp;quot;return&amp;quot; lines, wherever you want the result of a calculation to be&lt;br /&gt;
  returned. The next version will probably not have an EF_ReturnString flag.&lt;br /&gt;
&lt;br /&gt;
- Modified the profiling function to keep track of average consumption over time. The average time is&lt;br /&gt;
  calculated each second as 90% of the previous average time plus 10% the current time. This poses some&lt;br /&gt;
  resistence to spikes. &lt;br /&gt;
- Added a new keyword to @Create / @NPCRestock and template scripts: FULLINTERP. Set FULLINTERP=1 to allow the&lt;br /&gt;
  use of functions, ifs, etc. Example:&lt;br /&gt;
  ON = @NPCRestock&lt;br /&gt;
     ITEM=i_cape&lt;br /&gt;
     FULLINTERP&lt;br /&gt;
        ITEM=i_robe&lt;br /&gt;
        MY_FUNCTION_CALL&lt;br /&gt;
  You can use FULLINTERP 0 to disable the feature, after you've enabled it, but it's usually pointless, seeing as&lt;br /&gt;
  this FULLINTERP affects only the remainder of the current script. Bear in mind that the usual restrictions apply,&lt;br /&gt;
  seeing as the created NPC is not ingame yet.&lt;br /&gt;
&lt;br /&gt;
23-12-2003, Kell&lt;br /&gt;
- Added access to TERRAIN and STATICS either via P.key, MOREP.key or SERV.MAP(x,y).key, with key being one of:&lt;br /&gt;
    TERRAIN	The terrain ID&lt;br /&gt;
    ISDIRT	Checks the terrain ID to see if it's dirt.&lt;br /&gt;
    ISGRASS	guess&lt;br /&gt;
    ISROCK	dunno&lt;br /&gt;
    ISWATER	guess again&lt;br /&gt;
    STATICS	Number of statics in the position&lt;br /&gt;
    STATICS(n)	ID of static Nth static ( eg: &amp;lt;SERV.MAP(200,300).STATICS(0)&amp;gt;. Shows no error in the console&lt;br /&gt;
		if static isn't present, returning 0 - useful to test for a static w/o counting or looping.&lt;br /&gt;
    STATICS.n	  same&lt;br /&gt;
    STATICS(n).key	Get a key from the appropriate ITEMDEF. eg: &amp;lt;SERV.MAP(200,300).STATICS(0).NAME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Added basic iterator construct, WHILE, with the following syntax:&lt;br /&gt;
     WHILE ( condition )&lt;br /&gt;
	// do stuff, current iteration number in &amp;lt;LOCAL._WHILE&amp;gt;&lt;br /&gt;
     END // or ENDWHILE&lt;br /&gt;
&lt;br /&gt;
  also added FOR, terminated with either END or ENDFOR, with the following syntax:&lt;br /&gt;
&lt;br /&gt;
     FOR 5	// loops from 0 to 5, current iteration number in LOCAL._FOR&lt;br /&gt;
  or FOR 3 5	// loops from 3 to 5, current iteration number in LOCAL._FOR&lt;br /&gt;
  or FOR K 5	// loops from 0 to 5, current iteration number in LOCAL.K&lt;br /&gt;
  or FOR K 3 5	// loops from 3 to 5, current iteration number in LOCAL.K&lt;br /&gt;
	// do stuff&lt;br /&gt;
     END  // or ENDFOR&lt;br /&gt;
&lt;br /&gt;
  Changing these LOCAL variables has no effect on the loop.&lt;br /&gt;
- Wrote a small assembly function to access the high resolution timer. Works for both windows and Linux,&lt;br /&gt;
  now being used in profiling. Profiling works on Linux now. It also looks a lot better in the console&lt;br /&gt;
  thanks to the monospaced font.&lt;br /&gt;
- Changed the console font under Windows to Courier, which is monospaced, so things come out aligned in&lt;br /&gt;
  the console. Under Linux, the console is naturally monospaced.&lt;br /&gt;
- You can now add new SKILL sections, up to 70. SERV.MAXSKILL tells you how many skills are loaded. Notice&lt;br /&gt;
  that they won't be sent to the client though, the client doesn't support them (hint: @UserSkills). There&lt;br /&gt;
  is also a FLAGS key for SKILL section, with the following values:&lt;br /&gt;
     [DEFNAME skill_defs]&lt;br /&gt;
     SKF_SCRIPTED	01	// no hardcoded behaviour, only triggers are called.&lt;br /&gt;
     // feel free to add new tags you find useful, but only above 01000 please, to make room for future&lt;br /&gt;
     expansion&lt;br /&gt;
  This is heavily experimental, mess with it at your own risk.&lt;br /&gt;
- SKILLSELECT skill - force a button select event on the skill list&lt;br /&gt;
&lt;br /&gt;
24-12-2003, Kell&lt;br /&gt;
- Fixed TYPEDEFS section in spherefs.scp loosing values when resynced.&lt;br /&gt;
- Added &amp;lt;CANMOVE dir&amp;gt;, takes a direction as argument (like WALK), returns the area ID we're moving to,&lt;br /&gt;
  or 0 if no move is possible.&lt;br /&gt;
- Added &amp;lt;MOVE dir&amp;gt;, takes a direction as argument (like WALK), returns the TILE flags for that position.&lt;br /&gt;
  Notice that flag 04 is walkable. Here's a list of flags, you can copy&amp;amp;paste it into spheredefs.scp. This&lt;br /&gt;
  keyword might change in the future.&lt;br /&gt;
- It's Xmas! So I'm off to eat some turkey for the next 48 hours. :) Does this count as an entry in the&lt;br /&gt;
  changelog?&lt;br /&gt;
&lt;br /&gt;
27-12-2003, Kell&lt;br /&gt;
- Added support for color &amp;amp; render mode in EFFECT. If no color or render effect are specified, old&lt;br /&gt;
  effect packet is still sent (which spares 8 bytes). Otherwise the new packet type is sent. Tested&lt;br /&gt;
  and works with clients from 2.0.3 (should work on all 2.0.* series).&lt;br /&gt;
- Consolidated support for 3.0.* clients, they should work fine, up to LBR (they already worked, just&lt;br /&gt;
  spitted some error messages).&lt;br /&gt;
- Added modulus (%) operator in numerical expressions (eg: 12 % 3 == 0).&lt;br /&gt;
- Added SENDPACKET command for clients. To make it easier to send WORD(2 bytes) and DWORD(4 bytes) values, &lt;br /&gt;
  allowed for 'W' and 'D' prefix to values ('B' is also supported for byte but it's redundant). Here's an&lt;br /&gt;
  example, of setting light level:&lt;br /&gt;
     SRC.SENDPACKET   04e  D&amp;lt;SRC.UID&amp;gt;  20&lt;br /&gt;
  Both 04e and 20 could use the prefix B, but notice how &amp;lt;SRC.UID&amp;gt; uses the prefix D to specify it takes&lt;br /&gt;
  the space of a DWORD (4 bytes). So much for complex scripts to break multi-byte stuff in bytes :p&lt;br /&gt;
  Notice also that each of the parameters is evaluated and truncated, and only then used. For instance,&lt;br /&gt;
  if you put 0fffffffe (which obviously isn't a byte) in place of a BYTE, what you'll get is effectively&lt;br /&gt;
  0fe. If you put (2+2) it'll be evaluated to &amp;quot;4&amp;quot; before being used.&lt;br /&gt;
&lt;br /&gt;
28-12-2003, Kell&lt;br /&gt;
- Added OSTR, ODEX, OINT.&lt;br /&gt;
- Added MODSTR, MODDEX, MODINT - spells affect these.&lt;br /&gt;
- STR, DEX and INT are always equal to O + MOD (for the relevant stat). If you have OSTR=50, MODSTR=0 and&lt;br /&gt;
  then do STR=60, you will get MODSTR=10 (and OSTR unchanged). &lt;br /&gt;
  *** CHANGED *** read the entry for 19-01-2004&lt;br /&gt;
- Added MAXHITS/MAXMANA/MAXSTAM. If set to 0, it defaults to the base max stat (eg, MAXSTR defaults to STR).&lt;br /&gt;
  MAX always contains MOD for the appropriate stat. That is to say that if you have MAXHITS=100 and MODSTR=10&lt;br /&gt;
  then internally it'll be recorded as MAXHITS being 90, and if MODSTR changes, so does MAXHITS. This makes&lt;br /&gt;
  it coherent for stat spells, seeing as they not only change your stats but also max hits/stam/mana.&lt;br /&gt;
  To make hits depend on STR again, use&lt;br /&gt;
     MAXHITS =	// don't use a value&lt;br /&gt;
- You can now write TAGs on accounts. Both TAG and TAG0 are available.&lt;br /&gt;
- LOCAL._WHILE fixed, within WHILE loops.&lt;br /&gt;
- Changed dialog BUTTON sections to allow &lt;br /&gt;
     ON = min max&lt;br /&gt;
  to grab any button with buttonID between min and max (including). Also, argn1 is the buttonID that&lt;br /&gt;
  actually got selected (even when specify just a buttonID and not a range, as usual). With the buttonID&lt;br /&gt;
  in argn1 you can write more generic functions with little fuss.&lt;br /&gt;
&lt;br /&gt;
29-12-2003, Kell&lt;br /&gt;
- Fixed some skills not getting currectly terminated when another skill was used before they finished. An&lt;br /&gt;
  example of this is Spells not fizzling when a skill was used before spell ended.&lt;br /&gt;
- For skills, @Fail is now only triggered when failure occured due to normal circumstances (eg, failed&lt;br /&gt;
  difficulty). @Abort is called when failure occurs due to a situation that aborts the skill, such as&lt;br /&gt;
  using a new skill before finishing the previous one or an invalid circumstance.&lt;br /&gt;
  If @Fail is triggered, it means that the character will still get a skillcheck for failure (skill raise&lt;br /&gt;
  through failure), but if you do a &amp;quot;return 1&amp;quot; in there, it won't (check MANUAL.TXT).&lt;br /&gt;
- Started implementing propper behaviour for EF_CanSeeLOS. At the moment, it'll check the height of static&lt;br /&gt;
  items in the path to the target.&lt;br /&gt;
- The use of &amp;quot;SECTOR&amp;quot; to access keywords related to sector is now mandatory. So, to access &amp;quot;light&amp;quot; or&lt;br /&gt;
  &amp;quot;rainchance&amp;quot;, SRC.RAINCHANCE used to work, you must do SRC.SECTOR.RAINCHANCE. This has several&lt;br /&gt;
  advantages - people usually already use SECTOR anyway, so this makes for faster faster execution of&lt;br /&gt;
  commands on characters, seeing as it has less things to try. It is also more coherent.&lt;br /&gt;
&lt;br /&gt;
30-12-2003, Kell&lt;br /&gt;
- Fixed a small problem with KARMA/FAME that had the huge effect of blocking the client once it got different&lt;br /&gt;
  than 0.&lt;br /&gt;
- Added FEATURES= to sphere.ini, to define the features the server will enable on the clients upon connection:&lt;br /&gt;
   0001 - (T2A) enables chatbutton&lt;br /&gt;
   0002 - (LBR) enables LBR sound (plays MP3s instead of MIDI)&lt;br /&gt;
   0004 - (T2A) enables T2A update&lt;br /&gt;
   0008 - (LBR) enables LBR update (shows monsters)&lt;br /&gt;
  Standard .55i automatically enabled 0001 - but you could disable it.&lt;br /&gt;
- DIALOGCLOSE command. First argument is the dialog name, second argument is the button that should be&lt;br /&gt;
  triggered on the dialog - 0 if not specified. (eg: DIALOGCLOSE d_my_dialog).&lt;br /&gt;
  You can put this as one of the first commands in a DIALOG section, to ensure there is only one dialog of&lt;br /&gt;
  that type on the client.&lt;br /&gt;
&lt;br /&gt;
02-01-2004, Kell&lt;br /&gt;
- Added connection control keywords to sphere.ini - a value of 0 disables&lt;br /&gt;
  any of these settings. These settings are not dumb proof. Make sure you&lt;br /&gt;
  know what you're doing if you set these:&lt;br /&gt;
  * ConnectingMax=x, where x is the maximum number of clients that can coexist&lt;br /&gt;
      in non-game state (http, login, etc). Older clients that are not ingame&lt;br /&gt;
      get disconnected when new ones come in. Default: 24&lt;br /&gt;
  * ConnectingMaxIP=x, as above, but per IP. Only a maximum of x simultaneous&lt;br /&gt;
      &amp;quot;not in game&amp;quot; connections will be allowed per IP. Notice that HTTP&lt;br /&gt;
      requests for instance, count as &amp;quot;not in game&amp;quot;. Default: 8&lt;br /&gt;
  * ClientMaxIP=x, maximum number of connections per IP. This is intended to&lt;br /&gt;
      stop flooders, DO NOT SET THIS TOO LOW, or you risk looking stupid. There&lt;br /&gt;
      are MANY situations where connections can appear as comming from the same&lt;br /&gt;
      IP - a common one is people connecting from cybercaffes. Default: 0&lt;br /&gt;
- Fixed a serious bug where login errors (Bad Login) could leave a lingering&lt;br /&gt;
  socket. This happened because sockets were made invalid so that they'd get&lt;br /&gt;
  closed on the next read cycle, therefore losing all information about the&lt;br /&gt;
  socket. Clients are now flagged for disconnection, and socket handling is&lt;br /&gt;
  done when clients are freed.&lt;br /&gt;
  This means that there should always be a &amp;quot;disconnected&amp;quot; message to pair&lt;br /&gt;
  with a &amp;quot;connected&amp;quot; message.&lt;br /&gt;
- You will see two numbers after the IP in connected/disconnected messages.&lt;br /&gt;
  The first is the number of connections from that IP which are not in-game,&lt;br /&gt;
  whereas the second is the total number of connections from that IP.&lt;br /&gt;
- In savefiles, OSTR and MODSTR are now saved instead of STR. If &amp;quot;STR&amp;quot; is found,&lt;br /&gt;
  it'll be interpreted as OSTR. This works fine to convert old worldfiles, even&lt;br /&gt;
 if you have spells, because once they wear off they'll simply make your MODSTR&lt;br /&gt;
  negative. This works for all stats obviously (simply using STR as an example).&lt;br /&gt;
- Changed it so that the first time you set a stat on an NPC, if the Ostat is 0,&lt;br /&gt;
  it'll update Ostat not MODstat. In other words, and as an example, if you do&lt;br /&gt;
  STR=20 in @Create, you'll end up with OSTR=20 and MODSTR=0. If you then do&lt;br /&gt;
  STR=30 on the same NPC, you'll end up with OSTR=20 and MODSTR=10. &lt;br /&gt;
  **** changed **** see the entry for 19-01-2003&lt;br /&gt;
- Fixed a small problem from R3.13 with stat affecting spells not setting MODstat&lt;br /&gt;
  correctly.&lt;br /&gt;
&lt;br /&gt;
03-01-2004, Kell&lt;br /&gt;
- Added unary operators &amp;quot;*=&amp;quot;, &amp;quot;+=&amp;quot;, &amp;quot;-=&amp;quot;, &amp;quot;/=&amp;quot;, &amp;quot;%=&amp;quot;, &amp;quot;|=&amp;quot;, &amp;quot;&amp;amp;=&amp;quot; and &amp;quot;!=&amp;quot;. Internally,&lt;br /&gt;
  what these actually do is change a line in the format:&lt;br /&gt;
    XXX += YYY&lt;br /&gt;
  to&lt;br /&gt;
    XXX = &amp;lt;eval (&amp;lt;XXX&amp;gt; + (YYY))&amp;gt;&lt;br /&gt;
  So you can do stuff like&lt;br /&gt;
    MANA	+= 10/2			// same as MANA = &amp;lt;eval (&amp;lt;MANA&amp;gt; + (10/2))&amp;gt;&lt;br /&gt;
    ATTR	&amp;amp;= ~attr_magic		// same as ATTR = &amp;lt;eval (&amp;lt;ATTR&amp;gt; &amp;amp; (~attr_magic))&amp;gt;&lt;br /&gt;
- Added &amp;quot;.=&amp;quot; operator, to do string concatenation. Internally what it does is change a line&lt;br /&gt;
  in the format&lt;br /&gt;
    XXX .= YYY&lt;br /&gt;
  to&lt;br /&gt;
    XXX = &amp;lt;XXX&amp;gt;YYY&lt;br /&gt;
  This is intended to be used with things that can support strings (NAME, TITLE, VAR, LOCAL, etc)&lt;br /&gt;
- First attempt to implement propper LOS check counting with z. To have LOS, you must be&lt;br /&gt;
  able to walk in a straight line to the target (no news here) AND finish at a reasonable&lt;br /&gt;
  height, climbing your way to it. So, if you're on a slope you might have LOS, but if&lt;br /&gt;
  you're standing one floor below you won't. These extra texts have no measurable impact on&lt;br /&gt;
  performance Enable this behaviour with EF_CanSeeLos (04).&lt;br /&gt;
- Diagonal walking (eg, NW) is allowed only if the character can move ortogonally in both&lt;br /&gt;
  directions (NW -&amp;gt; N and W). This takes care of a few clientside exploits, as well as NPCs&lt;br /&gt;
  walking through corners. Enable this behaviour with EF_DiagonalWalkCheck (010)&lt;br /&gt;
- For the effect of stepping on them, all items were considered to have a height of 3. If you&lt;br /&gt;
  are standing higher than 3 above an item, you wouldn't trigger a step on it. Changed it so that&lt;br /&gt;
  if the item's height is above 3, that value is used, and not the hardcoded &amp;quot;3&amp;quot;. This allows&lt;br /&gt;
  one to get @Step events on stuff like tables.&lt;br /&gt;
- If no SRC is defined at the time of a @SpellEffect trigger, then the character subject to the&lt;br /&gt;
  spell will be considered the SRC. This fixes SPELLEFFECT under @Timer triggers.&lt;br /&gt;
- Added @NPCLookAtChar and @NPCLookAtItem triggers (check the manual). Do not abuse of these&lt;br /&gt;
  triggers, as they will affect the CPU usage.&lt;br /&gt;
&lt;br /&gt;
04-01-2004, Kell&lt;br /&gt;
- Added ISNEARTYPE, first argument is type, 2nd argument is max distance to search ( if not&lt;br /&gt;
  specified, 4 is the default ). Also added ISNEARTYPE.P, which returns &amp;quot;0&amp;quot; if false or the&lt;br /&gt;
  point coordinates if true.&lt;br /&gt;
- Changed DISTANCE to accept the UID of an object (item/char) to compare the distance, or a&lt;br /&gt;
  point. One can now write things like&lt;br /&gt;
     &amp;lt;DISTANCE &amp;lt;MOREP&amp;gt;&amp;gt;  &amp;lt;DISTANCE trinsic&amp;gt;  &amp;lt;DISTANCE &amp;lt;SRC.ACT.UID&amp;gt;&amp;gt;&lt;br /&gt;
  If no argument is supplied, then SRC.UID is used (as default). If the point/UID is invalid&lt;br /&gt;
  an error is printed to the console.&lt;br /&gt;
- Made TIMERD readable (its precision is 10x that of TIMER, same scale of SERV.TIME).&lt;br /&gt;
- Made USEITEM not check for visibility. The whole purpose of this keyword is to allow&lt;br /&gt;
  activating an item via scripts w/o testing for touch, so it doesn't make sense to test&lt;br /&gt;
  if the item can be seen. DCLICK performs the usual tests though. The &amp;quot;USE&amp;quot; keyword already&lt;br /&gt;
  allowed one to do &amp;quot;USE 0&amp;quot; not to test for touch, but it also tested for visibility, and it&lt;br /&gt;
  won't anymore if used like &amp;quot;USE 0&amp;quot;.&lt;br /&gt;
- Spawns gems now instantly update the display as soon as you set MORE1.&lt;br /&gt;
- Double clicking an already negated (more2=0) character spawn sets its timer to 1 so it&lt;br /&gt;
  respawns next turn.&lt;br /&gt;
- Added MOVENEAR keyword for objects(items/chars). 1st argument is the UID of item to move&lt;br /&gt;
  near to, 2nd argument is the distance to the item. If 3rd argument is present and &amp;quot;0&amp;quot;,&lt;br /&gt;
  then the item will not send an Update. Example:&lt;br /&gt;
     ON = @DClick&lt;br /&gt;
        MOVENEAR &amp;lt;SRC.UID&amp;gt; 5	// move to 5 steps away from SRC&lt;br /&gt;
  Notice that this movement respects walls &amp;amp; such (which is why it is useful).&lt;br /&gt;
- Set ARGN1=1 in @Login not to show MOTD scroll.&lt;br /&gt;
&lt;br /&gt;
05-01-2004, Kell&lt;br /&gt;
- Fixed possible exploit with \n and textentry and inpdlg.&lt;br /&gt;
- AREA and ROOM sections in the following format&lt;br /&gt;
     [AREA name here]&lt;br /&gt;
  Should now be written as&lt;br /&gt;
     [AREADEF a_some_def]	// ROOMDEF for rooms&lt;br /&gt;
     NAME=name here&lt;br /&gt;
  The advantage of this format is that you can resync it w/o having conflicting regions.&lt;br /&gt;
  Suggestions:	Keep your areas in different formats in seperate files. Either find a script&lt;br /&gt;
		to convert your old format to the new one or slowly convert by hand.&lt;br /&gt;
		Move [Teleporters] and [Moongates] to their own files (these can't be resynced).&lt;br /&gt;
  Note:		You do NOT have to use the new format. It is, however, strongly suggested, as&lt;br /&gt;
		it allows you to change an area without rebooting.&lt;br /&gt;
		Any future ability to save things on regions will only be available for regions&lt;br /&gt;
		in the new format (or regions that have a DEFNAME).&lt;br /&gt;
- Added CALL instruction to invoke a function, but sharing the LOCAL variables with the called&lt;br /&gt;
  function. Quite useful when you want to break a function in small pieces that are logically&lt;br /&gt;
  yet not functionally seperate. In other words, if you invoke a function with CALL, all your&lt;br /&gt;
  LOCAL will be available to the underlying function. Example&lt;br /&gt;
    [FUNCTION myfunction1]&lt;br /&gt;
       LOCAL.VAL1	= 12&lt;br /&gt;
       CALL myfunction2 1, 2		// LOCAL.VAL1 will be available to myfunction2&lt;br /&gt;
       // if myfunction2 changes LOCAL.VAL1 it will change here aswell.&lt;br /&gt;
  If you do not pass arguments to the called function, then args/argn/argv are also shared,&lt;br /&gt;
  and the process is faster than invoking the function w/o CALL. If you pass arguments to the&lt;br /&gt;
  function, then only LOCAL is shared, and the process is an infinitesimal amount slower. Not&lt;br /&gt;
  noticeable, no real impact, but conceptually slower. &lt;br /&gt;
  This can also be used as &amp;lt;CALL Function ...&amp;gt;, faster without arguments, slower with.&lt;br /&gt;
- Recently realized that ALL DEFNAMEs are put into VAR. That means that all itemdefs, chardefs,&lt;br /&gt;
  etc have an entry in VAR (try &amp;lt;VAR.i_dagger&amp;gt; ). Now, this is potentially confusing and source&lt;br /&gt;
  for many problems:&lt;br /&gt;
     1) Whenever you're trying to access a VAR, you go through ALL the existing defnames.&lt;br /&gt;
     2) You can accidentally create a var that is also a defname... and oooooops!&lt;br /&gt;
  So to cope with this, changed it so that VAR/VAR0 only contains global variables that can be&lt;br /&gt;
  modified, whereas DEF/DEF0 contains item defnames and can only be read. The difference in speed&lt;br /&gt;
  is visible! EVERY time you were accessing a VAR you'd be searching through an array with a few&lt;br /&gt;
  thousand elements. Now each lookup searches only through the variables your scritps have created&lt;br /&gt;
  (which even on an extremely scripted shard shouldn't reach a hundred).&lt;br /&gt;
  This also makes it possible to identify WHICH variables are supposed to be saved.&lt;br /&gt;
  Although this is a huge change internally, it won't affect scripts except in the following&lt;br /&gt;
  situation:&lt;br /&gt;
     1) You defined a DEFNAME flag in scripts that you then changed during execution. This is&lt;br /&gt;
        highly uncommon, but if you decide you need this sort of behaviour just create the create&lt;br /&gt;
        the VAR once via scripts, it will be saved to spherevars.scp.&lt;br /&gt;
     2) You were accessing DEFNAMEs via VAR. No real reason to do it, seeing as DEFs / VARs can&lt;br /&gt;
        be accessed w/o the VAR. prefix.&lt;br /&gt;
  If not using DEF or VAR to access a variable, you'll get first the VAR if exists, and then the&lt;br /&gt;
  DEF. That means that old behaviour is kept.&lt;br /&gt;
- VARs are now saved to spheredata.scp. If that file isn't present at boottime the shard will print&lt;br /&gt;
  a warning, but it will continue, and it'll be created on the next save.&lt;br /&gt;
- GMPages will now be saved to spheredata.scp. Too many people are interested in parsing these to&lt;br /&gt;
  make special stuff (eg webpage interfaces or mirc scripts), so now they won't have to parse the&lt;br /&gt;
  whole world to read in this stuff.&lt;br /&gt;
&lt;br /&gt;
06-01-2004, Kell&lt;br /&gt;
- Added &amp;quot;S&amp;quot; flag to SENDPACKET, allows one to send strings of characters directly. String is not&lt;br /&gt;
  within quotes it stops at the first space. Example&lt;br /&gt;
     SENDPACKET 00 S&amp;quot;This is the string to send&amp;quot; 0&lt;br /&gt;
     SENDPACKET 00 SUpToTheSpace 0&lt;br /&gt;
  If the string must be null terminated, simply put a 0 in there, as above. Otherwise, you'll probably&lt;br /&gt;
  need to specify length (strlen function) - depends on packet&lt;br /&gt;
- Added new walk limiting code, wildly based on the bit-bucket algorithm used in IP QoS DiffServ&lt;br /&gt;
  routers: there is a maximum speed at which you can walk (it's fixed, different walking or foot). If&lt;br /&gt;
  you walk faster than that speed, every tenth of second you walk faster than expected is a point you&lt;br /&gt;
  loose. Every 10th of second you take above the time expected is a point you win. The number of points&lt;br /&gt;
  you start with and the maximum is WALKBUFFER in sphere.ini, and I've tested it with values&lt;br /&gt;
  around 40 for good connections and 70 for laggy connections.&lt;br /&gt;
  If a player speedwalks, he'll soon drop below 0, and stop moving, then have to compensate with equally&lt;br /&gt;
  slow walking periods, like it happens when there's a burst of lag.&lt;br /&gt;
  WALKREGEN is the speed at which you regen walk points, in percentage.&lt;br /&gt;
  Default values: WALKBUFFER=50   WALKREGEN=25&lt;br /&gt;
  Hints:&lt;br /&gt;
	WALKBUFFER	lower for more strict control. However, setting it lower also increases the&lt;br /&gt;
  			chance of limiting someone which is just experiencing lag. Raise this value&lt;br /&gt;
			if you lower WALKREGEN.&lt;br /&gt;
	WALKREGEN	set lower for longer-lasting punishments. It makes sense to lower this value&lt;br /&gt;
			if you raise WALKBUFFER.&lt;br /&gt;
- Removed some EF_ flags that are no longer necessary seeing as they proved to be harmless. Make sure&lt;br /&gt;
  you consult MANUAL.TXT.&lt;br /&gt;
- Changed trigger @DropOn_Item and @ItemDropOn_Item to be activated for container items too.&lt;br /&gt;
  Activated when item with the trigger is dropped on another item (dropped on something else).&lt;br /&gt;
- Added @DropOn_Self and @ItemDropOn_Self, activated when an item is dropped on the item with the&lt;br /&gt;
  trigger (something was dropped on self).&lt;br /&gt;
- Implemented trigger @DropOn_Char and @ItemDropOn_Char.&lt;br /&gt;
- If these triggers fail, will only bounce the item if it's still being dragged. That allows the&lt;br /&gt;
  scripts in the triggers to define a new place for item.&lt;br /&gt;
- Made sure clients can only drop stuff into the bankbox if they are standing in the place where it&lt;br /&gt;
  was opened. This could now be checked within scripts aswell.&lt;br /&gt;
- Fixed an Injection exploit regarding accessing the bank away from the place it was opened in.&lt;br /&gt;
- Added @SkillGain and @Gain triggers. Check MANUAL.TXT for more info.&lt;br /&gt;
&lt;br /&gt;
07-01-2004, Kell&lt;br /&gt;
- Automatically assign a DEFNAME to areas and rooms defined in the old format (AREA / ROOM). This&lt;br /&gt;
  defname is built upon the NAME, and is made unique by adding a number to it.&lt;br /&gt;
- In the console, you can type &amp;quot;d a&amp;quot; to output all the areas and rooms to a file &amp;quot;map_all.scp&amp;quot;. I&lt;br /&gt;
  strongly suggest you replace your map with this file, as it'll allow you to finally get rid of the&lt;br /&gt;
  old format.&lt;br /&gt;
  NOTE: Teleporters and Moongates aren't saved in this file, so you should split those to a different&lt;br /&gt;
  file, to allow areas to be resynced.&lt;br /&gt;
- It is strongly suggested that you do the above, and get rid of the old format areas/rooms. Doing it&lt;br /&gt;
  has the following advantages:&lt;br /&gt;
  * Loading will be faster, because the server won't have to try and find a good defname for areas.&lt;br /&gt;
  * You can edit areas, and resync (even change their name) with no conflicts.&lt;br /&gt;
  * TAGs on areas are only saved for areas that have a valid DEFNAME, so if you do this, TAGs will be&lt;br /&gt;
    saved on all your areas.&lt;br /&gt;
- Added @Targon_Cancel for items.&lt;br /&gt;
&lt;br /&gt;
---- 0.55 R3 rc2 --------------------------------------------------------------&lt;br /&gt;
---- 25/01/2004&lt;br /&gt;
&lt;br /&gt;
08-01-2004, Kell&lt;br /&gt;
- Fixed VERBOSE=1 causing a catrazillion errors at boot.&lt;br /&gt;
- .CAST and .TELE won't show &amp;quot;bad command&amp;quot; sysmessage when they fail.&lt;br /&gt;
- If TRY/TRPY are called with an invalid command, they will send the error to the console and not to&lt;br /&gt;
  the player. This is coherent with how scripts should behave.&lt;br /&gt;
- Fixed NPCs not starting with max stats when MAXxxx is used.&lt;br /&gt;
- Fixed .admin showing only your own IP.&lt;br /&gt;
&lt;br /&gt;
09-01-2004, Kell&lt;br /&gt;
- .serv.account unused xxx  delete&lt;br /&gt;
- .serv.account add test // missing password will no longer crash&lt;br /&gt;
- killing characters with positive karma (actually, it's about commiting a crime, not karma)&lt;br /&gt;
- .info not returning to dialog after changing a value (actually, INPDLG wasn't returning to dialog)&lt;br /&gt;
- flags on UIDs preserved (040000000 for items, 0d2000000 for skills, etc). GLOBALS renamed to WORLDVARS&lt;br /&gt;
  due to this (won't go into details here).&lt;br /&gt;
- SERV.LOG fixed.&lt;br /&gt;
- Fixed plevel 1 players seeing other plevel 1 hidden players&lt;br /&gt;
- Added USEHTTP=0/1 in sphere.ini, to disable/enable the built-in HTTP server.&lt;br /&gt;
- Added USEGODPORT=0/1 in sphere.ini, to disable the port opened at +1000. As far as I can tell, there is&lt;br /&gt;
  really no purpose for that port except taking in connections, much like the standard port you set. So it&lt;br /&gt;
  ships disabled by default.&lt;br /&gt;
&lt;br /&gt;
10-01-2004, Kell&lt;br /&gt;
- Fixed a bug where redefining a base type (one in the TYPEDEFS list in spheretables.scp) could lead&lt;br /&gt;
  to a crash.&lt;br /&gt;
- Added a way to assign a TYPEDEF to a terrain type. This means you can define what terrain types are&lt;br /&gt;
  water, for instance. Example:&lt;br /&gt;
    [TYPEDEF t_water]&lt;br /&gt;
    TERRAIN	= 00a8	00ab&lt;br /&gt;
    TERRAIN	= 0136	0137&lt;br /&gt;
  This information is then used by ISNEARTYPE (and it has effect on all the hardcoded behaviour)&lt;br /&gt;
  when trying to assert if there's t_water around.&lt;br /&gt;
  Notice that ISWATER checks wether a terrain type is t_water, whereas &amp;lt;ISNEARTYPE t_water&amp;gt; would check&lt;br /&gt;
  for terrain, statics and dynamic items.&lt;br /&gt;
- Changed TYPE when called on an SERV.ITEMDEF.xxx.TYPE to return the typename, and not just a value. So&lt;br /&gt;
  when called on an water item it should return t_water, and not &amp;quot;30&amp;quot;. This also has affect when using&lt;br /&gt;
  STATICS.x.TYPE.&lt;br /&gt;
- Fixed not being able to access properties of TARGP, as in &amp;lt;SRC.TARGP.X&amp;gt; or &amp;lt;SRC.TARGP.TERRAIN&amp;gt;.&lt;br /&gt;
- Added &amp;quot;TYPE&amp;quot; to the keywords available on a point. It uses the information above to return what item&lt;br /&gt;
  type is the terrain at that point. So you can do TARGP.TERRAIN.&lt;br /&gt;
&lt;br /&gt;
11-01-2004, Kell&lt;br /&gt;
- Changed .info command to show the type associated with the terrain (t_normal if none).&lt;br /&gt;
- Wrote sphere_types.scp - it is a REQUIRED script, as it associates terrain IDs to item types. This&lt;br /&gt;
  replaces the old hard-coded behaviour (which by the way, was slower). By replacing it, I see no&lt;br /&gt;
  need to keep the old code, seeing as all you need is to have this script, which will be distributed&lt;br /&gt;
  from now on.&lt;br /&gt;
  Add sphere_types.scp in spheretables.scp right after sphere_defs.scp.&lt;br /&gt;
- Removed ISWATER, ISGRASS, ISROCK and ISDIRT commands from points (they were introduced in R3). Please&lt;br /&gt;
  use TYPE instead. For instance, use (&amp;lt;P.TYPE&amp;gt; == t_water) wherever you'd use &amp;lt;P.ISWATER&amp;gt;. Some might&lt;br /&gt;
  have grown attached to these commands, but unified and coherent scripts are certainly better than&lt;br /&gt;
  different methods for doing the same. Besides, this offers a lot more control (e.g.: &amp;lt;P.TYPE&amp;gt; == t_lava)&lt;br /&gt;
- Added ISNEARTYPE to the keywords accepted by points. So you can do &amp;lt;SRC.TARGP.ISNEARTYPE t_water&amp;gt; and&lt;br /&gt;
  that will effectively test terrain type, statics, and dynamic items. This is probably what most people&lt;br /&gt;
  will want to use, seeing as P.TYPE only test for terrain (and not statics or dynamic items).&lt;br /&gt;
- Added EF_New_Triggers (010). If set, allows the use of @NPCActFight, @NPCActFollow, @NPCLookAtChar&lt;br /&gt;
  and @NPCLookAtItem. This flag was added because even having these triggers *might* have some impact&lt;br /&gt;
  upon performance in very busy shards. &lt;br /&gt;
- Removed a &amp;quot;Weird layer&amp;quot; message from whenever you equipped an item to layer_hidden. This is quite an&lt;br /&gt;
  useful layer for people wanting to expand their shards, so there's really no reason for this error.&lt;br /&gt;
&lt;br /&gt;
12-01-2004, Kell&lt;br /&gt;
- Fixed &amp;quot;b&amp;quot; in console not working.&lt;br /&gt;
- Added DISTANCEYELL, DISTANCETALK, DISTANCEWHISPER to sphere.ini - a value of -1 turns it into a&lt;br /&gt;
  broadcast.&lt;br /&gt;
&lt;br /&gt;
13-01-2004, Kell&lt;br /&gt;
- The @Create trigger for items works as any other item trigger - it can be fully scripted.&lt;br /&gt;
  After a LOT of work, you can now also check for SRC under item's @Create. There are situations where&lt;br /&gt;
  an item can be created without an SRC, but in most cases, there will be one. Eg:&lt;br /&gt;
  ON = @Create&lt;br /&gt;
     if ( &amp;lt;SRC.UID&amp;gt; )&lt;br /&gt;
        SRC.SYSMESSAGE You have created an item!&lt;br /&gt;
     endif&lt;br /&gt;
  Bear in mind that @Create is created before the item by the server, so it can still suffer transformations&lt;br /&gt;
  after it's been created. Particulary, you won't be able to REMOVE an item under a @Create trigger - it&lt;br /&gt;
  will have no effect.&lt;br /&gt;
- Added ISEMPTY and ISNUM. Eg: &amp;lt;ISEMPTY &amp;lt;VAR.TMP&amp;gt;&amp;gt; or &amp;lt;ISNUM &amp;lt;VAR.TMP&amp;gt;&amp;gt;. &lt;br /&gt;
- Added STATICS.FINDID.xxx - it will take you to the ITEMDEF of the static item with the supplied ID&lt;br /&gt;
- Added @ResourceTest to REGIONRESOURCE sections, called once for each resource in the region that the&lt;br /&gt;
  character is able to find.&lt;br /&gt;
- Added @ResourceFound, triggered after a resource has been selected (@ResourceTest has been called for&lt;br /&gt;
  all resources available). ARGO is the resource bit to be placed at the location. &amp;quot;return 1&amp;quot; keeps the&lt;br /&gt;
  resource bit, but sets it to be empty.&lt;br /&gt;
- Added DEFMESSAGE section for scripts, allows setting of strings to be used by the server. More will be&lt;br /&gt;
  added - work in progress. You now REQUIRE a script with these strings.&lt;br /&gt;
- Fixed RESOURCES.xxx.val and .key.&lt;br /&gt;
&lt;br /&gt;
19-01-2004, Kell&lt;br /&gt;
- Fixed a bug with getting stuck on stuff.&lt;br /&gt;
- STR, DEX and INT are always equal to O + MOD (for the relevant stat). If you have OSTR=50, MODSTR=10 and&lt;br /&gt;
  then do STR=70, you will get OSTR=60 and MODSTR unchanged.&lt;br /&gt;
&lt;br /&gt;
21-01-2004, Kell&lt;br /&gt;
- Changed max height difference on CanSeeLOS from PLAYER_HEIGHT/2 to PLAYER_HEIGHT, so that you can access&lt;br /&gt;
  chests on top of a table.&lt;br /&gt;
- Removed the password being shown on console when a password error occurs.&lt;br /&gt;
- Made .x* and .set* commands respect PLEVEL. You also need plevel to use the &amp;quot;SET&amp;quot; command to use .x and .set&lt;br /&gt;
  commands.&lt;br /&gt;
- Slightly smarter NPCs against field spells - they will avoid them more often depending on INT.&lt;br /&gt;
- Fixed another spot where SRC was undefined in @Create (there might still be more of these).&lt;br /&gt;
&lt;br /&gt;
23-01-2004, Kell&lt;br /&gt;
- Fixed buying multiple pets from animal trainers.&lt;br /&gt;
- Fixed a bug in FOR where counting down wouldn't work (eg: FOR 10 1 works now)&lt;br /&gt;
&lt;br /&gt;
24-01-2004, Kell&lt;br /&gt;
- Fixed bug with NPCs going stale (their timer going -1) - particulary pets.&lt;br /&gt;
- Fixed @Effect in SPELL sections to work and have same arguments as @SpellEffect.&lt;br /&gt;
- Added SPELLFLAG_SCRIPTED (010000) so that one can more easily override the default behaviour of&lt;br /&gt;
  spells.&lt;br /&gt;
&lt;br /&gt;
25-01-2004, Kell&lt;br /&gt;
- Fixed yet another exploit, with sending a hacked Author in books (tks Balkon)&lt;br /&gt;
- Added PROMPT_MSG to SPELL sections and disabled the hard-coded messages. You'll have to fill in the&lt;br /&gt;
  prompt messages for the spells.&lt;br /&gt;
&lt;br /&gt;
---- 0.55 R3 rc3 --------------------------------------------------------------&lt;br /&gt;
---- 06/02/2004&lt;br /&gt;
&lt;br /&gt;
25-01-2004, Kell&lt;br /&gt;
- Fixed a bug with @Gain trigger, that regardless of it even existing would reset the skill to the skill&lt;br /&gt;
  being tested. This turned out in Parrying skill interrupting combat, and other buggy skill behaviour.&lt;br /&gt;
- Added EF_Scripts_Parse_Verbs (040). If enabled, verbs (the 1st command in a script line) are parsed&lt;br /&gt;
  before execution, thus making &amp;quot;TRY&amp;quot; obsolete for that purpose. Example:&lt;br /&gt;
     LOCAL.MYSTAT	= MODSTR&lt;br /&gt;
     // the following line is parsed to become: str = &amp;lt;&amp;lt;local.mystat&amp;gt;&amp;gt; + 5&lt;br /&gt;
     &amp;lt;LOCAL.MYSTAT&amp;gt;	= &amp;lt;&amp;lt;LOCAL.MYSTAT&amp;gt;&amp;gt; + 5&lt;br /&gt;
     SYSMESSAGE Stat '&amp;lt;LOCAL.MYSTAT&amp;gt;' increased to &amp;lt;&amp;lt;LOCAL.MYSTAT&amp;gt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
26-01-2004, Kell&lt;br /&gt;
- Renamed SPELLFLAG_TARG_OBJ to SPELLFLAG_TARG_ITEM. This is really an internal change, but you should&lt;br /&gt;
  change spheredefs.scp to be:&lt;br /&gt;
  SPELLFLAG_TARG_ITEM	000002&lt;br /&gt;
  SPELLFLAG_TARG_CHAR	000004&lt;br /&gt;
  SPELLFLAG_TARG_OBJ	SPELLFLAG_TARG_CHAR | SPELLFLAG_TARG_ITEM&lt;br /&gt;
- Made sure a character can only be targeted by a spell with SPELLFLAG_TARG_CHAR, and that an item&lt;br /&gt;
  can only be targetted by a spell with SPELLFLAG_TARG_ITEM.&lt;br /&gt;
- Modified TARGET command to allow 3 possible suffixes (in this order): F, G and W. So you can do&lt;br /&gt;
  TARGETGW, TARGETFW, etc. &lt;br /&gt;
  F - Call a function after target ( eg: TARGETF f_rename )&lt;br /&gt;
  W - Warn against criminal action&lt;br /&gt;
  G - Target ground&lt;br /&gt;
- Made sure flags in the CAN= field for ITEMDEFs work correctly. A few items are missing these flags,&lt;br /&gt;
  such as i_wall_stone_7 missing CAN_I_BLOCK (so NPCs walk through them).&lt;br /&gt;
- Added MULTICREATE command, so you can place multi items via scripts: first set their position then&lt;br /&gt;
  call MULTICREATE to build them permanently.&lt;br /&gt;
&lt;br /&gt;
27-01-2004, Kell&lt;br /&gt;
- Added EF_New_Maps (020), which enables the mapchange packet (0bf, subcmd 08). If enabled, moving to&lt;br /&gt;
  mapplane 1 or 2 will send a packet for the client to see the appropriate map, and moving to other&lt;br /&gt;
  mapplanes will send the packet changing back to basic map. This allows one to see the new maps.&lt;br /&gt;
  However, there is NO support on the server for new maps. That means that you're walking on the new&lt;br /&gt;
  map only on the clientside, while on the server you're walking on the standard map.&lt;br /&gt;
- Server now recognizes bogus extended message 15 - won't send error message to client.&lt;br /&gt;
- Added recognition for clients up to 4.0.0c - will not endure AOS features though. Useful for people&lt;br /&gt;
  with plain AOS installation that wish to play on the server.&lt;br /&gt;
- Mind you that this isn't AOS support, it's merely supporting the client.&lt;br /&gt;
&lt;br /&gt;
28-01-2004, Kell&lt;br /&gt;
- Fixed TARGP not being set when using a spell.&lt;br /&gt;
- Added SPELLFLAG_TARG_NOSELF (0800), which stops spells from being cast on the player itself.&lt;br /&gt;
- Fixed accessing LOCAL variables straight within DIALOG sections (also fixes FOR loops).&lt;br /&gt;
- &amp;quot;return 1&amp;quot; within a DIALOG section stops the dialog from actually being sent.&lt;br /&gt;
&lt;br /&gt;
30-01-2004, Kell&lt;br /&gt;
- Changed SPELLEFFECT to take UID of SRC as 3rd argument, and UID of source item as 4th argument&lt;br /&gt;
  (optional). To maintain compatibility, a 3rd argument of '1' refers to the current SRC.&lt;br /&gt;
  Example: CONT.SPELLEFFECT s_fireball 1000 &amp;lt;CONT.UID&amp;gt;&lt;br /&gt;
  In this example, &amp;lt;cont.uid&amp;gt; will be the SRC of @Effect and @SpellEffect triggers. Say no to&lt;br /&gt;
  equip fudging :p&lt;br /&gt;
- Fixed KARMA going to odd ranges.&lt;br /&gt;
- Added EF_Intrinsic_Locals (080), so that after you do LOCAL.X = something, you can access it&lt;br /&gt;
  via just &amp;lt;X&amp;gt;. Be careful though, not to name local variables after some known keyword, or your&lt;br /&gt;
  results might how you want them. &lt;br /&gt;
  Example:&lt;br /&gt;
      LOCAL.X = 10&lt;br /&gt;
      SYSMESSAGE X is &amp;lt;X&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
02-02-2004, Kell&lt;br /&gt;
- Fixed an exploit that would allow insta-resurrection anywhere (death menu packet).&lt;br /&gt;
- Fixed one last \n\r packet exploits.&lt;br /&gt;
- Made sure \n or \r are never saved to the world file, so even if some packet exploit got overlooked,&lt;br /&gt;
  it'll end up causing no harm and issue a warning in the console.. This is likely to be the end of&lt;br /&gt;
  99% of shard hacking.&lt;br /&gt;
&lt;br /&gt;
03-02-2004, Kell&lt;br /&gt;
- Fixed FOR x being 0 based - FOR 5 will now loop from 1 to 5 and not from 0 to 5.&lt;br /&gt;
- Fixed &amp;quot;/&amp;quot; character in parsing of simple formulas (so you don't need to use eval when&lt;br /&gt;
  assigning formulas to TAGs/VARs or in RETURN).&lt;br /&gt;
- Fixed @Targon_ground in GM mode with weapons throwing critical exception (it was attempting&lt;br /&gt;
  to damage a static item, which obviously is not an item at all).&lt;br /&gt;
- Targon_ triggers now have argn1 as the id of the static item (if a static was targeted),&lt;br /&gt;
  and ARGO being the targeted item (reduntant yes, but coherent).&lt;br /&gt;
- (intermediary test release here to get some feedback)&lt;br /&gt;
- Polymorph spell fixed.&lt;br /&gt;
&lt;br /&gt;
04-02-2004, Kell&lt;br /&gt;
- When loading a world with VERSION below &amp;quot;0.55 R3&amp;quot;, convert spells that affect stats, by&lt;br /&gt;
  removing its effect from base stats (old method) then putting the effect into modstats&lt;br /&gt;
  (new method). This ensures compatibility with spells and cursed items.&lt;br /&gt;
  Notice that this only works for worlds saved on versions earlier than R3, seeing as worlds&lt;br /&gt;
  saved on the test versions of R3 made no conversion and thus had items with both formats&lt;br /&gt;
  which cannot be distinguished.&lt;br /&gt;
  If for some reason you want to bypass this conversion on an old world, change the version&lt;br /&gt;
  of the save files to &amp;quot;0.55 R3&amp;quot;. If you want to force this conversion on a world saved with&lt;br /&gt;
  R3 test versions, change its version to &amp;quot;0.55&amp;quot;.&lt;br /&gt;
- Fixed melee weapons with large RANGE hitting through walls.&lt;br /&gt;
- Added ARCHERYMAXDIST to sphere.ini (defaults to 12).&lt;br /&gt;
- RANGE works for ranged weapons (bows) too. If no minimum range is set, then ARCHERYMINDIST&lt;br /&gt;
  is used. If no maximum range is set, then ARCHERYMAXDIST is used.&lt;br /&gt;
  Notice that on ITEMDEFs, syntax for range is either RANGE=min,max or RANGE=max (assumes 0&lt;br /&gt;
  as min for melee weapons, or archerymindist for ranged weapons).&lt;br /&gt;
- Account delete should be working fine now.&lt;br /&gt;
- IPs now accept 255 as a wildcard. So if you add an ip under BLOCKIPs with:&lt;br /&gt;
  1.2.255.255 you will actually be blocking everyone IP under 1.2&lt;br /&gt;
- EOF Account really fixed now (thanks everyone who pointed all the flaws out).&lt;br /&gt;
  note for programmers: never ignore the return error value of a function :p&lt;br /&gt;
- Added &amp;lt;StrPos iPos, ch, string&amp;gt;, where iPos is the position to start at and ch can be&lt;br /&gt;
  either a single character, or the ascii code for a character.&lt;br /&gt;
  Example:	&amp;lt;strpos 0 32 Where is the first space&amp;gt; --&amp;gt; will return 5.&lt;br /&gt;
  		&amp;lt;strpos 3 e  Where is the first 'e'&amp;gt; --&amp;gt; will return 4.&lt;br /&gt;
- Added &amp;lt;StrSub iPos, iCount, string&amp;gt;. Returns &amp;quot;iCount&amp;quot; numbers string, starting at iPos.&lt;br /&gt;
  Example:	&amp;lt;strsub 3 4 Oh look at this&amp;gt; --&amp;gt; will return &amp;quot;look&amp;quot;.&lt;br /&gt;
- Both StrSub and StrPos can take a negative value as iPos. In such a case, the position &lt;br /&gt;
  is counted from the end of the string. So if you do:&lt;br /&gt;
  StrSub -5 2 &amp;lt;abcdefg&amp;gt; --&amp;gt; returns &amp;quot;cd&amp;quot;.&lt;br /&gt;
- Changed StrArg / StrEat to stop at either a space or a comma. These are quick functions&lt;br /&gt;
  when you just want to take one argument from a string, or just want the string after one&lt;br /&gt;
  argument. Imagine you have a function that takes 1 number and a string. Instead of using&lt;br /&gt;
  argv[], you could use strarg to get the number and streat to get the string.&lt;br /&gt;
&lt;br /&gt;
05-02-2004, Kell&lt;br /&gt;
- Spells with SPELLFLAG_SCRIPTED can &amp;quot;return 0&amp;quot; in @Effect/@SpellEffect to bypass any&lt;br /&gt;
  hardcoded effect, w/o cancelling the spell.&lt;br /&gt;
- Duration for summon spells now takes in consideration the DURATION field in the SPELL section and&lt;br /&gt;
  the caster level (yeah, it didn't).&lt;br /&gt;
- @SpellEffect/@Effect is triggered on the NPC when it is first summoned (it's always considered to&lt;br /&gt;
  be the s_summon_creature spell, regardless of spell initially used to summon the NPC).&lt;br /&gt;
&lt;br /&gt;
06-02-2004, Kell&lt;br /&gt;
- Spells with both SPELLFLAG_TARG_XYZ and SPELLFLAG_TARG_CHAR/ITEM can be used either on the ground&lt;br /&gt;
  or on a character / item.&lt;br /&gt;
&lt;br /&gt;
---- 0.55 R3 final ------------------------------------------------------------&lt;br /&gt;
---- 31/05/2004&lt;br /&gt;
---- * unofficial release [unallowed]&lt;br /&gt;
&lt;br /&gt;
07-02-2004, Kell&lt;br /&gt;
- Added FeaturesLogin= to sphere.ini, allows setting of the flags sent in the 0xA9 packet, on login.&lt;br /&gt;
&lt;br /&gt;
08-02-2004, Kell&lt;br /&gt;
- Added EVENTS/TEVENTS to items. Order of triggering is as follows:&lt;br /&gt;
   1) If it's a character activating the trigger, check for triggers sensitive to items (@ItemDClick, etc).&lt;br /&gt;
   2) triggers in EVENTS on the item&lt;br /&gt;
   3) triggers in TEVENTS on the item&lt;br /&gt;
   4) triggers in TYPEDEF section for the corresponding TYPE of the item&lt;br /&gt;
   5) triggers in ITEMDEF section of the item&lt;br /&gt;
   6) default hardcoded behaviour (if any).&lt;br /&gt;
  a &amp;quot;return 1&amp;quot; in any case, stops further processing of triggers.&lt;br /&gt;
&lt;br /&gt;
21-02-2004, Kell&lt;br /&gt;
- There is a feature/bug when checking to see wether a player has some specific items, any item of a similar&lt;br /&gt;
  type will do. It affects these items:&lt;br /&gt;
     0175d (cloth), 01067 (leather), 01078 (hides), 01bdd (log), 01bd7 (boards), 00f3f (arrow), 01bfb (bolt).&lt;br /&gt;
  e.g., when the server tries to find an arrow, any t_weapon_arrow will do, and so on.&lt;br /&gt;
  Added flag EF_Item_Strict_Comparison (0200) to disable this behaviour.&lt;br /&gt;
  &lt;br /&gt;
25-03-2004, Radiant&lt;br /&gt;
- Added some combat, server and command messages to sphere_msgs.scp.&lt;br /&gt;
- Added two file handleing commands:&lt;br /&gt;
   SERV.WRITEFILE &amp;lt;filename&amp;gt; &amp;lt;text&amp;gt;&lt;br /&gt;
   SERV.DELETEFILE &amp;lt;filename&amp;gt;&lt;br /&gt;
  Because these commands can be quite destructive, option flag OF_FileCommands (080) must be enabled &lt;br /&gt;
  for these commands to work. Be careful, because any GM with access to SERV.* commands could use this!&lt;br /&gt;
  More will follow soon.&lt;br /&gt;
- Added @UserChatButton trigger (return 1 disables default (chat window) behaviour)&lt;br /&gt;
- Added @UserMailBag trigger (return 1 disables default (message) behaviour)&lt;br /&gt;
  NOTE: It seems this is also triggered on login, try using something like&lt;br /&gt;
    if (&amp;lt;uid&amp;gt; == &amp;lt;src.uid&amp;gt;)&lt;br /&gt;
      return 1&lt;br /&gt;
    endif&lt;br /&gt;
  to prevent this.&lt;br /&gt;
&lt;br /&gt;
26-03-2004, Radiant&lt;br /&gt;
- Added &amp;lt;READFILE filename line&amp;gt; statement&lt;br /&gt;
  If line == 0 this will return the last line of the file, if line == -1 this will return the first line of&lt;br /&gt;
  the file. This needs OF_FileCommands (080) to be enabled because of obvious security reasons.&lt;br /&gt;
  This will return &amp;quot;&amp;quot; (nothing) on failure.&lt;br /&gt;
- Added &amp;lt;FILELINES filename&amp;gt; statement, returns the amount of lines in a file.&lt;br /&gt;
  If this is 0 it means the file doesnt exist or cannot be read. This too needs OF_FileCommands (080).&lt;br /&gt;
- Added some error and misc. messages to sphere_msgs.scp.&lt;br /&gt;
- Added SYSMESSAGEUA (syntax equal to SAYUA).&lt;br /&gt;
  *** NOTE *** People using Taran's colored sysmessage script will experience problems! Remove Taran's script&lt;br /&gt;
  and change your scripts to use the hardcoded function instead (which is much faster and efficient anyway).&lt;br /&gt;
- Fixed missing return char in TRY console errors and added the UID of the object causing the error.&lt;br /&gt;
- Added @Attack trigger (after someone doubleclicked a character to attack).&lt;br /&gt;
  SRC is the target. &amp;quot;return 1&amp;quot; will cancel the attack.&lt;br /&gt;
- Added @UserWarmode trigger, fired when a user hits the warmode button before sphere changes the warmode flag.&lt;br /&gt;
  ARGN is the current warmode state (1 = in warmode, 0 = peace). &amp;quot;return 1&amp;quot; cancels the warmode change.&lt;br /&gt;
&lt;br /&gt;
27-03-2004, Radiant&lt;br /&gt;
- Got sphere to compile on FreeBSD, it's not very stable yet, working on that (problem with signal handlers).&lt;br /&gt;
- Added TRYSRC &amp;lt;uid&amp;gt; &amp;lt;verb&amp;gt;, executes &amp;lt;verb&amp;gt; with &amp;lt;uid&amp;gt; as the SRC. Death to equip fudging!&lt;br /&gt;
  Note that the default object is the object this is called on, so link.trysrc &amp;lt;cont.uid&amp;gt; will make &amp;lt;link&amp;gt; the&lt;br /&gt;
  default object and &amp;lt;cont&amp;gt; the &amp;lt;src&amp;gt;. Very useful in timers!&lt;br /&gt;
&lt;br /&gt;
28-03-2004, Radiant&lt;br /&gt;
- Disabled SENDPACKET S&amp;quot;&amp;quot; and put in a little notice that you should use &amp;lt;ASC&amp;gt; instead.&lt;br /&gt;
- Casting recall/gate travel on an item now fires @SpellEffect on that item.&lt;br /&gt;
&lt;br /&gt;
31-03-2004, Radiant&lt;br /&gt;
- Added OF_NoItemNaming (0100), prevents sphere from naming items &amp;quot;sword crafted by Player&amp;quot;&lt;br /&gt;
- Added EF_No_Pause_Packet (0400), this prevents sphere from sending a Disable Redraw (or pause) packet everytime&lt;br /&gt;
  a new item/character is sent to the client. This is a bandwidth saver and lag preventer.&lt;br /&gt;
  This saves about 45 bytes for each action, this doesn't seem much but you can notice the difference.&lt;br /&gt;
&lt;br /&gt;
02-04-2004, Radiant&lt;br /&gt;
- Changed skillsum to DWORD, which fixes the problem with high skillsums not working.&lt;br /&gt;
&lt;br /&gt;
04-04-2004, Radiant&lt;br /&gt;
- Gate travel spell now LINKs the gate to the person that opened it.&lt;br /&gt;
&lt;br /&gt;
06-04-2004, Radiant&lt;br /&gt;
- Healing is now interrupted properly when hit, fixes exception problem.&lt;br /&gt;
&lt;br /&gt;
08-04-2004, Radiant&lt;br /&gt;
- Fixed signal locking problem on Linux/FreeBSD, running sphere in multi-threading mode still has problems, I'll look&lt;br /&gt;
  at that tomorrow. Sphere now survives pretty much every error on Linux/FreeBSD (only tested on FreeBSD), as long as&lt;br /&gt;
  it's running in single thread mode.&lt;br /&gt;
&lt;br /&gt;
09-04-2004, Radiant&lt;br /&gt;
- Threading problem seems to be a little more complicated, but at least sphere runs very stable for me without threading&lt;br /&gt;
  on FreeBSD. I've tried it on Slackware, which still had alot of problems. I'll leave that for Kell ;)&lt;br /&gt;
&lt;br /&gt;
11-04-2004, Balkon&lt;br /&gt;
- Fixed bug when pick up few items from a pile on the ground it's timers become -1&lt;br /&gt;
- Added @Pickup_Self - fired on container when item picked up from it, ARGO points to item we picking up&lt;br /&gt;
  @ItemPickup_Self for chars, ACT - container , ARGO - item we picking up&lt;br /&gt;
  Removed Reveal() from corpse looting - one can do it using @Pickup_Self if needed&lt;br /&gt;
- @Dropon_Char, @ItemDropon_Char now called when drop an item directly on charater either (before secure trade window &lt;br /&gt;
  shown and @NPCAccept/Refuseitem triggers), ARGO points to character we drop the item on, or character's backpack&lt;br /&gt;
&lt;br /&gt;
11-04-2004, Balkon&lt;br /&gt;
- Can't provoce char against an item&lt;br /&gt;
- Return 1 in @Login fixed (character will not stay in the world, no &amp;quot;client version check&amp;quot; loop)&lt;br /&gt;
- Fixed CONT and TOPOBJ in @EquipTest, item not moved if can't be equipped when doubleclick on it&lt;br /&gt;
&lt;br /&gt;
12-04-2004, Radiant&lt;br /&gt;
- Added LOCALLIGHT property on characters, if this is 0 the normal lightlevel (sector) will be used, if this is higher the&lt;br /&gt;
  LOCALLIGHT value will be sent as lightlevel instead. You will need to use UPDATE after you have changed this, because the&lt;br /&gt;
  light level is not automatically updated. This overrides nightsight.&lt;br /&gt;
  (note: if you want to give a character a LOCALLIGHT level of 0, just set the nightsight flag)&lt;br /&gt;
&lt;br /&gt;
13-04-2004, Balkon&lt;br /&gt;
- OF_NoHouseMuteSpeech (0200) - if enabled players are able to hear each other inside and outside the house&lt;br /&gt;
- Started remaking a CanSeeLos and CanWalk, temporary added EF_CanSeeLos_New (0800) to enable both changes&lt;br /&gt;
  as for now it fixes shoot through walls an fall through the floor in house regions interception area bugs, &lt;br /&gt;
  more changes here later...&lt;br /&gt;
&lt;br /&gt;
14-04-2004, Radiant&lt;br /&gt;
- @DClick is now triggered before the item is attempted to be equipped&lt;br /&gt;
&lt;br /&gt;
15-04-2004, Balkon&lt;br /&gt;
- EF_WalkCheck (01000) - new walk check code, should fix lot of house looting bugs (patched verdata, walk under stairs etc.)&lt;br /&gt;
  NOTE: in default script pack some stairs are in DUPELIST of items, which are not really a stairs, so they have&lt;br /&gt;
  wrong CAN flags (CAN_I_CLIMB is not set). Make sure you've fixed your scripts before enabling this EF or you'll &lt;br /&gt;
  not be able to walk on some of dynamic stairs&lt;br /&gt;
&lt;br /&gt;
16-04-2004, Balkon&lt;br /&gt;
- some optimization to EF_WalkCheck, fixing climb height after teleporting and Z changing&lt;br /&gt;
- fixed bug when summoned NPC's have loot&lt;br /&gt;
- fixed RESOURCES.1 returned string in RESMAKE format&lt;br /&gt;
- fixed shafts etc. dupe bug&lt;br /&gt;
&lt;br /&gt;
17-04-2004, Radiant&lt;br /&gt;
- Started working on some basic AOS functionality, EF_AgeOfShadows (02000) will enable this.&lt;br /&gt;
  Currently only enables tooltips (which aren't even working for now). Don't forget to enable flag 020 in FeaturesLogin!&lt;br /&gt;
- Fixed a nasty exploit that would allow anyone to crash sphere and/or execute code on your machine without even logging in&lt;br /&gt;
  (thanks Furio for reporting this)&lt;br /&gt;
- Fixed AOS Tooltips, now only shows the name for items and characters. I'll add other things later.&lt;br /&gt;
- Added AOS/LBR fading damage counter thing (requires EF_AgeOfShadows). This only shows for you and the person that hit you,&lt;br /&gt;
  I believe thats how it works on OSI (or doesn't it?). Showing it for everyone would make it laggy in my opinion.&lt;br /&gt;
&lt;br /&gt;
17-04-2004, Balkon&lt;br /&gt;
- torch/candle dupe bug seems to be fixed at last :)&lt;br /&gt;
&lt;br /&gt;
18-04-2004, Balkon&lt;br /&gt;
- fixed ACCOUNT properties was not accessable for logged out chars&lt;br /&gt;
- added ISPLAYER function - just a little feature :)&lt;br /&gt;
- added ISONLINE function - for players returns 1 if client is online (connected) and 0 overwise, for NPCs returns 1 when &lt;br /&gt;
  NPC is in the world or 0 if it is offline (shrinked, mounted pets)&lt;br /&gt;
- added NOTOGETFLAG function, returns notoriety flags for specified char, syntax: NOTOGETFLAG Viewer_Serial,Allow_Incognito&lt;br /&gt;
  returned values:&lt;br /&gt;
	NOTO_GOOD		1 // good(blue)&lt;br /&gt;
	NOTO_GUILD_SAME   2 // same guild&lt;br /&gt;
	NOTO_NEUTRAL	3 // Neutral&lt;br /&gt;
	NOTO_CRIMINAL	4 // criminal&lt;br /&gt;
	NOTO_GUILD_WAR	5 // Waring guilds&lt;br /&gt;
	NOTO_EVIL		6 // evil(red)&lt;br /&gt;
  if no args specified returns flags for SRC as a viewer, NOTOGETFLAG 0,1 will return flags for SRC as a viewer with &lt;br /&gt;
  Allow_Incognito = true&lt;br /&gt;
  NOTE: for red guildmates it will return NOTO_EVIL, not NOTO_GUILD_SAME&lt;br /&gt;
&lt;br /&gt;
18-04-2004, Radiant&lt;br /&gt;
- Some additions to AOS tooltips&lt;br /&gt;
&lt;br /&gt;
19-04-2004, Kell&lt;br /&gt;
- A few changes to AOS tooltips for cross-platform compatibility (itoa).&lt;br /&gt;
&lt;br /&gt;
19-04-2004, Radiant&lt;br /&gt;
- Fixed status updates not sending with EF_No_Pause_Packet flag set&lt;br /&gt;
- Made @userStats fire on every status update that is being sent, if ARGN3 == 1 then the user has just opened the status window&lt;br /&gt;
- More tooltips stuff, type specific&lt;br /&gt;
- Added AOS/LBR Popup Menu's, these can be activated by setting flag 08 in FeaturesLogin (currently only for characters).&lt;br /&gt;
&lt;br /&gt;
19-04-2004, Balkon&lt;br /&gt;
- RANGE bug fixed&lt;br /&gt;
- updating last regen time for dead chars so that they will not get ticks every tenth of second any more&lt;br /&gt;
&lt;br /&gt;
20-04-2004, Balkon&lt;br /&gt;
- some traffic optimization:&lt;br /&gt;
  short stats change packets now used instead of full status packet when changing only hits/mana/stamina or it's max. values&lt;br /&gt;
  HITSUPDATERATE in sphere.ini controls how often (in seconds) my changed hits will be sent to others who can see me,&lt;br /&gt;
  default value is 1, incraise to reduce the traffic usage, 0 value disables sending such updates (like it was on 55i)&lt;br /&gt;
- MAXHITS etc. fixed. .MAXHITS 100 will now set MAXHITS to 100, this will include MODSTR so that if you had MODSTR 10 before &lt;br /&gt;
  setting MAXHITS than when you change MODSTR back to 0 MAXHITS will be 90.&lt;br /&gt;
- maxhits displayed for others changed from 25 to 50 for smoother hits line changing on the statusbar&lt;br /&gt;
&lt;br /&gt;
21-04-2004, Radiant&lt;br /&gt;
- Added MESSAGEUA, syntax equal to SAYUA and SYSMESSAGEUA&lt;br /&gt;
- Fixed lack of argument checking in SAYUA that sometimes causes an exception&lt;br /&gt;
- Added support for the &amp;quot;Virtue button&amp;quot; (at the top of the paperdoll on newer clients), fires the @UserVirtue trigger.&lt;br /&gt;
- Added support for the new spellbook packets (old ones don't work with AOS), if EF_AgeOfShadows is not set the old packets will&lt;br /&gt;
  be used (this is for Magery, there is no Necromancy or Paladin stuff (yet)).&lt;br /&gt;
&lt;br /&gt;
22-04-2004, Radiant&lt;br /&gt;
- Re-added the &amp;quot;The spell fizzles&amp;quot; message on spell failure&lt;br /&gt;
&lt;br /&gt;
22-04-2004, Balkon&lt;br /&gt;
- setting values in quotas for TAGs, VARs and LOCALs now will create text tags, i.e. &lt;br /&gt;
  TAG.TEST_1 2+2&lt;br /&gt;
  will create numrecal tag TEST_1 with value 04, but&lt;br /&gt;
  TAG.TEST_2 &amp;quot;2+2&amp;quot;&lt;br /&gt;
  will create text tag with text '2+2'.&lt;br /&gt;
  Text tags and vars are saved quoted also.&lt;br /&gt;
- fixed REGION.TAG0.SOMETHING caused 'Undefined symbol &amp;quot;&amp;quot; error' when tag SOMETHING is not set&lt;br /&gt;
&lt;br /&gt;
23-04-2004, Radiant&lt;br /&gt;
- Found out that new spellbook packets are broken, still not fixed&lt;br /&gt;
- Added support for necro book spells, now reads the spelldefs for these (101 - 116), will add hardcoded behaviour later&lt;br /&gt;
- Added @UserExWalkLimit trigger, fired if a user exceeds the Walk limit (is either lagging alot or speedhacking)&lt;br /&gt;
  RETURN 1 allows the user to walk, no action or RETURN 0 disallows the user to walk&lt;br /&gt;
  (note: this is pretty expensive because it's fired each time a step is taken while the user's walkbuffer is at 0, so be careful)&lt;br /&gt;
&lt;br /&gt;
24-04-2004, Radiant&lt;br /&gt;
- Removed message from WEBLINK command&lt;br /&gt;
- Fixed .admin showing japanese text/crashing client with long character names (names are truncated to 30 chars)&lt;br /&gt;
- SERV.NEWDUPE and DUPE now sets NEW (and ACT? coded but not tested) for items only, duping chars doesn't work like it should yet&lt;br /&gt;
- DCLICK/USE on characters now takes an argument (uid), makes the character DCLICK a certain item/char&lt;br /&gt;
- CALL function is no longer case-sensitive&lt;br /&gt;
- Added arguments to dialogs, in this form: &amp;quot;DIALOG d_dlg 0 blabla&amp;quot;, both &amp;lt;args&amp;gt; and &amp;lt;argv[x]&amp;gt; can be used. &amp;lt;argn&amp;gt; is the page number&lt;br /&gt;
  (second argument)&lt;br /&gt;
&lt;br /&gt;
25-04-2004, Radiant&lt;br /&gt;
- Added COMMANDLOG option in sphere.ini, only logs commands issued by this plevel and higher. (default = 0, log all)&lt;br /&gt;
&lt;br /&gt;
29-04-2004, Balkon&lt;br /&gt;
- after some beta testing few fixes in equip and EF_WalkCheck&lt;br /&gt;
- added EVENTSPET to sphere.ini - events far all NPCs&lt;br /&gt;
- added EF_DiagonalLOSCheck (04000) - to see the object in diagonal direction we must be able to see the point at least &lt;br /&gt;
  in one of ortogonal directions, this mean you can't see objects only through the &amp;quot;corner&amp;quot;, this fixes teleport through&lt;br /&gt;
  fence NW corner and some other bugs but still allows, for example, closing doors which are in diagonal direction &lt;br /&gt;
  to you when opened :) Setting this flag may incraise CPU usage.&lt;br /&gt;
- alternative name in TAG.NAME.ALT is now used everywhere if tag is set - in character status, corpse names, linked &lt;br /&gt;
  memories etc. It overrides incognito name also. The real name is only accessable via NAME property.&lt;br /&gt;
  TAG.NAME.PREFIX now overrides fame prefixes (shown on click). TAG.NAME.PREFIX and TAG.NAME.SUFFIX are now can be combined&lt;br /&gt;
  with TAG.NAME.ALT&lt;br /&gt;
&lt;br /&gt;
01-05-2004, Balkon&lt;br /&gt;
- fixed bug when closing dialog with targeting cursor up canceled targeting&lt;br /&gt;
- removed \r check from character profile packet - this allows to have a multiline profile and fixing wrong &amp;quot;Cheater&amp;quot; warnings&lt;br /&gt;
- fixed bug when players was able to buy any items from vendor even outside the stock (equipped on him. in his backpack etc.)&lt;br /&gt;
- vendor now will simply transfer items to character's backpack if they are stored in his &amp;quot;extras&amp;quot; box or if he is a player's &lt;br /&gt;
  vendor (they was duped, you bought the copy and the old one deleted before). Shrinked pets will not be unshrinked when sold&lt;br /&gt;
  from player's vendor (or from extras box).&lt;br /&gt;
&lt;br /&gt;
02-05-2004, Balkon&lt;br /&gt;
- EF_CanSeeLos_New is not longer used, all fixes affected by this EF are now included to the code by default.&lt;br /&gt;
&lt;br /&gt;
03-05-2004, Socket (UNSP team)&lt;br /&gt;
- Started work on fullfeatured guild/town system. Added MEMBER property to guildstones. You shall use it this way:&lt;br /&gt;
  &amp;lt;guildstone&amp;gt;.member.X.&amp;lt;property&amp;gt; These properties are available for read/write: ACCOUNTGOLD, LOYALTO, PRIV,&lt;br /&gt;
  SHOWABBREV, GUILDTITLE. Functions available: IsCandidate (returns 1 if member is a recruit), IsMember (1 if member),&lt;br /&gt;
  IsMaster (returns 1 if guildmaster). Also, MEMBER.X. construction points directly to character, so you&lt;br /&gt;
  could use something like MEMBER.X.NAME in your scripts. MEMBER.COUNT returns total number of guildmembers.&lt;br /&gt;
- ACCOUNTGOLD guild member's property is now saving to worldsave too.&lt;br /&gt;
- Added new GOLDRESERVE property to guildstone.&lt;br /&gt;
- Added new &amp;lt;CONT&amp;gt;.COUNT function which returns a total amount of items in the container.&lt;br /&gt;
- Added new SERV.CLIENT.x reference. SERV.CLIENT.0. is a newest client and so on, for example &amp;lt;serv.client.0.name&amp;gt;&lt;br /&gt;
  will return the name of last logged in client. Reference is READ-ONLY for safety. In this case you could save&lt;br /&gt;
  client uid somewhere and work with his using UID.&amp;lt;uid&amp;gt;. reference.&lt;br /&gt;
&lt;br /&gt;
07-05-2004, Socket&lt;br /&gt;
- &amp;lt;CONT&amp;gt;.COUNT now returns an amount of items only in selected container, without counting items in containers inside it.&lt;br /&gt;
- Added &amp;lt;CONT&amp;gt;.FCOUNT function, which returns a TOTAL amount of items inside container.&lt;br /&gt;
&lt;br /&gt;
11-05-2004, Balkon&lt;br /&gt;
- some fixes, @EquipTest now fired before all internal checks, before item unstacked from the pile, before item in same layer&lt;br /&gt;
  unequipped (this mean if you have return 1 there char will not unequip previews item)&lt;br /&gt;
&lt;br /&gt;
16-05-2004, Balkon&lt;br /&gt;
- fixed @Dropon_char called when dropping item to any container on the char. Now it called only when you really drop the item&lt;br /&gt;
  on the character - directly on his head or on his backpack if you don't own him. ARGO now always points to character.&lt;br /&gt;
&lt;br /&gt;
19-05-2004, Balkon&lt;br /&gt;
- fixed @color,font in MESSAGE and SYSMESSAGE, now it accept hexadecimal values, added 3-rd argument there - unicode flag, &lt;br /&gt;
  new format is SYSMESSAGE @color,font,unicode text, added @color,font,unicode to SAY and broadcast either. Of course SAYUA,&lt;br /&gt;
  MESSAGEUA and SYSMESSAGEUA still can be used for this, but @color,font,unicode is accepted in default messages definition&lt;br /&gt;
  (sphere_msgs.scp), so now we can have default messages in unicode :)&lt;br /&gt;
- added OF_SkipUndefMsgs (0400) - if flag is set sphere don't send error strings for undefined default messages, &lt;br /&gt;
  dont print errors on resync - just ignores it, so now we can disable some default messages if needed.&lt;br /&gt;
- SPEED wepaons property now used in fight delay calcilation if set (and not 0), the formula is &lt;br /&gt;
  DELAY = 15000 / ( ( DEX +100 ) * SPEED )&lt;br /&gt;
&lt;br /&gt;
20-05-2004, Balkon&lt;br /&gt;
- some optimization in hit messages (get only messages which really will be sent to client)&lt;br /&gt;
- added SPEEDSCALEFACTOR to INI (defaul value is 15000), used in weapon delay calcultions, now formula looks like&lt;br /&gt;
  DELAY = SPEEDSCALEFACTOR / ( ( DEX + 100 ) * SPEED )&lt;br /&gt;
- ARGN1 in @HitTry now is the delay (in tenths of second) left before the hit, can be changed&lt;br /&gt;
&lt;br /&gt;
21-05-2004. Balkon&lt;br /&gt;
- added FORCLIENTS and FORPLAYERS loops, difference is that FORPLAYERS will loop through disconnected players which are &lt;br /&gt;
  still stay in the world (client linger) either.&lt;br /&gt;
- if no args specifiead for FORITEMS, FORCHARS, FOROBJS, FORCLIENTS, and FORPLAYERS loops value 18 is used by default &lt;br /&gt;
  (maximum view distance)&lt;br /&gt;
- added FORCONTID and FORCONTTYPE loops, format is FORCONTID i_dagger max_sub_containers. If max_sub_containers is not &lt;br /&gt;
  present it will search in all subcontainers. If max_sub_containers = 0 - it will search only in this container.&lt;br /&gt;
- added FORCHARLAYER layer - loop through all objects in specified layer&lt;br /&gt;
- added FORCHARMEMORYTYPE flags - loop through all memory objects with this flags&lt;br /&gt;
&lt;br /&gt;
25-05-2004. Balkon&lt;br /&gt;
- fixed bug when after parsing quoted lines when setting VARs, TAGs and LOCALs didn't create text variables&lt;br /&gt;
&lt;br /&gt;
27-05-2004, Socket&lt;br /&gt;
- Fixed guild MEMBER.X.KEY for read/write. Now it should be working well. Will return error if you try&lt;br /&gt;
  to access non-existant member (so it should be better to use MEMBER.COUNT to check bounds).&lt;br /&gt;
&lt;br /&gt;
---- 0.55 R4.0.1 --------------------------------------------------------------&lt;br /&gt;
---- 07/06/2004&lt;br /&gt;
---- * unofficial release [unallowed]&lt;br /&gt;
&lt;br /&gt;
30-05-2004, Kell&lt;br /&gt;
- Little fixes to allow compile under Linux (use strcmpi() for caseless string&lt;br /&gt;
  comparison, and add casts to (LPCTSTR) on CGStrings).&lt;br /&gt;
- Changed version number. I suggest using R4.x.y where xx is increased when&lt;br /&gt;
  something major is done and yy is for little changes. Set to R4.0.1.&lt;br /&gt;
  (ps: some people never quite understood what RC* means. After the 20th it&lt;br /&gt;
   stops being a release candidate, it's more like a candidate to a release&lt;br /&gt;
   candidate. So after the &amp;quot;powers that be&amp;quot; have adopted and turned that&lt;br /&gt;
   numbering scheme into a mockery, I suggest we change to something less&lt;br /&gt;
   confusing.&lt;br /&gt;
&lt;br /&gt;
31-05-2004, Furio&lt;br /&gt;
- Added FORCONT loop, format is FORCONT uid_of_container max_sub_containers. It&lt;br /&gt;
  will loop on every item present in the container. If max_sub_containers is not&lt;br /&gt;
  present it will search in all subcontainers. If max_sub_containers = 0 - it&lt;br /&gt;
  will search only in this container. (Thx to Balkon for the base code for&lt;br /&gt;
  container loops)&lt;br /&gt;
&lt;br /&gt;
07-06-2004, Furio&lt;br /&gt;
- Made a blank REVISIONS.TXT because it was getting pretty big.&lt;br /&gt;
- Added XOR (^) operator to expressions.&lt;br /&gt;
&lt;br /&gt;
---- 0.55 R4.0.2 --------------------------------------------------------------&lt;br /&gt;
---- 22/07/2004&lt;br /&gt;
---- * unofficial release [unallowed]&lt;br /&gt;
&lt;br /&gt;
12-06-2004, Furio&lt;br /&gt;
- Added two new INI value USECRYPT and USENOCRYPT. The first if 0 don't allow at&lt;br /&gt;
  encrypted client to login otherwise allow them to log (default is 1). The&lt;br /&gt;
  second if 0 don't allow at unencrypted client to login otherwise&lt;br /&gt;
  if 1 -&amp;gt; allow and suppose that the clientversion is &amp;gt;= 2.0.0&lt;br /&gt;
  if 2 -&amp;gt; n/a&lt;br /&gt;
  if 3 -&amp;gt; allow and suppose that the clientversion is &amp;gt;= 3.0.0&lt;br /&gt;
- Added the most requested security-by-obscurity feature DISGUISEVERSION in&lt;br /&gt;
  sphere.ini. If set change the version outputted to clients, ircserver,&lt;br /&gt;
  webserver, listserver, telnetserver to its value otherwise the default build &lt;br /&gt;
  value is used. (Mind that the version in savefile and in console startup is &lt;br /&gt;
  the default build version)&lt;br /&gt;
- Fixed (i hope) bug with Mozilla/Firefox browser with the status page&lt;br /&gt;
- Fixed a buffer overrun bug that could be exploited to crash or run arbitrary&lt;br /&gt;
  code, in the log system.&lt;br /&gt;
&lt;br /&gt;
20-06-2004, kuch&lt;br /&gt;
- Added ClearTags function (removes all the tags from the char/item/account);&lt;br /&gt;
  Revital did most of the work, but I get the credit.&lt;br /&gt;
&lt;br /&gt;
28-06-2004, Furio&lt;br /&gt;
- Fixed multiple gump exploits. In order to do this now memory 08000 is used as&lt;br /&gt;
  internal memory (is called MEMORY_GUMPRECORD).&lt;br /&gt;
- Fixed and refined things for disguise version feature.&lt;br /&gt;
&lt;br /&gt;
02-07-04, kuch&lt;br /&gt;
- Added MODMAXWEIGHT: allows you to increase/decrease max carrying capacity of a&lt;br /&gt;
  char.&lt;br /&gt;
- Added MODAR: allows you to increase/decrease the overall AR of a char&lt;br /&gt;
  NOTE: there are no oStat equivalents (ie oModAr or oModMaxWeight) for the&lt;br /&gt;
  above.&lt;br /&gt;
- Also added the following to avoid possible confusion:&lt;br /&gt;
  * MAXWEIGHT - same as WEIGHTMAX&lt;br /&gt;
  * AR - same as AC&lt;br /&gt;
  * MODAC - same as MODAR&lt;br /&gt;
  * MODWEIGHTMAX - same as MODMAXWEIGHT&lt;br /&gt;
  &lt;br /&gt;
03-07-04, kuch&lt;br /&gt;
- Added 135 more strings (mostly from skills) to sphere_msg.scp&lt;br /&gt;
- Added new .ini option: WOOLGROWTHTIME: how long in minutes it takes for wool&lt;br /&gt;
  on sheared sheep to regrow.&lt;br /&gt;
- Added new .ini option: SKILLPRACTICEMAX: how high can you train a skill on&lt;br /&gt;
  dummy/archery_target.&lt;br /&gt;
&lt;br /&gt;
04-07-04, kuch&lt;br /&gt;
- Added 93 more strings: NPC speech and skill msgs; there are now 329 string &lt;br /&gt;
  messages in sphere_msgs.scp.&lt;br /&gt;
- Added TAGCOUNT function (works on regions/items/chars/accounts) - returns the&lt;br /&gt;
  number of tags on that obj&lt;br /&gt;
- Fixed CLEARTAGS (now also works on regions)&lt;br /&gt;
&lt;br /&gt;
06-07-04, kuch&lt;br /&gt;
- Fixed some weird bug in jobmage.scp and jobnoble.scp &lt;br /&gt;
- Added a lot more strings to sphere_msgs.scp; If you find any bugs with them,&lt;br /&gt;
  kuchervano@hotmail.com me immediately!&lt;br /&gt;
&lt;br /&gt;
07-07-04, Furio&lt;br /&gt;
- Fixed DISTANCEWHISPER not working correctly.&lt;br /&gt;
&lt;br /&gt;
07-07-04, kuch&lt;br /&gt;
- Added DEFFOOD value to sphere_defs.scp - this is a template of items you want&lt;br /&gt;
  to get by casting the create food spell; Yes it does not give you a great deal&lt;br /&gt;
  of control over what you get (ie skillbased for example), but its better than&lt;br /&gt;
  nothing&lt;br /&gt;
  &lt;br /&gt;
09-07-04, Furio&lt;br /&gt;
- Fixed bug with ^ operator.&lt;br /&gt;
&lt;br /&gt;
16-07-04, Vjaka&lt;br /&gt;
- Fixed bug with armor/weapon when hits were above to hitsmax.&lt;br /&gt;
- Cosmetic fix to report Client out overflow error line once per dialog instead&lt;br /&gt;
  of tons of them.&lt;br /&gt;
- Added trigger function f_onchar_delete triggered before client is going to&lt;br /&gt;
  delete a character. SRC is char, return 1 denyes deletion.&lt;br /&gt;
- Added trigger function f_onaccount_login triggered after client entered the&lt;br /&gt;
  password, ARGS is account name, return 1 disconnects.&lt;br /&gt;
- Added spell flag SPELLFLAG_PLAYERONLY 020000 which denies spell being cast by&lt;br /&gt;
  npc ai (no more npcs casting shrink if not wished to).&lt;br /&gt;
&lt;br /&gt;
17-07-04, Vjaka&lt;br /&gt;
- Added @NPCLostTeleport to trigger before NPC is going to be teleported back to&lt;br /&gt;
  its spawn (by LostNPCTeleport sphere.ini setting), ARGN1 is the distance from&lt;br /&gt;
  the spawn.&lt;br /&gt;
- Added INI switch PAYFROMPACKONLY (default: 0). If set to 1, then buying stuff&lt;br /&gt;
  from vendors will search pack only for the gold.&lt;br /&gt;
- Added @Hunger to trigger before char is going to loss a food level. ARGN1 is&lt;br /&gt;
  the food level that will be set, return 1 cancels.&lt;br /&gt;
&lt;br /&gt;
19-07-04, Vjaka&lt;br /&gt;
- Removed IRC server from default build settings. It is buggy, has holes inside &lt;br /&gt;
  and probably should not used by anyone.&lt;br /&gt;
- Reverted memory information profiling in Win32 version (stability testings).&lt;br /&gt;
- Fixed NoMessages and Quick login mode (ARNG1/2 in @Login) now skips sphere&lt;br /&gt;
  version information and Welcome back.. prompt.&lt;br /&gt;
- Fixed some exceptions for ticking events. Some division by zero removed, and&lt;br /&gt;
  the exceptions are made less critical (actualy the way they should be - quite&lt;br /&gt;
  local). It means that the server should be more stable now. Also they gives&lt;br /&gt;
  usualy more information on when the error occured.&lt;br /&gt;
- Added @StepStealth triggering on each step made by person in stealth. ARGN1&lt;br /&gt;
  (in and out) - whatever to reveal him or not.&lt;br /&gt;
- Added isnumber(something) - returns 1 if it is a number (only number of radix&lt;br /&gt;
  10 suits). Useful in argtxt validation.&lt;br /&gt;
&lt;br /&gt;
19-07-04, Furio&lt;br /&gt;
- Fixed compatibility issues with Linux for isnumber(something).&lt;br /&gt;
- Added TAG.DIALOG_NAME to MEMORY_GUMPRECORD. The tag contains the name of the &lt;br /&gt;
  dialog opened. Special case are the .admin gump (clientlist), the hair dye&lt;br /&gt;
  gump (hairdye), a guild hardcoded gump (guild) and if no name is found&lt;br /&gt;
  (undef). Hope that this will help in checking what gumps are opened on client&lt;br /&gt;
  screen.&lt;br /&gt;
- Added SDIALOG command. It works like DIALOG with the difference that it'll&lt;br /&gt;
  open a dialog only if it's not present on the client screen.&lt;br /&gt;
- Fixed a thing in DISGUISEVERSION. Now .[x]show version shows the disguised&lt;br /&gt;
  version.&lt;br /&gt;
&lt;br /&gt;
20-07-04, Vjaka&lt;br /&gt;
- Fixed compatibility issues with Unix for exceptions&lt;br /&gt;
- Added MODAR (MODAC) working on items as well. Now it is for both items and&lt;br /&gt;
  chars.&lt;br /&gt;
- Fixed startup sequence - now tryes to bind a socket before loading the world&lt;br /&gt;
  saving time on running multiply instances.&lt;br /&gt;
- Fixed Windows version buffered output flushing. Also removed log file&lt;br /&gt;
  buffering.&lt;br /&gt;
&lt;br /&gt;
21-07-04, Kell&lt;br /&gt;
- Fixed some compilation issues under Linux (just missing some (DWORD) casts).&lt;br /&gt;
&lt;br /&gt;
22-07-04, Furio&lt;br /&gt;
- If PAYFROMPACKONLY (default: 0). is enabled, in the char status only gold from&lt;br /&gt;
  pack is displayed.&lt;br /&gt;
- Fixed minor things on default messages.&lt;br /&gt;
&lt;br /&gt;
22-07-04, Vjaka&lt;br /&gt;
- Added server state functions f_onserver_save, f_onserver_save_ok and&lt;br /&gt;
  f_onserver_save_fail. Arguments are ARGN1 - force save? and ARGN2 - save stage&lt;br /&gt;
  (for background saves). For f_onserver_save the ARGN1 is writeable and return&lt;br /&gt;
  1 cancels the save.&lt;br /&gt;
  Please note, that if background saves are enabled, these functions will be run&lt;br /&gt;
  tons of times during the worldsave process (at least 6144 [sectors amount]&lt;br /&gt;
  times).&lt;br /&gt;
- Added f_onserver_start function triggered server start.&lt;br /&gt;
- Created knownbugs.txt file to be distributed with sphere revisions.&lt;br /&gt;
&lt;br /&gt;
---- 0.55 R4.0.3 --------------------------------------------------------------&lt;br /&gt;
---- * not released&lt;br /&gt;
---- * unofficial release [unallowed]&lt;br /&gt;
&lt;br /&gt;
23-07-04, Vjaka&lt;br /&gt;
- Added some more exceptions debugging. It is going deeper and deeper to engine.&lt;br /&gt;
- Added MAXITEMCOMPLEXITY (default: 25) - the amount of items in one tile so&lt;br /&gt;
  start showing &amp;quot;too many items here&amp;quot;.&lt;br /&gt;
- Added MAXSECTORCOMPLEXITY (default: 1024) - the amount of items in one sector&lt;br /&gt;
  to start showing &amp;quot;x items too complex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
24-07-04, Vjaka&lt;br /&gt;
- Removed instant logout in guarded areas. use REGION_FLAG_INSTA_LOGOUT instead &lt;br /&gt;
  if you wish instant logout.&lt;br /&gt;
- Added console commands history of 5 latest commands in Windows version. You &lt;br /&gt;
  can scroll them using UP key.&lt;br /&gt;
- Added one minute delay after take of an item from trade window before &lt;br /&gt;
  accepting the deal.&lt;br /&gt;
&lt;br /&gt;
25-07-04, Vjaka&lt;br /&gt;
- Added smsg/smsgu shortcuts for sysmessage/sysmessageua (note, that msg already&lt;br /&gt;
  existed as a shortcut to message)&lt;br /&gt;
- Added SKILLCLASS properties - if written like SRC.SKILLCLASS.NAME, returns &lt;br /&gt;
  &amp;lt;SERV.SKILLCLASS.&amp;lt;SRC.SKILLCLASS&amp;gt;.NAME&amp;gt;&lt;br /&gt;
- Started doing ARGVCOUNT and realised that &amp;lt;ARGV&amp;gt; is the amount of ARGV[x] &lt;br /&gt;
  variables. Noting that as not found in revisions.&lt;br /&gt;
- If player speech longer 5 chars and has 75% capital letters inside, it will &lt;br /&gt;
  come out in lower case. Works for english chars only. And as for unicode - if&lt;br /&gt;
  EF_UNICODE is set.&lt;br /&gt;
- Added GUILD properties: &amp;lt;SRC.GUILD&amp;gt; returns 0 or guildstone UID,&lt;br /&gt;
  &amp;lt;SRC.GUILD.NAME&amp;gt; returns guild name&lt;br /&gt;
- Removed all old PLOT bit stuff. Use EVENTS instead&lt;br /&gt;
- Changed CLEARTAGS - it takes optional argument, clearing tags only if matching&lt;br /&gt;
  the string (does not support wildcards)&lt;br /&gt;
- Added HITS and MAXHITS to items (same as MORE1L and MORE1H). Note: this is&lt;br /&gt;
  valid for armor and weapon object.&lt;br /&gt;
- Telnet has a username. So, Administrator or RemoteAdmin login left for local &lt;br /&gt;
  logins (127.0.0.1) if LOCALIPADMIN enabled&lt;br /&gt;
&lt;br /&gt;
25-07-04, Furio&lt;br /&gt;
- Hopefully tracked down and fixed the arrow bug, and similar problem derived &lt;br /&gt;
  from NEW (big thx to Handred that finded the point where start looking at for&lt;br /&gt;
  the fix).&lt;br /&gt;
&lt;br /&gt;
26-07-04, Vjaka&lt;br /&gt;
- Fixed broken TEVENTS read method on chars.&lt;br /&gt;
- Added QVAL(test1,test2,res1,res2,res3) in addition to current &amp;lt;QVAL?:&amp;gt;&lt;br /&gt;
  variant. It is useful if dealing with numbers without many IF-s. Sample &lt;br /&gt;
  &amp;lt;eval qval(&amp;lt;VAR.X&amp;gt;,&amp;lt;VAR.Y&amp;gt;,&amp;lt;VAR.ONE&amp;gt;,&amp;lt;VAR.TWO&amp;gt;,&amp;lt;VAR.THREE&amp;gt;)&amp;gt; will return&lt;br /&gt;
  &amp;lt;VAR.ONE&amp;gt; if &amp;lt;VAR.X&amp;gt; &amp;lt; &amp;lt;VAR.Y&amp;gt;, &amp;lt;VAR.TWO&amp;gt; if they are equal, and &amp;lt;VAR.THREE&amp;gt;&lt;br /&gt;
  if the it is greater. If some of the arguments are omited like qval(1,2,,3) it&lt;br /&gt;
  will default to zero.&lt;br /&gt;
- Changed REGISTERSERVER to default an empty string. If you wish to register to&lt;br /&gt;
  list.sphereserver.net, specify REGISTERSERVER=1 or it's host.&lt;br /&gt;
- Added TELEPORTEFFECTSTAFF, TELEPORTEFFECTPLAYERS, the teleport effect for&lt;br /&gt;
  staff (use hex id of object or 0 here) (default: 03709 for staff, 0372a for&lt;br /&gt;
  players).&lt;br /&gt;
&lt;br /&gt;
27-07-04, Furio&lt;br /&gt;
- Fixed an issue with MOVE/XMOVE command.&lt;br /&gt;
&lt;br /&gt;
27-07-04, Vjaka&lt;br /&gt;
- Added command line switch -Gpath/to/saves/ to defrag sphere server UIDs. It&lt;br /&gt;
  is done because sphere UID management routines has flows which makes not to&lt;br /&gt;
  reuse empty uids, but generate new, higher. Howewer, space for lower unused&lt;br /&gt;
  objects is still reserved. It saved 400Mb me (from 600Mb on start to 180Mb)&lt;br /&gt;
  working for 2.5 hours, but caused all mounts to disappear, maybe some more&lt;br /&gt;
  flaws. So, use on your own risk. In future versions for 4.0.x Furio is going&lt;br /&gt;
  to improve the uid subsystem and this will not be needed anymore.&lt;br /&gt;
&lt;br /&gt;
28-07-04, Vjaka&lt;br /&gt;
- Changed FILELINES to close the file and READFILE if line number is too big.&lt;br /&gt;
- Added DISMOUNT verb on char to dismount him, MOUNT to get UID of ridden one.&lt;br /&gt;
- Fixed an issue with SERV.CLIENT.x. causing exceptions.&lt;br /&gt;
- Removed 0.55R from version. It is a complicated notation. It's 4.0.x now.&lt;br /&gt;
- Fixed MODAR not updating armor class if changed on char or equipped item.&lt;br /&gt;
&lt;br /&gt;
29-07-04, Vjaka&lt;br /&gt;
- Limited allshow to MAXCHARCOMPLEXITY*4.&lt;br /&gt;
- Fixed issue when telnet connection could not do resync load after pausing.&lt;br /&gt;
- Account now has TAG.LastLogged with his previous login date. It is shown upon&lt;br /&gt;
  login if quick/no-messages login not selected (by @Login trigger).&lt;br /&gt;
- Fixed msg_criminal to be shown only if person is not a criminal yet (lags).&lt;br /&gt;
- Added read-only COMP reference for multis. Returns amount of components when&lt;br /&gt;
  called with no params, and has attributes: ID,D,DX,DY,DZ (D mean delta).&lt;br /&gt;
- NPC wishes gold and vendable items (not limited to desires listing).&lt;br /&gt;
- Added ARGN2 to @NPCLookAtItem (writeable) - the percent level the the NPC&lt;br /&gt;
  wish this item. If set high, he can loot the item.&lt;br /&gt;
- Added GMPAGES and GMPAGE.* verb to access gm pages from scripts. You can&lt;br /&gt;
  give arguments like you do to .page command, and use 2 specials - DELETE to&lt;br /&gt;
  delete even not-taken one, and HANDLE [uid] to mark gmpage for character.&lt;br /&gt;
  Also GMPAGE.x.HANDLED field returns UID of person taken the gmpage.&lt;br /&gt;
&lt;br /&gt;
30-07-2004, Kell&lt;br /&gt;
- Added ACCOUNT.NAME&lt;br /&gt;
&lt;br /&gt;
30-07-04, Vjaka&lt;br /&gt;
- Speed optimisation working with strings &amp;amp; possible some stack overflow out.&lt;br /&gt;
&lt;br /&gt;
31-07-04, Vjaka&lt;br /&gt;
- Fixed several spells (like mark) casting in not allowed region when running.&lt;br /&gt;
- Fixed KILLS removal using multi-uo client.&lt;br /&gt;
- Changed @Logoff to take 2 writeable arguments: ARGN1 - linger time and ARGN2&lt;br /&gt;
  instant logoff flag. Return 1 in logoff is now obsolete.&lt;br /&gt;
&lt;br /&gt;
01-08-04, Vjaka&lt;br /&gt;
- Added triggers @MurderDecay (ARGN1 - murder count that will be set, ARGN2 -&lt;br /&gt;
  decay time to set for the next kill) and @MurderMark (ARGN1 - murder count&lt;br /&gt;
  that will be set, ARGN2 - set criminal flag?). The names are descriptive.&lt;br /&gt;
- NPC is now trying to move objects blocking his walkpath. He also investigate&lt;br /&gt;
  the possibility to loot this item in several cases. Triggers look@item not&lt;br /&gt;
  called since if there are tons of items in the spot, it will be very laggy.&lt;br /&gt;
- Added @Rename trigger (ARGS - new name, ARGO - target char) when renaming a&lt;br /&gt;
  pet. Return 1 cancels. Also triggered when creating character.&lt;br /&gt;
- Items with ATTR_STATIC are now saved to spherestatics.scp and NOT SAVED by&lt;br /&gt;
  standart world save. So, you need to call .serv.savestatics to save them.&lt;br /&gt;
- NPC is now trying to cast good spells as on self and his combat friends also.&lt;br /&gt;
&lt;br /&gt;
02-08-04, Vjaka&lt;br /&gt;
- Calling guards are now more speed optimised.&lt;br /&gt;
- Defrag mode now supports spherestatics.scp and is much faster.&lt;br /&gt;
- Changed FACE and SALUTE to take an optional argument - target object.&lt;br /&gt;
- Characters on the way do not disallow GM to place a house anymore.&lt;br /&gt;
- Items gets stacked one on the other witheen some height if possible.&lt;br /&gt;
&lt;br /&gt;
03-08-04, Vjaka&lt;br /&gt;
- Exceptions catching fixed, some stack information added.&lt;br /&gt;
- Added CLEARVARS being same as CLEARTAGS.&lt;br /&gt;
- Fixed CLEARTAGS to work normal without arguments.&lt;br /&gt;
- Now VENDORMARKUP is taken from region tags if not found on a vendor.&lt;br /&gt;
&lt;br /&gt;
04-08-04, Vjaka&lt;br /&gt;
- Default messages working optimised for speed. Removed OF_SkipUndefMsgs.&lt;br /&gt;
- Removed OF_Skill_DiffFirst since the actdiff is calculated in any case.&lt;br /&gt;
- Started implementing EF_Pathfinding.&lt;br /&gt;
&lt;br /&gt;
05-08-04, Vjaka&lt;br /&gt;
- Fixed SERV.ITEMDEF reference to object not being currently in the world.&lt;br /&gt;
&lt;br /&gt;
06-08-04, Vjaka&lt;br /&gt;
- Added SERV.resync to resync scripts without the resync delay.&lt;br /&gt;
- Now adding a new account automaticaly fills (FIRST/LAST)CONNECTDATE.&lt;br /&gt;
- Added @SkillMenu to trigger BEFORE calling any hardcoded skillmenu. So, you&lt;br /&gt;
  can return 1 to cancel the action. ARGS - the name of the menu, is one of:&lt;br /&gt;
  sm_polymorph, sm_carpentry, sm_bowcraft, sm_tailor_leather, sm_tailor_cloth,&lt;br /&gt;
  sm_bolts, sm_carpentry, sm_cartography, sm_tinker, sm_summon, sm_blacksmith,&lt;br /&gt;
  sm_alchemy, sm_cartography, sm_inscription.&lt;br /&gt;
&lt;br /&gt;
07-08-04, kuch&lt;br /&gt;
- Finished the conversions of default messages into the new format: this should&lt;br /&gt;
  greately improve the execution speed.  Also updated sphere_msg.scp to fit new&lt;br /&gt;
  format.  Read the comments inside the file to get more more infomation.&lt;br /&gt;
&lt;br /&gt;
09-08-04, Vjaka&lt;br /&gt;
- Added DISGUISENAME to alter the name of the server.&lt;br /&gt;
- Added REPLYPEERCONNECTS (default 1) to allow masterserver and peer connects.&lt;br /&gt;
- Fixed duplicating hungry messages search.&lt;br /&gt;
&lt;br /&gt;
10-08-04, Vjaka&lt;br /&gt;
- Fixed NPC moving some items not actualy blocking their way.&lt;br /&gt;
&lt;br /&gt;
11-08-04, Vjaka&lt;br /&gt;
- Added console commands auto-completion on using TAB key. File sphere.dic is&lt;br /&gt;
  read for the list of definitions. Note: this file SHOULD BE sorted (at least&lt;br /&gt;
  witheen each separate first letter) to multi-matches to work correctly.&lt;br /&gt;
&lt;br /&gt;
12-08-04, Vjaka&lt;br /&gt;
- Added @ItemCreate triggered when an item (ARGO) is created by a client.&lt;br /&gt;
- Added auto-completion to telnet connection. The difference from winconsole is&lt;br /&gt;
  that it fills the word up to end ONLY if there is exact 1 variant, or if&lt;br /&gt;
  other variants contains this one in self.&lt;br /&gt;
&lt;br /&gt;
13-08-04, Vjaka&lt;br /&gt;
- Optimised sysmessages - now nothing is sent to client if the message is empty.&lt;br /&gt;
  This is useful to clear default messages. If wish to scroll line, use space.&lt;br /&gt;
- Fixed exploit to crash clients by renaming pet with some special color. Thanks&lt;br /&gt;
  TheLegbra reporting that.&lt;br /&gt;
&lt;br /&gt;
15-08-04, Vjaka&lt;br /&gt;
- Added EF_Script_Profiler (08000) to add information on functions usage for&lt;br /&gt;
  weak places (functions or triggers) to be optimised.&lt;br /&gt;
- Added EF_Size_Optimise (010000) to save WORLDITEM/CHAR/SCRIPT as W*. This is&lt;br /&gt;
  not much for now, saving 7+ bytes per object. Loading supports any method.&lt;br /&gt;
&lt;br /&gt;
03-09-04, Vjaka&lt;br /&gt;
- Added OverSkillMultiply (default 2). When player skills/stats goes this times&lt;br /&gt;
  more than skillclass allowed, drop them to skillclass level. Setting this to&lt;br /&gt;
  0 disables the action.&lt;br /&gt;
- Added ACCOUNTS BLOCKED/JAILED arguments. Works exactly like UNUSED, but just&lt;br /&gt;
  applyes to the blocked/jailed accounts only.&lt;br /&gt;
- Only chars in mapplane where the player is are ticked now (lag reduction).&lt;br /&gt;
&lt;br /&gt;
04-09-04, Vjaka&lt;br /&gt;
- Added ## command to console to save both world and statics.&lt;br /&gt;
- Added X# command to instant shutdown the server with world/statics save.&lt;br /&gt;
- Changed &amp;quot;commands uid=... (name) to ''&amp;quot; to show amount if above of 1.&lt;br /&gt;
- Server startup crash fixed&lt;br /&gt;
&lt;br /&gt;
08-09-04, Furio&lt;br /&gt;
- Fixed issues for the Linux build.&lt;br /&gt;
- Disabled information abou &amp;quot;Key&amp;quot; on OnTriggerRun exception for compatibility &lt;br /&gt;
  problem on the *Nix build. (temporary solution)&lt;br /&gt;
- Added .pid file (sphere.pid) on *Nix build, for those who want to write bash&lt;br /&gt;
  script for checking sphere process easily.&lt;br /&gt;
&lt;br /&gt;
08-09-04, Vjaka&lt;br /&gt;
- EF_Pathinding is working perfectly making NPC to select a best path. Howewer,&lt;br /&gt;
  for maximal speed it is yet checking only static objects blocking his path.&lt;br /&gt;
  More testings on the speed needed before making it to include dynamics checks.&lt;br /&gt;
- Fixed Counselors losing their invis status after worldsave.&lt;br /&gt;
&lt;br /&gt;
10-09-04, Vjaka&lt;br /&gt;
- Memory information is now got from system routines instead of internal one. It&lt;br /&gt;
  will cause this info to appear in UNIX builds, howewer, it will be not be in&lt;br /&gt;
  WINDOWS systems where PSAPI.DLL is not available (fe: Windows 95/98/NT4.0).&lt;br /&gt;
  Also this makes ALLOCS useless, since there is no way to get it.&lt;br /&gt;
- Added CLIENTS property for sectors and regions to get active clients count.&lt;br /&gt;
&lt;br /&gt;
11-09-04, Vjaka&lt;br /&gt;
- Added EF_Clients_Thread (020000) to split clients handling to to other thread.&lt;br /&gt;
  This will work only in windows build and is not recommendable to change on fly.&lt;br /&gt;
  This is VERY experimental yet, since sphere is very singlethreaded by design.&lt;br /&gt;
&lt;br /&gt;
13-09-04, Furio&lt;br /&gt;
- Fixed memory information on Unix. Now it uses two different methods to get&lt;br /&gt;
  memory information depending on *Nix system where sphere is running.&lt;br /&gt;
&lt;br /&gt;
13-09-04, Vjaka&lt;br /&gt;
- Fixed functions profiler to strip off arguments of a function.&lt;br /&gt;
- Fixed console commands like ##, x# showing unknown keyword error in console.&lt;br /&gt;
- Fixed murder count set always to 1 by @MurderMark.&lt;br /&gt;
&lt;br /&gt;
14-09-04, Vjaka&lt;br /&gt;
- Fixed LOCALs in f_onserver_start/f_onchar_delete.&lt;br /&gt;
&lt;br /&gt;
18-09-04, Vjaka&lt;br /&gt;
- Code cleanups, removed some useless (not enabled keywords), same keywords grouped&lt;br /&gt;
  to one variant for usage for faster work lookups:&lt;br /&gt;
  1. *WEIGHT[MAX]-&amp;gt;*[MAX]WEIGHT, BRAIN-&amp;gt;NPC, KNOWLEDGE-&amp;gt;SPEECH, COMMENT-&amp;gt;TAG.COMMENT&lt;br /&gt;
  CLI*VER*-&amp;gt;CLIENTVERSION, DEF-&amp;gt;ARMOR, LISTEN-&amp;gt;HEARALL, *PRICE-&amp;gt;PRICE, VER-&amp;gt;VERSION&lt;br /&gt;
  WEBPAGEDST-&amp;gt;WEPAGEFILE (LoadKeys)&lt;br /&gt;
  2. CLIENTS-&amp;gt;ALLCLIENTS, PARDON-&amp;gt;FORGIVE, INVISIBLE-&amp;gt;INVIS, INVULNERABLE-&amp;gt;INVUL,&lt;br /&gt;
  R-&amp;gt;RUN, W-&amp;gt;WALK, CLIENTS-&amp;gt;ADMIN, MIDI/MUSIC-&amp;gt;MIDILIST, [RE]SYNC-&amp;gt;RESEND, ADDITEM-&amp;gt;ADD&lt;br /&gt;
  FOLLOWED-&amp;gt;FOLLOW, M-&amp;gt;MOVE, PROPS/TWEAK-&amp;gt;INFO, SPEAK[U[A]]-&amp;gt;SAY[U[A]], SFX-&amp;gt;SOUND&lt;br /&gt;
  SAFE-&amp;gt;SECURE (VerbKeys)&lt;br /&gt;
&lt;br /&gt;
20-09-04, Vjaka&lt;br /&gt;
- Fixed errors on load if setting VERSION for saves to start from litera.&lt;br /&gt;
- Fixed paths in resource testing commands.&lt;br /&gt;
- Added EF_Minimize_Triggers (040000) to call as little triggers as needed by a minimum.&lt;br /&gt;
- Removed some declared but unused triggers.&lt;br /&gt;
&lt;br /&gt;
23-09-04, Vjaka&lt;br /&gt;
- Removed unused EF_Allow_Override (it was not working anyway).&lt;br /&gt;
- Added OF_Advanced_AI (including moving objects in the path, helping friends by magic,&lt;br /&gt;
  pathfinding)&lt;br /&gt;
- Renamed EF_Client_Thread to OF_Multithreaded (0400)&lt;br /&gt;
- sphere.pid file is now created in Windows builds as well.&lt;br /&gt;
&lt;br /&gt;
25-09-04, Vjaka	&lt;br /&gt;
- Removed ADDNPC since it is already integrated with ADD command for both items and npc.&lt;br /&gt;
- Removed some more duplicates (some really strange) to speed up lookups.&lt;br /&gt;
- Added showing of option flags on start.&lt;br /&gt;
&lt;br /&gt;
26-09-04, Vjaka&lt;br /&gt;
- Removed different mail operations not working and other code cleanups.&lt;br /&gt;
- Bugfix: Disabled moving gold coins to vendor stock (items shifting).&lt;br /&gt;
- Bugfix: Disabled moving static/immovable items from ground, spell effect.&lt;br /&gt;
- Bugfix: Disabled gaining spell effect by ghost other than ressurection.&lt;br /&gt;
- Bugfix: Mounted creature will leave no corpse on death if died while mounted.&lt;br /&gt;
- Bugfix: @DeathCorpse is called only if corpse is really created.&lt;br /&gt;
&lt;br /&gt;
27-09-04, Vjaka&lt;br /&gt;
- Added ISSTUCK keyword to check if npc can move to N/W/E/S dirs.&lt;br /&gt;
&lt;br /&gt;
29-09-04, Vjaka&lt;br /&gt;
- Optimized OF_Advanced_AI, makes NPC to remember the path, recalculating it&lt;br /&gt;
  not so often (depending on INT).&lt;br /&gt;
&lt;br /&gt;
30-09-04, Furio&lt;br /&gt;
- Added OF_Advanced_LOS (0800) this disable EF_CanSeeLOS and EF_DiagonalLOSCheck&lt;br /&gt;
  and enable a new method to check the LOS (still testing and optimizing).&lt;br /&gt;
- Fixed some compatibility problems with Linux build.&lt;br /&gt;
- Now Linux build is compiled statically, so no more tons of version linked to&lt;br /&gt;
  different shared library for each distro.&lt;br /&gt;
&lt;br /&gt;
30-09-04, Vjaka&lt;br /&gt;
- Fixed Windows build issue.&lt;br /&gt;
- Removed EF_CanSeeLOS, EF_DiagonalLOSCheck, moved that to default LOS checks.&lt;br /&gt;
- Bugfix: unable to resurrect on too low strength. Now gets 1 HP at least.&lt;br /&gt;
- Average profile information is now saved to worldsaves and loaded.&lt;br /&gt;
- Option and Experimental flags are now shown in text on .show command.&lt;br /&gt;
&lt;br /&gt;
03-10-04, Furio&lt;br /&gt;
- Optimized some parts in OF_Advanced_LOS.&lt;br /&gt;
- Fixed Linux build issue.&lt;br /&gt;
- Added ISTEVENT for chars (npc/players) working like ISEVENT &lt;br /&gt;
&lt;br /&gt;
04-10-04, Vjaka&lt;br /&gt;
- Regions now does not conflict if are in different mapplanes (useful for new&lt;br /&gt;
  maps support). You can also specify RECT=left,top,right,bottom,map in the&lt;br /&gt;
  rect record, specifyed the exact map for this rect to work.&lt;br /&gt;
- Started redoing the code to support multiple maps. This will invalidate old&lt;br /&gt;
  mapplane feature which was 0..255. This is affected mainly by teleports and&lt;br /&gt;
  moongates since many of default ones had 255 mapplain specifyed. You should&lt;br /&gt;
  change it to 0, since this is only for map0.&lt;br /&gt;
- Added MAP property same as MAPPLANE (in future MAPPLANE will be removed)&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==REVISIONS-56-SERIES==&lt;br /&gt;
&amp;lt;spherescript color=&amp;quot;&amp;quot;&amp;gt;---- 0.56a --------------------------------------------------------------------&lt;br /&gt;
---- 08/12/2004&lt;br /&gt;
&lt;br /&gt;
06-10-04, Vjaka&lt;br /&gt;
- Removed DISGUISE(NAME/VERSION), renamed the current version to 0.56a.&lt;br /&gt;
&lt;br /&gt;
07-10-04, Vjaka&lt;br /&gt;
- Removed AGREE config line neccessaty since it is not longer R* series.&lt;br /&gt;
- Added startup expansion set support output depending on map*,statics*,staidx*&lt;br /&gt;
  files found and loaded (T2A, LBR, AOS, SE).&lt;br /&gt;
- Removed EF_New_Maps since it is integrated to source now, packet is sent when&lt;br /&gt;
  needed.&lt;br /&gt;
- Moving on other map now moves the same map on the server. But this currently&lt;br /&gt;
  does not use caching and re-read tile information from map files every time.&lt;br /&gt;
  Caching of same sectors but in different mapplanes will be in the future.&lt;br /&gt;
  You should both add regions for these maps, and place corresponding files in&lt;br /&gt;
  place where all other mul files resides.&lt;br /&gt;
- Changed values of EXPERIMENTAL flags to remove empty slots between items.&lt;br /&gt;
&lt;br /&gt;
08-10-04, Vjaka&lt;br /&gt;
- Fixed memory leak caused by map cache removal.&lt;br /&gt;
- Fixed client screen update on map change.&lt;br /&gt;
&lt;br /&gt;
08-10-04, Furio&lt;br /&gt;
- Added PROMPTCONSOLE, it makes the client prompt (like on page request) and send&lt;br /&gt;
  the response as an argument of a user definied function.&lt;br /&gt;
  (syntax PROMPTCONSOLE callback function, message to prompt)&lt;br /&gt;
&lt;br /&gt;
10-10-04, Furio&lt;br /&gt;
- Added RESDISP properties to account. Accepted values are 0 (PreT2a client),&lt;br /&gt;
  1 (T2A), 2 (LBR), 3 (AoS), 4 (Samurai Empire). This is used to identify what type&lt;br /&gt;
  of client is logged in. As default is set at 0, but if the client is T2A is&lt;br /&gt;
  automatically set to 1 by Sphere. LBR, AoS and SE is not setted automatically and&lt;br /&gt;
  is leaved to you.&lt;br /&gt;
- Added to CHARDEF properties RESLEVEL, RESDISPDNID, RESDISPDNHUE. The first state&lt;br /&gt;
  from what UO version the anim comes. The second what anim id is showed to older&lt;br /&gt;
  client version. The third an hue showed to older client (if 0 or null the default&lt;br /&gt;
  anim hue is used.&lt;br /&gt;
- Modified scriptpack to reflect these changes for T2A monsters.&lt;br /&gt;
&lt;br /&gt;
22-10-04, Vjaka&lt;br /&gt;
- Added &amp;lt;dVALUE&amp;gt; as a shortcut to &amp;lt;eval &amp;lt;VALUE&amp;gt;&amp;gt; to get a decimal value of a&lt;br /&gt;
  single expr like a variable. Note, this affects EF_Intrinsic_Locals a bit.&lt;br /&gt;
- Commands with .command and spaces before will be treated as without spaces,&lt;br /&gt;
  since extra space makes privileged chars to reveal self.&lt;br /&gt;
- Added TAG.PARTY_CANLOOTME for party. If 1, allows party to loot self.&lt;br /&gt;
- Added @Kill trigger (SRC-killer, ARGO-killed)&lt;br /&gt;
- Added sector function ALLCHARS,ALLITEMS similar to ALLCLIENTS. For regions&lt;br /&gt;
  you can use SECTORS.ALLCHARS, SECTORS.ALLITEMS.&lt;br /&gt;
- Changed GODPORT to accept port number as well. Old values ( &amp;lt;=0 = disables,&lt;br /&gt;
  1=ServPort+1000) are still working also.&lt;br /&gt;
- Added SYSCMD and SYSSPAWN commands to run external applications. Returns &amp;lt;0 if&lt;br /&gt;
  there was an error. The first one blocks while program is running while the&lt;br /&gt;
  second spawns and continues scripts execution. Due to obvious security fear&lt;br /&gt;
  in these commands, they are disabled if OF_FileCommands is not set. Up to 9&lt;br /&gt;
  command line arguments are passed to the external application.&lt;br /&gt;
&lt;br /&gt;
23-10-04, Furio&lt;br /&gt;
- Fixed minor things in grayproto.&lt;br /&gt;
- Updated grayproto (list/sizes of Uo packet in Sphere).&lt;br /&gt;
- Finished and debugged the new crypt engine (for crypt clients). Currently up&lt;br /&gt;
  to latest current OSI client 4.0.5a is supported.&lt;br /&gt;
&lt;br /&gt;
25-10-04, Vjaka&lt;br /&gt;
- Fixed exception in writefile when unable to open the file.&lt;br /&gt;
- Added account name output when packet dispatch generated an exception.&lt;br /&gt;
&lt;br /&gt;
25-10-2004. Furio&lt;br /&gt;
- Still updated grayproto, with new packet infos.&lt;br /&gt;
&lt;br /&gt;
26-10-04, Vjaka&lt;br /&gt;
- Fixed SMSG[u] resolve error.&lt;br /&gt;
- Fixed &amp;lt;dSOMEVAL&amp;gt; giving some hex results.&lt;br /&gt;
- Added update for items moved by NPCs when they blocks the path.&lt;br /&gt;
&lt;br /&gt;
27-10-04, Vjaka&lt;br /&gt;
- Now Windows build tryes to use winsock 2.0 if available instead of 1.1.&lt;br /&gt;
- Added amount argument to NEWITEM (newitem i_gold,45). Defaults to 1.&lt;br /&gt;
- Removed one of occasions with creating an extra log not in logfile path.&lt;br /&gt;
&lt;br /&gt;
27-10-04, Furio&lt;br /&gt;
- Fixed a bug in displaying big dialogs with newer clients (4.0.X).&lt;br /&gt;
- Fixed a bug where some clients were crashing when adding an item.&lt;br /&gt;
&lt;br /&gt;
28-10-04, Vjaka&lt;br /&gt;
- Disabled string 'q'/'Q' to be said by privileged accounts. It is due the&lt;br /&gt;
  fact that default macro for repeat is Ctrl+Q, and one less Ctrl press will&lt;br /&gt;
  lead to GM to reveal self existance around, which really is not good.&lt;br /&gt;
&lt;br /&gt;
31-10-04, Furio&lt;br /&gt;
- Some fixes related to account creation and bank/box hack.&lt;br /&gt;
- Removed EF_AgeOfShadows. It'll be re-added with new features and complete&lt;br /&gt;
  compatibility for older clients, when enabled.&lt;br /&gt;
- Fixed another exploit with Bullettin Boards. Thx to Balkon for reporting it.&lt;br /&gt;
&lt;br /&gt;
01-11-04, Vjaka&lt;br /&gt;
- Added .pid file existance notification to warn for double sphere launches.&lt;br /&gt;
&lt;br /&gt;
02-11-04, Vjaka&lt;br /&gt;
- Now light level for sectors is saved as LIGHT istead of LOCALLIGHT.&lt;br /&gt;
- One more cause for long default message string lookups removed.&lt;br /&gt;
- EQUIPHALO now takes an argument - time to work on a person.&lt;br /&gt;
- Fixed bug causing objects calculated to be in sector 0 always.&lt;br /&gt;
- Added @Destroy trigger for objects.&lt;br /&gt;
&lt;br /&gt;
04-11-04, Vjaka&lt;br /&gt;
- Quickfix of OF_Magic_PreCast - now not precasting on NPCs.&lt;br /&gt;
- Consume now can take more than 65k at once.&lt;br /&gt;
- Added @CreatePlayer to trigger just after the char was created by a player.&lt;br /&gt;
&lt;br /&gt;
05-11-04, Vjaka&lt;br /&gt;
- Now &amp;quot;Admin&amp;quot; is shown instead of &amp;quot;GM&amp;quot; if person is admin or owner in title.&lt;br /&gt;
&lt;br /&gt;
06-11-04, Vjaka&lt;br /&gt;
- Added sector function ALLCHARSIDLE similar to ALLCHARS, but looping via&lt;br /&gt;
  disconnected/mounted/etc chars, not accessable by ALLCHARS.&lt;br /&gt;
- Added auto map fix to zero map if it is out of bounds. Please note, that&lt;br /&gt;
  this can cause some problems with MOREM usage as well.&lt;br /&gt;
&lt;br /&gt;
25-11-04, Furio&lt;br /&gt;
- Fixed: encryption - client login.&lt;br /&gt;
- Fixed: dVALUE evaluating when VALUE is already int.&lt;br /&gt;
- Fixed: EQUIPHALO &amp;lt;timer&amp;gt; does not making the light disappearing.&lt;br /&gt;
- Updated supported clients to 4.0.6a.&lt;br /&gt;
- Removed &amp;quot;Cannot move here!&amp;quot; message.&lt;br /&gt;
- Added more information to &amp;quot;MOVE: empty region&amp;quot; error. (uid and point)&lt;br /&gt;
&lt;br /&gt;
30-11-04, Furio&lt;br /&gt;
- Fixed: MOREM automatically converted to 0 because of new multi-map feature.&lt;br /&gt;
- Added MasterUid property to guildstones&lt;br /&gt;
&lt;br /&gt;
02-12-04, Furio&lt;br /&gt;
- Fixed: Gm Page menu not sending gms on page select.&lt;br /&gt;
- Fixed: Lord is displayed without space.&lt;br /&gt;
- Fixed: TAGAT trying to access to non existing TAGs.&lt;br /&gt;
- Modified: Only items with 08000 as attr are moved to spherestatics.scp.&lt;br /&gt;
- Modified: Overskillmultiply is 0 by default now.&lt;br /&gt;
- Added: ISEVENT for regions.&lt;br /&gt;
&lt;br /&gt;
08-12-04, Furio&lt;br /&gt;
- Fixed: EvaluatingIntel on 0 int NPCs.&lt;br /&gt;
- Fixed: EQUIPHALO light disappearing on Dispel.&lt;br /&gt;
&lt;br /&gt;
08-12-04, Vjaka&lt;br /&gt;
- Fixed exploit submitting invalid amount in buy packet giving free resources&lt;br /&gt;
  (thanks Breaker and Fallout for reporting this).&lt;br /&gt;
- Fixed canmove to accept DIR values (0..8) in addition to a letter arguments.&lt;br /&gt;
  Same changes affects other places, like move command, etc.&lt;br /&gt;
- File locking method optimised. It should improve the multithreading a bit.&lt;br /&gt;
- Result of the old &amp;quot;ACCOUNT accname&amp;quot; command changed to be more informational.&lt;br /&gt;
- GMs should login with invul and without allshow flags set.&lt;br /&gt;
- If reference set to OBJ/NEW does not exist, zero will be storied instead. And&lt;br /&gt;
  opposite, if it is already deleted, OBJ/NEW value is cleared to zero.&lt;br /&gt;
- Fixed exception in f_onaccount_login.&lt;br /&gt;
&lt;br /&gt;
08-12-2004, Various authors&lt;br /&gt;
- Fixed some scripts by Vjaka.&lt;br /&gt;
- Added new scripts and scripts fixes by Tattooed Corpse.&lt;br /&gt;
&lt;br /&gt;
---- 0.56b --------------------------------------------------------------------&lt;br /&gt;
---- * not released yet&lt;br /&gt;
&lt;br /&gt;
09-12-04, Vjaka&lt;br /&gt;
- Added map caching supporting all maps. Due to this, sectors are no longer&lt;br /&gt;
  same in the same spot in different maps, allowing local settings for maps.&lt;br /&gt;
- Added ADDCIRCLE=x[,y] to add a circle to a character's spellbook. If y is on,&lt;br /&gt;
  includes all lower spell circles as well.&lt;br /&gt;
- File locking method optimised. It should improve the multithreading a bit.&lt;br /&gt;
- Changed [SECTOR x,y] in world saves to x,y,0,map to allow local settings for&lt;br /&gt;
  sectors in different maps. Old format will default to map 0.&lt;br /&gt;
- Since sectors are no longer shared witheen different maps, sectors on maps,&lt;br /&gt;
  unsupported by server (having no corresponding .mul files) do not get ticks.&lt;br /&gt;
- Fixed cause to duplicate saved items in static saves in several occasions.&lt;br /&gt;
- Added BADSPAWN command to jump to the first bad spawn found in the world. You&lt;br /&gt;
  should add this to some of the [PLEVEL records. It also saves the UID into&lt;br /&gt;
  ACT in case you unable to see it due to some obstacles.&lt;br /&gt;
- Removed useless PRIVHIDE (privshow 0/1 is enough for this).&lt;br /&gt;
&lt;br /&gt;
10-12-04, Vjaka&lt;br /&gt;
- Fixed some defmessages misprint making unable to override them.&lt;br /&gt;
- Fixed @Kill to trigger even if the killer is not an agressor in the fight.&lt;br /&gt;
- Changed MAPPLANE-&amp;gt;MAP, LOCALLIGHT-&amp;gt;LIGHT (.56a supported both variants, but&lt;br /&gt;
  saved the second). Launch and save in .56a will autoconvert this in saves.&lt;br /&gt;
- Now any items with ATTR_STATIC are saved to spherestatics.scp, not only those&lt;br /&gt;
  who has this flag being the only set.&lt;br /&gt;
- Fixed carriage return in accounts unused message.&lt;br /&gt;
&lt;br /&gt;
11-12-04, Furio&lt;br /&gt;
- Fixed: bugs with FORCONT* loops.&lt;br /&gt;
- Fixed: bug with coloured text in comm crystal.&lt;br /&gt;
- Added: SKILLGAIN function to call internal sphere skillgain function. Args are&lt;br /&gt;
  skill to gain and difficulty (0 to 100).&lt;br /&gt;
- Added: REPORTEDCLIVER property for clients. It'll contain the version that&lt;br /&gt;
  the client is. (this is easy fakeable by 3rd party programs, but still is&lt;br /&gt;
  useful)&lt;br /&gt;
&lt;br /&gt;
13-12-04, Vjaka&lt;br /&gt;
- Fixed resolving functions executing on containers, if the name started from&lt;br /&gt;
  rescount,restest,fcount or count.&lt;br /&gt;
- Fixed isneartype not working if calling under points (like from TARGP).&lt;br /&gt;
&lt;br /&gt;
17-12-04, Vjaka&lt;br /&gt;
- Account delete information now contains account name.&lt;br /&gt;
- Added NPC keyword GOTO x,y,z,map to execute sphere default movements there.&lt;br /&gt;
- Redone pathfinding to support separate thread execution, so it now utilizes&lt;br /&gt;
  extra thread if OF_Multithreaded is set.&lt;br /&gt;
- Advanced AI now includes food search on hunger to eat and gather meal around.&lt;br /&gt;
  It is executed in separate thread with pathfinding if configured so.&lt;br /&gt;
&lt;br /&gt;
21-12-04, Vjaka&lt;br /&gt;
- Changed sector allocations, now allocates only those who are needed by the&lt;br /&gt;
  server depending on the *.mul files found. Thus, on bare t2a install no space&lt;br /&gt;
  for other maps will be allocated (saves several Mbytes).&lt;br /&gt;
- Random selection {x y} now supports format {x,y} also. Should help using it&lt;br /&gt;
  with DAM/AR fields of items.&lt;br /&gt;
- Added EXP field to characters. No internal support for it yet. But you can&lt;br /&gt;
  use it in scripts already.&lt;br /&gt;
- Empty accounts file is created on-fly if not found. Useful for unpack-n-run.&lt;br /&gt;
- Fixed bug with TOTALCONNECTTIME being increased by doubled value, and now is&lt;br /&gt;
  made more accurate.&lt;br /&gt;
- Optimized the UID allocation routine, trying to disallow creating holes in&lt;br /&gt;
  objects allocation. This should improve memory neccessaty increase for large&lt;br /&gt;
  or long-lasting servers. Howewer, this does not defrag the current save, only&lt;br /&gt;
  newly generated UIDs will be optimized - no existant UIDs will be altered.&lt;br /&gt;
  Garbage Collection should be enabled for this optimization to work.&lt;br /&gt;
- Expanded account information in ACCOUNT NAME command by logged char name.&lt;br /&gt;
&lt;br /&gt;
03-01-05, Vjaka&lt;br /&gt;
- Added &amp;lt;Rarguments&amp;gt; as a shortcut to &amp;lt;eval rand(arguments)&amp;gt;. Can take either&lt;br /&gt;
  one, two or no arguments like &amp;lt;R&amp;gt;, &amp;lt;R15&amp;gt;, &amp;lt;R3,15&amp;gt;. If no arguments given,&lt;br /&gt;
  R1000 is assumed.&lt;br /&gt;
- You can now disable broadcast messages (like errors, connects, etc) from the&lt;br /&gt;
  server log to be sent to your account logged via telnet. You can toggle this&lt;br /&gt;
  behavior per account via PRIV field of the account (mask 0400). So, only&lt;br /&gt;
  responces to your commands and some very-basic messages (like world save)&lt;br /&gt;
  will be sent in this case.&lt;br /&gt;
&lt;br /&gt;
08-01-05, Vjaka&lt;br /&gt;
- Added support for virtual maps. Now map numbers 0..255 are supported by the&lt;br /&gt;
  server.&lt;br /&gt;
- Map dimensions are now customizable in INI-file using by the following cmd:&lt;br /&gt;
  MAPx=max_x,max_y,sector_size,real_map_number.&lt;br /&gt;
  Here x - the map number for ingame useage (4rd coordinate of the coordinate).&lt;br /&gt;
  max_x - maximal X coordinate of the map (should be multiply of 8).&lt;br /&gt;
  max_y - maximal Y coordinate of the map (should be multiply of 8).&lt;br /&gt;
  sector_size - the sector size (you can play with this if you experience lags&lt;br /&gt;
    decreasing this value (should be multiply of 8 and both max_x and max_y).&lt;br /&gt;
  real_map_numer - number used by map files (like: 0 for map0, statics0).&lt;br /&gt;
  You can also change some attribute of the current map not redefining all&lt;br /&gt;
  values, skipping the ones you wish to be as default putting 0 instead (for&lt;br /&gt;
  real map number -1). For example, decreasing sector size for map 0 to 16&lt;br /&gt;
  from default value of 64 will look in INI file thus: &amp;quot;MAP0=0,0,16,-1&amp;quot;.&lt;br /&gt;
  Please note, that no changes are applied when server is already started.&lt;br /&gt;
- Default map numbering has been changed (you can ovverride it easily by MAPx&lt;br /&gt;
  setting in sphere.ini). Now 0 = map0, 1 = map0, 2 = map2, 3 = map3, 4 = map4.&lt;br /&gt;
&lt;br /&gt;
10-01-05, Furio&lt;br /&gt;
- Added: tooltip %d command for gumps (works in SE clients).&lt;br /&gt;
- Added: sphere_map*.scp/sphere_map_points*.scp for new maps and fixed the&lt;br /&gt;
  default one.&lt;br /&gt;
- Updated: gray proto with new packets.&lt;br /&gt;
- Updated: client support to 4.0.7 family.&lt;br /&gt;
- Updated: fix in default script pack.&lt;br /&gt;
&lt;br /&gt;
13-01-05, Furio&lt;br /&gt;
- Modified SERV.MAP(x,y) to accept a 3rd parameter, the map. If omitted is&lt;br /&gt;
  defaulted to 0.&lt;br /&gt;
- Added SECTOR access to read-only properties from a point. Example:&lt;br /&gt;
  SERV.MAP(100,100,1).SECTOR.ITEMCOUNT will give you the itemcount of the&lt;br /&gt;
  sector that contains the point 100,100 on map 1.&lt;br /&gt;
- Added REGION access to read-only properties from a point. (works like&lt;br /&gt;
  SECTOR one)&lt;br /&gt;
- Fixed: gumppic to show hue when used. (Hue usable only for client &amp;gt;= 3)&lt;br /&gt;
&lt;br /&gt;
15-01-05, Vjaka&lt;br /&gt;
- Changed the way the server saves allowing more information about the cause of&lt;br /&gt;
  some exception (which is now not fatal for the save).&lt;br /&gt;
&lt;br /&gt;
17-01-05, Vjaka&lt;br /&gt;
- Added LEVEL field to char as the future part of the experience system.&lt;br /&gt;
- Added ExperienceSystem, ExperienceMode, LevelSystem, LevelMode, LevelNextAt&lt;br /&gt;
  fields to the .INI file as a future part of the experience system. Read the&lt;br /&gt;
  default sphere.ini for more description over these fields.&lt;br /&gt;
- PRIV flags are now auto-clearing bits corresponding to not used priv. This is&lt;br /&gt;
  a solution for a possible incompatibility when the previosely disabled bit&lt;br /&gt;
  will be reused with other functionality on same world saves.&lt;br /&gt;
- Fixed: LAYER_EXTRA is now used ONLY to place the items bought by the vendor.&lt;br /&gt;
- Items sold to vendors are auto-deleted exactly upon the sell operation. The&lt;br /&gt;
  only case they are saved, if they are sold to player vendors.&lt;br /&gt;
- Amount of items in sell packet is now limited to the container size.&lt;br /&gt;
- Fixed one more sell/buy exploit.&lt;br /&gt;
&lt;br /&gt;
17-01-05, Furio&lt;br /&gt;
- Fixed: party system.&lt;br /&gt;
- Fixed: group disappeared from gumps.&lt;br /&gt;
- Added: scriptable components for the party. Still work in progress.&lt;br /&gt;
  With &amp;lt;REF&amp;gt;.PARTY refer to the current party of the char.&lt;br /&gt;
  	   &amp;lt;REF&amp;gt;.PARTY.MEMBER.x refer to any member of the party.&lt;br /&gt;
       &amp;lt;REF&amp;gt;.PARTY.MASTER refer to the master of the party.&lt;br /&gt;
  PARTY.MEMBERS give the count of members&lt;br /&gt;
  PARTY.MEMBER.x has also ISMASTER and ISLOOTABLE properties.&lt;br /&gt;
  PARTY.ADDMEMBER[FORCED] you can add a meber by script (forced  version works&lt;br /&gt;
       without the normal /accept behaviour)&lt;br /&gt;
  PARTY.DISBAND disband the current party&lt;br /&gt;
  PARTY.REMOVEMEMBER @&amp;lt;N&amp;gt; remove the Nth member&lt;br /&gt;
  PARTY.REMOVEMEMBER &amp;lt;UID&amp;gt; remove a member in the party with the UID given&lt;br /&gt;
       (if is the master the party is disbanded)&lt;br /&gt;
  PARTY.SYSMESSAGE @&amp;lt;N&amp;gt; TEXT send a party sysmessage to the Nth member&lt;br /&gt;
  PARTY.SYSMESSAGE &amp;lt;UID&amp;gt; TEXT send a party sysmessage to a member in the party&lt;br /&gt;
       with the UID given&lt;br /&gt;
  PARTY.SYSMESSAGE TEXT send a sysmessage to the party&lt;br /&gt;
  PARTY.MESSAGE @&amp;lt;M&amp;gt; TEXT send a message from the Mth member to the party&lt;br /&gt;
  PARTY.MESSAGE @&amp;lt;M&amp;gt;,&amp;lt;N&amp;gt; TEXT send a message from the Mth member to the Nth&lt;br /&gt;
       member&lt;br /&gt;
  PARTY.MESSAGE &amp;lt;UID1&amp;gt; TEXT send a message from the &amp;lt;UID1&amp;gt; to the party&lt;br /&gt;
  PARTY.MESSAGE &amp;lt;UID1&amp;gt;,&amp;lt;UID2&amp;gt; TEXT send a message from &amp;lt;UID1&amp;gt; member to &amp;lt;UID2&amp;gt;&lt;br /&gt;
- Added: TAG/TAG0 for party.&lt;br /&gt;
&lt;br /&gt;
24-01-05, Vjaka&lt;br /&gt;
- Fixed bug with some keywords recognition caused by &amp;lt;Rxxx&amp;gt; operator.&lt;br /&gt;
- Chardef triggers do not apply to players now.&lt;br /&gt;
- Write deleted accounts out to log file&lt;br /&gt;
&lt;br /&gt;
25-01-05, Vjaka&lt;br /&gt;
- Fixed vendor selling in case of one item being sold.&lt;br /&gt;
- Ensure double character removal from view in &amp;quot;remove 1&amp;quot; case (for allshow).&lt;br /&gt;
&lt;br /&gt;
26-01-05, Vjaka&lt;br /&gt;
- Fixed registry settings overriding MULFILES setting in some cases in win32.&lt;br /&gt;
- Fixed the way spells are checked whatever they are in a spellbook. New type&lt;br /&gt;
  of spellbook (186) has been added for script purposes with internal support.&lt;br /&gt;
  Now the spellbooks (if not default one) can be configured to specify which&lt;br /&gt;
  number of the lowest spell it contains (stored in MOREZ).&lt;br /&gt;
- Fixed casting speel with two or more similar spell books when it does not&lt;br /&gt;
  exist in one of these books.&lt;br /&gt;
- Removed limitation to 1 byte (255) for MOREZ of spellbooks. Now it can hold&lt;br /&gt;
  2 bytes (65535). Please note, that setting MOREZ via MOREP is incorrect here.&lt;br /&gt;
&lt;br /&gt;
28-01-05, Vjaka&lt;br /&gt;
- Fixed bug caused with layer_extra removal from buy menu in older clients.&lt;br /&gt;
- Added support for packets filterings. Please note, that you should understand&lt;br /&gt;
  what are you doing. You can install your handler of a packet X specifying&lt;br /&gt;
  PACKETx=functionname. This function will be called when the packet is going&lt;br /&gt;
  to be processed by the server. It has the following arguments set:&lt;br /&gt;
  ARGN1 = packet number (to allow using one function for different packets)&lt;br /&gt;
  ARGS = source client ip address&lt;br /&gt;
  LOCAL.0-LOCAL.9 - first 10 bytes of the packet for parsing contents&lt;br /&gt;
  If you do return 1 in this function, the packet will NOT be processed.&lt;br /&gt;
- Some exceptions debug messaging speed optimised.&lt;br /&gt;
&lt;br /&gt;
29-01-05, Vjaka&lt;br /&gt;
- Added argument for RECRUIT on guildstone. If set 1, the member recruited will&lt;br /&gt;
  become a fully qualifyed member of a guild with abbriviation shown on.&lt;br /&gt;
&lt;br /&gt;
30-01-05, Furio&lt;br /&gt;
- Fixed: compatibility problems on Linux.&lt;br /&gt;
- Freeze for 0.56b Test1.&lt;br /&gt;
&lt;br /&gt;
03-02-05, Vjaka&lt;br /&gt;
- Argument switches of target[f][g][w] functions can be given in any order.&lt;br /&gt;
- Fixed removing events on other events execution that leaded skipping others.&lt;br /&gt;
- Memory usage is lowered (pre-storage optimized for more accurate values),&lt;br /&gt;
  approx 30-40% less memory will be used (depending on load structure).&lt;br /&gt;
&lt;br /&gt;
04-02-05, Vjaka&lt;br /&gt;
- Logout now quits from chat removing problems with inactive zombies left.&lt;br /&gt;
- Characters with Statf_STONE cannot logout (actualy, have 1 hour logout timer).&lt;br /&gt;
- You can now access account properties using SERV.ACCOUNT.x. reference where x&lt;br /&gt;
  is the numerical index of the account (0..SERV.ACCOUNTS) [read-only]&lt;br /&gt;
- Fixed extra step made on sector borders.&lt;br /&gt;
- Fixed &amp;quot;return&amp;quot;/&amp;quot;return 2&amp;quot; in chardef triggers stopping others from launching.&lt;br /&gt;
&lt;br /&gt;
04-02-05, Furio&lt;br /&gt;
- Added support for 4.0.8 clients.&lt;br /&gt;
- Fixed some arguments parsing in party functions&lt;br /&gt;
&lt;br /&gt;
05-02-05, Vjaka&lt;br /&gt;
- Optimized time profiling on ticking objects.&lt;br /&gt;
&lt;br /&gt;
07-02-05, Vjaka&lt;br /&gt;
- Problem with items left with switching virtual maps with one physical should&lt;br /&gt;
  be solved.&lt;br /&gt;
- Added simple mySQL support. New settings MySqlHost, MySqlUser, MySqlPassword,&lt;br /&gt;
  MySqlDatabase will be used to connect to the DB in case if MYSQL is set to 1.&lt;br /&gt;
  You will need extra .dll/.so to download for sphere installation. They will&lt;br /&gt;
  join the packages.&lt;br /&gt;
&lt;br /&gt;
08-02-05, Vjaka&lt;br /&gt;
- Fixed several map support bugs with incorrect sector counting (should improve&lt;br /&gt;
  support of a high map numbers).&lt;br /&gt;
&lt;br /&gt;
11-02-05, Vjaka&lt;br /&gt;
- Fixed bug causing incorrect function name lookup in several cases with some&lt;br /&gt;
  special chars like underline (_).&lt;br /&gt;
- Added debug flags 0200 and 0400 to debug experience and level changes from&lt;br /&gt;
  server console (if enabled).&lt;br /&gt;
- Experience system integrated. Few addons about defaults to config comments:&lt;br /&gt;
  a) experience bonus for crafting counted as a value/100.&lt;br /&gt;
  b) default experience set on create is str+dex/2+int.&lt;br /&gt;
  c) manual setting experience will alter level if configured so.&lt;br /&gt;
  d) dying decreases experience by 10%&lt;br /&gt;
  e) killing enemy will give experience depending on exp and level of target.&lt;br /&gt;
&lt;br /&gt;
12-02-05, Vjaka&lt;br /&gt;
- Added 2 more EXP settings to config: ExperienceKoefPVP and ExperienceKoefPVM,&lt;br /&gt;
  controlling percents of gaining experience in PvP and PvM combat.&lt;br /&gt;
- Added triggers @ExpChange and @ExpLevelChange, where ARGN1 (writeable) is the&lt;br /&gt;
  change is going to happen. Returning 1 cancels the change.&lt;br /&gt;
&lt;br /&gt;
12-02-05, Furio&lt;br /&gt;
- Fixed: another buffer overrun exploit in log system. Thx to Radiant for&lt;br /&gt;
  reporting it.&lt;br /&gt;
- Added: SUPPRESSCAPITALS (default 0) to enable/disable Vjaka system to avoid&lt;br /&gt;
  long text written only in capital letters.&lt;br /&gt;
&lt;br /&gt;
14-02-05, Vjaka&lt;br /&gt;
- OF_Advanced_AI is now obsolete. Currently it is controlled by NPCAI setting&lt;br /&gt;
  in config file.&lt;br /&gt;
- Added MaxLoopTimes value to config (default 10000) to limit a number of&lt;br /&gt;
  iterations the while/for cycle could have to remove possible deadlocks making&lt;br /&gt;
  server to stop responding (better use this instead of main loop restart).&lt;br /&gt;
- Added MOVERATE to CHARDEFs. It is the percent modifier of the speed of the&lt;br /&gt;
  NPC - the higher it is, the slower will the NPC be. Default is 100.&lt;br /&gt;
- Now double clicking on the log window in windows build will bring up an&lt;br /&gt;
  editor with corresponded file (if any specifyed in the same line) opened.&lt;br /&gt;
&lt;br /&gt;
15-02-05, Vjaka&lt;br /&gt;
- Fixed one more buy menu exploit (probably, the last one) ;).&lt;br /&gt;
- Fixed NEWITEM id,amount in case if non-exact value was given (like {x y}).&lt;br /&gt;
- Added cont argument to NEWITEM (now it looks NEWITEM id,amount,container).&lt;br /&gt;
&lt;br /&gt;
16-02-05, Furio&lt;br /&gt;
- Fixed: compatibility things for Linux/BSD build.&lt;br /&gt;
&lt;br /&gt;
27-02-05, Furio&lt;br /&gt;
- Added: STRREV for strings.&lt;br /&gt;
- Reverted to dynamic linked executable for the linux build. That permit some&lt;br /&gt;
  exception handling during signal raise.&lt;br /&gt;
&lt;br /&gt;
01-03-05, Vjaka&lt;br /&gt;
- Fixed gaining fame and exp on summoned pets.&lt;br /&gt;
- Faster and more intelligent protection from fastloot like ,emptycontainer. The&lt;br /&gt;
  delays for picking now are 0.3 sec per item. Item with amount (popping dialog&lt;br /&gt;
  with input) adds extra 0.2 sec delay.&lt;br /&gt;
&lt;br /&gt;
04-03-05, Vjaka&lt;br /&gt;
- Fixed an exploit with invalid book packet (thanks Fallout for reporting).&lt;br /&gt;
- Fixed @Destroy event not fired.&lt;br /&gt;
- Added the minimal delay before accepting sell/buy deal equal to 0.3 sec per&lt;br /&gt;
  each item. This limits the power of autobuy/autosell/inject sell all.&lt;br /&gt;
- Added client property CTAG similar to the TAG array. The difference is that&lt;br /&gt;
  the contents is not saved, and is destroyed upon logout - useful place to&lt;br /&gt;
  store your local variables on the client character.&lt;br /&gt;
&lt;br /&gt;
06-03-05, Furio&lt;br /&gt;
- Some other fixes to improve Linux build stability.&lt;br /&gt;
- Now killing sphere with HUP make the server save and exit.&lt;br /&gt;
- Added support for 4.0.9 client encryption.&lt;br /&gt;
- Added more comprehensible messages to error output (bad login / garbage / save)&lt;br /&gt;
&lt;br /&gt;
10-03-05, Vjaka&lt;br /&gt;
- Fixed placing items from invalid containers upon save loading to world nearby&lt;br /&gt;
  100,100 coords, these items should be deleted, so they are.&lt;br /&gt;
- Limited amount of items shown to client on screen to MaxItemComplexity*30 (by&lt;br /&gt;
  default 25*30 = 750).&lt;br /&gt;
- Removed goldreserve from guilds - use TAGs for this.&lt;br /&gt;
- Windows: added build date and time to the About box along with the version.&lt;br /&gt;
&lt;br /&gt;
13-03-05, Furio&lt;br /&gt;
- Added SERV.GUILDSTONES.x to referer to the Xth guildstone in the server.&lt;br /&gt;
  Use SERV.GUILDSTONES.COUNT to get the total number.&lt;br /&gt;
- Added SERV.TOWNSTONES working like SERV.GUILDSTONES.&lt;br /&gt;
- Added MasterUid property also in write mode. Now you can change the guild&lt;br /&gt;
  master passing the uid as argument.&lt;br /&gt;
- Some minor fix to Linux build.&lt;br /&gt;
&lt;br /&gt;
14-03-05, Vjaka&lt;br /&gt;
- Optimised object los check, should decrease waste of cpu on large shards.&lt;br /&gt;
- Fixed possible webpage exploit with malformed requests.&lt;br /&gt;
- Removed EMAIL property from accounts and all associated commands (EMAIL/&lt;br /&gt;
  ADDEMAIL,defmessages) - use account TAGs to work with it when needed.&lt;br /&gt;
- Removed server status responce from the standart ping/telnet connection.&lt;br /&gt;
- Fixed logging in localy when both RemoteAdmin and Administrator accounts were&lt;br /&gt;
  not found and LOCALIPADMIN was set.&lt;br /&gt;
- Fixed misprinted defmessage ncp_* to npc_* (2 matches), sphere_msgs.scp now&lt;br /&gt;
  comes commented by default - uncomment things only you need to change - most&lt;br /&gt;
  people will not need this file at all, so by this way we show that.&lt;br /&gt;
&lt;br /&gt;
14-03-05, Furio&lt;br /&gt;
- Temp removed &amp;quot;Limited amount of items shown to client on screen&amp;quot;.&lt;br /&gt;
- Moved FOLLOW from exe to scripts. Now MEMORY_FOLLOW(01000) is unused.&lt;br /&gt;
- Modified default info gump with a new one (thx to NHR).&lt;br /&gt;
&lt;br /&gt;
17-03-05, Vjaka&lt;br /&gt;
- Removed EF_No_Pause_Packet, it is built in to code now.&lt;br /&gt;
- Drop item on vendor to trade quick, removed npc_vendor_sell (from 1.0).&lt;br /&gt;
- Setting SLEEPMASK=0 will give no time to sleeping sectors (from 1.0).&lt;br /&gt;
- Optimised few widely used checks like touch check.&lt;br /&gt;
&lt;br /&gt;
29-03-05, Vjaka&lt;br /&gt;
- Removed debug message about not found pathfinding path.&lt;br /&gt;
- Fixed bug causing objects disappear on doubleclick.&lt;br /&gt;
- &amp;quot;Limited amount of items shown to client on screen&amp;quot; is back due this was not&lt;br /&gt;
  the cause of the previous bug ;).&lt;br /&gt;
- Removed verbose command. It was anyhow very limited in Release build.&lt;br /&gt;
- Added -c command line switch to WIN32 build. It allows changing registered&lt;br /&gt;
  class name for sphere, which helps working via windows messages with several&lt;br /&gt;
  sphere servers on the same machine.&lt;br /&gt;
&lt;br /&gt;
05-04-05, Vjaka&lt;br /&gt;
- Made ARGN1 writeable in @Hunger.&lt;br /&gt;
- Fixed OptionFlags display instead of MagicIngoreAR.&lt;br /&gt;
&lt;br /&gt;
11-04-05, Vjaka&lt;br /&gt;
- Packet filtering support heavily expanded. Now you have these variables:&lt;br /&gt;
  LOCAL.NUM (value) set to amount of data got from the packet&lt;br /&gt;
  LOCAL.STR (string) all data threated as a string (aware of zero chars)&lt;br /&gt;
  LOCAL.ACCOUNT (string) current active account if any is logged by the client&lt;br /&gt;
  LOCAL.CHAR (uid) current active char if any is logged in from the client&lt;br /&gt;
  and the all data is now given in LOCAL.x, not the only first 10 bytes.&lt;br /&gt;
- Returning 1 in PACKETx handler function no longer shows Bad Msg Eat string.&lt;br /&gt;
- Removing exception on invalid map point in some drop cases.&lt;br /&gt;
- Account named like account keywords (ADD/BLOCKED/etc) denied for creation.&lt;br /&gt;
&lt;br /&gt;
12-04-05, Vjaka&lt;br /&gt;
- Walking via others with no penalty fixed (now it more like it was before in&lt;br /&gt;
  the times of 55i - more correct way). You can override this by changing ARGN1&lt;br /&gt;
  in @PersonalSpace trigger.&lt;br /&gt;
- Fixed message of guard owners always saying previous region guards owners.&lt;br /&gt;
&lt;br /&gt;
14-04-05, Vjaka&lt;br /&gt;
- Fixed Sphere accepting a player character as a valid guard in some cases.&lt;br /&gt;
- Fixed guard walking to enemy even if they are cheaters (instantkill enabled).&lt;br /&gt;
- Added messaging flood control - equal sysmessages one after another will not&lt;br /&gt;
  be sent to the client (if they are absolutely identifical and no any other&lt;br /&gt;
  message was between them).&lt;br /&gt;
- Added STRIP [DIR/] console command. Reads all scripts and outputs them to new&lt;br /&gt;
  files with only [...], and base definitions lines. Good for giving script to&lt;br /&gt;
  your gms to be able to use axis with very basic information.&lt;br /&gt;
&lt;br /&gt;
17-04-05, Vjaka&lt;br /&gt;
- Fixed bug with quick trade on player vendors.&lt;br /&gt;
- Fixed an exception caused by empty messages in some client events.&lt;br /&gt;
&lt;br /&gt;
21-04-05, Furio&lt;br /&gt;
- Added 4.0.10 client keys.&lt;br /&gt;
- Fixed: bugs in getting vals from party.&lt;br /&gt;
&lt;br /&gt;
21-04-05, Vjaka&lt;br /&gt;
- Fixed some cases (not all!) of scripts clearence by specifying incorrect&lt;br /&gt;
  directory in STRIP command. There are too many ways to specify direct or&lt;br /&gt;
  indirect path that will look different but will lead to the same file&lt;br /&gt;
  starting from symlinks, ending with messing with .. and dir seprarators (\/).&lt;br /&gt;
  Locking the file is not ok, since it will cause problems with other threads&lt;br /&gt;
  or applications working with file. So use this either with care, or with no&lt;br /&gt;
  argument ;)&lt;br /&gt;
- Added Axis tags support CATEGORY, SUBSECTION, DESCRIPTION to STRIP command. I&lt;br /&gt;
  do not use them, so did not add that when making the command :).&lt;br /&gt;
&lt;br /&gt;
23-04-05, Furio&lt;br /&gt;
- Some fixes and optimization for Linux code.&lt;br /&gt;
&lt;br /&gt;
03-05-05, Vjaka&lt;br /&gt;
- Fixed bug causing impossibility to dress off items in some cases.&lt;br /&gt;
- Removed background task and all corresponding to it operations, since they&lt;br /&gt;
  only looked as working, while doing almost nothing.&lt;br /&gt;
&lt;br /&gt;
14-05-2005, Furio&lt;br /&gt;
- Fixed some bugs in client detection.&lt;br /&gt;
- Fixed a bug for too short account name login.&lt;br /&gt;
- Removed support for encrypted client from 1.25.31 to 1.26.4 (you can use them&lt;br /&gt;
  only in unencrypted way).&lt;br /&gt;
- Fixed problems with allshow.&lt;br /&gt;
- Fixed problems with rand(x,y).&lt;br /&gt;
- Disabled (temp.) Vjaka's messaging flood control.&lt;br /&gt;
&lt;br /&gt;
24-05-05, Furio&lt;br /&gt;
- Fixed some bugs for Linux build.&lt;br /&gt;
- Added CanSee check in spellcast.&lt;br /&gt;
&lt;br /&gt;
25-05-05, Vjaka&lt;br /&gt;
- Added OF_Flood_Protection as a control of toggling appearence of same&lt;br /&gt;
  messages and sysmessages one after another. Note, that this setting is always&lt;br /&gt;
  off for PLEVEL 2 or upper, so GMs will always get everything.&lt;br /&gt;
- Fixed copses giving unlimited blood amount. Now, the corpse gets TAG.BLOOD&lt;br /&gt;
  upon creation to TAG.MAXBLOOD of itemdef. You can also alter TAG.BLOOD upon&lt;br /&gt;
  creation on the coprse object. The default value is 5.&lt;br /&gt;
- Due to multiply requests, TAG.LastLogged is removed just after showing it to&lt;br /&gt;
  client. It is still there for the purpose to show real last connection date.&lt;br /&gt;
- Added INI setting of MOVERATE (default 100) to change the default moving&lt;br /&gt;
  speed of all NPCs at once. Remember, this is percent setting.&lt;br /&gt;
- Fixed bless and curse on items which lead to ultimate stats raise.&lt;br /&gt;
&lt;br /&gt;
28-05-05, Furio&lt;br /&gt;
- Fixed: Corpse not appearing.&lt;br /&gt;
- Fixed: CTAG sysmessage on set.&lt;br /&gt;
- Fixed: FVAL bug.&lt;br /&gt;
&lt;br /&gt;
18-06-05, Vjaka&lt;br /&gt;
- Fixed book saving only the first line on each page.&lt;br /&gt;
- Fixed exception on allshow.&lt;br /&gt;
- Fixed console errors when using looms and repair.&lt;br /&gt;
&lt;br /&gt;
27-06-05, Vjaka&lt;br /&gt;
- Removed RESOURCES2 line since it never worked at all.&lt;br /&gt;
- Fixed variety of bugs with using some keywords like newitem from functions&lt;br /&gt;
  called directly from the server (like f_onserver_start). Special char is&lt;br /&gt;
  created for this purpose to be acting as a default object.&lt;br /&gt;
- Region now executes command for all sectors inside if the command is sector&lt;br /&gt;
  one (you can use REGION.all* instead of REGION.SECTORS.all*) for example.&lt;br /&gt;
  REGION.SECTORS command is depricated.&lt;br /&gt;
- Added StatsFlags setting to cap MAX(HITS/MANA/STAM) status.&lt;br /&gt;
&lt;br /&gt;
01-07-05, Vjaka&lt;br /&gt;
- Added f_onserver_exit triggered on server quit. Quite useless since no saves&lt;br /&gt;
  are occured after then, but good for launching some prog using sysspawn.&lt;br /&gt;
- Townstones are now listed in status using TOWNLIST command, splitting town&lt;br /&gt;
  and guild stones to different links.&lt;br /&gt;
- Fixed calling guards on self.&lt;br /&gt;
&lt;br /&gt;
03-07-05, Vjaka&lt;br /&gt;
- Fixed fightself bug. It was not fixed before. I did not notice that since do&lt;br /&gt;
  not use default summon creature spell. Thanks Handred for reporting.&lt;br /&gt;
- Trying to improve the rate and distance NPC sees characters around. Now it&lt;br /&gt;
  should happen faster, since higher distance is checked in areas with little&lt;br /&gt;
  complexity.&lt;br /&gt;
- Spawning NPC distance is now more random. Also now spawning checks the&lt;br /&gt;
  borders inside disallowing to spawn in unaccessable place. Thus, if you place&lt;br /&gt;
  spawn in house and the doors are closed, there is no possibility for NPC to&lt;br /&gt;
  spawn outside the house.&lt;br /&gt;
- The death now triggers inventory close to avoid appearing fake items inside&lt;br /&gt;
  that are no longer in the pack.&lt;br /&gt;
&lt;br /&gt;
04-07-05, Vjaka&lt;br /&gt;
- Fixed impossibility to change type of the object to a non-default one.&lt;br /&gt;
&lt;br /&gt;
08-07-05, Furio&lt;br /&gt;
- Fixed SERVIP problems (and similar).&lt;br /&gt;
- Fixed pet killing not giving criminal status to owner.&lt;br /&gt;
- Added: client 4.0.11 keys.&lt;br /&gt;
- Fixed: FVAL 0 now gives 0.0&lt;br /&gt;
- Touchups on Ef_Walkcheck routines&lt;br /&gt;
&lt;br /&gt;
11-07-05, Vjaka&lt;br /&gt;
- Fixed ALLCHARS region/sector command.&lt;br /&gt;
- Fixed typedef bug on save.&lt;br /&gt;
&lt;br /&gt;
17-07-05, Furio&lt;br /&gt;
- Added SERV.RTIME.FORMAT. It takes as args a string like strftime()&lt;br /&gt;
  (the list is here http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+strftime ).&lt;br /&gt;
  e.g SERV.RTIME.FORMAT %d returns the number of the day.&lt;br /&gt;
- Fixed: animal trainer problem with EF_Walkcheck.&lt;br /&gt;
- Fixed: magic lock/unlock bugs.&lt;br /&gt;
- Fixed: dagger on static crop.&lt;br /&gt;
&lt;br /&gt;
19-07-05, Vjaka&lt;br /&gt;
- Multithreading now should be more stable.&lt;br /&gt;
- Few misc fixes in combat, like added los check.&lt;br /&gt;
- Fixed REGION.ALLCHARS command.&lt;br /&gt;
&lt;br /&gt;
19-07-05, Furio&lt;br /&gt;
- Fixed: creating unnamed chars.&lt;br /&gt;
- Fixed: creating chars with no title.&lt;br /&gt;
- Fixed: creating chars with hacked stats.&lt;br /&gt;
- Fixed: writing on console.&lt;br /&gt;
- Fixed: problem with spawning with EF Walk flags.&lt;br /&gt;
- Fixed: touchups in script pack.&lt;br /&gt;
- Added: hardcoded support for AoS/Se/Ml skills.&lt;br /&gt;
&lt;br /&gt;
21-07-05, Furio&lt;br /&gt;
- Fixed: Warmode refresh if getting attacked (thx to Torfo).&lt;br /&gt;
- Fixed: Training skill out of skillsum cap.&lt;br /&gt;
- Fixed: Viewing hidden clients with higher plevel with allshow.&lt;br /&gt;
- Fixed: skill name/key/title in sphere_skills.scp&lt;br /&gt;
- Fixed: template mispelled (orge instead of ogre).&lt;br /&gt;
- Modified: sphere_map*.scp and sphere_point*.scp are now in map/&lt;br /&gt;
	subdir.&lt;br /&gt;
- Modified: only map0 and map1 scp are loaded, to load the others&lt;br /&gt;
	uncomment the lines in spheretables.scp&lt;br /&gt;
&lt;br /&gt;
22-07-05, Cloud_Br (Script pack)&lt;br /&gt;
- Fixed: buying wool from vendors.&lt;br /&gt;
- Fixed: Missing flags in sphere_defs.scp&lt;br /&gt;
- Added: sphere_item_aos_se.scp containing various AoS/Se item defs.&lt;br /&gt;
- Added: spherechar_se.scp containing various npc defs for Se.&lt;br /&gt;
&lt;br /&gt;
23-07-05, Furio&lt;br /&gt;
- Fixed: rock throwed by ogres not decaying.&lt;br /&gt;
- Fixed: cansee e musical item for provocation.&lt;br /&gt;
- Fixed: npc speak on train.&lt;br /&gt;
- Fixed: animal lore on mounted pets.&lt;br /&gt;
&lt;br /&gt;
24-07-05, Vjaka&lt;br /&gt;
- Fixed: default object operations on server. Will not show extra error msgs.&lt;br /&gt;
&lt;br /&gt;
25-07-05, Furio&lt;br /&gt;
- Fixed: npc try to attack mounts causing exceptions.&lt;br /&gt;
- Fixed: mounts disappearing. (thx to Gygrazok and Darkraven)&lt;br /&gt;
- Fixed: args not used in trigger @PersonalSpace. (thx to Darkraven)&lt;br /&gt;
- Fixed: Map teleports teleporting npcs.&lt;br /&gt;
- Added: 4th argument to map teleports. If is set to 1 npcs can use the teleport.&lt;br /&gt;
	By default is 0. Eg: 1,1,1,0=100,100,100,0=my_teleport=1 is enabled,&lt;br /&gt;
	1,1,1,0=100,100,100,0=my_teleport=0 or 1,1,1,0=100,100,100,0=my_teleport is&lt;br /&gt;
	disabled.&lt;br /&gt;
&lt;br /&gt;
27-07-05, Vjaka&lt;br /&gt;
- Fixed: Several exceptions with latest client.&lt;br /&gt;
- Fixed: Extra error msg for show command when server property was specifyed.&lt;br /&gt;
- Fixed: Some more timeslices freeing will decrease useless cpu usage in&lt;br /&gt;
  multithreaded mode.&lt;br /&gt;
&lt;br /&gt;
30-07-05, Furio&lt;br /&gt;
- Fixed: exploit with hair dye gump (choosing random color).&lt;br /&gt;
- Fixed: x/set respecting plevel.&lt;br /&gt;
- Moved: hair dye gump from exe to scripts.&lt;br /&gt;
&lt;br /&gt;
30-07-05, Cloud_Br (Script pack)&lt;br /&gt;
- Fixed: problems with spherechars_se.scp&lt;br /&gt;
- Added: defs to sphere_backward_compatibility.scp&lt;br /&gt;
- Fixed: some areas without guards (map0/map1).&lt;br /&gt;
&lt;br /&gt;
30-07-05, Vjaka&lt;br /&gt;
- Added: MySQL support to scripts. You can execute any queries and statements,&lt;br /&gt;
  as well as get data from mysql link. A special script object similar to the&lt;br /&gt;
  FILE or OBJ added and is named DB.&lt;br /&gt;
  DB Properties:&lt;br /&gt;
    CONNECTED - the current state of database connection (1 or 0)&lt;br /&gt;
	ROW.NUMROWS - number of rows returned by last query&lt;br /&gt;
	ROW.NUMCOLS - number of columns returned by last query&lt;br /&gt;
	ROW.* - list of all columns returned by last query. Both column names and&lt;br /&gt;
	  numbers are saved in the list, so you can use indexes [0..] or column&lt;br /&gt;
	  names [id, name, etc] here.&lt;br /&gt;
  DB Methods:&lt;br /&gt;
    CLOSE - disconnects the SQL server&lt;br /&gt;
    CONNECT - connects to the database (using mysql settings in sphere.ini)&lt;br /&gt;
	EXECUTE - executes SQL query not filling any results anywhere&lt;br /&gt;
	QUERY - executes SQL query filling ROW.* properties information&lt;br /&gt;
  Example of a simple query:&lt;br /&gt;
	DB.query &amp;quot;SELECT id FROM users WHERE account='&amp;lt;SRC.ACCOUNT.NAME&amp;gt;'&amp;quot;&lt;br /&gt;
	SERV.log &amp;quot;Got ID = &amp;lt;DB.ROW.id&amp;gt;&amp;quot;&lt;br /&gt;
  Note: Server does not create connection upon start, so if you wish to make&lt;br /&gt;
    the connection with the server start, add DB.connect to the function&lt;br /&gt;
	f_onserver_start.&lt;br /&gt;
- Fixed: Map support higher than map 0. Now there should be no more problems&lt;br /&gt;
  with fix throwing to incorrect Z level (hopefully).&lt;br /&gt;
&lt;br /&gt;
31-07-05, Radiant&lt;br /&gt;
- Added: Support for tooltips. Requires OF_Tooltips (02000) and the 020&lt;br /&gt;
  FeaturesLogin flag. Usable in scripts:&lt;br /&gt;
  	Every object has a OBJPROPS property, which works like tags. Syntax:&lt;br /&gt;
  	OBJPROPS.&amp;lt;name&amp;gt;=&amp;lt;locale id&amp;gt;,[args]&lt;br /&gt;
  	note that &amp;lt;name&amp;gt; can be anything, but the entries are sent in alphabetical&lt;br /&gt;
  	order. So, for example, a bag, the props would look like this:&lt;br /&gt;
&lt;br /&gt;
  	OBJPROPS.a=&amp;quot;1048032&amp;quot;				// a bag&lt;br /&gt;
  	OBJPROPS.b=&amp;quot;1050044,32,450&amp;quot; // ~1_COUNT~ items, ~2_WEIGHT~ stones&lt;br /&gt;
- Fixed: exception occuring during load with unknown keys in sphere.ini&lt;br /&gt;
&lt;br /&gt;
01-08-05, Radiant&lt;br /&gt;
- Added: CTAG0 similar to TAG0 version of CTAG.&lt;br /&gt;
&lt;br /&gt;
03-08-05, Radiant&lt;br /&gt;
- Horses are now forced to dismount and will die if someone is riding them and&lt;br /&gt;
  they have statf_dead set or their hitpoints are 0 or below.  This should fix&lt;br /&gt;
  the &amp;quot;ghost&amp;quot; horses appearing sometimes (when horse is poisoned and ridden).&lt;br /&gt;
&lt;br /&gt;
08-08-05, Furio&lt;br /&gt;
- Fixed: CTAG0 when setting a value.&lt;br /&gt;
- Updated: sphere_backward_compatibility.scp&lt;br /&gt;
- Added: FILE obj, enabled by Of_File_Commands. Look in manual.txt for help.&lt;br /&gt;
&lt;br /&gt;
08-08-05, Vjaka&lt;br /&gt;
- Added: SQL support for multiply rows. You can use both ways ROW.&amp;lt;column#&amp;gt; and&lt;br /&gt;
  ROW.&amp;lt;row#&amp;gt;.&amp;lt;column#&amp;gt; for addressing a field you are interested in, but the&lt;br /&gt;
  first method allows operating on row #0 only.&lt;br /&gt;
  Sample full-n-ready script to show how to use this feature:&lt;br /&gt;
	DB.connect&lt;br /&gt;
	if ( &amp;lt;DB.connected&amp;gt; )&lt;br /&gt;
		db.query &amp;quot;SELECT * FROM mytable&amp;quot;&lt;br /&gt;
		for R 0 &amp;lt;eval &amp;lt;DB.ROW.NUMROWS&amp;gt;-1&amp;gt;&lt;br /&gt;
			SERV.log &amp;quot;--- ROW #&amp;lt;eval &amp;lt;LOCAL.R&amp;gt;&amp;gt; ---&amp;quot;&lt;br /&gt;
			for C 0 &amp;lt;eval &amp;lt;DB.ROW.NUMCOLS&amp;gt;-1&amp;gt;&lt;br /&gt;
				SERV.log &amp;quot;.. COLUMN #&amp;lt;LOCAL.C&amp;gt; : &amp;lt;DB.ROW.&amp;lt;eval &amp;lt;LOCAL.R&amp;gt;&amp;gt;.&amp;lt;eval &amp;lt;LOCAL.C&amp;gt;&amp;gt;&amp;gt;&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	endif&lt;br /&gt;
- Added: a possibility to specify MySQL port. Just add ':port' to the host&lt;br /&gt;
  record.&lt;br /&gt;
- Fixed: account references in several cases leading to errors.&lt;br /&gt;
&lt;br /&gt;
11-08-05, Radiant&lt;br /&gt;
- Fixed 'undefined keyword' error on SKILLMENU with not enough resources on player&lt;br /&gt;
&lt;br /&gt;
13-08-05, Exer (Script pack)&lt;br /&gt;
- Added: sphere_item_building_roofs_se.scp (SE roofing items)&lt;br /&gt;
- Added: sphere_item_building_walls_se.scp (SE wall items)&lt;br /&gt;
- Added: sphere_item_magic_necromancer_aos.scp (SE necromacer items)&lt;br /&gt;
&lt;br /&gt;
13-08-05, Cloud_Br (Script pack)&lt;br /&gt;
- Updated: sphere_backward_compatibility.scp&lt;br /&gt;
- Updated: sphere_region.scp&lt;br /&gt;
- Added: sphere_chars_newer.scp (All monsters of AoS/SE)&lt;br /&gt;
- Removed: sphere_chars_aos_se.scp (Obsolete, sobstituted by chars_newer.scp)&lt;br /&gt;
&lt;br /&gt;
15-08-05, Vjaka&lt;br /&gt;
- Added: AutoResDisp ini setting (default:0) to setup this resdisp by default&lt;br /&gt;
  to all accounts. Useful if all your clients are using at least some client.&lt;br /&gt;
  Recommended setting at least 1 (T2A).&lt;br /&gt;
&lt;br /&gt;
15-08-05, Radiant&lt;br /&gt;
- Fixed: potential buffer overflow exploit in file write operations&lt;br /&gt;
  Also saves one string operation, it's gotten a little faster.&lt;br /&gt;
- Fixed: CTAG/CTAG0 got broken in last fix&lt;br /&gt;
- Fixed: Extremely long save times&lt;br /&gt;
- Moved: .admin from executable to scripts and completely rewritten it.&lt;br /&gt;
  Please copy sphere_admin.scp from the script pack. Same is going to happen&lt;br /&gt;
  to .tweak.&lt;br /&gt;
&lt;br /&gt;
16-08-05, Rattlehead (Script pack)&lt;br /&gt;
- Added: sphere_item_building_floors_se.scp (SE floor items)&lt;br /&gt;
- Added: sphere_item_misc_se.scp (SE misc items)&lt;br /&gt;
&lt;br /&gt;
18-08-05, Radiant&lt;br /&gt;
- Added: exception catching around more save sections, should give a better&lt;br /&gt;
  description if a save error occurs&lt;br /&gt;
- Added: sphere no longer cares if an npc is riding a valid horse, so you can&lt;br /&gt;
  just add a horse item&lt;br /&gt;
- Script sphere_admin.scp:&lt;br /&gt;
  - Staff can see their own IP&lt;br /&gt;
  - Invisible staff is now printed in red&lt;br /&gt;
  - Added summon cage&lt;br /&gt;
- Fixed: problem in saves and allskills, no check if skill is defined or not.&lt;br /&gt;
  Broke saves (naked players) on some servers with not all skills (AOS and SE) defined.&lt;br /&gt;
- Fixed: Disconnected NPCs (horses) being seen if rider is gone (probably! need feedback)&lt;br /&gt;
&lt;br /&gt;
18-08-05, Gygrazok (Script pack)&lt;br /&gt;
- Modified: sphere_admin.scp:&lt;br /&gt;
  - Start position of dialogs set to 0,21&lt;br /&gt;
  - Default page of the tweaking menu set to &amp;quot;action&amp;quot;&lt;br /&gt;
  - + shown before account name for higher privs and - before guest accounts (like the old admin panel)&lt;br /&gt;
  - Removed PLevel informations in main page to get more space for char name&lt;br /&gt;
  - Closing tweak dialog brings back to main page&lt;br /&gt;
  - Added number of online clients in the main page title and changed &amp;quot;Administration Console&amp;quot;&lt;br /&gt;
    to &amp;quot;Admin Panel&amp;quot;, which is shorter&lt;br /&gt;
  - Added &amp;quot;remove note&amp;quot; button&lt;br /&gt;
  - Fixed: extra page if you have 15 clients only&lt;br /&gt;
&lt;br /&gt;
19-08-05, Furio&lt;br /&gt;
- Removed: OF_Tooltip&lt;br /&gt;
- Removed: Features/FeaturesLogin&lt;br /&gt;
- Removed: @CreatePlayer&lt;br /&gt;
- Added: Feature(T2A/LBR/AOS/SE/ML) to use feature expansion. Look in sphere.ini for usage.&lt;br /&gt;
- Added: f_onchar_create in sphere_serv_triggers.scp. With newer clients you'll get&lt;br /&gt;
	ARGN1 flags - ARGN2 profession chosen - ARGN3 elf&lt;br /&gt;
- Added: TRYSRV. It works like TRYSRC but putting automatically as src the server.&lt;br /&gt;
- Scripts: Added TRYSRV as plevel 7 command. I highly recommend everyone does this!&lt;br /&gt;
&lt;br /&gt;
19-08-05, Radiant&lt;br /&gt;
- Scripts: Added TRYSRC as plevel 7 command. I highly recommend everyone does this!&lt;br /&gt;
- Fixed: d console command (area dump) was broken a while ago&lt;br /&gt;
&lt;br /&gt;
21-08-05, Vjaka&lt;br /&gt;
- Fixed: 2 exploits due to bad player name parsing (thanks XD for reporting).&lt;br /&gt;
&lt;br /&gt;
21-08-05, Radiant&lt;br /&gt;
- Made ROOM object accessable on everything. It is used like REGION, but for ROOMDEF.&lt;br /&gt;
&lt;br /&gt;
22-08-05, Furio&lt;br /&gt;
- Fixed: Crash on sell for older clients.&lt;br /&gt;
- Fixed: Tooltip not working also if correct ini flags are set.&lt;br /&gt;
- Fixed: i_blood_2 created by sphere during hits not decaying.&lt;br /&gt;
- Added: TFLAGS accessable as SERV.ITEMDEF.defname.TFLAGS to get tiledata flags of the item.&lt;br /&gt;
- Added: p# dump all profiler data to profiler_dump.txt&lt;br /&gt;
&lt;br /&gt;
23-08-05, Radiant&lt;br /&gt;
- Added: more exception catching to CSector::OnTick, should print more descriptive errors now&lt;br /&gt;
- Fixed: resource gathering bug (mining fishes when switching from pickaxe to fishing rod, etc)&lt;br /&gt;
  (resource gathering skill is now aborted if resource gathering tool is unequipped)&lt;br /&gt;
&lt;br /&gt;
23-08-05, Vjaka&lt;br /&gt;
- Fixed: fatal exceptions referencing PARTY methods (PARTY.MEMBERS) from NPC.&lt;br /&gt;
- Fixed: account references for writing in scripts under low-privileged accounts.&lt;br /&gt;
  Both ways SRC.ACCOUNT.xxx and SERV.ACCOUNT.name.xxx are accessable this way.&lt;br /&gt;
- Fixed: invalid message when unlocking container told that I locked it.&lt;br /&gt;
- Fixed: NPC_AI_FOOD now obeys homedist and will not search out of the range.&lt;br /&gt;
- Fixed: NPC_AI_EXTRA caused npcs moving stonewalls and other spells :)&lt;br /&gt;
- Fixed: Pathfinding broken by some of the later changes.&lt;br /&gt;
&lt;br /&gt;
23-08-05, Lynchy (Script pack)&lt;br /&gt;
- Added: NPCs from Mondain's Legacy (npcs/spherechar_mondains_legacy.scp)&lt;br /&gt;
&lt;br /&gt;
24-08-05, Furio&lt;br /&gt;
- Added: Support for elf body (and ghost) in game.&lt;br /&gt;
- Added: Client keys for 5.0.0.&lt;br /&gt;
- Added: TAG.MAXPLAYERPETS to Stabler. It's the maximum limits of pets that a player&lt;br /&gt;
		 can stable. If not setted is 10.&lt;br /&gt;
- Added: @UserGuildButton for the new guild button on client.&lt;br /&gt;
- Added: @UserQuestButton for the new quest button on client.&lt;br /&gt;
- Fixed: Spellbook with newer clients (displaying/selecting spell).&lt;br /&gt;
- Fixed: Elf NPCs from Mondain's Legacy (npcs/spherechar_mondains_legacy.scp)&lt;br /&gt;
- Updated: grayproto to support ML quest button.&lt;br /&gt;
- Updated: spheretables.scp (changed plevel of some commands for better security)&lt;br /&gt;
&lt;br /&gt;
24-08-05, Vjaka&lt;br /&gt;
- Added: CombatFlags ini setting. Currently it controls two aspects of the&lt;br /&gt;
  bounce back effect in combat.&lt;br /&gt;
- Fixed: Reference to SERV from some triggers including @Enter in regions.&lt;br /&gt;
- Fixed: House regions creation for maps bigger than 0.&lt;br /&gt;
- Fixed: Players unavailable to call guards on NPCs.&lt;br /&gt;
- Fixed: Trigger command that did not work on characters.&lt;br /&gt;
&lt;br /&gt;
25-08-05, Radiant&lt;br /&gt;
- Removed: OBJPROPS&lt;br /&gt;
- Rewritten tooltips to use a trigger. There is @ClientTooltip on items and characters.&lt;br /&gt;
  (in the world, only non-static, movable items)&lt;br /&gt;
  You can use ADDCLILOC on the client in this trigger (SRC), syntax:&lt;br /&gt;
  ADDCLILOC &amp;lt;cliloc id&amp;gt;,[arguments]&lt;br /&gt;
  Arguments can also be NULL, to skip an argument.&lt;br /&gt;
  If this trigger returns 0 or nothing, some default properties will be added to the tooltip&lt;br /&gt;
  depending on the type.&lt;br /&gt;
  If it returns 1, no default properties will be added (but the tooltip still be sent).&lt;br /&gt;
- Added: @GetTooltip (ARGO = item being sent for) for players. This is like @itemEquip, etc.&lt;br /&gt;
  Fired before @ClientTooltip, if returns 1 @ClientTooltip is skipped.&lt;br /&gt;
  Try keeping these triggers light, because they will be fired alot.&lt;br /&gt;
- Added: f_onserver_save_finished, called after save is completely done&lt;br /&gt;
  (ARGS is time it took to save in seconds, 4 digit precision)&lt;br /&gt;
- Fixed: exploit to cast spells faster than normal (i.e. cast first clumsy then flamestrike)&lt;br /&gt;
  with precasting enabled.&lt;br /&gt;
- Added: COMMANDPREFIX ini setting. Default is .&lt;br /&gt;
&lt;br /&gt;
25-08-05, Lynchy (Script pack)&lt;br /&gt;
- Added some Mondain's Legacy items (not complete yet)&lt;br /&gt;
&lt;br /&gt;
26-08-05, Radiant&lt;br /&gt;
- Fixed: MASTERUID no longer changes loyalty, should fix the errors (was undesired behaviour too imo)&lt;br /&gt;
  Note that in order for this setting to work the person you set this to has to be a full member&lt;br /&gt;
  of the guild.&lt;br /&gt;
- Fixed: REMOVE not working in @EquipTest&lt;br /&gt;
- Added: Encryption keys for clients are now in SphereCrypt.ini. When new clients come out,&lt;br /&gt;
  the new keys can just be added here without the need to upgrade sphere.&lt;br /&gt;
&lt;br /&gt;
26-08-05, Furio&lt;br /&gt;
- Fixed: Tooltip sent to wrong client version making them crash.&lt;br /&gt;
- Updated: sphere_defs.scp&lt;br /&gt;
&lt;br /&gt;
26-08-05, Cloud_Br (Script pack)&lt;br /&gt;
- Updated: sphere_chars_newer.scp (Monsters of AoS/SE)&lt;br /&gt;
&lt;br /&gt;
26-08-05, Gygrazok (Script pack)&lt;br /&gt;
- Added: sphere_item_deco_mini_houses.scp (House miniatures of AoS)&lt;br /&gt;
&lt;br /&gt;
28-08-05, Furio&lt;br /&gt;
- Fixed: mem leak in CGTypedArray (and derived one).&lt;br /&gt;
&lt;br /&gt;
28-08-05, Radiant&lt;br /&gt;
- Added: missing @itemClientTooltip trigger causing wrong triggers to be fired&lt;br /&gt;
- Removed: @GetTooltip. Please use @itemClientTooltip trigger now, argo = item&lt;br /&gt;
  tooltip being sent for (in both @ClientTooltip and @itemClientTooltip)&lt;br /&gt;
- Added: Notoriety title and guild abbreviation to default character tooltip&lt;br /&gt;
- Changed: Tooltips added in triggers now show below the name if return 0&lt;br /&gt;
- Fixed: Game Master title no longer shows on tooltip with privshow off&lt;br /&gt;
- Added: Elf bodies to sphere's internal list of humanoids&lt;br /&gt;
- Fixed: mem leak in sorted variable arrays (DEF/TAG/CTAG/VAR/LOCAL/etc)&lt;br /&gt;
&lt;br /&gt;
30-08-05, Vjaka&lt;br /&gt;
- Added: GenericSounds ini settings to enable/disable all sounds.&lt;br /&gt;
- Removed: PlayerGhostSounds since it was not checked anywhere.&lt;br /&gt;
&lt;br /&gt;
30-08-05, Cloud_Br (Script pack)&lt;br /&gt;
- Removed: spherechars_newer.scp&lt;br /&gt;
- Added: spherechar_lbr.scp (Lbr monsters)&lt;br /&gt;
- Added: spherechar_aos.scp (AoS monsters)&lt;br /&gt;
- Added: spherechar_se.scp (SE monsters)&lt;br /&gt;
- Updated: sphere_item_building_others.scp&lt;br /&gt;
&lt;br /&gt;
02-09-05, Cloud_Br (Script pack)&lt;br /&gt;
- Updated: sphere_defs.scp (new sounds)&lt;br /&gt;
- Updated: spherechar_lbr.scp (Lbr monsters)&lt;br /&gt;
- Updated: spherechar_aos.scp (AoS monsters)&lt;br /&gt;
- Updated: spherechar_se.scp (SE monsters)&lt;br /&gt;
- Updated: sphere_item_building_others.scp&lt;br /&gt;
- Added: sphere_item_icons_new.scp (icons from new expansions)&lt;br /&gt;
&lt;br /&gt;
03-09-2005, Furio&lt;br /&gt;
- Fixed: PARTY references (master/member)&lt;br /&gt;
- Fixed: hue/hair/beard for elf selectable on char creation&lt;br /&gt;
- Updated: sphere protocol (accepts tooltip refresh requests from new clients)&lt;br /&gt;
- Added: ISINPARTY to char (check if a player is in party)&lt;br /&gt;
- Added: UseDefaultSource (default: 0) if enabled SERV fallback to its default&lt;br /&gt;
  source when executing commands. You shold set this to 1 if you are operating&lt;br /&gt;
  with any new objects from functions called directly from the server, like&lt;br /&gt;
  f_onaccount_login, f_onserver_start and so on.&lt;br /&gt;
&lt;br /&gt;
05-09-2005, Furio&lt;br /&gt;
- Updated: Sphere now support the internal client cache for tooltips. This will&lt;br /&gt;
  avoid wasting of bandwith and client crashes.&lt;br /&gt;
&lt;br /&gt;
05-09-2005, Radiant&lt;br /&gt;
- Fixed: incorrect info on tooltips for some types&lt;br /&gt;
&lt;br /&gt;
06-09-2005, Vjaka&lt;br /&gt;
- Fixed: some operations workability (SERV.new*) called from functions that are&lt;br /&gt;
  run directly by the server. This disables both the default script object and&lt;br /&gt;
  UseDefaultSource.&lt;br /&gt;
- Fixed: rescount-like operations when arguments was specifyed.&lt;br /&gt;
- Denied account auto-creation with first character numeric to avoid server&lt;br /&gt;
  confusion to treat this account as index or a valid name in some operations.&lt;br /&gt;
- Fixed: win32 server crash if server name was too long.&lt;br /&gt;
&lt;br /&gt;
06-09-2005, Furio&lt;br /&gt;
- Added: SCREENSIZE to access the game window size if the client supports that.&lt;br /&gt;
  You can access that via SCREENSIZE.X and SCREENSIZE.Y.&lt;br /&gt;
- Added: RESENDTOOLTIP. Calling that on the object you need to resend tooltip.&lt;br /&gt;
  Since clients use a cache for tooltip, if you want to force the cache too use&lt;br /&gt;
  RESENDTOOLTIP 1.&lt;br /&gt;
- Fixed: REMOVEFROMVIEW/TARGET(FGW) not working.&lt;br /&gt;
&lt;br /&gt;
08-09-2005, Vjaka&lt;br /&gt;
- Fixed: several errors with sql queries.&lt;br /&gt;
- Added: AutoPrivFlags to specify auto PRIV flags for new accounts.&lt;br /&gt;
- Added: ARGN1 to f_onaccount_login specifying account type. Most common values&lt;br /&gt;
  are 3(login), 4(go to game), 5(http), 6(telnet).&lt;br /&gt;
- Added: HitsHungerLoss to specify char hits percents lost on starving tick.&lt;br /&gt;
- Added: TAG.NOSAVE tag for objects. If set to 1 the object will NOT be saved&lt;br /&gt;
  when the world save will take place.&lt;br /&gt;
- Fixed: NEW* commands on characters not modifying character's ACT.&lt;br /&gt;
&lt;br /&gt;
08-09-2005, Furio&lt;br /&gt;
- Fixed: SCREENSIZE.X/.Y not working.&lt;br /&gt;
- Added: CLIENTIS3D. Returns 1 if is a client is 3D.&lt;br /&gt;
- Removed: Client support for clients older than 1.26.00 (they're awfully old).&lt;br /&gt;
- ReDone: Unencrypted client support. UseNoCrypt now is a bool 1 means that&lt;br /&gt;
  unencrypted client are allowed to login. If ClientVersion in sphere.ini is&lt;br /&gt;
  setted to some value (e.g. 4.0.0) then only that client version will login&lt;br /&gt;
  (this is valid for encrypted and unencrypted clients). Note that sometimes&lt;br /&gt;
  unencrypted clients sometimes are dumb and sphere not recognize them properly&lt;br /&gt;
  (and thus disconnected), but after restarting the client it's all ok.&lt;br /&gt;
- Modified: REPORTEDCLIVER. It contains the version of the unencrypted client&lt;br /&gt;
  without any trailing letter. To get the complete version (e.g 4.0.11f) use&lt;br /&gt;
  REPORTEDCLIVER.1.&lt;br /&gt;
- Modified: Disabled support for client tooltip cache (it'll be re-enabled after&lt;br /&gt;
  a re-write).&lt;br /&gt;
&lt;br /&gt;
08-09-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Updated: sphere_map_points3.scp&lt;br /&gt;
- Updated: sphere_item_profession.scp&lt;br /&gt;
- Added: addons/worldfiles.zip. It contains a fully spawned world for Felluca,&lt;br /&gt;
  Ilshenar and Malas.&lt;br /&gt;
&lt;br /&gt;
09-09-2005, Furio&lt;br /&gt;
- Moved: Hardcoded mount/mountid list from exe to scripts.&lt;br /&gt;
- Updated: sphere_defs.scp with the mount/mountid list. Read the comments to&lt;br /&gt;
  know how to edit it.&lt;br /&gt;
- Fixed: READLINE returning blank line.&lt;br /&gt;
- Fixed: Referring to party outputs a debug message.&lt;br /&gt;
&lt;br /&gt;
09-09-2005, Vjaka&lt;br /&gt;
- Fixed: Popup menus not calling SELL, BUY speech triggers on NPCs.&lt;br /&gt;
- Added: LBR mounts IDs to the mount defnames.&lt;br /&gt;
- Fixed: mounting later npcs since they were treated being brain_human.&lt;br /&gt;
&lt;br /&gt;
10-09-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Fixed: some guarded areas on sphere_map2.scp that should be guarded.&lt;br /&gt;
- Fixed: names on sphere_map1.scp (Britain being Britain too, so when you&lt;br /&gt;
  typed .go britain you were going to MAP 1), now all trammel places have&lt;br /&gt;
  &amp;quot;Trammel &amp;lt;local name&amp;gt;&amp;quot;.&lt;br /&gt;
- Fixed: some errors on addons/worldfiles.zip.&lt;br /&gt;
- Added: new mounts on sphere_chars_new_mounts.scp and their icons.&lt;br /&gt;
- Added: new mounts sounds to sphere_defs.scp&lt;br /&gt;
- Added: some HTML defs to sphere_defs.scp&lt;br /&gt;
&lt;br /&gt;
10-09-2005, Rattlehead (Script pack)&lt;br /&gt;
- Added: new mounts defs to sphere_defs.scp&lt;br /&gt;
- Added: new mounts defs to spherechar_mondain_legacy.scp&lt;br /&gt;
&lt;br /&gt;
12-09-2005, Furio&lt;br /&gt;
- Added: WOPCOLOR/WOPFONT to set color/font of Word of Powers.&lt;br /&gt;
- Added: TAG.OVERRIDE_SKILL applied to a weapon override the SKILL= field.&lt;br /&gt;
  Attention is a 1 based field so... 1 means Alchemy and so on.&lt;br /&gt;
- Modified: now PACKETxx in .ini accept values from 0 to 255.&lt;br /&gt;
- Modified: item, with attr not containing 010 or 08000, dropped by player&lt;br /&gt;
  on sea or black tile will insta-decay. RETURN 1 on DropOn_Ground&lt;br /&gt;
  avoid that thing.&lt;br /&gt;
&lt;br /&gt;
14-09-2005, Vjaka&lt;br /&gt;
- Added: warning msg if chardef does not have any CAN flags specifyed.&lt;br /&gt;
- Added: error msg if RESOURCES line contains errors inside.&lt;br /&gt;
- Fixed: NPC item equipping not having mt_equip flag.&lt;br /&gt;
- Fixed: dialog command TILEPICHUE nor working.&lt;br /&gt;
&lt;br /&gt;
18-09-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Fixed: some errors on spherechar_lbr.scp&lt;br /&gt;
&lt;br /&gt;
19-09-2005, Vjaka&lt;br /&gt;
- Fixed: wopfont not working.&lt;br /&gt;
- Optimized vendor templates storage. Now vendor does not keep all the items to&lt;br /&gt;
  be sold or bought from players all the time, but generate this list on the&lt;br /&gt;
  first query and invalidate after some time. It will save your server and save&lt;br /&gt;
  from tons of objects not actualy in the world.&lt;br /&gt;
&lt;br /&gt;
19-09-2005, Furio&lt;br /&gt;
- Fixed: HITPOINTS not working.&lt;br /&gt;
- Modified: SYSPAWN/SYSCMD on *Nix build should work now.&lt;br /&gt;
&lt;br /&gt;
20-09-2005, Vjaka&lt;br /&gt;
- Added: COMMANDTRIGGER setting. If set, each command the client is entering by&lt;br /&gt;
  .something will be given to the function first. If it returns 1, the default&lt;br /&gt;
  action is not taken. This allows overriding default commands.&lt;br /&gt;
&lt;br /&gt;
21-09-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Added: addons/Champion_Spawn.zip. A functional Champion Spawn system for Sphere.&lt;br /&gt;
&lt;br /&gt;
21-09-2005, Furio&lt;br /&gt;
- Fixed: Spellbook content not correctly sent to newer clients.&lt;br /&gt;
- Fixed: SHRINK not working.&lt;br /&gt;
- Fixed: carving corpse not working.&lt;br /&gt;
- Fixed: using .commands with GM body.&lt;br /&gt;
- Modified: tooltip info on spellbooks.&lt;br /&gt;
- Modified: Damage on head for newer client now use newer packet.&lt;br /&gt;
- Modified: FeatureAOS in sphere.ini. Look in to know how it works.&lt;br /&gt;
- Added: support for All Names in 3d clients and newer 2d (ctrl+shift macro).&lt;br /&gt;
&lt;br /&gt;
22-09-2005, Vjaka&lt;br /&gt;
- Fixed: Open paperdoll popup menu on self dismounting from horse.&lt;br /&gt;
- Modified: Resync executed in a fast mode will not broadcast notes to clients.&lt;br /&gt;
- Modified: Low hungry level does not damage in safe zones, and in underground&lt;br /&gt;
  for NPCs.&lt;br /&gt;
- Fixed: ARGO reference when no property was specifyed.&lt;br /&gt;
- Fixed: TOPOBJ reference.&lt;br /&gt;
&lt;br /&gt;
22-09-2005, Furio&lt;br /&gt;
- Fixed: attack not working with some weapons.&lt;br /&gt;
- Fixed: damage packet sent to incorrect clients.&lt;br /&gt;
- Fixed: Advanced_LOS not blocking los in some cases.&lt;br /&gt;
- Fixed: Spell teleport not using ef_walkcheck routines when enabled.&lt;br /&gt;
&lt;br /&gt;
23-09-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).&lt;br /&gt;
- Updated: addons/worldfiles.zip (read inside readme for more infos).&lt;br /&gt;
&lt;br /&gt;
25-09-2005, Furio&lt;br /&gt;
- Updated: Moved all OF flags related to magic/magery in &amp;quot;ad hoc&amp;quot; field&lt;br /&gt;
  called MAGICFLAGS. More info on it in Sphere.ini.&lt;br /&gt;
- Added: SEXTANTP. Retrieve the sextant point shown by a sextant in args&lt;br /&gt;
  and if no args are set it would return the sextantp for the reference.&lt;br /&gt;
- Added: support for showing skillcaps in newer clients.&lt;br /&gt;
- Added: support for new status gump in newer clients.&lt;br /&gt;
&lt;br /&gt;
25-09-2005, Radiant&lt;br /&gt;
- Added @SkillUseQuick char trigger and @UseQuick skill trigger, these are&lt;br /&gt;
  called when sphere does a quick run of a skill (just difficulty test + skill&lt;br /&gt;
  gain), in which case it wouldn't call @SkillStart (for example use of tactics,&lt;br /&gt;
  parrying in combat, arms lore with blacksmithing repair, magic resistance, etc).&lt;br /&gt;
  ARGN1 = skill being used&lt;br /&gt;
  ARGN2 = difficulty requested&lt;br /&gt;
  ARGN3 = result of difficulty calculation (same as in @GetHit)&lt;br /&gt;
  returning 0 will force skill to fail, returning 1 will force skill to succeed&lt;br /&gt;
  (both skip gains)&lt;br /&gt;
- Fixed: GMs not being able to resurrect in anti-magic areas&lt;br /&gt;
- Added: Character flag 020000 (STATF_ArcherCanMove), same as OF_Archery_CanMove&lt;br /&gt;
  but for specific players. OF_Archery_CanMove overrides this flag for everyone.&lt;br /&gt;
- Updated: sphere_defs.scp and sphere_admin.scp for STATF_ArcherCanMove.&lt;br /&gt;
- Added: NPCAI flag NPC_AI_ALWAYSINT (0008), always be as smart as possible when&lt;br /&gt;
  pathfinding.&lt;br /&gt;
- Fixed: SERV.NAME not working&lt;br /&gt;
- Added: SKILLUSEQUICK on chars, syntax: &amp;lt;SKILLUSEQUICK (skill) (difficulty)&amp;gt;.&lt;br /&gt;
  Does a quick use of a skill based on (difficulty) and returns 1 if it succeeded.&lt;br /&gt;
&lt;br /&gt;
26-09-2005, Vjaka&lt;br /&gt;
- Fixed: exception when adding empty sell/buy template on restock.&lt;br /&gt;
- Modified: CommandTrigger now has 2 arguments (in/out): ARGN1 is whatever the&lt;br /&gt;
  command is accepted (limited by PLEVEL section, etc), and ARGN2 is whatever&lt;br /&gt;
  the command should be said if not accepted. Also the prefix of the command is&lt;br /&gt;
  cut up as well.&lt;br /&gt;
- Fixed: SERV.MAP if normal point was given in arguments (with Z coord).&lt;br /&gt;
- Modified: the sphere window operation on tray dclick. Now it hides if shown&lt;br /&gt;
  and appears if hidden.&lt;br /&gt;
&lt;br /&gt;
26-09-2005, Furio&lt;br /&gt;
- Modified: &amp;lt;STRREV string&amp;gt; to StrReverse(string)&lt;br /&gt;
- Added: StrTrim(string) trime whitespaces at start/end of the string.&lt;br /&gt;
&lt;br /&gt;
26-09-2005, Gygrazok (Script pack)&lt;br /&gt;
- Added items/sphere_item_eight_age.scp. Item of 8th anniversary of UO.&lt;br /&gt;
&lt;br /&gt;
27-09-2005, Furio&lt;br /&gt;
- Added: support in status gump for stat locking.&lt;br /&gt;
- Added: STATLOCK[x] working like SKILLLOCK[x] but for stats.&lt;br /&gt;
&lt;br /&gt;
27-09-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Updated: sphere_map0.scp and sphere_map3.scp&lt;br /&gt;
- Updated: sphere_map_points0.scp and sphere_map_points3.scp&lt;br /&gt;
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).&lt;br /&gt;
- Added: addons/Doom_Dungeon.zip. A functional Doom Dungeon system for Sphere&lt;br /&gt;
  (read inside readme for more infos).&lt;br /&gt;
&lt;br /&gt;
28-09-2005, Vjaka&lt;br /&gt;
- Added: ARGN2 to UserSkills trigger. Will be 1 if triggeted from .info command&lt;br /&gt;
  that is useful if you use custom skill gump and not wish it opening when its not&lt;br /&gt;
  needed.&lt;br /&gt;
- Fixed: ModAr not affecting actual armor.&lt;br /&gt;
- Added: ARGN2 (show the message of gain/loss) and ARGO (person killed) to the&lt;br /&gt;
  @ExpChange trigger.&lt;br /&gt;
&lt;br /&gt;
29-09-2005, Furio&lt;br /&gt;
- Updated: Moved LAYER_LIGHT from 9 to 15. Modified all hardcoded things.&lt;br /&gt;
- Updated: script pack (sphere_defs.scp, sphere_item_unsorted.scp).&lt;br /&gt;
- Fixed: sphere_admin.scp showing incognito name.&lt;br /&gt;
- Fixed: elf created always with blond hair.&lt;br /&gt;
- Added: RESDISPDNID/RESLEVEL/RESDISPDNHUE for items (it'll work for equippable ones only).&lt;br /&gt;
&lt;br /&gt;
30-09-2005, Vjaka&lt;br /&gt;
- Fixed: dupe &amp;lt;amount&amp;gt; limited to the item complexity in containers.&lt;br /&gt;
- Fixed: commandtrigger not having proper default object.&lt;br /&gt;
- Added: TIMERCALL ini setting to specify amount of minutes for server to call&lt;br /&gt;
  user function f_onserver_timer.&lt;br /&gt;
- Added: BETWEEN min,max,currentvalue,maximalvalue to get the curve value in&lt;br /&gt;
  this combination.&lt;br /&gt;
- Modified: &amp;lt;Rx,y&amp;gt; now supports formulas inside, so -, or eval could be used.&lt;br /&gt;
&lt;br /&gt;
01-10-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Updated: addons/Doom_Dungeon.zip (read inside readme for more infos).&lt;br /&gt;
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).&lt;br /&gt;
- Updated: addons/worldfiles.zip (read inside readme for more infos).&lt;br /&gt;
- Added: addons/Slayer_Weapons.zip (read inside readme for more infos).&lt;br /&gt;
&lt;br /&gt;
02-10-2005, Radiant&lt;br /&gt;
- Fixed #013: Webserver attempting to parse images and sending invalid&lt;br /&gt;
  Content-Type header to clients&lt;br /&gt;
- Updated #037: Changed @Kill trigger to be fired on ALL the characters that had&lt;br /&gt;
  to do with the killing and therefor would gain/lose karma/fame. return 1 stops default&lt;br /&gt;
  karma/fame changes.&lt;br /&gt;
&lt;br /&gt;
02-10-2005, Handred (Script pack)&lt;br /&gt;
- Updated: sphere_types.scp&lt;br /&gt;
&lt;br /&gt;
04-10-2005, Furio&lt;br /&gt;
- Fixed #040: An item crafted by a player (skillmenu - makeitem) is created&lt;br /&gt;
  without decay flag set.&lt;br /&gt;
- Updated: Client &amp;gt;= 5.0.0 now use the compressed dialog packet (bandwith saver).&lt;br /&gt;
- Updated: Default tooltip for a char (guild title/name).&lt;br /&gt;
- Updated: sphere_item_eight_age.scp with some RESDISP tests for two items.&lt;br /&gt;
- Added: TEXTENTRYLIMITED/DTEXTENTRYLIMITED (working in only in client &amp;gt;= 5.0.0),&lt;br /&gt;
  look into sphere_dialog.scp help section.&lt;br /&gt;
&lt;br /&gt;
04-10-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Updated: sphere_admin.scp&lt;br /&gt;
&lt;br /&gt;
06-10-2005, Vjaka&lt;br /&gt;
- Added: MOUNT command for character to mount it (if possible) by SRC object.&lt;br /&gt;
- Fixed #020: Vendor buy menus showing empty list.&lt;br /&gt;
- Fixed #022: Fame prefix shown when in polymorph.&lt;br /&gt;
- Fixed #006: Item remove not working in DropOn_Ground.&lt;br /&gt;
- Fixed #017: Chars with MT_NONMOVER unable to spawn.&lt;br /&gt;
- Fixed #051: Extra message when drinking potions too fast, or eating errors.&lt;br /&gt;
- Fixed: ISBIT command. Now it is used like all rest functions &amp;lt;isbit value,bit&amp;gt;&lt;br /&gt;
  without complicated eval plus brackets constructions difficult to reproduce.&lt;br /&gt;
- Added: SETBIT value,bit and CLRBIT value,bit commands which returns mask with&lt;br /&gt;
  specifyed bit set or cleared.&lt;br /&gt;
- Added: @ operator (means power of value, fe: 2@3 = 8).&lt;br /&gt;
- Added: If SERV.log @text specifyed, this will be shown without script context.&lt;br /&gt;
- Added: ALLOWLIGHTOVERRIDE, if set to zero, sector local light will be skipped.&lt;br /&gt;
&lt;br /&gt;
06-10-2005, Furio&lt;br /&gt;
- Fixed #009: Client lingering in newer clients.&lt;br /&gt;
- Fixed #061: Name not shown on paperdoll.&lt;br /&gt;
&lt;br /&gt;
07-10-2005, Vjaka&lt;br /&gt;
- Fixed #057: &amp;lt;dSOMEVAL&amp;gt; gave incorrect values.&lt;br /&gt;
&lt;br /&gt;
07-10-2005, Furio&lt;br /&gt;
- Fixed #065: Commands not working with gm body.&lt;br /&gt;
- Fixed #064: Commands saying with sysmesage.&lt;br /&gt;
- Fixed #055: sphere_backward_compatibility.scp. MUSIC command.&lt;br /&gt;
- Fixed #062: sphere_char.scp. CAN flag not specifyed for c_corpser.&lt;br /&gt;
- Added: StrIndexOf(string1,string2,[offset]). Search string2 in string1 and&lt;br /&gt;
  returns -1 (if not found) or a number &amp;gt;= 0 if found (index in string1).&lt;br /&gt;
  Offset is optional (where to start to search 0-based index).&lt;br /&gt;
&lt;br /&gt;
11-10-2005, Vjaka&lt;br /&gt;
- Added: ZeroPoint to configure base of the sextant coordinates.&lt;br /&gt;
- Improved: exception debugging and support.&lt;br /&gt;
- Fixed: dclick on console not always opened the corresponding file.&lt;br /&gt;
- Added: ARGN2 in speech triggers corresponds to the player speech color if&lt;br /&gt;
  applicable.&lt;br /&gt;
&lt;br /&gt;
11-10-2005, Radiant&lt;br /&gt;
- Fixed #070: Container can now be changed in @DropOn_Ground and @DropOn_Item&lt;br /&gt;
&lt;br /&gt;
13-10-2005, Vjaka&lt;br /&gt;
- Fixed: ADDCLILOC leading to string corruption.&lt;br /&gt;
- Optimized: CALL operator to work faster if arguments are specifyed.&lt;br /&gt;
- Fixed #049: isevent/istevent working incorrectly.&lt;br /&gt;
&lt;br /&gt;
18-10-2005, Radiant&lt;br /&gt;
- Reverted 0.56b back to 14-10-2005 07:10, 0.57.1 is now a different branch&lt;br /&gt;
&lt;br /&gt;
19-10-2005, Radiant&lt;br /&gt;
- Tweaked #121: showing durability in tooltips as hits / maxhits instead of&lt;br /&gt;
  percentages for armor/clothing.&lt;br /&gt;
- Added #038: CTAGLIST and SERV.VARLIST. TAGLIST/CTAGLIST/SERV.VARLIST LOG writes&lt;br /&gt;
  results to the console.&lt;br /&gt;
- Fixed #098: Client not updating on .invis&lt;br /&gt;
&lt;br /&gt;
19-10-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Added the minor artifacts, see inside sphere_minor_artifacts.scp for tips.&lt;br /&gt;
- Added some missing fields to sphere.ini (PROFILE and EVENTSPET)&lt;br /&gt;
- Some updates and fixes on doom script and champions script.&lt;br /&gt;
&lt;br /&gt;
19-10-2005, RanXerox (Script pack)&lt;br /&gt;
- Updated: sphere_item_aos_se.scp&lt;br /&gt;
- Updated: sphere_item_ml_weapons.scp&lt;br /&gt;
- Updated: sphere_item_treasure_maps.scp&lt;br /&gt;
&lt;br /&gt;
19-10-2005, Vjaka&lt;br /&gt;
- Added a deadlock detection to some keywords parsing, that will eliminate some&lt;br /&gt;
  stack overflows.&lt;br /&gt;
&lt;br /&gt;
22-10-2005, Furio&lt;br /&gt;
- Fixed #087: Guild related clilocs are bugged.&lt;br /&gt;
- Fixed #091: WOPFONT doesnt work.&lt;br /&gt;
- Fixed: bug in encryption routines that could lead to a sphere crash during startup&lt;br /&gt;
&lt;br /&gt;
23-10-2005, Furio&lt;br /&gt;
- Fixed: Referring to SERV.MEM when memory = 0 causing exceptions.&lt;br /&gt;
- Fixed #131: Feature_AOS_Damage + Canharmself cause 2x damage display if damage&lt;br /&gt;
  is on self.&lt;br /&gt;
- Added #125: SERV.CLEARVARS. Clear all vars. Added in default script pack as&lt;br /&gt;
  plevel 6 command (spheretables.scp).&lt;br /&gt;
- Removed: SERV.DELETEFILE / SERV.WRITEFILE / READFILE / FILELINES since they're all&lt;br /&gt;
  integrated in the FILE obj.&lt;br /&gt;
&lt;br /&gt;
26-10-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Updated: sphere_item_building_walls_se.scp&lt;br /&gt;
&lt;br /&gt;
26-10-2005, Furio&lt;br /&gt;
- Fixed #135: All stats being 26 when creating char.&lt;br /&gt;
- Fixed #149: Trigger @Rename is never called.&lt;br /&gt;
- Added: @UserSpecialMove with ARGN1 the special move selected from the fight book.&lt;br /&gt;
&lt;br /&gt;
31-10-2005, Furio&lt;br /&gt;
- Fixed #159: Party don't display correct loot info.&lt;br /&gt;
- Fixed #171: All NPCs have ISSTUCK 1, even if they are on open, clear ground.&lt;br /&gt;
- Fixed #167: Can't see tooltips for locked down items.&lt;br /&gt;
&lt;br /&gt;
04-11-2005, Vjaka&lt;br /&gt;
- Fixed #174: NEWDUPE from server object.&lt;br /&gt;
- Fixed #161: max* stats affected by mod* even if unsynced.&lt;br /&gt;
- Fixed #128: ClientTooltip trigger return 1 causing exceptions.&lt;br /&gt;
&lt;br /&gt;
08-11-2005, Furio&lt;br /&gt;
- Fixed #188: &amp;lt;guildstone&amp;gt;.member.X.IsCandidate not working.&lt;br /&gt;
&lt;br /&gt;
11-11-2005, Furio&lt;br /&gt;
- Fixed #186: &amp;lt;serv.map(&amp;lt;PLACE&amp;gt;).region.name&amp;gt; giving missing location.&lt;br /&gt;
- Added #199: Hiding hierachy (higher plevel will see lower hidden plevel gray).&lt;br /&gt;
&lt;br /&gt;
15-11-2005, Vjaka&lt;br /&gt;
- Fixed #208: return 1 on @ReceiveItem not bounced item back if it was still in&lt;br /&gt;
  dragging layer.&lt;br /&gt;
- Fixed #151: trigger command not working for characters.&lt;br /&gt;
&lt;br /&gt;
18-11-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Fixed a bug when stealing artifacts that might cause crashes (add-on/Doom_Dungeon.zip).&lt;br /&gt;
- Added some missing weapons to sphere_item_ml_weapons.scp&lt;br /&gt;
- Added some missing npcs to spherechar_lbr.scp&lt;br /&gt;
- Added Succubus to Daemon Slayer list (add-on/Slayer_Weapons.zip).&lt;br /&gt;
&lt;br /&gt;
22-11-2005, Vjaka&lt;br /&gt;
- Fixed #112: impossible to access the CHARDEF if the NPC is not in world.&lt;br /&gt;
- Fixed #225: CanSee and CanSeeLOS always required for SRC and not accepting&lt;br /&gt;
  arguments in several cases (actualy CanSee did not accept this at all).&lt;br /&gt;
&lt;br /&gt;
22-11-2005, Torfo&lt;br /&gt;
- Fixed #221: Msg/Say parameters have no effect on hearall output.&lt;br /&gt;
&lt;br /&gt;
24-11-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Updated add-on/Champion_Spawn.zip:&lt;br /&gt;
  Changed c_forest_lord to c_etheral_warrior as it should be on Forest Lord Spawn Group.&lt;br /&gt;
  Changed ID field for Lord Oaks to c_etheral_warrior, to respect the defnames changes.&lt;br /&gt;
  Barracoon now has the hability to summon ratmans.&lt;br /&gt;
  Added Rotting Corpse to Unholy terror spawn.&lt;br /&gt;
  Added Rotting Corpse to Undead slayer weapon list.&lt;br /&gt;
  Corpses of the minions should now stay on the ground (with a timer of 15 seconds) to&lt;br /&gt;
    avoid lag.&lt;br /&gt;
  Optimized spawning of monsters, they won't appear on the same spot anymore and walk a&lt;br /&gt;
    way after some time, they will appear scatered around the spawn in a maximum distance&lt;br /&gt;
    of the range of that spawn (this should avoid lag when changing levels).&lt;br /&gt;
&lt;br /&gt;
25-11-2005, Vjaka&lt;br /&gt;
- Fixed #233: Setting MAX* was substracting MOD*, so did not work correct way.&lt;br /&gt;
&lt;br /&gt;
28-11-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Updated add-on/Doom_Dungeon.zip.&lt;br /&gt;
- Updated add-on/Champion_Spawn.zip.&lt;br /&gt;
&lt;br /&gt;
01-12-2005, Vjaka&lt;br /&gt;
- Fixed #222: Region triggers required return 0 to allow other same triggers to work.&lt;br /&gt;
&lt;br /&gt;
01-12-2005, Cloud_Br (Script pack)&lt;br /&gt;
- Updated add-on/Champion_Spawn.zip:&lt;br /&gt;
  Fixed some wrong defnames on the monsters list.&lt;br /&gt;
  Fixed champion appearing as a man and dieing.&lt;br /&gt;
- Updated add-on/Slayer_Weapons.zip:&lt;br /&gt;
  Added Bovine Slayer to slayers list.&lt;br /&gt;
- Updated: Talismans to sphere_item_ml_misc.scp.&lt;br /&gt;
&lt;br /&gt;
01-12-2005, Blizzard (Script pack)&lt;br /&gt;
- Updated: aquarium fishes to sphere_item_ml_misc.scp.&lt;br /&gt;
&lt;br /&gt;
02-12-2005, Torfo&lt;br /&gt;
- Fixed #251: PacketX &amp;amp; unary operators&lt;br /&gt;
&lt;br /&gt;
03-12-2005, Furio&lt;br /&gt;
- Fixed #246: Desappearing items on tiles built over water map tiles.&lt;br /&gt;
- Fixed #227: Tooltips for locked down items isn't being sent yet.&lt;br /&gt;
- Fixed: re-added basic support for speech.mul.&lt;br /&gt;
&lt;br /&gt;
07-12-2005, Torfo&lt;br /&gt;
- Fixed #242: Cannot connect with newer clients&lt;br /&gt;
&lt;br /&gt;
08-12-2005, Vjaka&lt;br /&gt;
- Fixed #247: Sector local time not changing, light levels not working due that.&lt;br /&gt;
&lt;br /&gt;
09-12-2005, Vjaka&lt;br /&gt;
- Fixed #11: DiagonalWalkCheck caused problems with NPC spawning.&lt;br /&gt;
&lt;br /&gt;
10-12-2005, Sir Dwayne (Script Pack)&lt;br /&gt;
- Updated: sphere_skillmenu.scp (Silver jewelry)&lt;br /&gt;
- Updated: spherechar_human.scp (Female barber)&lt;br /&gt;
&lt;br /&gt;
11-12-2005, RanXerox (Script pack)&lt;br /&gt;
- Updated: maps/sphere_map_points2.scp (Rat fort teleporters)&lt;br /&gt;
- Updated: sphere_types.scp (Swamp terrain)&lt;br /&gt;
&lt;br /&gt;
11-12-2005, Blizzard (Script Pack)&lt;br /&gt;
- Renamed: sphere_item_ml_weapons.scp to sphere_item_provisions_weapons_ml.scp&lt;br /&gt;
- Added: sphere_item_provisions_weapons_aos.scp&lt;br /&gt;
- Added: sphere_item_provisions_weapons_se.scp&lt;br /&gt;
- Updated: sphere_item_aos_se.scp&lt;br /&gt;
- Added DUPELIST and DUPEITEMs for all AoS, SE, and ML weapons.&lt;br /&gt;
- Added: sphere_item_provisions_armor_aos.scp&lt;br /&gt;
- Added: sphere_item_provisions_armor_se.scp&lt;br /&gt;
- Updated: sphere_item_provisions_weapons.scp&lt;br /&gt;
&lt;br /&gt;
11-12-2005, Cloud_Br (Script Pack)&lt;br /&gt;
- Updated: sphere_minor_artifacts.scp (some missing minor artifacts)&lt;br /&gt;
- Added: sphere_item_christimas.scp (Christimas Item ids that come with 5.0.1f patch)&lt;br /&gt;
&lt;br /&gt;
15-12-2005, Introvert (Script Pack)&lt;br /&gt;
- Updated: sphere_events_npcs.scp (fixed bugs in e_undead)&lt;br /&gt;
&lt;br /&gt;
20-12-2005, Furio&lt;br /&gt;
- Fixed #286: Bug with @ operator (power of).&lt;br /&gt;
&lt;br /&gt;
25-12-2005, Furio&lt;br /&gt;
- Fixed: FILE.READLINE returning strings with trailing \n and \r.&lt;br /&gt;
- Changed: StrTrim(args) to &amp;lt;STRTRIM args&amp;gt;.&lt;br /&gt;
- Fixed #298: Logging out while dragging item.&lt;br /&gt;
&lt;br /&gt;
25-12-2005, Handred&lt;br /&gt;
- Fixed #287: Updated sphere_item_professions.scp&lt;br /&gt;
&lt;br /&gt;
26-12-2005, Vjaka&lt;br /&gt;
- Fixed #294,#296: @SpellCast did not allow or disable to change words of power.&lt;br /&gt;
- Fixed #282: Operator ^= did not resolve.&lt;br /&gt;
&lt;br /&gt;
28-12-2005, Radiant&lt;br /&gt;
- Fixed #090, #172, #237: ACTION being changed on UseQuick because of new trigger&lt;br /&gt;
- Fixed #136, #154, #291: Partial character updates not working&lt;br /&gt;
- Fixed #129: GM body can now also use the normal command prefix, instead of only '='&lt;br /&gt;
- Fixed #299: Transfering pets to NPCs&lt;br /&gt;
&lt;br /&gt;
29-12-2005, Furio (Script Pack)&lt;br /&gt;
- Updated: sphere_item_provisions_weapons_ml.scp (fixed bug BLACKSMITH&lt;br /&gt;
  instead of BLACKSMITHING).&lt;br /&gt;
&lt;br /&gt;
31-12-2005, Furio&lt;br /&gt;
- Fixed #324: TRYSRC is read as TRYSRV (only in message errors).&lt;br /&gt;
- Fixed #326: missing resource in sphere_item_provisions_weapons_ml.scp&lt;br /&gt;
- Fixed #315: wrong defnames in sphere_defs.scp&lt;br /&gt;
- Fixed #330: updated sphere_item_building_walls_se.scp and sphere_item_magic_necromancer_aos.scp&lt;br /&gt;
&lt;br /&gt;
02-01-2006, Furio&lt;br /&gt;
- Fixed #332: support for guild chat speech mode.&lt;br /&gt;
- Fixed #336: PETRETRIEVE console error that shows when there's no stabled animals.&lt;br /&gt;
- Updated: sphere_defs.scp&lt;br /&gt;
&lt;br /&gt;
03-01-2006, RanXerox (Script pack)&lt;br /&gt;
- Updated: sphere_types.scp&lt;br /&gt;
&lt;br /&gt;
04-01-2006, Gygrazok (Script pack)&lt;br /&gt;
- Added: items/sphere_item_deco_evilitem.scp&lt;br /&gt;
&lt;br /&gt;
08-01-2006, Shadow Dragon&lt;br /&gt;
- Fixed: Pets going logout.&lt;br /&gt;
&lt;br /&gt;
10-01-2006, Furio&lt;br /&gt;
- Fixed #361: Creating characters with apostrophes ( ' ) in the name gives a random&lt;br /&gt;
  name in game.&lt;br /&gt;
- Fixed #348: Problems with FILE object.&lt;br /&gt;
- Fixed #356: Monsters not playing proper sounds (spherechar.scp and spherechar_evil.scp)&lt;br /&gt;
- Fixed #357: Some mappoints fixes (sphere_map_points0.scp and sphere_map_points1.scp)&lt;br /&gt;
- Updated: sphere_item_ml_misc.scp&lt;br /&gt;
&lt;br /&gt;
11-11-2006, Radiant&lt;br /&gt;
- Ticks will no longer be given to webpages if USEHTTP is disabled in sphere.ini&lt;br /&gt;
&lt;br /&gt;
12-01-2006, Vjaka&lt;br /&gt;
- Fixed #94: Stable master restock causing stabled pets to disappear.&lt;br /&gt;
- Fixed #212: Vendors do not restock money amount, unable to buy after a while.&lt;br /&gt;
- Fixed #343: Container functions like COUNT overrided user functions.&lt;br /&gt;
- Updated sphere_spells.scp fixing spell flags for polymorph (#335).&lt;br /&gt;
&lt;br /&gt;
12-01-2006, K. Thorp (Script pack)&lt;br /&gt;
- Added: some multis to sphere_item_multis_houses_ships.scp&lt;br /&gt;
- Added: deeds to sphere_item_provisions_deed.scp&lt;br /&gt;
&lt;br /&gt;
14-01-2006, Furio:&lt;br /&gt;
- Fixed #363: defining new region types. (See knowbugs.txt)&lt;br /&gt;
- Updated: sphere_defs.scp, sphere_types.scp, spheretables.scp&lt;br /&gt;
&lt;br /&gt;
14-01-2006, Torfo:&lt;br /&gt;
- Fixed #371: Error on Bulletin Board (last letter missing)&lt;br /&gt;
&lt;br /&gt;
15-01-2006, Radiant:&lt;br /&gt;
- Updated: You may now call functions on the SERV object. This affects several things,&lt;br /&gt;
  including the f_onserver functions, the console and packet filtering functions.&lt;br /&gt;
&lt;br /&gt;
17-01-2006, RanXerox (Script pack)&lt;br /&gt;
- Updated: sphere_triggers.scp,sphere_item_eight_age.scp,sphere_item_ml_misc.scp&lt;br /&gt;
  sphere_item_provisions_weapons_ml.scp,sphere_minor_artifacts.scp&lt;br /&gt;
  sphere_map_points0.scp,sphere_map_points1.scp&lt;br /&gt;
  sphere_item_provisions_weapons_aos.scp,sphere_item_provisions_weapons_se.scp&lt;br /&gt;
&lt;br /&gt;
20-01-2006, Blizzard (Script Pack)&lt;br /&gt;
- Updated: sphere_item_provisions_armor.scp, sphere_item_provisions_armor_se.scp,&lt;br /&gt;
  sphere_item_provisions_weapons_aos.scp, sphere_item_provisions_weapons_ml.scp,&lt;br /&gt;
  sphere_item_provisions_weapons_se.scp.&lt;br /&gt;
&lt;br /&gt;
21-01-2006, Radiant&lt;br /&gt;
- Updated: 80 character console command limitation to SCRIPT_MAX_LINE_LEN&lt;br /&gt;
&lt;br /&gt;
22-01-2006, Furio&lt;br /&gt;
- Fixed #380: IsNearType doesn't works whith custom typedef.&lt;br /&gt;
- Fixed #366: Effect of Hallucination.&lt;br /&gt;
- Fixed #378: Typo in sphere_admin.scp.&lt;br /&gt;
- Fixed: exceptions when using .charlist.&lt;br /&gt;
- Fixed: typo in console message.&lt;br /&gt;
- Sync (Vjaka): defmessage string allocation, thus binary EXE size reduced by ~200kb.&lt;br /&gt;
- Sync (Vjaka): SERV.console CMD to launch commands as you were in server console.&lt;br /&gt;
- Sync (ShadowDragon): Items in multis do not send to the client if he is not in&lt;br /&gt;
  the multi (OSI-compatible lag fight) as OF_OSIMultiSight.&lt;br /&gt;
- Updated: now ARGS in f_onchar_create contains account name.&lt;br /&gt;
- Updated: sphere_serv_triggers.scp.&lt;br /&gt;
- Added: f_onaccount_delete, ARGS contain account name, RETURN 1 block the delete.&lt;br /&gt;
&lt;br /&gt;
23-01-2006, Torfo&lt;br /&gt;
- Fixed #264: Problem with 0xBF packet.&lt;br /&gt;
&lt;br /&gt;
23-01-2006, Blizzard (Script Pack)&lt;br /&gt;
- Added: sphere_item_provisions_armor_ml.scp, sphere_item_provisions_clothing_ml.scp,&lt;br /&gt;
  sphere_item_provisions_clothing.scp.&lt;br /&gt;
- Updated: sphere_item_provisions_armor.scp, sphere_item_profession_tailor_tanner.scp,&lt;br /&gt;
  sphere_item_ml.scp.&lt;br /&gt;
&lt;br /&gt;
27-01-2006, Torfo&lt;br /&gt;
- Fixed #411: sm_bolts in sphere_item_resources.scp and sphere_item_profession.scp&lt;br /&gt;
- Fixed #409: added missing &amp;quot;&amp;gt;&amp;quot; in sphere_item_aos_se.scp&lt;br /&gt;
- Fixed #405: added missing MT_FEMALE in def of succubus in spherechar_lbr.scp&lt;br /&gt;
- Fixed: seasons will be saved now.&lt;br /&gt;
- Fixed #408: &amp;lt;sector.season&amp;gt; doesn't work.&lt;br /&gt;
&lt;br /&gt;
29-01-2006, Furio&lt;br /&gt;
- Fixed #410: Promptconsole removes all used &amp;quot;,&amp;quot;.&lt;br /&gt;
- Fixed: strlen not working correctly with &amp;quot;,&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
29-01-2006, RanXerox (Script pack)&lt;br /&gt;
- Updated: sphere_book.scp&lt;br /&gt;
&lt;br /&gt;
31-01-2006, Furio&lt;br /&gt;
- Fixed #425: Unable to start sphere when editing sphere_msgs.scp.&lt;br /&gt;
- Removed: USEGODPORT in sphere.ini (and also the god port)&lt;br /&gt;
- Modified: USEHTTP usage. Look into sphere.ini for new options.&lt;br /&gt;
&lt;br /&gt;
02-02-2006, Furio&lt;br /&gt;
- Fixed: players being able to track invisible (.invis) GMs.&lt;br /&gt;
- Sync (Vjaka): REGION.TYPE returning type from the itemdef of the multi.&lt;br /&gt;
&lt;br /&gt;
10-02-2006, Furio&lt;br /&gt;
- Modified: replaced internal routines of TAG/CTAG/VAR/LOCALs, it improves&lt;br /&gt;
  speed, memory usage and decrease the occurence of leaks/exception.&lt;br /&gt;
- Fixed #440: Crash when selling too many items to vendors.&lt;br /&gt;
&lt;br /&gt;
11-02-2006, Furio&lt;br /&gt;
- Fixed: new internal routines of TAG/CTAG/VAR/LOCALs in some special case.&lt;br /&gt;
- Added: support for OSI AuthID to avoid possible hijack to game server. By&lt;br /&gt;
  default is disabled, set UseAuthID = 1 in sphere.ini to use it.&lt;br /&gt;
&lt;br /&gt;
15-02-2006, Furio&lt;br /&gt;
- Fixed: &amp;quot;Divide by Zero&amp;quot; in CChar::Tick() for &amp;quot;update stats&amp;quot; sections.&lt;br /&gt;
&lt;br /&gt;
19-02-2006, Furio&lt;br /&gt;
- Fixed #456: NEWDUPE and DUPE doesn't copy events.&lt;br /&gt;
- Added: AOS properties for player characters: RES* (cold,energy,fire,poison) and&lt;br /&gt;
  LUCK with no built-in functionality.&lt;br /&gt;
- Sync (Vjaka): Added #214: ColorNoto* settings for characters color hue change.&lt;br /&gt;
- Sync (Vjaka): &amp;quot;NEWLOOT X&amp;quot; character function creating and equiping item X for NPCs&lt;br /&gt;
  if can give loot, useful to be used in @Death or @DeathCorpse triggers.&lt;br /&gt;
- Sync (Vjaka): &amp;quot;NEWGOLD N&amp;quot; function gives amount N of gold to the current char.&lt;br /&gt;
- Sync (Vjaka): character function TIMERF N,FuncName to cause a timed execution of a&lt;br /&gt;
  function FuncName in N secs. Specifying N as -1 will clear all TIMERF list.&lt;br /&gt;
  These functions are not saved, so do not store hours in the list, the purpose&lt;br /&gt;
  of this is to decrease overhead due to timered memory items opeations.&lt;br /&gt;
- Sync (Shadow Dragon): TAG.NoMoveTill for script purposes. This doesn't allow char&lt;br /&gt;
  to move if TAG.NoMoveTill &amp;gt; SERV.Time.&lt;br /&gt;
&lt;br /&gt;
20-02-2006, Furio&lt;br /&gt;
- Fixed #462: TAG.NAME.HUE on chardef isn't working.&lt;br /&gt;
- Fixed: some possible overflow in some spots.&lt;br /&gt;
- Touchups for *NIX compilation.&lt;br /&gt;
&lt;br /&gt;
20-02-2006, Cloud_Br (Script pack)&lt;br /&gt;
- Changed description of EVENTSPET on sphere.ini&lt;br /&gt;
- Add some new points to sphere_map_pointsX.scp&lt;br /&gt;
- Add some places with names like on OSI (places that didn't have a respective name&lt;br /&gt;
  before on default sphere) to sphere_mapX.scp files.&lt;br /&gt;
&lt;br /&gt;
24-02-2006, Vjaka&lt;br /&gt;
- Fixed #158: NPC value spontaneously changing when NPC was under reactive armor.&lt;br /&gt;
- Fixed #314: Elf's Hair Color in creation is not correct.&lt;br /&gt;
&lt;br /&gt;
25-02-2006, Torfo&lt;br /&gt;
- Fixed: possible PLEVEL-hack (thx to SL for reporting).&lt;br /&gt;
&lt;br /&gt;
03-03-2006, Furio&lt;br /&gt;
- Fixed #401: Spells (incognito and mark) don't update the client tooltip.&lt;br /&gt;
- Fixed #478: Newgold does not update gold amount.&lt;br /&gt;
&lt;br /&gt;
05-03-2006, Furio&lt;br /&gt;
- Fixed #483: Typo in sphere.ini.&lt;br /&gt;
- Fixed #484: LUCK and RES* properties throws errors when reading.&lt;br /&gt;
&lt;br /&gt;
07-03-2006, Furio&lt;br /&gt;
- Added: Tithing points for player characters as TITHING with no built-in&lt;br /&gt;
  functionality.&lt;br /&gt;
- Fixed #492: Undefinied SCROLL_MOTD at player login.&lt;br /&gt;
&lt;br /&gt;
08-03-2006, Furio&lt;br /&gt;
- Fixed #502: Divide by Zero Exceptions in CChar::Tick() stat section.&lt;br /&gt;
- Fixed #503: Tithing Points showed incorrectly in Paladin book.&lt;br /&gt;
- Updated: sphere_item_aos_se.scp, sphere_item_magic_necromancer_aos.scp&lt;br /&gt;
&lt;br /&gt;
10-03-2006, Furio&lt;br /&gt;
- Fixed #501: Dropping a stackable item on another one with&lt;br /&gt;
  special attr (Newbie, Static, Move Never).&lt;br /&gt;
- Fixed #509: Cheater message with disconnect.&lt;br /&gt;
- Fixed #511: Tooltip Problem with Spawns.&lt;br /&gt;
- Fixed #517: Deleting Accounts not loging properly.&lt;br /&gt;
&lt;br /&gt;
15-03-2006, Radiant&lt;br /&gt;
- Fixed: WHILE loops ending with weird undefined symbol error.&lt;br /&gt;
&lt;br /&gt;
18-03-2006, Furio&lt;br /&gt;
- Fixed #526: &amp;quot;Resync [...]&amp;quot; working incorrectly.&lt;br /&gt;
- Fixed #520: Magic Flag IgnoreAr doesn't work.&lt;br /&gt;
- Updated: no 0-100 limitations to RES*.&lt;br /&gt;
- Updated: sphere_defs.scp&lt;br /&gt;
&lt;br /&gt;
21-03-2006, Furio&lt;br /&gt;
- Fixed #292: Textentrylimited crashing clients (thx to Admin Ben)&lt;br /&gt;
- Fixed #528: Invis items in pack and/or corpse we see it, but when&lt;br /&gt;
  we click it, it dissappears.&lt;br /&gt;
- Fixed #506: ghost of the npc appears after dying when mounted.&lt;br /&gt;
- Updated: sphere_dialog.scp&lt;br /&gt;
&lt;br /&gt;
22-03-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_menu.scp, sphere_item_misc.scp, townmagincia.scp (incorrect&lt;br /&gt;
  spelling of 'jewelry').&lt;br /&gt;
- Updated: sphere_item_provisions_armor_ml.scp (Duplicate DEFNAMEs for 02b74&lt;br /&gt;
  and 02b79).&lt;br /&gt;
&lt;br /&gt;
23-03-2006, Furio&lt;br /&gt;
- Added: &amp;lt;FILE.FILEEXIST arg&amp;gt; returning 1 if arg exist.&lt;br /&gt;
- Added: Support for Bushido/Ninjitsu/SpellWeaving spellbooks.&lt;br /&gt;
- Updated: sphere_defs.scp (new typedefs), sphere_item_aos_se.scp (spellbooks).&lt;br /&gt;
&lt;br /&gt;
23-03-2006, MrSugarCube&lt;br /&gt;
- Fixed: Incorrect spellbook packet being sent to newer clients with certain AOS&lt;br /&gt;
  features disabled.&lt;br /&gt;
- Fixed #181: Woolly sheep having wool resource on corpse after being shorn.&lt;br /&gt;
- Fixed: Player adding non-vendable item to vendor stock is deleted - Vendor now&lt;br /&gt;
  returns the item.&lt;br /&gt;
- Fixed #475: Taking item from hidden state does not update other clients.&lt;br /&gt;
- Modified: Warning message for non-vendable items will show the UID of the item&lt;br /&gt;
  and vendor.&lt;br /&gt;
&lt;br /&gt;
23-03-2006, Handred&lt;br /&gt;
- Updated: sphere_spawns.scp. Changed all RESOURCES= to ID=, modified also the&lt;br /&gt;
  WEIGHT= for a better and easier looking to, ie: ID=c_zombie 5.&lt;br /&gt;
&lt;br /&gt;
24-03-2006, MrSugarCube&lt;br /&gt;
- Fixed #519: Poison spell and field spell damage reveals caster after every&lt;br /&gt;
  damage effect.&lt;br /&gt;
- Fixed: Setting TARGP only working with invalid locations.&lt;br /&gt;
- Modified: @DropOn_Ground and @itemDropon_Ground triggers now have ARGS set&lt;br /&gt;
  to the location the item will be dropped to, specific points accessible&lt;br /&gt;
  using ARGV[x]. (readonly)&lt;br /&gt;
- Fixed: ARGS not being parsed correctly into ARGV when empty parameters are&lt;br /&gt;
  given (for example &amp;lt;myfunc 1,,,4,5&amp;gt; was treated as &amp;quot;1&amp;quot;,&amp;quot;,&amp;quot;,&amp;quot;4&amp;quot;,&amp;quot;5&amp;quot; and not&lt;br /&gt;
  &amp;quot;1&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;4&amp;quot;,&amp;quot;5&amp;quot;).&lt;br /&gt;
- Modified: Attacker will not be revealed when a character is hit by a spell&lt;br /&gt;
  with SPELLFLAG_FIELD set.&lt;br /&gt;
- Added: Damage Flag DAM_NOREVEAL (04000). If this flag is applied the attacker&lt;br /&gt;
  will not be revealed. This is applied by default to poison damage and spell&lt;br /&gt;
  damage. (Note that for spells the attacker will be revealed regardless if&lt;br /&gt;
  SPELLFLAG_HARM is set, unless SPELLFLAG_FIELD is also set, so only affects&lt;br /&gt;
  field spell damage).&lt;br /&gt;
- Updated: sphere_defs.scp (Updated DAM_FLAGS section)&lt;br /&gt;
&lt;br /&gt;
26-03-2006, MrSugarCube&lt;br /&gt;
- Modified: Vendor boxes will now only accept a maximum of 115 items dropped&lt;br /&gt;
  inside (as opposed to the 256 item limit of a normal container). A warning&lt;br /&gt;
  message will be displayed when the buy menu is shown if this limit has been&lt;br /&gt;
  exceeded.&lt;br /&gt;
- Fixed #540: Logged out characters can be targeted with spells (Actually&lt;br /&gt;
  CANSEE was returning 1 without GM/ALLSHOW priv).&lt;br /&gt;
&lt;br /&gt;
27-03-2006, MrSugarCube&lt;br /&gt;
- Fixed #429: Unable to walk on blocking terrain with platform properties&lt;br /&gt;
  (eg: Palace of Paroxysmus acid).&lt;br /&gt;
- Fixed: Walking on stairs in certain areas (such as the ones at 925,641,-80,2&lt;br /&gt;
  or 7060,376)&lt;br /&gt;
- Updated: sphere_map0.scp, sphere_map_points0.scp, sphere_map0_ml.scp,&lt;br /&gt;
  sphere_map_points0_ml.scp (Moved ML locations to seperate script which can be&lt;br /&gt;
  uncommented to enabled ML areas).&lt;br /&gt;
- Updated: spheretables.scp (Added ML map files to RESOURCES block, to be&lt;br /&gt;
  uncommented if you wish to use).&lt;br /&gt;
- Updated: sphere.ini (Updated MAP0 description to remind users to uncomment ML&lt;br /&gt;
  map scripts).&lt;br /&gt;
&lt;br /&gt;
28-03-2006, Ellessar (Script Pack)&lt;br /&gt;
- Updated: sphere_item_provisions_weapons_se.scp (incorrect spelling for&lt;br /&gt;
  i_tetsubo SKILLMAKE).&lt;br /&gt;
&lt;br /&gt;
29-03-2006, MrSugarCube&lt;br /&gt;
- Fixed: NPCs unable to walk on the same tile as a dead/disconnected/insubstantial&lt;br /&gt;
  character.&lt;br /&gt;
&lt;br /&gt;
30-03-2006, MrSugarCube&lt;br /&gt;
- Fixed #545: TARGET function with no message specified sent a blank sysmessage&lt;br /&gt;
  to the client. (also affected PROMPTCONSOLE).&lt;br /&gt;
- Updated: sphere_msgs.scp - Added missing message definitions to the list&lt;br /&gt;
  (27 were missing).&lt;br /&gt;
&lt;br /&gt;
30-03-2006, Ellessar (Script Pack)&lt;br /&gt;
- Updated: sphere_item_provisions_weapons.scp (SKILL properties corrected for&lt;br /&gt;
  MaceFighting weapons).&lt;br /&gt;
&lt;br /&gt;
31-03-2006, MrSugarCube (Script Pack)&lt;br /&gt;
- Updated: sphere_item_building_floors_se.scp (incorrect axis categories)&lt;br /&gt;
- Updated: sphere_item_provisons_deed.scp (incorrect spelling of &amp;quot;Provisions&amp;quot;&lt;br /&gt;
  for some axis categories)&lt;br /&gt;
&lt;br /&gt;
01-04-2006, MrSugarCube&lt;br /&gt;
- Fixed #552: Removing items in SECTOR.ALLITEMS causes infinite loop&lt;br /&gt;
  (also ALLCHARS/ALLCHARSIDLE/ALLCLIENTS).&lt;br /&gt;
&lt;br /&gt;
03-04-2006, Furio&lt;br /&gt;
- Fixed #553: Errors during SERV.MAP parsing.&lt;br /&gt;
- Fixed #407: Account creation with bad words.&lt;br /&gt;
- Removed: OF_Advanced_Los.&lt;br /&gt;
- Added: AdvancedLos in sphere.ini to control Los behaviour of player and npc.&lt;br /&gt;
&lt;br /&gt;
04-04-2006, RanXerox (Script pack)&lt;br /&gt;
- Updated: sphere_item_magic_wands.scp (eliminates old ITEMDEF numbers).&lt;br /&gt;
&lt;br /&gt;
04-04-2006, MrSugarCube&lt;br /&gt;
- Fixed #556: Exception occuring when failing to bandage another character.&lt;br /&gt;
- Fixed #558: DB reference still accessible with MySQL support disabled.&lt;br /&gt;
&lt;br /&gt;
04-04-2006, Ellessar (Script pack)&lt;br /&gt;
- Updated: spherechar_lbr.scp (Changed &amp;quot;ICON=i_pet_orc_brute&amp;quot; to &amp;quot;ICON=i_pet_orc&amp;quot;&lt;br /&gt;
  for character c_orc_brute)&lt;br /&gt;
&lt;br /&gt;
07-04-2006, MrSugarCube&lt;br /&gt;
- Fixed #565: Account name &amp;quot;account&amp;quot; not loaded correctly from accounts file.&lt;br /&gt;
&lt;br /&gt;
08-04-2006, Ellessar (Script pack)&lt;br /&gt;
- Updated: sphere_item_icons_new.scp (Added missing icons: i_pet_terathanavenger,&lt;br /&gt;
  i_pet_meereternal, i_pet_meercaptain, i_pet_meermage)&lt;br /&gt;
- Updated: spherechar_lbr.scp (Added NPCs: c_mummy, c_terathan_avenger,&lt;br /&gt;
  c_meer_eternal, c_meer_captain, c_meer_mage)&lt;br /&gt;
- Updated: spherechar_se.scp (Fixed incorrect weapon for c_yomotsu_warrior)&lt;br /&gt;
&lt;br /&gt;
09-04-2006, Vjaka&lt;br /&gt;
- Fixed #284: Character DISPID limitation changed to 2048 basing on bodyconv.def.&lt;br /&gt;
- Fixed #372: Weighted random templates had limitation for 64 members inside.&lt;br /&gt;
- Fixed #479: Off-duty vendor going off-duty with active client around.&lt;br /&gt;
- Fixed #497: Duplicated resources on inherited NPC.&lt;br /&gt;
- Fixed #541: Picking item that is too heavy is causing item to drop.&lt;br /&gt;
- Fixed #561: Players are unable to walk through any npc regardless of the stamina.&lt;br /&gt;
&lt;br /&gt;
10-04-2006, Furio&lt;br /&gt;
- Added: TERRAIN.Z in SERV.MAP to know at which z is located the map tile.&lt;br /&gt;
- Fixed #577: SERV.ITEMDEF not behaving correctly.&lt;br /&gt;
&lt;br /&gt;
10-04-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_map0.scp (Removed REGION_FLAG_UNDERGROUND from&lt;br /&gt;
  a_lord_britishs_castle_1, fixing lighting around west britain).&lt;br /&gt;
&lt;br /&gt;
10-04-2006, Vjaka&lt;br /&gt;
- Fixed #575: Multiple resource lines in a REGIONTYPE not loading correctly.&lt;br /&gt;
&lt;br /&gt;
11-04-2006, Ellessar (Script pack)&lt;br /&gt;
- Updated: sphere_backward_compatibility.scp (tweak for addnpc).&lt;br /&gt;
&lt;br /&gt;
13-04-2006, MrSugarCube&lt;br /&gt;
- Fixed #576: Added World Statics Save to DEFMESSAGE table.&lt;br /&gt;
- Updated: sphere_msgs.scp (Added 'server_worldstaticsave' message)&lt;br /&gt;
&lt;br /&gt;
15-04-2006, MrSugarCube&lt;br /&gt;
- Fixed: Players unable to dismount from their rides after attacking&lt;br /&gt;
  another character unless they retreated or killed the enemy.&lt;br /&gt;
&lt;br /&gt;
16-04-2006, Handred (Script pack)&lt;br /&gt;
- Updated: sphere_menu.scp (Added Guild Transfer menu option using&lt;br /&gt;
  softcoded TRANSFERGUILD function. )&lt;br /&gt;
- Updated: sphere_triggers.scp (Added TRANSFERGUILD function. Feel&lt;br /&gt;
  free to fit it to your needs. )&lt;br /&gt;
&lt;br /&gt;
17-04-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_spells.scp (Added SPELLFLAG_PLAYERONLY to spells&lt;br /&gt;
  71 and above (potion effects))&lt;br /&gt;
- Updated: jobbeggar.scp, jobblacksmith.scp, jobhealer.scp,&lt;br /&gt;
  jobtavernkeeper.scp, jobvet.scp, jobweaponsmith.scp,&lt;br /&gt;
  townbritain.scp (Fixed syntax errors where SRC.SEX was being used&lt;br /&gt;
  incorrectly)&lt;br /&gt;
&lt;br /&gt;
18-04-2006, MrSugarCube&lt;br /&gt;
- Fixed: Adding a stack of scrolls to a spellbook consumed the whole&lt;br /&gt;
  pile instead of just one.&lt;br /&gt;
&lt;br /&gt;
19-04-2006, coruja747 (Script pack)&lt;br /&gt;
- Updated: sphere_item_magic_wands (Fixed incorrect spelling of 'daemon'&lt;br /&gt;
  for i_wand_summon_daemon)&lt;br /&gt;
&lt;br /&gt;
19-04-2006, MrSugarCube&lt;br /&gt;
- Fixed: Turning ships to force ship into invalid sailing location.&lt;br /&gt;
&lt;br /&gt;
20-04-2006, Furio&lt;br /&gt;
- Fixed #600: Forcont* loops block script execution if no items found.&lt;br /&gt;
&lt;br /&gt;
22-04-2006, MrSugarCube&lt;br /&gt;
- Fixed #622: Unable to access specific resources for spells using&lt;br /&gt;
  RESOURCES.n[.KEY|.VAL]&lt;br /&gt;
- Fixed #141: Curse spell having no effect on target.&lt;br /&gt;
- Fixed #476: UID.x.KEY not working correctly on region reference (under&lt;br /&gt;
  @Enter trigger for example).&lt;br /&gt;
&lt;br /&gt;
24-04-2006, MrSugarCube&lt;br /&gt;
- Fixed #201: Walking off ship planks moves player to incorrect&lt;br /&gt;
  height (this is normal for characters with GM mode enabled).&lt;br /&gt;
&lt;br /&gt;
26-04-2006, Ellessar&lt;br /&gt;
- Updated: sphere_item_profession_tailor_tanner.scp (Removed custom&lt;br /&gt;
  @TargOn_Item trigger for i_sewing_kit)&lt;br /&gt;
&lt;br /&gt;
02-05-2006, Gygrazok&lt;br /&gt;
- Updated: sphereCrypt.ini (Added encryption keys for 5.0.2 client)&lt;br /&gt;
&lt;br /&gt;
02-05-2006, Furio&lt;br /&gt;
- Fixed #643: Functions with similar names sometimes get miscalled (thx to SL Patch).&lt;br /&gt;
- Fixed #641: Deleting account when the player is online.&lt;br /&gt;
- Fixed #625: Cloth bolts give always 25 i_cloth, while it should give the amount of&lt;br /&gt;
  i_cloth specified in RESOURCES.&lt;br /&gt;
- Updated: sphere_item_profession_tanner.scp (Cloth bolt value).&lt;br /&gt;
&lt;br /&gt;
03-05-2006, MrSugarCube&lt;br /&gt;
- Fixed #642: Intrinsic functions not working correctly from SERV&lt;br /&gt;
  object.&lt;br /&gt;
- Fixed #645: Possible to place invalid items on a gameboard, which&lt;br /&gt;
  in turn crashes clients.&lt;br /&gt;
- Fixed: Game board was setup incorrectly for games of Checkers.&lt;br /&gt;
- Modified: Game board setup for backgammon game added. (Note: Requires&lt;br /&gt;
  that backgammon board has MORE1 value of 2)&lt;br /&gt;
- Updated: sphere_item_profession_cook_barkeep_baker.scp (i_backgammon_game&lt;br /&gt;
  MORE1 changed to correct value)&lt;br /&gt;
&lt;br /&gt;
09-05-2006, Torfo&lt;br /&gt;
- Fix (temp): TX-Errors are disconnecting player now (just on linux).&lt;br /&gt;
&lt;br /&gt;
15-05-2006, Furio&lt;br /&gt;
- Modified: If VENDORMARKUP is not present on the npc or in the region the one from&lt;br /&gt;
  the chardef will be readed.&lt;br /&gt;
- Modified: Changing CLIENT properties will not show anymore annoying sysmessages.&lt;br /&gt;
&lt;br /&gt;
19-05-2006, Shadow Dragon&lt;br /&gt;
- Fixed #638 &amp;amp; #639: Items outside of multi not sending when in multi.&lt;br /&gt;
- Fixed #655: House building on each other.&lt;br /&gt;
&lt;br /&gt;
21-05-2006, V&lt;br /&gt;
- Fixed #611: Vendors buying without buy= assigned to them&lt;br /&gt;
&lt;br /&gt;
23-05-2006, MrSugarCube&lt;br /&gt;
- Fixed #675: Stone wall revealing location of higher privileged characters.&lt;br /&gt;
&lt;br /&gt;
28-05-2006, Furio&lt;br /&gt;
- Fixed #662: Skill lock tick.&lt;br /&gt;
- Fixed #691: serv.REGIONRESOURCE.x.REAP not working&lt;br /&gt;
- Modified: FeatureAOS to permit using of basic Aos feature without having tooltips.&lt;br /&gt;
  Look into sphere.ini for more info.&lt;br /&gt;
&lt;br /&gt;
31-05-2006, MrSugarCube&lt;br /&gt;
- Modified: &amp;lt;CANCAST (spell)&amp;gt; now accepts an extra parameter to check the region&lt;br /&gt;
  flags. If the second parameter is not supplied then this check is enabled by&lt;br /&gt;
  default, the advantage is that you can now disable the region check when checking&lt;br /&gt;
  if a character can cast a spell. New usage is: &amp;lt;CANCAST (spell) [checkantimagic]&amp;gt;&lt;br /&gt;
- Fixed #702: Items with value=0 can not be crafted (note that without a value set the&lt;br /&gt;
  QUALITY property will be unavailable, and also no experience will be gained from such&lt;br /&gt;
  items).&lt;br /&gt;
&lt;br /&gt;
31-05-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Fixed #679: sphere_skillmenu.scp (Inscription SKILLMENU now makes use of new&lt;br /&gt;
  CANCAST syntax, resolving the issue of region flags preventing the crafting of&lt;br /&gt;
  certain scrolls)&lt;br /&gt;
&lt;br /&gt;
01-06-2006, MrSugarCube&lt;br /&gt;
- Fixed #671: CriminalTimer=0 causes errors when setting criminal status.&lt;br /&gt;
- Fixed #703: Verbs not executing correctly on the default object in dialogs.&lt;br /&gt;
&lt;br /&gt;
04-06-2006, MrSugarCube&lt;br /&gt;
- Fixed #681: Unable to execute and read the return value of scripted functions&lt;br /&gt;
  on the SERV object.&lt;br /&gt;
- Fixed: Server stats not being given when requested by UOGateway.&lt;br /&gt;
- Modified: The following multi properties can now be read from their ITEMDEFs:&lt;br /&gt;
  MULTIREGION, REGIONFLAGS and COMPONENT (COMPONENT usage is same as COMP).&lt;br /&gt;
&lt;br /&gt;
05-06-2006, MrSugarCube&lt;br /&gt;
- Fixed: Attempts to use house keys to lock items down in containers.&lt;br /&gt;
&lt;br /&gt;
06-06-2006, Furio&lt;br /&gt;
- Added: NAPIERPOW(arg), LOGARITHM(arg[,base]), TAN(arg).&lt;br /&gt;
&lt;br /&gt;
06-06-2006, MrSugarCube&lt;br /&gt;
- Fixed: MULTIREGION property didn't show the value exactly as it appears in&lt;br /&gt;
  scripts (x1,y1,x2+1,y2+1,0 instead of x1,y1,x2,y2)&lt;br /&gt;
&lt;br /&gt;
08-06-2006, MrSugarCube&lt;br /&gt;
- Fixed #711: EFFECT_ID property returning the EFFECT value on SPELL block.&lt;br /&gt;
- Fixed #413: Spell icons are bounced into backpack with MAGICF_STACKSTATS&lt;br /&gt;
  enabled.&lt;br /&gt;
- Modified: MAGICF_STACKSTATS now allows a character to be affected by&lt;br /&gt;
  each of the stat spells at the same time (eg. strength+bless+feeblemind).&lt;br /&gt;
  Note that it does not allow multiple effects from the same spell (so&lt;br /&gt;
  casting bless several times does not work).&lt;br /&gt;
- Updated: Sphere.ini with MAGICF_STACKSTATS description&lt;br /&gt;
&lt;br /&gt;
08-06-2006, Furio&lt;br /&gt;
- Fixed #699: Removing an account on Linux cause an exception.&lt;br /&gt;
&lt;br /&gt;
08-06-2006, Ellessar (Script pack)&lt;br /&gt;
- Updated: sphere_triggers.scp (Updated SRC.NEWITEM with SERV.NEWITEM and&lt;br /&gt;
  removed unnecessary SRC references)&lt;br /&gt;
&lt;br /&gt;
08-06-2006, Beyonder (Script pack)&lt;br /&gt;
- Updated: sphere_item_building_fence.scp (Changed incorrect item defname&lt;br /&gt;
  i_gate_wood_2 to i_fence_wood_3 (ITEMDEF 085c))&lt;br /&gt;
- Updated: sphere_backward_compatibility.scp (Added i_gate_wood_2 as a&lt;br /&gt;
  DUPEITEM of i_fence_wood_3 for saves using incorrect defname)&lt;br /&gt;
&lt;br /&gt;
11-06-2006, V&lt;br /&gt;
- Fixed: alligator not responding to commands&lt;br /&gt;
- Added: Broadcast warning 10 seconds before world save is performed to alert players&lt;br /&gt;
&lt;br /&gt;
12-06-2006, MrSugarCube&lt;br /&gt;
- Fixed: ISNUM not working correctly with numbers in hex format.&lt;br /&gt;
&lt;br /&gt;
13-06-2006, MrSugarCube&lt;br /&gt;
- Added #722: Support for dialog component 'buttontileart' in newer clients. Syntax&lt;br /&gt;
  is the same as 'button', but with 4 additional parameters for placing a tilepic&lt;br /&gt;
  over the gump image with a specified hue (0=normal) and offset (0,0=top left):&lt;br /&gt;
  &amp;quot;buttontileart x y up down active page id tileid tilehue offsetx offsety&amp;quot;&lt;br /&gt;
- Fixed: Remove Trap skill not starting after targeting an object.&lt;br /&gt;
- Fixed: Scripted &amp;amp; Targeted skills not starting after targeting an object.&lt;br /&gt;
- Fixed: Possible exceptions occuring when a reference does not exist (such as ACCOUNT&lt;br /&gt;
  .CHAR.x where x was an invalid index)&lt;br /&gt;
- Modified: Stat regeneration will now take twice as long instead of halting&lt;br /&gt;
  completely when a character is hungry.&lt;br /&gt;
&lt;br /&gt;
13-06-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_dialog.scp (Fixed d_hair_dye dialog not dying player's hair and&lt;br /&gt;
  added buttontileart description to the help section)&lt;br /&gt;
&lt;br /&gt;
14-06-2006, MrSugarCube&lt;br /&gt;
- Fixed: Exception when adding a guild member and not provided sufficient arguments.&lt;br /&gt;
- Fixed: Inviting someone into a party tells the wrong character they've been added.&lt;br /&gt;
&lt;br /&gt;
15-06-2006, Furio&lt;br /&gt;
- Added: Added TAG.OVERRIDE.STATSUM/SKILLSUM/STATCAP[$statid]/SKILLCAP[$skillid] for&lt;br /&gt;
  players and npc to override SKILLCLASS values.&lt;br /&gt;
- Sync (ShadowDragon): TAG.OVERRIDE.REGEN[$statid]/REGENVAL[$statid] to modify regen&lt;br /&gt;
  rate and regen amount.&lt;br /&gt;
- Sync (Vjaka): Added &amp;lt;EXPLODE sep,string&amp;gt; operator which converts string with separators&lt;br /&gt;
  other than ',' to commas making possible to operate with such string using strarg/streat.&lt;br /&gt;
  Sample: LOCAL.S=&amp;lt;explode :/- ,my:test/string:2-3&amp;gt; should give result of &amp;quot;my,test,string,2,3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
17-06-2006, MrSugarCube&lt;br /&gt;
- Fixed #729: AntiMagic flags blocking spell effects on items even with GM mode enabled.&lt;br /&gt;
- Fixed #730: Immunity to spider web traps after taking damage.&lt;br /&gt;
&lt;br /&gt;
17-06-2006, coruja747 (Script pack)&lt;br /&gt;
- Updated: sphere_item_provisions_armor_se.scp (Fixed error in t_ninja_belt)&lt;br /&gt;
&lt;br /&gt;
18-06-2006, V (TYVM SL)&lt;br /&gt;
- Modified: TimerF is now global and works on any object. It will take optional&lt;br /&gt;
  arguments to the function call. Entire list is now saved and loaded upon startup.&lt;br /&gt;
  It no longer uses -1 to erase the TimerF list. Takes a maximum of 1024 characters.&lt;br /&gt;
  syntax: timerf n, function args&lt;br /&gt;
&lt;br /&gt;
19-06-2006, MrSugarCube&lt;br /&gt;
- Fixed #653: TRAIN function causing exception when not all default skills&lt;br /&gt;
  are defined.&lt;br /&gt;
- Fixed #732: Items on buy/sell menus displaying names from muls with&lt;br /&gt;
  FEATURE_AOS_UPDATE_B disabled on AOS+ clients. Instead a basic tooltip packet&lt;br /&gt;
  containing only the name of the item will be sent to the client in this case.&lt;br /&gt;
&lt;br /&gt;
19-06-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_item_provisions_weapons_se.scp (Corrected incorrect DUPEITEM&lt;br /&gt;
  and TDATA properties for i_fukiya)&lt;br /&gt;
- Updated: sphere_msgs.scp (Moved 32 hardcoded messages to defmessages and added&lt;br /&gt;
  1 missing defmessage)&lt;br /&gt;
&lt;br /&gt;
01-07-2006, Furio&lt;br /&gt;
- Fixed #740: Strange price on vendors.&lt;br /&gt;
- Fixed #752: Resizepic not showing with dorigin.&lt;br /&gt;
- Fixed #757: Error on &amp;quot;.serv.account add&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
02-07-2006, Nazghul (with thx to Ellessar)&lt;br /&gt;
- Fixed #639: OSI Multi Sight removes items already in sight.&lt;br /&gt;
- Added: TAG.ALWAYSSEND for items. An item with this TAG will always be send,&lt;br /&gt;
  no matter whether it is in a multi or not. The TAG works only with&lt;br /&gt;
  OF_OSIMultiSight on.&lt;br /&gt;
- Redone new items sending (should save some unneeded packets)&lt;br /&gt;
&lt;br /&gt;
04-07-2006, MrSugarCube&lt;br /&gt;
- Modified: SERV.CLIENT.x reference no longer accepts x if it is out of range&lt;br /&gt;
  (use SERV.CLIENTS property to check range).&lt;br /&gt;
- Modified: SERV.CLIENT.x reference no longer skips clients without characters&lt;br /&gt;
  (such as HTTP, or telnet connections), which caused strange behaviour.&lt;br /&gt;
  &amp;lt;SERV.CLIENT.x&amp;gt; will return 0 if the client has no attached character, 1 if&lt;br /&gt;
  the client has a character attached.&lt;br /&gt;
&lt;br /&gt;
05-07-2006, Nazghul&lt;br /&gt;
- Added: A skill trigger ON=@PreStart and a character trigger ON=@SkillPreStart&lt;br /&gt;
  are now called before ANY hardcoded stuff related to the skill which will start.&lt;br /&gt;
- Added: A skill flag SFK_NOMINDIST. With this flag on, you can mine, chop&lt;br /&gt;
  (distance doesn't have to be &amp;gt;= 1) or fish (distance doesn't have to be &amp;gt;= 2)&lt;br /&gt;
  right under yourself.&lt;br /&gt;
- Modified: Now an axe can be damaged during lumberjacking.&lt;br /&gt;
- Fixed: Fishing bug, which allowed fishing through ship floor.&lt;br /&gt;
- Fixed: Chopping with t_weapon_fence does not start skill Lumberjacking.&lt;br /&gt;
&lt;br /&gt;
05-07-2006, Nazghul (Script Pack)&lt;br /&gt;
- Updated: sphere_defs.scp (added section skill_flags)&lt;br /&gt;
- Updated: sphere_msgs.scp (messages fishing_close, lumberjacking_close,&lt;br /&gt;
  lumberjacking_tool, mining_close, fishing_4)&lt;br /&gt;
&lt;br /&gt;
09-07-2006, MrSugarCube&lt;br /&gt;
- Fixed: dtext, dcroppedtext, dhtmlgump, dtextentry and dtextentrylimited in gumps&lt;br /&gt;
  using a space for the text if no string was provided.&lt;br /&gt;
- Fixed #754: GMs losing non-vendable items when dropping them into a vendor box.&lt;br /&gt;
- Fixed #720: &amp;lt;dSOMEVAL&amp;gt; returning 0 for values starting with &amp;quot;0.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
10-07-2006, MrSugarCube&lt;br /&gt;
- Fixed #760: Exception caused by opening paperdoll when not all default skills&lt;br /&gt;
  are defined.&lt;br /&gt;
&lt;br /&gt;
11-07-2006 Nazghul&lt;br /&gt;
- Fixed #594: Players (only if their client allows) and NPCs were able to go through&lt;br /&gt;
  non-static walls.&lt;br /&gt;
- Added: CAN-Flag mt_passwalls (08); NPC with this flag CAN pass through static&lt;br /&gt;
  and dynamic walls.&lt;br /&gt;
&lt;br /&gt;
12-07-2006, Furio&lt;br /&gt;
- Fixed #690: serv.REGIONTYPE.*.resources is not working.&lt;br /&gt;
- Added: &amp;lt;serv.regiontype.*.calcmemberindex [uid]&amp;gt; returning the index of the&lt;br /&gt;
  resource selected randomly or basing on the skill of the uid passed as argument.&lt;br /&gt;
&lt;br /&gt;
12-07-2006 Nazghul&lt;br /&gt;
- Fixed: When logging in with an unencrypted client, you were not able to see&lt;br /&gt;
  tooltips for objects in line of sight (0 to 18 tiles away from you),&lt;br /&gt;
  including yourself.&lt;br /&gt;
&lt;br /&gt;
12-07-2006, Nazghul (Script Pack)&lt;br /&gt;
- Updated: sphere_defs.scp (updated section can_flags)&lt;br /&gt;
- Fixed #761: missing positioning of newly created vendor in i_deed_vendor&lt;br /&gt;
  (sphere_item_provisions_deed.scp)&lt;br /&gt;
&lt;br /&gt;
13-07-2006, Nazghul&lt;br /&gt;
- Added: CURFOLLOWER, MAXFOLLOWER with no built-in functionality. These variables&lt;br /&gt;
  change values on a status gump.&lt;br /&gt;
- Fixed #764: Cannot see items in large multis (OF_OsiMultiSight).&lt;br /&gt;
- Sync (Vjaka): ISWEAPON and ISARMOR read-only properties for items.&lt;br /&gt;
&lt;br /&gt;
14-07-2006, Nazghul&lt;br /&gt;
- Added: ISWEAPON and ISARMOR are now avaliable through serv.itemdef.x.* too.&lt;br /&gt;
&lt;br /&gt;
16-07-2006, Nazghul&lt;br /&gt;
- Added: OF_Command_Sysmsgs into sphere.ini. With this flag on, you will see&lt;br /&gt;
  sysmessages with current status after typing .allmove, .allshow, .debug,&lt;br /&gt;
  .detail, .gm, .hearall, .privshow, .invis, .invul&lt;br /&gt;
&lt;br /&gt;
20-07-2006, Nazghul (Script Pack)&lt;br /&gt;
- Fixed #776: sphere_map2.scp (Wrong Ilshenar Region description (Wisp Dungeon),&lt;br /&gt;
  thx Coruja747.&lt;br /&gt;
&lt;br /&gt;
21-07-2006, Furio&lt;br /&gt;
- Fixed #780: Unable to read REPLICATE property.&lt;br /&gt;
- Changed: TAG.OVERRIDE.STATCAP[$statid]/SKILLCAP[$skillid]/REGEN[$statid]/REGENVAL[$statid]&lt;br /&gt;
  to TAG.OVERRIDE.STATCAP_$statid/SKILLCAP_$skillid/REGEN_$statid/REGENVAL_$statid.&lt;br /&gt;
- Added: -E to command line. Starting Sphere with it will enable the ExceptionDumper&lt;br /&gt;
  that will generate a .map file on unexpected exceptions. Sending that file through&lt;br /&gt;
  the bugtracker will help us in the debug process. (thx to Z.)&lt;br /&gt;
- Fixed #774: Ghost's speech when in peace mode.&lt;br /&gt;
&lt;br /&gt;
21-07-2006, MrSugarCube&lt;br /&gt;
- Fixed: Incorrect name shown when a player declines a party invite.&lt;br /&gt;
- Modified: Placing a house over a staff member (Counselor+) no longer blocks&lt;br /&gt;
  the placement if the character cannot see them.&lt;br /&gt;
&lt;br /&gt;
22-07-2006, MrSugarCube&lt;br /&gt;
- Added: SPEEDMODE property for players. Allows setting the speed mode that a&lt;br /&gt;
  client can use (and affects the movement throttle accordingly). There are&lt;br /&gt;
  4 different speed modes that affect the client:&lt;br /&gt;
    0  - Normal speed.&lt;br /&gt;
    1  - Double speed on foot, normal speed when mounted.&lt;br /&gt;
    2  - Always walk on foot and when mounted.&lt;br /&gt;
    3+ - Always run on foot, always walk when mounted.&lt;br /&gt;
&lt;br /&gt;
22-07-2006, coruja747 (Script pack)&lt;br /&gt;
- Updated: sphere_map2.scp (Sorcerer Dungeon region definitions incorrect).&lt;br /&gt;
&lt;br /&gt;
23-07-2006, Shadow Dragon&lt;br /&gt;
- Added: LOCAL.Arrow storing an UID of used arrow while archery in @Hit.&lt;br /&gt;
- Added: Extra combat flag COMBAT_PREHIT to allow pre hit combat style&lt;br /&gt;
  (first hit is instant)&lt;br /&gt;
&lt;br /&gt;
26-07-2006, coruja747 (Script Pack)&lt;br /&gt;
- Updated: sphere_map2.scp (#793, Lake Shire region has not to be guarded)&lt;br /&gt;
- Added: GAINRADIUS keyword for skill definitions. Skillgain will only be calculated if&lt;br /&gt;
  the current skill is less than the actual difficulty + GAINRADIUS to prohibit skillgain&lt;br /&gt;
  by performing way too easy tasks. If not set it defaults to 100.0 (so pertaining the&lt;br /&gt;
  old behaviour)&lt;br /&gt;
&lt;br /&gt;
27-07-2006, coruja747 (Script Pack)&lt;br /&gt;
- Fixed: #796, sphere_map_points2.scp (Wisp Dungeon, Kirin Passage, Cyclops Dungeon)&lt;br /&gt;
&lt;br /&gt;
28-07-2006, coruja747 (Script Pack)&lt;br /&gt;
- Fixed: #800, missing teleports in sphere_map_points0.scp and sphere_map_points1.scp&lt;br /&gt;
&lt;br /&gt;
29-07-2006, Nazghul&lt;br /&gt;
- Modified: @Dclick is now called for items which were dclicked by an NPC.&lt;br /&gt;
  (e.g. when an NPC is going to open a door, @DClick is called for this door)&lt;br /&gt;
- Fixed #798: If a wall was built on a spot where a paralyzed player stays,&lt;br /&gt;
  he was not unparalyzed.&lt;br /&gt;
&lt;br /&gt;
29-07-2006, MrSugarCube&lt;br /&gt;
- Fixed: Vendors speak two messages when a player does not have any items to sell to them.&lt;br /&gt;
&lt;br /&gt;
30-07-2006, Shadow Dragon&lt;br /&gt;
- Added: New trigger @Criminal called after someone becomes criminal for someone.&lt;br /&gt;
  [] - criminal, SRC - someone. RETURN 1 - stops hardcoded effect (memory_harmedby and so),&lt;br /&gt;
  so you can make your own criminal system.&lt;br /&gt;
&lt;br /&gt;
31-07-2006, Kirofus (Script pack)&lt;br /&gt;
- Updated: sphere_types.scp (Fixed incorrect terrain definition for t_water)&lt;br /&gt;
&lt;br /&gt;
31-07-2006, MrSugarCube&lt;br /&gt;
- Modified: MaxWeight is now sent to the client for display on the status window in&lt;br /&gt;
  newer clients.&lt;br /&gt;
&lt;br /&gt;
31-07-2006, Nazghul&lt;br /&gt;
- Added: CONTP function, which allows you to change the position of an item,&lt;br /&gt;
  which is inside a container.&lt;br /&gt;
&lt;br /&gt;
01-08-2007, Nazghul&lt;br /&gt;
- Added: INI flag EF_New_Walkcheck = 04000 to switch on and off new walkcheck routines&lt;br /&gt;
  what should prohibit NPC from passing thru walls if not explicitely stated&lt;br /&gt;
  (CAN-Flag mt_passwalls (08))&lt;br /&gt;
&lt;br /&gt;
02-08-2006, Furio&lt;br /&gt;
- Added: STRREGEX(pattern,string) that execute a pattern matching supporting the&lt;br /&gt;
  known standard. Return: 1 match found, 0 match not found, -1 illegal pattern syntax.&lt;br /&gt;
&lt;br /&gt;
04-08-2006, Nazghul&lt;br /&gt;
(most code revised, debugged and (re)designed by Ellessar when I was up to drop&lt;br /&gt;
this all in desperation)&lt;br /&gt;
- Added: Function AddContextEntry. what takes 2 to 4 arguments separated by a comma.&lt;br /&gt;
   SRC.AddContextEntry EntryTag,TextID,Flags,Color&lt;br /&gt;
   EntryTag - the number to return as ARGN by @(item)ContextMenuSelect. Make it unique.&lt;br /&gt;
            - EntryTags from 0 to 100 are reserved by Sphere for internal use, so do not&lt;br /&gt;
              use it.&lt;br /&gt;
   TextID - CLILOCed name of the button. The number from cliloc.[your_localization]&lt;br /&gt;
            WITHOUT the leading &amp;quot;300&amp;quot; or such! Just type &amp;quot;5194&amp;quot; or &amp;quot;11010&amp;quot;&lt;br /&gt;
   Flags - 01 - locked (will be grayed out)&lt;br /&gt;
         - 02 - consecutive entries with this flag set will be summarized under&lt;br /&gt;
                a golden arrow&lt;br /&gt;
         - 020 - can be colored&lt;br /&gt;
   Color (applied only if Flags &amp;amp; 020) - hue&lt;br /&gt;
&lt;br /&gt;
- Added: Trigger @ContextMenuRequest/@itemContextMenuRequest which is fired after&lt;br /&gt;
  receiving a display Popup-menu client request (single click on an object).&lt;br /&gt;
&lt;br /&gt;
  It can be fired two times, each call has a different ARGN.&lt;br /&gt;
&lt;br /&gt;
  The first time it is fired before any hardcoded stuff is added to the Popup-menu.&lt;br /&gt;
  Here, Return 1 denies displaying any hardcoded entries, but if you make a softcoded&lt;br /&gt;
  entry, it WILL be displayed. It also will prohibit the second call of the trigger.&lt;br /&gt;
  Both, Return 0 and Return 2 allows hardcoded stuff to be added. If you change ARGN,&lt;br /&gt;
  the trigger will be called once more (but ARGN != 1).&lt;br /&gt;
&lt;br /&gt;
  The second time it is fired after all hardcoded stuff was added (so you can add&lt;br /&gt;
  your stuff to the bottom of the Popup-menu). Return value has no effect at all.&lt;br /&gt;
&lt;br /&gt;
  The first call:&lt;br /&gt;
   In:  ARGN = 1&lt;br /&gt;
   Out: Return 1 - only your stuff will be added (IF ANY), prohibits the second call&lt;br /&gt;
        Return 0/2 - your and hardcoded stuff will be added&lt;br /&gt;
        ARGN (ARGN != 1) - allows the second call&lt;br /&gt;
&lt;br /&gt;
  The second call:&lt;br /&gt;
   In:  ARGN = 2&lt;br /&gt;
   Out: Return 0/1/2 - does nothing&lt;br /&gt;
        ARGN - does nothing&lt;br /&gt;
&lt;br /&gt;
- Added: Trigger @ContextMenuSelect/@itemContextMenuSelect which is fired after&lt;br /&gt;
  a client selects something from a Popup-menu. ARGN is a value, which was sent&lt;br /&gt;
  by the server to the client as the first argument with the AddContextEntry function.&lt;br /&gt;
&lt;br /&gt;
06-08-2006, MrSugarCube&lt;br /&gt;
- Modified: SERV.ACCOUNT.x now returns 1 if the account name or index exists, or 0 if not.&lt;br /&gt;
- Added: P.STATICS.x.COLOR and P.STATICS.x.Z can be used to find the colour and height&lt;br /&gt;
  of static items.&lt;br /&gt;
- Modified: Setting BONUS_STATS to 0 in SKILL definitions disables using BONUS_x properties&lt;br /&gt;
  when calculating stat gains for that skill instead of blocking all stat gains for it. If&lt;br /&gt;
  you want to prevent stat gains, you should either set STAT_x to 0, or set BONUS_x to 0&lt;br /&gt;
  with BONUS_STATS greater than 0.&lt;br /&gt;
&lt;br /&gt;
07-08-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_msgs.scp (Fixed some 'broken' defmessages with tabs in)&lt;br /&gt;
&lt;br /&gt;
10-08-2006, ShiryuX (Script Pack)&lt;br /&gt;
- Fixed: #827 Kirin entered twice in sphere_defs.scp&lt;br /&gt;
&lt;br /&gt;
14-08-2006, Nazghul&lt;br /&gt;
- Added: dmgcold, dmgenergy, dmgfire, dmgpoison properties for weapons with no built-in&lt;br /&gt;
  functionality (yet).&lt;br /&gt;
- Fixed: Returned maxweight property different from maxweight property displayed&lt;br /&gt;
  in status gump.&lt;br /&gt;
- Fixed #592: Wrong spellbook packets send by Linux versions&lt;br /&gt;
- Updated: sphere.ini - added new experimental flag EF_NewPositionChecks.&lt;br /&gt;
&lt;br /&gt;
16-08-2006, Nazghul&lt;br /&gt;
- Added: Experimental flag EF_NewPositionChecks, with this flag on,&lt;br /&gt;
  the new position-related checks behavior will be used. So far it does something only&lt;br /&gt;
  with resource gathering related skills (lumberjacking, mining, fishing, eating grass etc.)&lt;br /&gt;
  and Advanced LOS.&lt;br /&gt;
  The flag is HIGHLY EXPERIMENTAL!&lt;br /&gt;
- Modified: FORPLAYERS now loops through logouted players. If you want to loop only through&lt;br /&gt;
  online players, use FORCLIENTS.&lt;br /&gt;
&lt;br /&gt;
17-08-2006, MrSugarCube&lt;br /&gt;
- Fixed: Retrieving StatLock properties with STATLOCK[statname] and SKILLLOCK[skillname]&lt;br /&gt;
- Fixed #835: Setting StatLocks on the status window sets the incorrect StatLock[x] property.&lt;br /&gt;
- Modified: Undefined region warnings are no longer reported for locations outside of the&lt;br /&gt;
  map boundaries.&lt;br /&gt;
&lt;br /&gt;
20-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)&lt;br /&gt;
- Fixed #304: NPCs are dumber in pathfinding with EF_DiagonalWalkCheck on&lt;br /&gt;
  (fixed only with EF_NewPositionCheck and EF_WalkCheck on).&lt;br /&gt;
- Fixed #747, #767: Z not updated when you enter a multi, .fix not working inside a multi.&lt;br /&gt;
- Fixed #837, #829: NPCs not spawning (or on the wrong place) inside a building.&lt;br /&gt;
- Fixed #598: Ladders not updating Z and a player cannot step on some of them.&lt;br /&gt;
- Modified GOTO function: NPC will now not stop moving after the first step.&lt;br /&gt;
&lt;br /&gt;
26-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)&lt;br /&gt;
- Fixed #744: Line Of Sight check going from out of a house into the house was successful,&lt;br /&gt;
  but not vice versa.&lt;br /&gt;
- Fixed: Item flags and height was always inherited from the parent item&lt;br /&gt;
  (the item with DUPELIST=), what damaged almost all Line Of Sight checks.&lt;br /&gt;
&lt;br /&gt;
28-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)&lt;br /&gt;
- Modified: Now, archery, potion throwing, dragon breathing, stone throwing, magery can be&lt;br /&gt;
  used through a window.&lt;br /&gt;
- Modified: Now, fishing use LOS and prohibits casting through blocking objects.&lt;br /&gt;
&lt;br /&gt;
28-08-2006, Nazghul&lt;br /&gt;
- Updated sphere_defs.scp: Added DEFNAME los_flags.&lt;br /&gt;
- Updated sphere_msgs.scp: Added message fishing_los.&lt;br /&gt;
- Removed: Multithreading support for Linux version due to its unusability on this OS.&lt;br /&gt;
&lt;br /&gt;
30-08-2006, Nazghul&lt;br /&gt;
- MODIFIED: RESCOLD, RESENERGY, RESFIRE, RESPOISON now can also be set on NPC&lt;br /&gt;
  Remember that RES*=100 will give you a 100 percent immunity against the damage inflicted&lt;br /&gt;
  by TAG.*DAMAGE.&lt;br /&gt;
- Added: COMBAT_SPECIALDAMAGE to INI CombatFlags (08). If set, TAG.*DAMAGE (below) will be&lt;br /&gt;
  used.&lt;br /&gt;
- Added: COMBAT_USE_RESISTANCE to INI CombatFlags (010). If set, RES* on characters will&lt;br /&gt;
  also be weighted against normal damage if the old fashioned damage flags are set.&lt;br /&gt;
- Added: TAG.COLDDAMAGE, TAG.ENERGYDAMAGE, TAG.FIREDAMAGE, TAG.POISONDAMAGE for characters&lt;br /&gt;
  and items. The server will only evaluate the tags on characters, and if ComBatFlag&lt;br /&gt;
  COMBAT_SPECIALDAMAGE is set. Then any damage done to others (if it's damage type contains&lt;br /&gt;
  at least one of the physical types OR magic) will be increased by the value of the&lt;br /&gt;
  appropriate tag, lowered by the RES* percentage of the victim.&lt;br /&gt;
  Tags on items will not be evaluated by the server - their values can be used to for&lt;br /&gt;
  example increase the TAGs or the RES* properties on characters on equip of the item.&lt;br /&gt;
  This way you can use TAG.*DAMAGE on a weapon to increase the wearer's appropriate&lt;br /&gt;
  damage tag, or on a piece of armor to increase his RES*, or to whatever you want.&lt;br /&gt;
&lt;br /&gt;
31-08-2006, Nazghul&lt;br /&gt;
- Added: NPC trigger @PetDesert. Fires when a pet decides to go wild.&lt;br /&gt;
  Default object is the pet, SRC the master. RETURN 1 changes the pet's mind.&lt;br /&gt;
&lt;br /&gt;
31-08-2006, MrSugarCube&lt;br /&gt;
- Fixed: P.REGION reference not working correctly in areas defined via ROOMDEFs.&lt;br /&gt;
- Added: P.ROOM can be used to access the ROOM properties of a point, just like&lt;br /&gt;
  you can with P.REGION.&lt;br /&gt;
- Modified: P.REGION and P.ROOM now return 0 if a region or room doesn't exist at&lt;br /&gt;
  the point, and 1 if one does.&lt;br /&gt;
- Added: Support for the new BandageSelf and BandageTarget macros found in the&lt;br /&gt;
  latest clients (5.0.4). Using the macro will act as if the client has just&lt;br /&gt;
  targeted something with the bandage (and so @[item]TargOn_Item will be called).&lt;br /&gt;
&lt;br /&gt;
01-09-2006, MrSugarCube&lt;br /&gt;
- Fixed #849: Enabling precasting does not freeze characters when casting.&lt;br /&gt;
- Fixed #849: With precasting enabled, skill is gained before the spell is&lt;br /&gt;
  completely cast at a target.&lt;br /&gt;
- Fixed #849: Harmful area effect spells don't affect the caster when&lt;br /&gt;
  MAGICF_CANHARMSELF is enabled.&lt;br /&gt;
- Fixed #849: TELE and POLY functions not working correctly with precasting&lt;br /&gt;
  enabled.&lt;br /&gt;
- Fixed #849: Casting from spellbook not working correctly with both&lt;br /&gt;
  FEATURE_AOS_UPDATE_B and MAGICF_PRECAST settings enabled.&lt;br /&gt;
- Fixed: Exception caused by spell effects on items with no SRC present.&lt;br /&gt;
&lt;br /&gt;
02-09-2006, Nazghul&lt;br /&gt;
- Added: TAG.OVERRIDE.MOVERATE for NPC to speed up or slow down single NPC&lt;br /&gt;
&lt;br /&gt;
05-09-2006, Nazghul&lt;br /&gt;
- Added: Option flag OF_Buffs. When on, Sphere will automatically add and remove buff and&lt;br /&gt;
  debuff icons to the affected players.&lt;br /&gt;
- Updated: sphere.ini - added new optional flag OF_Buffs&lt;br /&gt;
- Added: Functions ADDBUFF, REMOVEBUFF for adding and removing buff/debuff icons.&lt;br /&gt;
  syntax: ADDBUFF IconId ClilocOne ClilocTwo Seconds Text1 Text2(optional) Text3(optional)&lt;br /&gt;
          The text fields are supposed to hold max. 3 characters each (numbers) and will&lt;br /&gt;
          be cut off if larger.&lt;br /&gt;
  	  REMOVEBUFF IconId&lt;br /&gt;
  These functions only work with client 5.0.3 or above.&lt;br /&gt;
&lt;br /&gt;
06-09-2006, Nazghul (script pack)&lt;br /&gt;
- Updated: sphere_defs.scp (added defnames for buff icons and clilocs)&lt;br /&gt;
- Fixed: bug with i_multi_tower_wizard - the door was placed BELOW the floor,&lt;br /&gt;
  so unuseable with new LOS checks&lt;br /&gt;
&lt;br /&gt;
07-09-2006, Nazghul&lt;br /&gt;
- Updated: sphere.ini - added new debug flags DEBUGF_SCRIPTS, DEBUGF_LOS.&lt;br /&gt;
&lt;br /&gt;
10-09-2006, ShiryuX (Script Pack)&lt;br /&gt;
- Updated: sphere_defs.scp - added a defname for rideable Polar Bear&lt;br /&gt;
&lt;br /&gt;
11-09-2006, Nazghul&lt;br /&gt;
- Fixed #852: Trigger @SKILLSUCCESS did not fire with fighting skills&lt;br /&gt;
&lt;br /&gt;
12-09-2006, MrSugarCube&lt;br /&gt;
- Added: FORINSTANCES to loop through all instances of a given BaseID. Usage&lt;br /&gt;
  is &amp;quot;FORINSTANCES id&amp;quot;. If an ID is not supplied then the BaseID of the default&lt;br /&gt;
  object will be used. Works for both items and characters.&lt;br /&gt;
&lt;br /&gt;
12-09-2006, Nazghul&lt;br /&gt;
- Added: A new item property IsCont, which returns 1 if an item is a container and 0 if&lt;br /&gt;
  it is not.&lt;br /&gt;
- Updated: sphere.ini - added a new debug flag DEBUGF_WALK.&lt;br /&gt;
&lt;br /&gt;
15-09-2006, Nazghul&lt;br /&gt;
- Added: INI Flag OF_NoPrefix (0x4000) to get rid of the &amp;quot;A&amp;quot; and &amp;quot;An&amp;quot; prefixes what ere&lt;br /&gt;
  only an annoyance for not english language shards&lt;br /&gt;
- Changed: Key links will only be blanked if they are pointing to an invalid item UID now.&lt;br /&gt;
  Before everything what was neither container nor multi was considered &amp;quot;invalid&amp;quot;, so keys&lt;br /&gt;
  with the UID of a door, or themselves could turn blank.&lt;br /&gt;
- Added #848: Character trigger @SpellSelect. Doing pretty much the same as the spell trigger&lt;br /&gt;
  @select and has the same arguments/parameters&lt;br /&gt;
- Fixed #778: Wrong spellbook recognition with more than one spellbook std., necro, ...)&lt;br /&gt;
  in pack.&lt;br /&gt;
- Updated: sphere.ini - Removed experimental flag EF_New_Walkcheck.&lt;br /&gt;
&lt;br /&gt;
16-09-2006, Nazghul&lt;br /&gt;
- Added: OF_DyeType flag to sphere.ini. If set players are allowed to use i_dye on every&lt;br /&gt;
  t_dye_vat instead of only i_dye_tub. Making it switcheable for all those who have concerns&lt;br /&gt;
  about exploitability (even as I do not see any risk) - we all remember the times when&lt;br /&gt;
  injection users colored whole shards pink.&lt;br /&gt;
&lt;br /&gt;
17-09-2006, MrSugarCube&lt;br /&gt;
- Fixed: Using Bandage macro with a target prompt already present calling @TargOn_Cancel&lt;br /&gt;
  on the bandages.&lt;br /&gt;
- Fixed #863: Changing RESFIRE/RESENERGY/RESPOISON/RESCOLD properties does not update the&lt;br /&gt;
  client.&lt;br /&gt;
- Fixed: Unable to gain magery skill with precasting enabled.&lt;br /&gt;
- Fixed: Various object references not accessible from the guildstone object.&lt;br /&gt;
- Fixed #865: GUILD.MEMBER.x.ISMEMBER property not working correctly.&lt;br /&gt;
&lt;br /&gt;
20-09-2006, Nazghul&lt;br /&gt;
- Fixed #853: Update &amp;amp; DClick stopped display of weather effects&lt;br /&gt;
&lt;br /&gt;
21-09-2006, Nazghul&lt;br /&gt;
- added TAG.OVERRIDE.AMMOTYPE and TAG.OVERRIDE.AMMOANIM for bows and xbows to - yes, OVERRIDE the&lt;br /&gt;
  TDATA3 and TDATA4 values on a per-item-base&lt;br /&gt;
&lt;br /&gt;
21-09-2006, MrSugarCube&lt;br /&gt;
- Fixed #875: Exception caused by setting MASTERUID when no current guild/town master&lt;br /&gt;
  exists.&lt;br /&gt;
- Modified: Setting MASTERUID to the same uid as the current guild/town master no longer&lt;br /&gt;
  causes an error.&lt;br /&gt;
- Fixed: Calling the TRAIN function on an NPC in combat would cause an error.&lt;br /&gt;
- Modified #869: The TRAIN function now works on all NPC brains between 2 and 9.&lt;br /&gt;
&lt;br /&gt;
21-09-2006, Nazghul&lt;br /&gt;
- changed GAINRADIUS so that it no longer defaults to anything - if not set on a skill&lt;br /&gt;
  it's just transparent (as if never invented)&lt;br /&gt;
&lt;br /&gt;
22-09-2006, Nazghul&lt;br /&gt;
- Fixed #846: Bad character DispID displayed if there was serv.chardef called no NPC&lt;br /&gt;
  in the world with this ID.&lt;br /&gt;
&lt;br /&gt;
24-09-2006, Nazghul&lt;br /&gt;
- Added: Function CONTCONSUME &amp;lt;arg1&amp;gt; &amp;lt;arg2&amp;gt;, which consumes &amp;lt;arg2&amp;gt; amount of an item with id &amp;lt;arg1&amp;gt;&lt;br /&gt;
  from a referenced container and its subcontainers. Function does nothing on chars (use consume)&lt;br /&gt;
  and on non-container items.&lt;br /&gt;
  Example: findlayer.29.contconsume i_gold 100000&lt;br /&gt;
- Added: Item trigger @Buy and character trigger @itemBuy, which are called before item is sold&lt;br /&gt;
  by a vendor. The trigger is called only with EF_New_Triggers on.&lt;br /&gt;
  ACT/DEFAULT is the item, SRC is the player, ARGN is the item amount, ARGO is the vendor.&lt;br /&gt;
  Return 1 prevents the player from buying the item.&lt;br /&gt;
- Added: Item trigger @Sell and character trigger @itemSell, which are called before item is bought&lt;br /&gt;
  by a vendor. The trigger is called only with EF_New_Triggers on.&lt;br /&gt;
  ACT/DEFAULT is the item, SRC is the player, ARGN is the item amount, ARGO is the vendor.&lt;br /&gt;
  Return 1 prevents the player from selling the item.&lt;br /&gt;
- Fixed: Serv.itemdef.xxx.skill not always returning the skill&lt;br /&gt;
- Fixed: A copy &amp;amp; paste error in TAG.OVERRIDE.AMMO* what prevented the animation stuff to run.&lt;br /&gt;
&lt;br /&gt;
25-09-2006, Nazghul&lt;br /&gt;
- Added: EF_DamageTool (0x2000) to Sphere.ini. Only if set tools/weapons will be damaged while&lt;br /&gt;
  lumberjacking/mining (what includes firing @Damage on them)&lt;br /&gt;
- Fixed: NPCs spawning with incorrect Z position.&lt;br /&gt;
&lt;br /&gt;
26-09-2006, Nazghul&lt;br /&gt;
- Modified: @(item)ContextMenuRequest and @(item)ContextMenuSelect now will not be called with&lt;br /&gt;
  EF_Minimize_Triggers on.&lt;br /&gt;
&lt;br /&gt;
27-09-2006, Nazghul&lt;br /&gt;
- Added: TDATA3 and TDATA4 of a container type item are now holding min and max coordinates of&lt;br /&gt;
  the &amp;quot;area were items may be placed&amp;quot;, relatively to the open container gump.&lt;br /&gt;
  TDATA3 is (MinX * 0x10000) + MinY, TDATA4 is (MaxX * 0x10000) + MaxY&lt;br /&gt;
  Be very careful with these settings - if they are set to illegal values (i.e., outside of the&lt;br /&gt;
  visible gump) Sphere will happily accept them, but your users will not be able to pick items&lt;br /&gt;
  placed there out of the container, because the client will only display then if they have the&lt;br /&gt;
  container gump as a background!&lt;br /&gt;
  If TDATA4 is not set (or set to 0), default values will apply, along with the console warning&lt;br /&gt;
  &amp;quot;unknown gump id&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
28-09-2006, Nazghul&lt;br /&gt;
- Added: MOREM value (0..127) on digestible food will override the amount of &amp;quot;food units&amp;quot;&lt;br /&gt;
  what will be added to the characters FOOD property when eating this. Obviously, items&lt;br /&gt;
  with different MOREM will not stack. Because on=@SUCCESS on cooking will not give you&lt;br /&gt;
  a reference to the newly created item but only to the raw one, MOREM will be transferred&lt;br /&gt;
  from the raw food (what you may alter in on=@success)&lt;br /&gt;
&lt;br /&gt;
29-09-2006, Nazghul&lt;br /&gt;
- Added: 3 defmessages, thus making the headline for the &amp;quot;c&amp;quot; console command configurable.&lt;br /&gt;
&lt;br /&gt;
01-10-2006, Nazghul&lt;br /&gt;
- Added: Intrinsic function IsObscene what tests whether the passed argument is a forbidden&lt;br /&gt;
  word (list of these words are in your spheretables.scp under the section OBSCENE).&lt;br /&gt;
- Fixed: Obscene not matching obscened words inside a string.&lt;br /&gt;
- Fixed #889: Fame.* and Karma.* always returning 0.&lt;br /&gt;
- Updated: spheretables.scp - added KARMA and FAME sections. Now you can change, add or remove&lt;br /&gt;
  keys which are used behind Karma. and Fame. . First line declares steps, other lines their&lt;br /&gt;
  names.&lt;br /&gt;
  IT IS HIGHLY RECOMMENDED TO UPDATE YOUR SPHERETABLES.SCP!!!&lt;br /&gt;
&lt;br /&gt;
02-10-2006, Nazghul (Script Pack)&lt;br /&gt;
- Fixed #867: sphere_minor_artifacts.scp, i_orcish_visage&lt;br /&gt;
- Updated: Flags notification on server startup&lt;br /&gt;
&lt;br /&gt;
02-10-2006, Nazghul&lt;br /&gt;
- Fixed #898: Some stairs unwalkable with EF_NewPositionChecks, EF_WalkCheck and&lt;br /&gt;
  EF_DiagonalWalkCheck on.&lt;br /&gt;
&lt;br /&gt;
05-10-2006, Nazghul&lt;br /&gt;
- Added: INI flag OF_OSIDamageMod (0x04)&lt;br /&gt;
  Modifying weapon damage OSI style, according to this formulas (originally provided by ClouD_Br):&lt;br /&gt;
  Tactics Damage Bonus% = Tactics � 1.6 (Add 6.25% if Tactics &amp;gt;= 100)&lt;br /&gt;
  Anatomy Damage Bonus% = (Anatomy � 2) + 5&lt;br /&gt;
  Lumberjack Damage Bonus% = Lumberjack � 2 (Add 10% if Lumberjacking &amp;gt;= 100)&lt;br /&gt;
  Strength Damage Bonus% = Strength * 0.3 (Add 5% if Strength &amp;gt;= 100)&lt;br /&gt;
  Final Damage Bonus% = Tactics Bonus + Anatomy Bonus + Lumber Bonus + Strangth Bonus + Damage Increase Items*&lt;br /&gt;
  Final Damage = Base Damage + (Base Damage * Final Damage Bonus%)&lt;br /&gt;
  * Damage Increase is capped at 100%.&lt;br /&gt;
&lt;br /&gt;
05-10-2006, Nazghul&lt;br /&gt;
- Fixed #036: Fixed TRY and TRYSRV not working with locals (local and arg*). TRYSRC and TRYP&lt;br /&gt;
  do not work, since it makes no sense to use it on local variables. (Thx to Ellessar who&lt;br /&gt;
  finally worked out how this SHOULD work, so we found the bug deeply buried under tons of&lt;br /&gt;
  old code)&lt;br /&gt;
&lt;br /&gt;
06-10-2006, Nazghul&lt;br /&gt;
- Added: Function ISNEARTYPETOP(.P) which uses new checks for resource gathering (item which&lt;br /&gt;
  you want to find must be at the top, if at the top there are 2 items, then the success&lt;br /&gt;
  depends on the priority (dynamic-&amp;gt;multi-&amp;gt;static-&amp;gt;terrain) of those items). Syntax is the&lt;br /&gt;
  same with ISNEARTYPE(.P). NOTE: This function is called from hardcode if EF_NewPositionChecks&lt;br /&gt;
  are on.&lt;br /&gt;
- Fixed #668: Delete packets of items which cannot be seen were sent to the client.&lt;br /&gt;
- Modified #632: Now, IsPlayer can be used on every game object.&lt;br /&gt;
- Modified: sphere.ini - added an NPC AI flag NPC_AI_INTFOOD which enables smarter and more&lt;br /&gt;
  trustworthy food finding.&lt;br /&gt;
&lt;br /&gt;
08-10-2006, Furio&lt;br /&gt;
- Modified: TRIGGER command. It now supports calling a trigger with arguments, the syntax is:&lt;br /&gt;
  TRIGGER $trigger_name[,$trigger_arg_type,...] where $trigger_arg_type can be:&lt;br /&gt;
  - TAT_AS_ARGN (1): uses arguments as ARGN. Example: TRIGGER @MyTest,&amp;lt;def.TAT_AS_ARGN&amp;gt;,1,2,3&lt;br /&gt;
                     will call @MyTest with ARGN1=1 ARGN2=2 ARGN3=3.&lt;br /&gt;
  - TAT_AS_ARGS (2): uses arguments as ARGS. Example: TRIGGER @MyTest,&amp;lt;def.TAT_AS_ARGS&amp;gt;,hi you 2,yo !&lt;br /&gt;
                     will call @MyTest with ARGS=hi you 2,yo !.&lt;br /&gt;
  - TAT_AS_ARGO (3): uses arguments as ARGN. Example: TRIGGER @MyTest,&amp;lt;def.TAT_AS_ARGO&amp;gt;,01&lt;br /&gt;
                     will call @MyTest with ARGO.UID=01 (only if object with such uid exist).&lt;br /&gt;
- Updated: sphere_defs.scp (with new definitions for the TRIGGER command).&lt;br /&gt;
- Fixed #880: Explode function not working as it should.&lt;br /&gt;
&lt;br /&gt;
09-10-2006, Nazghul&lt;br /&gt;
- fixed problems with spellbooks obviously triggered by new Gcc compiler for Linux with a weird&lt;br /&gt;
  workaround.&lt;br /&gt;
&lt;br /&gt;
10-10-2006, Nazghul&lt;br /&gt;
- Fixed #900: Added INI flag COMBAT_DCLICKSELF_UNMOUNT to unmount horse when dclicking self&lt;br /&gt;
  while in warmode.&lt;br /&gt;
&lt;br /&gt;
11-10-2006, Nazghul (Script Pack)&lt;br /&gt;
- Updated: sphere_msgs.scp - more defmessages to customize text output.&lt;br /&gt;
- Updated (#905): sphere_item_provisions_potions.scp - Shrink potion did not behave as expected.&lt;br /&gt;
&lt;br /&gt;
13-10-2006, Nazghul&lt;br /&gt;
- Added: Intrinsic functions SIN() and COS(). Attention: Without FLOAT math they will obviously&lt;br /&gt;
  only return 0 and 1 :)&lt;br /&gt;
&lt;br /&gt;
16-10-2006, Nazghul&lt;br /&gt;
- Added: Support for floats (local variables FLOAT.younameit, which have size of double, and&lt;br /&gt;
  can hold precise numbers). Usage of these variables is the same like LOCAL.younameit. As&lt;br /&gt;
  EVAL only uses integer arithmetic, with FLOAT math you have to use &amp;lt;FLOATVAL ()&amp;gt;&lt;br /&gt;
  (New code was done mainly by Ellessar and Decrythe, I just &amp;quot;glued&amp;quot; it into Sphere :) )&lt;br /&gt;
- Changed: Return values for @SPELLSELECT trigger. Touchup for @SELECT with spells. Different&lt;br /&gt;
  server behaviour can be achieved with the following RETURN values in trigger scripts:&lt;br /&gt;
  @SELECT&lt;br /&gt;
  	RETURN 0 - proceed without mana, spellbook, and reagent check as if these checks were&lt;br /&gt;
  						 successful&lt;br /&gt;
		RETURN 1 - Abort processing (so aborting the spell)&lt;br /&gt;
	  RETURN 2 - proceed as normal&lt;br /&gt;
	  RETURN 6 - like RETURN 0 (for compatibility with @SPELLSELECT)&lt;br /&gt;
  @SPELLSELECT&lt;br /&gt;
  	RETURN 0 - proceed as normal&lt;br /&gt;
		RETURN 1 - abort processing (so aborting the spell)&lt;br /&gt;
	  RETURN 2 - proceed as normal&lt;br /&gt;
	  RETURN 6 - proceed without mana, spellbook, and reagent check as if these checks were&lt;br /&gt;
	  					 successful&lt;br /&gt;
  @SPELLSELECT will be called after @SELECT - what means, if you leave @SELECT with RETURN 0 or&lt;br /&gt;
  RETURN 1, @SPELLSELECT will NOT be called!&lt;br /&gt;
&lt;br /&gt;
16-10-2006, Furio&lt;br /&gt;
- Added: DAM.HI/LO and ARMOR.HI/LO&lt;br /&gt;
&lt;br /&gt;
17-10-2006, Nazghul&lt;br /&gt;
- Added: Defmessage if skillgain is aborted due to GAINRADIUS not met; message will only be displayed&lt;br /&gt;
  if TAG.NOSKILLMSG=1 on character&lt;br /&gt;
- Fixed: Problems with long passwords and MD5 hash on.&lt;br /&gt;
&lt;br /&gt;
18-10-2006, Nazghul&lt;br /&gt;
- Added INI flag OF_DrinkIsFood (0x10000). If set, T_DRINK will increase FOOD lvl. like T_FOOD&lt;br /&gt;
&lt;br /&gt;
19-10-2006, Nazghul&lt;br /&gt;
- Added: Dynamic property &amp;quot;height&amp;quot; for characters.&lt;br /&gt;
&lt;br /&gt;
20-10-2006, Nazghul&lt;br /&gt;
- Updated: sphere_defs.scp - added defname charheight.&lt;br /&gt;
&lt;br /&gt;
21-10-2006, Nazghul&lt;br /&gt;
- Added: New &amp;quot;m&amp;quot; paramter for TARGET function. Now you can use TARGETM and TARGETFM for targeting&lt;br /&gt;
  a place for your multi (you will see your multi in the &amp;quot;ghost mode&amp;quot;). TARGETM takes as an argument&lt;br /&gt;
  ONLY ID of the multi, TARGETFM takes 2 arguments - function_to_call,ID_ot_the_multi.&lt;br /&gt;
&lt;br /&gt;
21-10-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on and AdvancedLOS on)&lt;br /&gt;
- Modified: CanSeeLOS now uses height of a character for its checks. Height is read in this order&lt;br /&gt;
  and first correct entry is used:&lt;br /&gt;
  1. Dynamic height property of an object&lt;br /&gt;
  2. Height property under CHARDEF/ITEMDEF (can be inherited)&lt;br /&gt;
  3. Defname in format &amp;quot;height_dispid&amp;quot;, while dispid is a hex number in Sphere format (0a3)&lt;br /&gt;
  4. Defname in format &amp;quot;height_dispid&amp;quot;, while dispid is a dec number&lt;br /&gt;
  5. Universal height - &amp;quot;15&amp;quot;&lt;br /&gt;
  If a character is mounted, its height is raised by 4. CanSeeLOS reduce height of an unmounted&lt;br /&gt;
  character by 1 (pretending eyes height).&lt;br /&gt;
  NOTE: This formula is used when you are doing .show height, or &amp;lt;height&amp;gt; in scripts.&lt;br /&gt;
&lt;br /&gt;
23-10-2006, Nazghul&lt;br /&gt;
- Fixed: #789 ModAR on characters only worked with damage of type GENERAL.&lt;br /&gt;
&lt;br /&gt;
23-10-2006, MrSugarCube&lt;br /&gt;
- Fixed: Webpage requests always displaying the &amp;quot;Internal Server Error&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
24-10-2006, Nazghul&lt;br /&gt;
- Added: Trigger @(item)Buy now has local.totalcost, which holds the cost of the whole purchase&lt;br /&gt;
  and ARGN2, which holds price of this amount of items (price * amount).&lt;br /&gt;
- Fixed: Trigger @(item)Buy returning bad amount in ARGN1.&lt;br /&gt;
- Added: Local variables LOCAL.CREATEOBJECT1 and LOCAL.CREATEOBJECT2 to @SUCCESS trigger of spells.&lt;br /&gt;
  These variables are _unset_ when the trigger is called. But they can be _set_ with field- and&lt;br /&gt;
  summon spells to change what these spells will create.&lt;br /&gt;
  - Summon spells (summon creature, bladeSpirit, Vortex, summon daemon, summon *elemental) take only&lt;br /&gt;
    the first one. If set with LOCAL.CREATEOBJECT1 = &amp;lt;eval c_orc&amp;gt; the spell will summon an orc. This&lt;br /&gt;
    way one can add more random daemons to the summon daemon spell, or change the spawned creature&lt;br /&gt;
    due to magery or whatever.&lt;br /&gt;
  - field spells (s_wall_of_stone, s_fire_field etc) take both variables, as usually the items for&lt;br /&gt;
    the field in west-east direction are different from those in north-south direction. If necessary&lt;br /&gt;
    they can of course be the same (s_fire_field looks impressive with i_fire_columns :) ), but BOTH&lt;br /&gt;
    have to be set (otherwise the unset will be replaced by the spell's default item for this dir).&lt;br /&gt;
    Example:&lt;br /&gt;
    [SPELL s_fire_field]&lt;br /&gt;
    ...&lt;br /&gt;
    on=@SUCCESS&lt;br /&gt;
      IF &amp;lt;magery&amp;gt; &amp;gt;= 99.9&lt;br /&gt;
        LOCAL.CREATEOBJECT1 = &amp;lt;eval i_fire_column&amp;gt;&lt;br /&gt;
        LOCAL.CREATEOBJECT2 = &amp;lt;eval i_fire_column&amp;gt;&lt;br /&gt;
      ENDIF&lt;br /&gt;
&lt;br /&gt;
24-10-2006, Pilz-e (Script pack)&lt;br /&gt;
- Updated: sphere_map0_ml.scp (Corrected P properties for ML locations)&lt;br /&gt;
&lt;br /&gt;
25-10-2006, Nazghul (Changes only with EF_NewPositionCheck, EF_WalkCheck and MountHeight on)&lt;br /&gt;
- Modified. You will not be able to go into a building if there is not enough space for you.&lt;br /&gt;
- Modified: You will not be able to mount a rideable if there is not enough space for you + ride.&lt;br /&gt;
- Modified: You will not be able to summon an NPC if there is not enough space for it.&lt;br /&gt;
- Modified: You will not be able to teleport (gate, recall) yourself to a spot where is not enough&lt;br /&gt;
  space for you.&lt;br /&gt;
&lt;br /&gt;
25-10-2006, Nazghul&lt;br /&gt;
- Updated: sphere_msgs.scp - added a new defmessage msg_summon_ceiling and modified&lt;br /&gt;
  the msg_mounted_ceiling defmessage.&lt;br /&gt;
&lt;br /&gt;
25-10-2006, Nazghul&lt;br /&gt;
- Changed: NPC_AI flags in sphere.ini. Started splitting them up to make it easier to track&lt;br /&gt;
  errors related to them. The respective INI section now reads:&lt;br /&gt;
  // NPC AI settings&lt;br /&gt;
  //	NPC_AI_PATH		0001		NPC pathfinding&lt;br /&gt;
  //	NPC_AI_FOOD		0002		NPC food search (objects + grass)&lt;br /&gt;
  //	NPC_AI_EXTRA		0004		NPC magics, etc&lt;br /&gt;
  //	NPC_AI_ALWAYSINT	0008		Always be as smart as possible with pathfinding&lt;br /&gt;
  //	NPC_AI_INTFOOD		0010		NPC food search (more intelligent and trusworthy)&lt;br /&gt;
  //	NPC_AI_COMBAT		0040		Look for friends in combat&lt;br /&gt;
  //	NPC_AI_VEND_TIME	0080		vendors closing their shops at nighttime&lt;br /&gt;
  //	NPC_AI_LOOTING		0100		loot corpses an the way&lt;br /&gt;
  //	NPC_AI_MOVEOBSTACLES	0200		if moveable items block my way, try to move them&lt;br /&gt;
  //NPCAI=0&lt;br /&gt;
&lt;br /&gt;
27-10-2006, Nazghul&lt;br /&gt;
- Fixed: Fishing not displaying an animation right after start.&lt;br /&gt;
- Fixed: Resource gathering with EF_NewPositionChecks on did not work on tiles with Z &amp;lt; 0.&lt;br /&gt;
- Added: Some more defmessages (also to sphere_msgs.scp), this time title-related&lt;br /&gt;
&lt;br /&gt;
28-10-2006, Furio&lt;br /&gt;
- Fixed #809: Wrong cheater message.&lt;br /&gt;
- Added #913: TAG.OVERRIDE.MAXITEMS/MAXWEIGHT on bank to override global settings.&lt;br /&gt;
- Added: TAG.PARTY_AUTODECLINEINVITE. If set on char it makes the char autodecline every invite.&lt;br /&gt;
- Modified: After an party invite you must wait a bit before inviting someone else.&lt;br /&gt;
&lt;br /&gt;
29-10-2006, Nazghul&lt;br /&gt;
- Added: Spell flag &amp;quot;SPELLFLAG_NOUNPARALYZE&amp;quot;, if the flag is turned on, victim won't be&lt;br /&gt;
  unparalyzed.&lt;br /&gt;
- Added: Damage flag &amp;quot;DAM_NOUNPARALYZE&amp;quot;, if the flag is turned on, victim won't be unparalyzed.&lt;br /&gt;
- Updated: sphere_spells.scp (added spellflag_nounparalyze to the paralyze field spell)&lt;br /&gt;
  and sphere_defs.scp&lt;br /&gt;
- Updated: sphereCrypt.ini&lt;br /&gt;
&lt;br /&gt;
31-10-2006, Nazghul&lt;br /&gt;
- Added: FEVAL and FHVAL which allow you to convert your float variable to a standard decimal or&lt;br /&gt;
  hexadecimal number. Numbers behind a decimal point are cut out.&lt;br /&gt;
  The syntax is: &amp;lt;feval &amp;lt;float.yourvar&amp;gt;&amp;gt; or &amp;lt;fhval &amp;lt;floatl.yourvar&amp;gt;&amp;gt;.&lt;br /&gt;
- Fixed: Addspell not working if used like &amp;lt;findid.i_spellbook.addspell 5&amp;gt;. Now, this syntax&lt;br /&gt;
  should return 1 if the spell passed as an argument is in the spellbook.&lt;br /&gt;
&lt;br /&gt;
02-11-2006, Nazghul&lt;br /&gt;
- Fixed: CanSeeLOS working through a &amp;quot;black hole&amp;quot; in terrain.&lt;br /&gt;
- Fixed: Walls with the impassable flag off blocking movement.&lt;br /&gt;
- Modified: IsArmor and IsWeapon now accept UID or ItemId as an argument.&lt;br /&gt;
&lt;br /&gt;
02-11-2006, MrSugarCube&lt;br /&gt;
- Fixed: Double &amp;quot;You have the key for this&amp;quot; message when attempting to use a lockpick or cast&lt;br /&gt;
  magic unlock on something you already have a key for.&lt;br /&gt;
&lt;br /&gt;
03-11-2006, Furio&lt;br /&gt;
- Added: DB.ESCAPEDATA $field returning $field escaped using the charset of the connected db.&lt;br /&gt;
&lt;br /&gt;
03-11-2006, Nazghul&lt;br /&gt;
- Added: Character trigger ON=@JAILED&lt;br /&gt;
  ARGN1 = 1 -&amp;gt; Char is up to be jailed, 0 -&amp;gt; char is up to be forgiven&lt;br /&gt;
  ARGN2 = Jail cell (0 if none special)&lt;br /&gt;
  RETURN 0 -&amp;gt; proceed as normal&lt;br /&gt;
  RETURN 1 -&amp;gt; stop the procedure without changing current status&lt;br /&gt;
- Added: Character property IsVerticalSpace, which returns 0 if there is not enough space for&lt;br /&gt;
  you and your mount (if you are mounted). Function takes position as an optional argument.&lt;br /&gt;
&lt;br /&gt;
05-11-2006, MrSugarcube&lt;br /&gt;
- Modified: SERV.BLOCKIP now accepts a second argument specifying the time to block the IP for&lt;br /&gt;
  in tenths of a second (-1 for permanent).&lt;br /&gt;
- Added: f_onserver_blockip, called when an IP is blocked from the server. ARGS contain the IP&lt;br /&gt;
  being blocked and ARGN1 holds the amount of time the IP will be blocked for (writable).&lt;br /&gt;
&lt;br /&gt;
05-11-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_serv_triggers.scp (Added f_onserver_blockip definition)&lt;br /&gt;
&lt;br /&gt;
10-11-2006, Nazghul&lt;br /&gt;
- Added: REFx as a local reference object, where x is a number between 1 and 65535. It can be&lt;br /&gt;
  used like an OBJ, but will be removed after leaving a function (like a LOCAL).&lt;br /&gt;
&lt;br /&gt;
15-11-2006, Nazghul&lt;br /&gt;
- Fixed #933: i_rune_paralyze is not removed.&lt;br /&gt;
- Fixed #934: NPCAI_Extra and heavy weapons.&lt;br /&gt;
&lt;br /&gt;
16-11-2006, Admin BladeCraft (Script pack)&lt;br /&gt;
- Updated: sphere_serv_triggers.scp (Added f_onserver_blockip under [PLEVEL 7] block)&lt;br /&gt;
&lt;br /&gt;
20-11-2006, MrSugarCube&lt;br /&gt;
- Fixed #940: Undefined keyword errors when using functions via [guildstone.]MEMBER.x.KEY.&lt;br /&gt;
&lt;br /&gt;
23-11-2006, MrSugarCube&lt;br /&gt;
- Added: Support for ConnectUO status request packet.&lt;br /&gt;
&lt;br /&gt;
23-11-2006, Furio&lt;br /&gt;
- Added: ALLOWBUYSELLAGENT in sphere.ini to allow rapid buy/sell.&lt;br /&gt;
&lt;br /&gt;
24-11-2006, MrSugarCube&lt;br /&gt;
- Fixed: Exceptions caused by not definined FAME.*/KARMA.* ranges.&lt;br /&gt;
- Fixed: Exception caused by using a spyglass from a ship.&lt;br /&gt;
- Modified: Walking off a ship plank no longer moves characters to adjacent ships.&lt;br /&gt;
&lt;br /&gt;
25-11-2006, MrSugarCube&lt;br /&gt;
- Fixed: Stamina not being sent to other party members, and stat bars for other party members&lt;br /&gt;
  not always showing the correct mana/stamina levels.&lt;br /&gt;
&lt;br /&gt;
26-11-2006, MrSugarCube&lt;br /&gt;
- Fixed #949: Possibility of taking items from inside containers within the bank.&lt;br /&gt;
- Fixed #947: ISARMOR causing errors when no arguments given.&lt;br /&gt;
- Fixed #960: .Extract and .UnExtract always using map 0.&lt;br /&gt;
- Modified #946: Items can no longer be moved from the trade window due to client limitations.&lt;br /&gt;
&lt;br /&gt;
26-11-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_msgs.scp (Added &amp;quot;msg_trade_cantmove&amp;quot; defmessage)&lt;br /&gt;
&lt;br /&gt;
27-11-2006, Vjaka&lt;br /&gt;
- Added: ATTACKER keyword to access last attackers of a character. Usage:&lt;br /&gt;
  &amp;lt;attacker&amp;gt;		returns amount of attackers&lt;br /&gt;
  &amp;lt;attacker.x&amp;gt;		returns UID of the attacker (or 0 if there is no attacker)&lt;br /&gt;
  &amp;lt;attacker.x.dam&amp;gt;	returns total damage done by the attacker&lt;br /&gt;
  The list is being cleared upon death after @DeathCorpse trigger.&lt;br /&gt;
- Removed: OF_Multithreaded option flag, it actually did not work at all.&lt;br /&gt;
- Removed: EF_Scripts_Parse_Verbs - now it is integrated into the parser and is used when needed.&lt;br /&gt;
- Modified: The way the scripts are being parsed, now they are not read from the disk on each&lt;br /&gt;
  operation, and are actually re-read only when you are doing a manual resync.&lt;br /&gt;
- Added: BETWEEN2 as opposite of BETWEEN, which selected min&amp;lt;-cur-&amp;gt;max to select towards&lt;br /&gt;
  minimum (max&amp;lt;-cur-&amp;gt;min).&lt;br /&gt;
&lt;br /&gt;
28-11-2006, Furio&lt;br /&gt;
- Fixed #951: FILE.WRITECHR not working as it should.&lt;br /&gt;
- Modified: Added error feedback for FOR* cycles.&lt;br /&gt;
&lt;br /&gt;
28-11-2006, MrSugarCube&lt;br /&gt;
- Fixed #932: Removing items with a Z greater than 25 not updating view for players.&lt;br /&gt;
&lt;br /&gt;
29-11-2006, Vjaka&lt;br /&gt;
- Modified: The exception handling routine to get more information about the place which causes&lt;br /&gt;
  the exception.&lt;br /&gt;
&lt;br /&gt;
30-11-2006, MrSugarCube&lt;br /&gt;
- Fixed #804: Multiple stackable items being created in a TEMPLATE not having the correct&lt;br /&gt;
  amounts.&lt;br /&gt;
- Fixed #664: Automatic loading of backup saves not working.&lt;br /&gt;
- Fixed: REPORTEDCLIVER always returning 0.0.0 and CLIENTIS3D always returning 0.&lt;br /&gt;
- Fixed: GUILDTITLE property on guild members not working.&lt;br /&gt;
- Fixed: KARMA.* ranges not accepting negative values.&lt;br /&gt;
- Modified #494: RESURRECT function now accepts a parameter specifying whether or not to&lt;br /&gt;
  ignore anti-magic fields (i.e. &amp;quot;RESURRECT 1&amp;quot; to ignore anti-magic field). Note that&lt;br /&gt;
  specifying 1 will also cause @[Spell]Effect triggers to not fire for the resurrection&lt;br /&gt;
  spell.&lt;br /&gt;
- Modified: Adding/Accepting an offline player into a guild now shows a more appropriate&lt;br /&gt;
  message to the client.&lt;br /&gt;
&lt;br /&gt;
01-12-2006, MrSugarCube&lt;br /&gt;
- Fixed: Corpses for creatures with higher RESLEVEL than the client's RESDISP not showing&lt;br /&gt;
  the body and hue specified in the creature's CHARDEF.&lt;br /&gt;
&lt;br /&gt;
02-12-2006, Nazghul&lt;br /&gt;
- Added: CanSeeLOSFlag which accepts flags for LOS check as the first argument and an object&lt;br /&gt;
  or a position as the second argument. For flags and their explanation see sphere_defs.scp.&lt;br /&gt;
&lt;br /&gt;
05-12-2006, Vjaka&lt;br /&gt;
- Fixed: Ships falling apart after rotation.&lt;br /&gt;
- Fixed #955: Some dialogs/sdialogs causing exceptions after they're opened.&lt;br /&gt;
&lt;br /&gt;
06-12-2006, Nazghul&lt;br /&gt;
- Modified: Now only ATTACKER.* works (not ATTACKERFUBAR), now only ATTACKER.*/ATTACKER.*.UID&lt;br /&gt;
  returns the UID of an attacker, ATTACKER.*.DAM returns damage done by the attacker * and&lt;br /&gt;
  ATTACKER.*.ELAPSED returns the time in seconds since the last hit of the attacker *.&lt;br /&gt;
- Modified: ATTACKERs are now also saved if they deal no damage.&lt;br /&gt;
&lt;br /&gt;
09-12-2006, Nazghul&lt;br /&gt;
- Fixed #965: Fishing with certain flags on not working.&lt;br /&gt;
- Fixed: Error messages about undefined item 00.&lt;br /&gt;
&lt;br /&gt;
09-12-2006, Furio&lt;br /&gt;
- Added: Encryption keys for client 5.0.7.0.&lt;br /&gt;
&lt;br /&gt;
09-12-2006, MrSugarCube&lt;br /&gt;
- Fixed: &amp;lt;REPORTEDCLIVER.&amp;gt; not showing the &amp;quot;.x&amp;quot; in client &amp;quot;5.0.6.5&amp;quot; and above.&lt;br /&gt;
&lt;br /&gt;
10-12-2006, Vjaka&lt;br /&gt;
- Added: Now keyword MAX can be used instead of number in ATTACKER in order to access the one&lt;br /&gt;
  who have dealt most damage.&lt;br /&gt;
- Removed: EF_Scripts_Ret_Strings has proven to be stable and correct during years, so it is&lt;br /&gt;
  now a default behavior of Sphere.&lt;br /&gt;
&lt;br /&gt;
16-12-2006, Furio&lt;br /&gt;
- Added: argument CLEAR to TIMERF. Now using x.TIMER CLEAR will delete all the timerf running on x.&lt;br /&gt;
&lt;br /&gt;
16-12-2006, MrSugarCube&lt;br /&gt;
- Fixed #979: PRIVSHOW feedback showing incorrect ON/OFF message.&lt;br /&gt;
- Fixed #977: +=/-= operators not working with REFx, and exception caused when TRYSRC is&lt;br /&gt;
  supplied with an invalid verb.&lt;br /&gt;
- Fixed #936: REFx interfering with functions beginning with REF (such as REFUSECANDIDATE&lt;br /&gt;
  on guildstones)&lt;br /&gt;
- Fixed: REFx allowing x to be out of range (should only allow 1 to 65535).&lt;br /&gt;
- Modified: &amp;lt;REFx&amp;gt; now returns the UID of the object stored in the REF like other object&lt;br /&gt;
  references.&lt;br /&gt;
- Modified: REFx no longer ignores attempts at being set to invalid UIDs - now in this case&lt;br /&gt;
  the REF will be cleared.&lt;br /&gt;
&lt;br /&gt;
16-12-2006, ShiryuX (Script pack)&lt;br /&gt;
- Updated: sphere_defs.scp (Added missing MT_MALE definition)&lt;br /&gt;
&lt;br /&gt;
18-12-2006, MrSugarCube&lt;br /&gt;
- Fixed #985: Clients on the &amp;quot;Status...&amp;quot; window not showing on seperate lines.&lt;br /&gt;
- Fixed #978: Setting LevelMode to unexpected values causing server freeze when calculating&lt;br /&gt;
  experience.&lt;br /&gt;
&lt;br /&gt;
19-12-2006, coruja747 (Script pack)&lt;br /&gt;
- Updated: sphere_admin.scp (Fixed IP Address and Location properties not greyed out for&lt;br /&gt;
  insubstantial characters)&lt;br /&gt;
- Updated: spherechar.scp and spherechar_evil.scp (Corrected Lava Lizard definition and&lt;br /&gt;
  moved it to spherechar.scp)&lt;br /&gt;
&lt;br /&gt;
19-12-2006, _Epila_ (Script pack)&lt;br /&gt;
- Updated: sphere_menu.scp (Removed [COMMENT MENU MENU_ADMIN] as it's no longer used)&lt;br /&gt;
&lt;br /&gt;
20-12-2006, MrSugarCube&lt;br /&gt;
- Modified: Tooltips that have been queued long enough for their object to no longer be on&lt;br /&gt;
  the client's screen are no longer sent.&lt;br /&gt;
&lt;br /&gt;
20-12-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Updated #988: sphere_msgs.scp (Added 3 &amp;quot;msg_serv_shutdown*&amp;quot; defmessages)&lt;br /&gt;
&lt;br /&gt;
20-12-2006, Nazghul&lt;br /&gt;
- Fixed #972: NPCs walking on water with EF_WalkCheck on.&lt;br /&gt;
- Fixed #982: Teleport allowed to water with EF_WalkCheck on.&lt;br /&gt;
&lt;br /&gt;
21-12-2006, MrSugarCube&lt;br /&gt;
- Fixed #971: Clock overflow that causes the game to freeze.&lt;br /&gt;
- Fixed: FRUIT property of crops not returning the correct value.&lt;br /&gt;
&lt;br /&gt;
22-12-2006, Nazghul&lt;br /&gt;
- Fixed: HEIGHT returning wrong value on DUPEd items.&lt;br /&gt;
&lt;br /&gt;
22-12-2006, Vjaka&lt;br /&gt;
- Fixed: HITS setting for items when MAXHITS was not specified, so you can act via HITS for&lt;br /&gt;
  items as well for saving with no need to differ HITS and HITPOINTS.&lt;br /&gt;
- Fixed: client problems with quick mounting horse while running causing no future updates&lt;br /&gt;
  being interpreted by client till .fix/.resend was done.&lt;br /&gt;
- Fixed: inject ,snoop command still having some cases to access items in undesired containers.&lt;br /&gt;
- Fixed #819: If we use rand(X), where X &amp;gt; 32767, we always get result of rand(131072).&lt;br /&gt;
&lt;br /&gt;
22-12-2006, Furio&lt;br /&gt;
- Fixed #816: Reading non-string data from sql is autoeval'd.&lt;br /&gt;
&lt;br /&gt;
23-12-2006, Vjaka&lt;br /&gt;
- Added: Region tag RestockVendors (in ticks) to alter time in which the vendors will auto restock.&lt;br /&gt;
  Default value is 10*60*10 (10 minutes).&lt;br /&gt;
&lt;br /&gt;
24-12-2006, MrSugarCube&lt;br /&gt;
- Fixed #1000: TAG.NAME.PREFIX not overriding the Lord/Lady title in the profile and paperdoll&lt;br /&gt;
  menus, and TAG.NAME.SUFFIX not showing at all.&lt;br /&gt;
- Fixed: Sphere crashing when a player opens a container with 810+ items inside.&lt;br /&gt;
&lt;br /&gt;
29-12-2006, MrSugarCube&lt;br /&gt;
- Fixed #973: Ship hatch contents being deleted upon turning the ship.&lt;br /&gt;
- Fixed #973: Ship planks becoming permanently unlocked when opened.&lt;br /&gt;
- Fixed #973: Fixed spam caused when attempting to attack an opponent outside of a ship.&lt;br /&gt;
- Fixed: MULTICREATE function not working without an SRC present.&lt;br /&gt;
- Fixed: Setting the ACCOUNT property of an NPC now properly sets it up as a player character&lt;br /&gt;
  without it being deleted by garbage collection.&lt;br /&gt;
- Modified #995: Logged out players are now moved along with moving ships.&lt;br /&gt;
- Modified #920: GMPAGE function can now be used with the arguments &amp;quot;ADD &amp;lt;Message&amp;gt;&amp;quot; to add &amp;lt;Message&amp;gt;&lt;br /&gt;
  to the page queue. This function should be called on a logged in player (eg: &amp;quot;GMPAGE ADD This is a&lt;br /&gt;
  page&amp;quot;).&lt;br /&gt;
- Added #973: Combat flag COMBAT_ALLOWHITFROMSHIP. Removes the combat restriction that prevents&lt;br /&gt;
  characters attacking from ships.&lt;br /&gt;
- Added: TILLER, HATCH and PLANK.x references for ships. PLANKS property can be used to determine&lt;br /&gt;
  how many planks are present on a ship.&lt;br /&gt;
&lt;br /&gt;
29-12-2006, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_msgs.scp (Added combat_outsideship to defmessages)&lt;br /&gt;
&lt;br /&gt;
30-12-2006, _Epila_ (Script pack)&lt;br /&gt;
- Updated: sphere_map_points3.scp (Added missing Doom dungeon teleporters)&lt;br /&gt;
&lt;br /&gt;
02-01-2007, MrSugarCube&lt;br /&gt;
- Fixed: Loginserver not sending server IPs correctly.&lt;br /&gt;
- Fixed: Response not being sent when a client sends a ping packet.&lt;br /&gt;
- Fixed: Hallucination ignoring RESLEVEL settings on the random bodies it selects.&lt;br /&gt;
- Modified: Trade window contents are no longer included in searches of a character's inventory. This&lt;br /&gt;
  affects CONSUME, *COUNT, FIND* and FORCONT* functions.&lt;br /&gt;
&lt;br /&gt;
02-01-2007, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: spherechar.scp (Replaced c_sea_monster definition to add protection against crashing newer&lt;br /&gt;
  clients)&lt;br /&gt;
&lt;br /&gt;
03-01-2007, MrSugarCube&lt;br /&gt;
- Fixed: MapChange packet not sending the correct map id for Trammel (Map 1)&lt;br /&gt;
- Modified: MAPx in sphere.ini now accepts a 5th parameter, for specifying the map id that should be&lt;br /&gt;
  given to the client (0=felucca, 1=trammel, 2=ilshenar, etc).&lt;br /&gt;
- Added: *Experimental* flag &amp;quot;EF_Mapdiff_Support&amp;quot; added to sphere.ini. Enables using mapdif and stadif&lt;br /&gt;
  files to patch terrain and statics.&lt;br /&gt;
&lt;br /&gt;
04-01-2007, MrSugarCube&lt;br /&gt;
- Fixed: Buying from vendors allowing players to carry more weight than they should. Excess items are&lt;br /&gt;
  now dropped to the ground.&lt;br /&gt;
- Fixed: Selling to off-duty vendors showing a warning message about an illegal &amp;quot;buy packet&amp;quot; instead&lt;br /&gt;
  of &amp;quot;sell packet&amp;quot;. Also added more detail to buy/sell packet cheater warnings.&lt;br /&gt;
- Modified: Resync messages are now always visible on the console.&lt;br /&gt;
&lt;br /&gt;
05-01-2007, MrSugarCube&lt;br /&gt;
- Fixed #1011: Trade title on the paperdoll written incorrectly.&lt;br /&gt;
&lt;br /&gt;
05-01-2007, Nazghul&lt;br /&gt;
- Fixed: Sphere now adds and removes the hiding/stealth buff icon automatically&lt;br /&gt;
&lt;br /&gt;
06-01-2007, MrSugarCube&lt;br /&gt;
- Fixed: SERV.RESYNC command being executed from scripts causing the server to freeze. Note that using&lt;br /&gt;
  SERV.RESYNC from scripts will now cause the resync pause to be delayed until after the script has&lt;br /&gt;
  completed execution.&lt;br /&gt;
- Modified: EFFECT property of crafting skills can now be used to define the percentage of resources&lt;br /&gt;
  that are lost when failing to craft an item. A few examples of how you can use this:&lt;br /&gt;
   &amp;quot;EFFECT=x&amp;quot;		- Always lose x% of resources on fail&lt;br /&gt;
   &amp;quot;EFFECT=x,y&amp;quot;		- Lose between x% and y% of resources on fail&lt;br /&gt;
   &amp;quot;EFFECT=x,y,z&amp;quot;	- Lose between x% and z% of resources on fail (weighted by y)&lt;br /&gt;
  If EFFECT is not set then resource loss will be as normal -&amp;gt; 0-50% resources lost.&lt;br /&gt;
- Added: TAG.OVERRIDE.GUARDS on regions to specify different guards per region.&lt;br /&gt;
- Added: Arguments for @CallGuards trigger:&lt;br /&gt;
   ARGN1 = Guard ID that will be created. (writable)&lt;br /&gt;
   ARGN2 = Force spawning a new guard. (writable)&lt;br /&gt;
   ARGO  = An already spawned guard that will be used, unless ARGN2 has been set to 1.&lt;br /&gt;
&lt;br /&gt;
06-01-2007, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_skills.scp (Removed EFFECT property from Alchemy and updated [COMMENT SKILL x] block)&lt;br /&gt;
&lt;br /&gt;
07-01-2007, MrSugarCube&lt;br /&gt;
- Fixed #1007: War/Peace button on paperdoll not correct when logging in with war mode.&lt;br /&gt;
&lt;br /&gt;
08-01-2007, MrSugarCube&lt;br /&gt;
- Fixed #1004: Target cursor appearing when calling functions starting with &amp;quot;SET&amp;quot; or &amp;quot;X&amp;quot;.&lt;br /&gt;
- Added #1013: SYSMESSAGELOC, for sending localized messages to clients. SMSGL can also be used as a shortcut.&lt;br /&gt;
  Syntax is: &amp;quot;SYSMESSAGELOC color,clilocid[,arguments]&amp;quot;&lt;br /&gt;
  All arguments must be separated by a comma &amp;quot;,&amp;quot;. Specify -1 for color if you do not wish to override it.&lt;br /&gt;
  Some examples of this being used (latest clilocs) are:&lt;br /&gt;
   &amp;quot;SYSMESSAGELOC -1,502771&amp;quot;			- Displays &amp;quot;You cannot reach that.&amp;quot;&lt;br /&gt;
   &amp;quot;SYSMESSAGELOC 2,1042758,MrSugarCube&amp;quot;	- Displays &amp;quot;You are now loyal to MrSugarCube.&amp;quot; in blue&lt;br /&gt;
   &amp;quot;SYSMESSAGELOC -1,1062695,MrSugarCube,4,5&amp;quot;	- Displays &amp;quot;MrSugarCube rolls the dice and gets a 4 and&lt;br /&gt;
						  a 5!&amp;quot;&lt;br /&gt;
- Modified #1013: '@color,font,unicode' in messages is now '@color,font,mode'. You can specify 1 for mode if&lt;br /&gt;
  you wish to use unicode (like before), or specify 2 if you wish to use a localized message (useful for&lt;br /&gt;
  overriding messages in sphere_msgs.scp). The above localization examples used with this method would be:&lt;br /&gt;
   &amp;quot;SYSMESSAGE @,,2 502771&amp;quot;&lt;br /&gt;
   &amp;quot;SYSMESSAGE @2,,2 1042758,MrSugarCube&amp;quot;&lt;br /&gt;
   &amp;quot;SYSMESSAGE @,,2 1062695,MrSugarCube,4,5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
09-01-2007, Furio&lt;br /&gt;
- Added: MD5HASH returning the md5 hash of the argument.&lt;br /&gt;
&lt;br /&gt;
11-01-2007, MrSugarCube&lt;br /&gt;
- Fixed: ATTACKER.x not working correctly.&lt;br /&gt;
- Fixed: Possible exception with handling mail message packet.&lt;br /&gt;
- Modified: Rewritten EF_Mapdiff_Support handling to perform much faster. This is done at the cost of some&lt;br /&gt;
  additional memory usage but it can now cope with populated worlds.&lt;br /&gt;
- Modified: Profiler now includes time spent loading map blocks.&lt;br /&gt;
&lt;br /&gt;
11-01-2007, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_spells.scp (Corrected FLAGS property of paralyze field spell)&lt;br /&gt;
&lt;br /&gt;
12-01-2007, Shadow Dragon&lt;br /&gt;
- Added: MulDiv script function. Usage &amp;quot;MulDiv number,multiplier,divider&amp;quot;. Returns result.&lt;br /&gt;
&lt;br /&gt;
12-01-2007, Vjaka&lt;br /&gt;
- Greatly increased speed of loading large scripts (especially annoying on resync).&lt;br /&gt;
- Fixed parsing script files when latest useful script line not ended by carriage return.&lt;br /&gt;
&lt;br /&gt;
15-01-2007, MrSugarCube&lt;br /&gt;
- Fixed #1027: SDIALOG claiming to be an undefined keyword when the specified dialog is already showing.&lt;br /&gt;
&lt;br /&gt;
16-01-2007, Nazghul&lt;br /&gt;
- Added: Character trigger @charAttack, @charClick, @charClienttooltip, @charDClick, which work like&lt;br /&gt;
  @itemXXX triggers, but for NPCs.&lt;br /&gt;
- Added: An item flag CAN_I_DCIGNORELOS and a character flag mt_nodclicklos. With these flags on, LOS checks&lt;br /&gt;
  on a dclicked item won't be performed.&lt;br /&gt;
- Added: An item flag CAN_I_DCIGNOREDIST and a character flag mt_nodclickdist. With these flags on, distance&lt;br /&gt;
  checks on a dclicked item won't be performed.&lt;br /&gt;
&lt;br /&gt;
16-01-2007, MrSugarCube&lt;br /&gt;
- Added #1029: @Cancel trigger to MENUs and SKILLMENUs.&lt;br /&gt;
- Modified: Items displayed on MENUs and SKILLMENUs can now be coloured. This can be done by prefixing the&lt;br /&gt;
  item description with &amp;quot;@color&amp;quot; (in the same way that sysmessages can be coloured). For example,&lt;br /&gt;
  &amp;quot;ON=i_sword_viking @2 This is a viking sword&amp;quot; will display a blue sword on the menu.&lt;br /&gt;
- Modified: Cancelling a PROMPTCONSOLE prompt no longer prevents the callback function from being called.&lt;br /&gt;
&lt;br /&gt;
16-01-2007, SaCi (Script pack)&lt;br /&gt;
- Updated: sphere_dialog.scp (Updated descriptions in [COMMENT DIALOG HELP_SECTION])&lt;br /&gt;
&lt;br /&gt;
17-01-2007, MrSugarCube&lt;br /&gt;
- Added: OPENPAPERDOLL character function. Without arguments it will display the current character's&lt;br /&gt;
  paperdoll to SRC. With the UID of a character given it will display the specified character's paperdoll to&lt;br /&gt;
  the current client.&lt;br /&gt;
&lt;br /&gt;
20-01-2007, Ellessar&lt;br /&gt;
- Fixed: Problems with stairs which have odd height (1,3,5,...).&lt;br /&gt;
- Fixed #1037: Buffs needed FEATURE_AOS_UPDATE_B to work.&lt;br /&gt;
&lt;br /&gt;
24-01-2007, MrSugarCube&lt;br /&gt;
- Fixed: Tillerman speech on the 3D client not shown in the correct colour.&lt;br /&gt;
&lt;br /&gt;
25-01-2007, Ellessar&lt;br /&gt;
- Fixed #1028: Problems with terrain height.&lt;br /&gt;
- Rewritten the whole NPC_AI_PATH, now it should be faster, more reliable and less buggy.&lt;br /&gt;
&lt;br /&gt;
28-01-2007, Ellessar&lt;br /&gt;
- Fixed: Pathfinding called on every NPC step.&lt;br /&gt;
- Fixed #987: ResMake returning wrong values if the item doesn't exist in the world.&lt;br /&gt;
- Fixed #1010: After casting a wall in a guard zone you were flagged as a criminal, also with the spellflag_harm&lt;br /&gt;
  flag off.&lt;br /&gt;
&lt;br /&gt;
28-01-2007, MrSugarCube&lt;br /&gt;
- Fixed: GAINRADIUS on skill definitions defaulting to random values.&lt;br /&gt;
&lt;br /&gt;
29-01-2007, Ellessar&lt;br /&gt;
- Optimized: MapCaching (using STL functions), which should result in less bugs and better performance.&lt;br /&gt;
- Fixed: Using .tele over water tiles was allowed.&lt;br /&gt;
&lt;br /&gt;
29-01-2007, Furio&lt;br /&gt;
- Modified: Is now possible to always use ARGO.verb directly.&lt;br /&gt;
- Added: In packetfilter functions ARGO is the CClient connected now (e.g. it allows SENDPACKET through&lt;br /&gt;
  ARGO.SENDPACKET syntax at any time)&lt;br /&gt;
&lt;br /&gt;
31-01-2007, MrSugarCube&lt;br /&gt;
- Fixed #771: Unicode characters being stripped from speech when keywords from Speech.mul are used.&lt;br /&gt;
- Added: Encryption keys for client 5.0.8.x to sphereCrypt.ini&lt;br /&gt;
&lt;br /&gt;
01-02-2007, MrSugarCube&lt;br /&gt;
- Fixed #755: GetResourceValue error being shown for items with valid resources after being shown for the&lt;br /&gt;
  first time.&lt;br /&gt;
- Modified: Changed the &amp;quot;GetResourceValue reentrant item=xxx&amp;quot; error to make more sense.&lt;br /&gt;
&lt;br /&gt;
02-02-2007, MrSugarCube&lt;br /&gt;
- Fixed #496: Musicianship skill triggering skill gain twice on success.&lt;br /&gt;
&lt;br /&gt;
03-02-2007, MrSugarCube&lt;br /&gt;
- Fixed #510: Notoriety status on tooltips not shown correctly when moving around.&lt;br /&gt;
&lt;br /&gt;
05-02-2007, Ellessar&lt;br /&gt;
- Added: Keyword GetRefType, which returns flag of the referenced type. The list of flags is in sphere_defs.scp.&lt;br /&gt;
- Updated: sphere_defs.scp - added ref_types defnames&lt;br /&gt;
&lt;br /&gt;
06-02-2007, Nazghul&lt;br /&gt;
- fixed #1047: NPC AI_CAN_LOOT missed a &amp;quot;not&amp;quot; so only animals looted :).&lt;br /&gt;
  Domestic animals will no more poop dung if frozen, stone, insubstantial or in warmode&lt;br /&gt;
&lt;br /&gt;
07-02-2007, Nazghul&lt;br /&gt;
- Fixed #1049: t_fire, t_campfire, t_spell are no longer dispellable if they have attr_move_never&lt;br /&gt;
- Added: more defmessages (update sphere_msgs.scp!)&lt;br /&gt;
&lt;br /&gt;
07-02-2007, Vjaka&lt;br /&gt;
- Modified console output in linux build. By default it assumes that it is not colored,&lt;br /&gt;
  launch with argument -c (./spheresvr -c) in order to get colored output. It screwed some consoles.&lt;br /&gt;
&lt;br /&gt;
08-02-2007, Nazghul&lt;br /&gt;
- Added: Skill flags SKF_NOANIM (don't show hardcoded anim for this skill) and SKF_NOSFX (don't play&lt;br /&gt;
  hardcoded sound for this skill). After setting this you can set anim/sfx yourself in @start&lt;br /&gt;
  or alike.&lt;br /&gt;
&lt;br /&gt;
08-02-2007, Ellessar&lt;br /&gt;
- Fixed #1050: Problems with underground caves.&lt;br /&gt;
&lt;br /&gt;
09-02-2007, MrSugarCube&lt;br /&gt;
- Fixed: ConnectUO Status requests sometimes reporting an encryption error.&lt;br /&gt;
&lt;br /&gt;
11-02-2007, Fisicka (Script pack)&lt;br /&gt;
- Fixed #1051: Bug in sphere_map_points0.scp and sphere_map_points1.scp&lt;br /&gt;
&lt;br /&gt;
11-02-2007, MrSugarCube&lt;br /&gt;
- Fixed #1037: ADDBUFF and REMOVEBUFF requiring FEATURE_AOS_UPDATE_B enabled to work.&lt;br /&gt;
- Fixed #1053: @color in [SKILL]MENUs displaying the wrong colour.&lt;br /&gt;
&lt;br /&gt;
12-02-2007, MrSugarCube&lt;br /&gt;
- Fixed #1058: Exception on linux build caused by items decaying without decay flag.&lt;br /&gt;
&lt;br /&gt;
13-02-2007, Nazghul&lt;br /&gt;
- Fixed #1059: Now NPC will be stuck with the lightsource they already have equipped.&lt;br /&gt;
&lt;br /&gt;
15-02-2007, Nazghul&lt;br /&gt;
- Added: First version of support for TNG's webscript reader. Use console command&lt;br /&gt;
  &amp;quot;tngstrip&amp;quot; to create a file what contains the information TNG needs from all &lt;br /&gt;
  your scripts (thus completely useless for script thieves). The file will be &lt;br /&gt;
  placed at the location defined with &amp;quot;StripPath=&amp;quot; in sphere.ini and is named &lt;br /&gt;
  &amp;quot;tngstrip.scp. Can be delivered either by a dedicated web server or the built-in &lt;br /&gt;
  of sphere itself.&lt;br /&gt;
&lt;br /&gt;
15-02-2007, Babidi (Script pack)&lt;br /&gt;
- Modified: sphere_dialog.scp - line 217, the highest skill is now SKILL_SPELLWEAVING.&lt;br /&gt;
&lt;br /&gt;
16-02-2007, Nazghul&lt;br /&gt;
- Added: TAG.OVERRIDE.AMMOANIMHUE for bow and crossboy-type weapons to locally &lt;br /&gt;
  override the color of the effect what will be used for displaying the shot.&lt;br /&gt;
&lt;br /&gt;
18-02-2007, MrSugarCube&lt;br /&gt;
- Fixed #1069: Stable masters giving food to invisible characters.&lt;br /&gt;
&lt;br /&gt;
20-02-2007, Nazghul&lt;br /&gt;
- Added SPELLFLAG_NO_CASTANIM (0x80000) to suppress the usual cast anim. &lt;br /&gt;
  This way a custom (perhaps race-, class-, magery-, experience-related) anim &lt;br /&gt;
  can be played @START/@SPELLCAST&lt;br /&gt;
&lt;br /&gt;
21-02-2007, MrSugarCube&lt;br /&gt;
- Fixed #1071: Undefined Symbol error caused when a function returns a string.&lt;br /&gt;
- Fixed #1075: The last line in script files being ignored.&lt;br /&gt;
- Fixed #1076: ALLSHOW switching off too late upon login.&lt;br /&gt;
- Added: Skill flag SKF_CRAFT. Skills with this flag set will function &lt;br /&gt;
  correctly with the MAKEITEM command.&lt;br /&gt;
&lt;br /&gt;
21-02-2007, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_defs.scp (Added SKF_CRAFT definition)&lt;br /&gt;
- Updated: sphere_map_points0.scp and sphere_map_points1.scp &lt;br /&gt;
  (Removed duplicate teleporters)&lt;br /&gt;
&lt;br /&gt;
22-02-2007, MrSugarCube&lt;br /&gt;
- Fixed #1078: Exception when walking in the top left corner of maps.&lt;br /&gt;
- Added #1079: ARGO in f_onchar_create, f_onchar_delete and f_onaccount_login &lt;br /&gt;
  is now the the client that is performing the action (note that at the time &lt;br /&gt;
  these functions are called, there is no character attached to the client so &lt;br /&gt;
  character properties are not accessible).&lt;br /&gt;
&lt;br /&gt;
22-02-2007, Nazghul&lt;br /&gt;
- Added: Character trigger @statchange (argn1: the stat, argn2: new value).&lt;br /&gt;
&lt;br /&gt;
25-02-2007, Ellessar&lt;br /&gt;
- Added: TAG.DEATHFLAGS which changes some death related behavior. The list of &lt;br /&gt;
  flags is in sphere_defs.scp and their names are pretty self-explaining.&lt;br /&gt;
- Fixed #1081: SERV.WRITELINE not adding a new line on Windows.&lt;br /&gt;
&lt;br /&gt;
25-02-2007, Ellessar (Script pack)&lt;br /&gt;
- Updated: sphere_defs.scp (Added death_flags defname)&lt;br /&gt;
&lt;br /&gt;
25-02-2007, Nazghul&lt;br /&gt;
- Added: TAG.OVERRIDE.MAXWEIGHT and TAG.OVERRIDE.MAXITEMS now are applying &lt;br /&gt;
  to all containers if set. If not, maximum weight is still unlimited, while &lt;br /&gt;
  max. item count is still default.&lt;br /&gt;
&lt;br /&gt;
26-02-2007, Ellessar&lt;br /&gt;
- Modified: Region trigger @Step will now work only with EF_New_Triggers &lt;br /&gt;
  on and EF_Minimize_Triggers off.&lt;br /&gt;
&lt;br /&gt;
27-02-2007, Ellessar&lt;br /&gt;
- Added: sphere.ini settings EventsPlayer, EventsRegion. These events are &lt;br /&gt;
  applied on all players/regions in the world.&lt;br /&gt;
- Updated: sphere.ini&lt;br /&gt;
&lt;br /&gt;
01-03-2007, Furio&lt;br /&gt;
- Added: LASTEVENT keyword on clients, returning the time of last packet &lt;br /&gt;
  receive (like serv.time).&lt;br /&gt;
- Modified: OF_OSIDamageMod and OF_Archery_CanMove are now CombatFlags &lt;br /&gt;
  (look in sphere.ini)&lt;br /&gt;
- Updated: sphere.ini&lt;br /&gt;
&lt;br /&gt;
01-03-2007, MrSugarCube&lt;br /&gt;
- Fixed #1092: Dead characters not showing on the status page.&lt;br /&gt;
- Fixed #1090: MOUNTHEIGHT checks preventing characters teleporting to valid &lt;br /&gt;
  locations if they are stuck under a low ceiling.&lt;br /&gt;
- Fixed #1085: MAXBASESKILL in sphere.ini applying to skills that players are &lt;br /&gt;
  unable to see in their skill menu. An INITHIDDENSKILLS setting has been added &lt;br /&gt;
  to sphere.ini so that this behaviour can be toggled.&lt;br /&gt;
- Fixed #1084: Vendor's constantly restocking goods instantly after selling them.&lt;br /&gt;
- Fixed: Players able to create characters with skill in undefined skills.&lt;br /&gt;
&lt;br /&gt;
01-03-2007, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_skills.scp (Missing skill cap for Animal Lore in SKILLCLASS 0)&lt;br /&gt;
&lt;br /&gt;
02-03-2007, Ellessar&lt;br /&gt;
- Fixed #1093: serv.restock not working. Now it updates all vendor boxes and &lt;br /&gt;
  world gem bits.&lt;br /&gt;
- Fixed: NPCs sometimes not spawning with EF_NewPositionChecks on.&lt;br /&gt;
- Modified: Trigger @CallGuards now have a reference &amp;quot;REF1&amp;quot;, which refers to &lt;br /&gt;
  the target of the guard.&lt;br /&gt;
- Modified: NPCs now won't 'talk and follow' you, if your distance from their &lt;br /&gt;
  spawn bit is greater than their homedist.&lt;br /&gt;
&lt;br /&gt;
02-03-2007, Vjaka&lt;br /&gt;
- Fixed: red NPCs spawning in cities from spawns at the edges of the town.&lt;br /&gt;
- Modified: now clients which spawns too many exceptions are disconnected.&lt;br /&gt;
- Added: GOLD property for character. It counts all gold coins on character &lt;br /&gt;
  and return them. Or, if used with argument, sets a new amount of gold, adding &lt;br /&gt;
  gold coins to reach the new sum. The most common usage would be similar to &lt;br /&gt;
  GOLD += 5000 and so on.&lt;br /&gt;
- Fixed: NPCs not being able to stumble upon hidden player character.&lt;br /&gt;
&lt;br /&gt;
05-03-2007, Furio&lt;br /&gt;
- Fixed #1098: Explosion potion activate with decay timer also if not activated.&lt;br /&gt;
&lt;br /&gt;
06-03-2007, Ellessar&lt;br /&gt;
- Added: ATTACKER.LAST, which works like ATTACKER.MAX, but returns the char which &lt;br /&gt;
  hit the victim for the last time.&lt;br /&gt;
&lt;br /&gt;
10-03-2007, Ellessar&lt;br /&gt;
- Added: Experimental flag EF_AllowTelnetPacketFilter, which allows telnet &lt;br /&gt;
  connections to fire a PACKETx function.&lt;br /&gt;
- Updated: sphere.ini&lt;br /&gt;
&lt;br /&gt;
12-03-2007, MrSugarCube&lt;br /&gt;
- Fixed #1062: &amp;quot;RETURN x&amp;quot; not always halting script execution or even returning &lt;br /&gt;
  the correct value.&lt;br /&gt;
- Fixed: Exceptions that are sometimes caused when attempting to use/take an item &lt;br /&gt;
  that cannot be reached.&lt;br /&gt;
&lt;br /&gt;
13-03-2007, Nazghul&lt;br /&gt;
- Added: keyword VISUALRANGE, parameter 1..18 to limit the visualrange of a client. &lt;br /&gt;
  After changing the visual range you should update the character in question once.&lt;br /&gt;
&lt;br /&gt;
13-03-2007, Ellessar&lt;br /&gt;
- Fixed #1106: PACKETx sometimes caused errors in console.&lt;br /&gt;
&lt;br /&gt;
16-03-2007, MrSugarCube&lt;br /&gt;
- Fixed #1113: Exception caused when an online player character is deleted.&lt;br /&gt;
- Fixed: ATTACKER.LAST only working when the last attack was within the last second.&lt;br /&gt;
&lt;br /&gt;
17-03-2007, Beyonder (Script pack)&lt;br /&gt;
- Updated: sphere_item_treasure_maps.scp (Updated to use 0.56b features)&lt;br /&gt;
&lt;br /&gt;
17-03-2007, Ellessar&lt;br /&gt;
- Added: Function SKILLTEST, which tests values of skills sent as arguments &lt;br /&gt;
  on the default character. Usage: &amp;lt;skilltest carpentry 68.9&amp;gt;&lt;br /&gt;
- Fixed: SKILLMAKE replacing types with item names.&lt;br /&gt;
&lt;br /&gt;
17-03-2007, Furio&lt;br /&gt;
- Fixed #1117: Unable to access subcontainers on the ground.&lt;br /&gt;
&lt;br /&gt;
17-03-2007, MrSugarCube&lt;br /&gt;
- Fixed #1118: Ship functions being reported as invalid commands.&lt;br /&gt;
&lt;br /&gt;
18-03-2007, Ellessar&lt;br /&gt;
- Added: ++/-- operators, which are in C languages.&lt;br /&gt;
- Fixed: RESENERGY is saved only if RESPOISON doesn't equal 0.&lt;br /&gt;
- Fixed: Possibility of double definition of events (sphere.ini + events +e...)&lt;br /&gt;
&lt;br /&gt;
24-03-2007, Furio&lt;br /&gt;
- Updated: sphereCrypt.ini with 5.0.9.0 keys.&lt;br /&gt;
- Removed: MEMORY_GUMPRECORD to track open dialogs. It now uses an internal system.&lt;br /&gt;
- Updated: sphere_defs.scp&lt;br /&gt;
- Added: ISDIALOGOPEN $dialogId. It returns the number of the opened $dialogId &lt;br /&gt;
  on the client.&lt;br /&gt;
- Fixed #1127: Items of the hatch can't be moved.&lt;br /&gt;
- Fixed #1129: GumpPicTiled don't work with dynamic origin.&lt;br /&gt;
&lt;br /&gt;
24-03-2007, ShiryuX (Script pack)&lt;br /&gt;
- Updated: sphere_dialog.scp (Reference at top)&lt;br /&gt;
&lt;br /&gt;
24-03-2007, RanXerox (Script pack)&lt;br /&gt;
- Updated: sphere_map_points0_ml.scp (Updated teleports)&lt;br /&gt;
&lt;br /&gt;
26-03-2007, Nazghul&lt;br /&gt;
- Added: Teleport effect and sound config keywords for Sphere.ini.&lt;br /&gt;
  Setting it to 0 disables the effect. Defaults are&lt;br /&gt;
  TeleportEffectNPC=0372a&lt;br /&gt;
  TeleportEffectPlayers=0372a&lt;br /&gt;
  TeleportEffectStaff=03709&lt;br /&gt;
  TeleportSoundNPC=01fe&lt;br /&gt;
  TeleportSoundPlayers=01fe&lt;br /&gt;
  TeleportSoundStaff=01f3&lt;br /&gt;
&lt;br /&gt;
27-03-2007, Vjaka&lt;br /&gt;
- Fixed: Allowed to cast spells without reagents.&lt;br /&gt;
&lt;br /&gt;
29-03-2007, MrSugarCube&lt;br /&gt;
- Fixed #1122: Exception when fighting with -100 dexterity.&lt;br /&gt;
- Fixed #1137: Containers closing when targeting them with .x/set.&lt;br /&gt;
&lt;br /&gt;
04-03-2007, MrSugarCube&lt;br /&gt;
- Fixed #1126: Creatures with neutral karma not spawning in guard zones.&lt;br /&gt;
&lt;br /&gt;
04-03-2007, Furio&lt;br /&gt;
- Added: PARTY.ISSAMEPARTYOF $uid, checking if the current party is the&lt;br /&gt;
  same of the char with $uid.&lt;br /&gt;
&lt;br /&gt;
06-04-2007, Nazghul&lt;br /&gt;
- Added: More defmessages&lt;br /&gt;
- Updated: sphere_msgs.scp&lt;br /&gt;
&lt;br /&gt;
14-04-2007, Sir Dwayne (Script pack)&lt;br /&gt;
- Fixed: Various flaws in npc scripts and sphere_item_unsorted.&lt;br /&gt;
&lt;br /&gt;
21-04-2007, coruja747 (Script pack)&lt;br /&gt;
- Updated: sphere_map2.scp (Corrected a_shrine_virtues area definition)&lt;br /&gt;
&lt;br /&gt;
27-04-2007, Ellessar&lt;br /&gt;
- Added: Character trigger @TradeAccepted (+@charTradeAccepted), which is called &lt;br /&gt;
  after both trade sides tick Accept Trade button. Default, ARGO - the first &lt;br /&gt;
  trader, SRC - the second one, ARGN1 - the number of items the first trader gets, &lt;br /&gt;
  ARGN2 - the number of items the second trader gets, REF1...REF&amp;lt;argn1&amp;gt; - &lt;br /&gt;
  references to items the first trader gets. Return 1 prevents the trade.&lt;br /&gt;
- Fixed: CTAGs deleted before calling @LogOut&lt;br /&gt;
&lt;br /&gt;
30-04-2007, MrSugarCube&lt;br /&gt;
- Modified #1162: A comma ',' can be used under the NOTOTITLES section to &lt;br /&gt;
  optionally specify seperate titles for female characters.&lt;br /&gt;
- Modified: EF_MapDiff_Support has been removed, and map diffs are now enabled &lt;br /&gt;
  via the USEMAPDIFFS setting in sphere.ini.&lt;br /&gt;
&lt;br /&gt;
02-05-2007, MrSugarCube&lt;br /&gt;
- Fixed: Exception when using ACCOUNT.CHAR.x.KEY when the index 'x' does not exist.&lt;br /&gt;
&lt;br /&gt;
03-05-2007, MrSugarCube&lt;br /&gt;
- Fixed: Server IPs on the server list being sent incorrectly to older clients.&lt;br /&gt;
&lt;br /&gt;
05-05-2007, MrSugarCube&lt;br /&gt;
- Added: Experimental flag EF_UsePingServer. This will enable a server for &lt;br /&gt;
  receiving pings from clients viewing the server list. Uses UDP port 12000.&lt;br /&gt;
&lt;br /&gt;
06-05-2007, Ellessar&lt;br /&gt;
- Added: Missing character trigger @SpellFail (called before @Fail in a &lt;br /&gt;
  SPELL section)&lt;br /&gt;
&lt;br /&gt;
06-05-2007, MrSugarCube&lt;br /&gt;
- Fixed #1169: Exception caused by the count parameter being negative in the &lt;br /&gt;
  STRSUB function.&lt;br /&gt;
&lt;br /&gt;
08-05-2007, Ellessar&lt;br /&gt;
- Fixed: POW (@) does not work when using inside 'floatval'.&lt;br /&gt;
&lt;br /&gt;
10-05-2007, MrSugarCube&lt;br /&gt;
- Fixed #1176: RANGE property on items returning 0 when the minimum range is 0, &lt;br /&gt;
  when in this case it should return the maximum range.&lt;br /&gt;
- Fixed #1178: Automatic loading of backup saves not unloading all of the data &lt;br /&gt;
  from the previous save.&lt;br /&gt;
&lt;br /&gt;
17-05-2007, Sir Dwayne (Script pack)&lt;br /&gt;
- Updated: sphere_item_building_fence.scp, sphere_item_building_stairs.scp,&lt;br /&gt;
  sphere_item_building_walls.scp (Reordering of some fences, stairs and walls)&lt;br /&gt;
&lt;br /&gt;
17-05-2007, MrSugarCube&lt;br /&gt;
- Fixed: SPELLFLAG_NOUNPARALYZE doing the opposite of its description.&lt;br /&gt;
- Fixed #1181: Casting field spells on players not giving criminal status even &lt;br /&gt;
  when SPELLFLAG_HARM is set.&lt;br /&gt;
- Fixed #1182: Crash when opening the .edit menu on a player with too many &lt;br /&gt;
  equipped items.&lt;br /&gt;
&lt;br /&gt;
17-05-2007, Furio&lt;br /&gt;
- Added: DSPEECH prop to players. Its purpose is to intercept player speech &lt;br /&gt;
  like SpeechSelf, but it allows multiple speech block (DSPEECH +spk_lol add spk_lol, &lt;br /&gt;
  DSPEECH -spk_lol removes it). Return 1 on the speech block interrupt execution and &lt;br /&gt;
  prevent the player from speaking, Return 4 blocks the execution while allowing the &lt;br /&gt;
  player to speech.&lt;br /&gt;
- Added: ISDSPEECH prop to players. Its purpose is to chech if a speech block is in&lt;br /&gt;
  DSPEECH in a similar way of ISEVENT.&lt;br /&gt;
&lt;br /&gt;
18-05-2007, MrSugarCube&lt;br /&gt;
- Modified #1155: The COMPONENT property of multi definitions can now be given &lt;br /&gt;
  the ID of any scripted item.&lt;br /&gt;
  &lt;br /&gt;
20-05-2007, Furio&lt;br /&gt;
- Fixed: Trade windows not bouncing correctly some of the items.&lt;br /&gt;
&lt;br /&gt;
20-05-2007, MrSugarCube&lt;br /&gt;
- Fixed: Sphere running slowly, due to new threading not ticking as much as &lt;br /&gt;
  old threading.&lt;br /&gt;
&lt;br /&gt;
22-05-2007, ShadowDragon&lt;br /&gt;
- Added: Support for Int and Color options to CHARDEF.&lt;br /&gt;
&lt;br /&gt;
22-05-2007, Camelotten (Script pack)&lt;br /&gt;
- Fixed: jobvet.scp - an excessive '&amp;lt;' in &amp;quot;&amp;lt;SRC.SEX &amp;lt;Mi'Lord/Mi'Lady&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
26-05-2007, MrSugarCube&lt;br /&gt;
- Fixed #1194: Polymorph becoming a permanent effect during worldsaves.&lt;br /&gt;
&lt;br /&gt;
27-05-2007, Nazghul&lt;br /&gt;
- Added: MODAR on weapons should modify the DAM effect of a weapon&lt;br /&gt;
&lt;br /&gt;
28-05-2007, Furio&lt;br /&gt;
- Fixed #1201: DB.EXECUTE executing commands also when not connected.&lt;br /&gt;
&lt;br /&gt;
29-05-2007, MrSugarCube&lt;br /&gt;
- Fixed #1203: Multis not being visible from a distance.&lt;br /&gt;
&lt;br /&gt;
31-05-2007, Nazghul&lt;br /&gt;
- Fixed #1206: using character function &amp;quot;.gold&amp;quot; with negative numbers crashed &lt;br /&gt;
  the server.&lt;br /&gt;
&lt;br /&gt;
02-06-2007, Furio&lt;br /&gt;
- Fixed #1208: If modstat is negative and &amp;gt; ostat, all skills affected by &lt;br /&gt;
  that stat become 65535.&lt;br /&gt;
- Fixed #1186: Starvation incorrectly damages affected player's equipment&lt;br /&gt;
&lt;br /&gt;
02-06-2007, Almost all the dev team&lt;br /&gt;
- Fixed #1188: Incorrect save output.&lt;br /&gt;
- Fixed #1191: Sphere closing when using crafting skills (related to #1188).&lt;br /&gt;
&lt;br /&gt;
02-06-2007, MrSugarCube&lt;br /&gt;
- Fixed: Unable to gain musicianship past 30%.&lt;br /&gt;
&lt;br /&gt;
06-06-2007, Furio (Script Pack)&lt;br /&gt;
- Fixed #1213: &amp;quot;admin&amp;quot; in console (sphere_admin.scp)&lt;br /&gt;
&lt;br /&gt;
08-06-2007, MrSugarCube&lt;br /&gt;
- Fixed #1211: FORCONTID and FORCONTTYPE not working.&lt;br /&gt;
- Fixed #1212: Reactive Armor causing a server crash when damaging self.&lt;br /&gt;
&lt;br /&gt;
11-06-2007, MrSugarCube&lt;br /&gt;
- Fixed: Vendor menus on clients later than 4.0.0 not showing correctly for &lt;br /&gt;
  renamed items when ACCOUNT.RESDISP is not correctly set to AOS+.&lt;br /&gt;
&lt;br /&gt;
14-06-2007, Fire-Dragon-DoL&lt;br /&gt;
- Fixed #1220: typos in sphere_guild_functions.scp&lt;br /&gt;
&lt;br /&gt;
26-06-2007, Nazghul&lt;br /&gt;
- Added: Character trigger @SkillChange. Fires whenever the skill raises due &lt;br /&gt;
  to a gain. ARGN1 is the skill number (e.g. 43 for wrestling), ARGN2 is the &lt;br /&gt;
  skill value AFTER the change happens. RETURN 1 (or 2, or 666) means that the &lt;br /&gt;
  skill will NOT change.&lt;br /&gt;
&lt;br /&gt;
29-06-2007, Torfo&lt;br /&gt;
- Added: ADDMD5. If md5 is enabled in the sphere.ini you can use ADDMD5 to &lt;br /&gt;
  bypass the hashing algorithm, if MD5 isn't enabled it's the same as ADD.&lt;br /&gt;
  Usage: &amp;quot;ACCOUNT ADDMD5 name hash&amp;quot;&lt;br /&gt;
&lt;br /&gt;
06-07-2007, Nazghul&lt;br /&gt;
- Fixed: RETURN 1 in region triggers @exit, @enter did not tell the client that &lt;br /&gt;
  the movement was stopped what led to some weird rubberband effects. &lt;br /&gt;
  (thx. to MrSugarCube for help)&lt;br /&gt;
- Added: Character triggers @RegionEnter, @RegionLeave. ARGO is the region in &lt;br /&gt;
  question, RETURN 1 works like in region triggers @exit, @enter.&lt;br /&gt;
&lt;br /&gt;
12-07-2007, Nazghul&lt;br /&gt;
- Fixed: #1222 MAGICF_IGNOREAR rendered armor useless even on non magic damage&lt;br /&gt;
- some cleanups regarding NPC accepting/rejecting items&lt;br /&gt;
- Added: Hungry NPC try to pick ripe crops if available&lt;br /&gt;
- Added: ACTP character property (like ACTDIFF, ACTARG etc.) to work with for &lt;br /&gt;
  example ACTION 102&lt;br /&gt;
- Added: Poisoned Food (MOREz = poison strength [0..100]) will poison whoever &lt;br /&gt;
  eats it; NPC might refuse eating poisoned food depending on their TasteID skill&lt;br /&gt;
&lt;br /&gt;
15-07-2007, Ellessar&lt;br /&gt;
- Modified: Now you can get AREADEF regions from inside a multi with the help &lt;br /&gt;
  of an additional &amp;quot;region&amp;quot; keyword (e.g. region.region.name).&lt;br /&gt;
&lt;br /&gt;
17-07-2007, MrSugarCube&lt;br /&gt;
- Fixed: Multis from newer expansions not loading correctly.&lt;br /&gt;
&lt;br /&gt;
17-07-2007, Admin BladeCraft (Script pack)&lt;br /&gt;
- Updated #1236: sphere_item_magic_weapon.scp, sphere_template.scp,&lt;br /&gt;
  sphere_backward_compatibility.scp (Changed misspelled defname &lt;br /&gt;
  i_axe_war_VANQUISIHNG to i_axe_war_VANQ)&lt;br /&gt;
- Updated #1237: sphere_defs.scp (Fixed broken random templates)&lt;br /&gt;
&lt;br /&gt;
18-07-2007, Nazghul&lt;br /&gt;
- Changed Ping Attack detection so that it only issues a warning if the &amp;quot;attack&amp;quot;&lt;br /&gt;
  comes from LocalAddress and/or 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
19-07-2007, MrSugarCube&lt;br /&gt;
- Added: Support for packet changes in client 6.0.1.7. With clients running&lt;br /&gt;
  on slower connections there may still be issues as Sphere cannot identify&lt;br /&gt;
  the 4th digit of the client version until after the client has logged in.&lt;br /&gt;
  If you want to override all 6.0.1.* clients to use the 6.0.1.7 packet&lt;br /&gt;
  changes (and thus correct the issue with slower connections, but at the&lt;br /&gt;
  same time remove support for 6.0.1.0-6 clients), find the following line&lt;br /&gt;
  in sphereCrypt.ini:&lt;br /&gt;
    0600010 02F2BA7ED 0A2817E7F ENC_TFISH // 6.00.10&lt;br /&gt;
  and change it to:&lt;br /&gt;
    0600018 02F2BA7ED 0A2817E7F ENC_TFISH // 6.00.18&lt;br /&gt;
- Added: FIXWEIGHT function for characters, which acts the same as FIXWEIGHT&lt;br /&gt;
  does on containers (recalculates the total weight of the items in their&lt;br /&gt;
  possession).&lt;br /&gt;
&lt;br /&gt;
29-07-2007, Nazghul&lt;br /&gt;
- Just a fix in writing: Item tag.override_SKILL can also be written as&lt;br /&gt;
  tag.override.skill (as the other OVERRIDE tags)&lt;br /&gt;
&lt;br /&gt;
04-08-2007, Ellessar&lt;br /&gt;
- Fixed #1239: Lumberjacking caused Sphere to crash, when failed.&lt;br /&gt;
- Fixed: ISNEARTYPETOP did not work as intented (also changes some hardcoded&lt;br /&gt;
  gathering related behavior.)&lt;br /&gt;
- Modified #1238: Sphere now tells you that you do not use SERV.MAP correctly&lt;br /&gt;
  and does not throw an exception.&lt;br /&gt;
- Fixed #1197: RANGE property was not inherited through ID property.&lt;br /&gt;
&lt;br /&gt;
09-08-2007, MrSugarCube&lt;br /&gt;
- Fixed #1153: House placement checking a larger area than the multi region&lt;br /&gt;
  specifies.&lt;br /&gt;
- Fixed: Guards being attacked and calling new guards instead of fighting&lt;br /&gt;
  back properly.&lt;br /&gt;
- Fixed: Incorrect client version detection for client 6.0.1.10.&lt;br /&gt;
&lt;br /&gt;
10-08-2007, MrSugarCube&lt;br /&gt;
- Fixed #753: Crafting skills no longer consume items that match the one&lt;br /&gt;
  you're attempting to create (unless the resources property specifically&lt;br /&gt;
  states that the item can be crafted from itself).&lt;br /&gt;
- Fixed #1138: Scripts could be loaded multiple times if the file extension&lt;br /&gt;
  was not provided.&lt;br /&gt;
&lt;br /&gt;
10-08-2007, MrSugarCube&lt;br /&gt;
- Added: Support for AOS Custom Housing through a new item type 't_multi_custom'.&lt;br /&gt;
 &amp;gt; See the sphere_item_multis_foundations.scp and add-on/House_Placement&lt;br /&gt;
   scripts for examples of it's use.&lt;br /&gt;
 &amp;gt; Custom houses (t_multi_custom) will be saved to a new save file named&lt;br /&gt;
   spheremultis.scp.&lt;br /&gt;
 &amp;gt; Note that Sphere will require access to doors.txt, misc.txt, floors.txt,&lt;br /&gt;
   teleprts.txt, roof.txt, and  walls.txt from the UO folder as these provide&lt;br /&gt;
   lists of valid items. Also, all these items should exist in scripts for them&lt;br /&gt;
   to be added to a building - note that the default script pack is currently&lt;br /&gt;
   missing several sets of floors and walls.&lt;br /&gt;
 &amp;gt; New functions and properties have been added that can be used with items of&lt;br /&gt;
   the type t_multi_custom. These are:&lt;br /&gt;
   -- References --&lt;br /&gt;
    &amp;quot;DESIGNER&amp;quot;            The player currently designing the building.&lt;br /&gt;
   -- Properties --&lt;br /&gt;
    &amp;quot;COMPONENTS&amp;quot;   (r)    The number of components in the building design.&lt;br /&gt;
    &amp;quot;FIXTURES&amp;quot;     (r)    The number of fixtures in the building design (doors&lt;br /&gt;
                          and teleporters/t_door and t_telepad).&lt;br /&gt;
    &amp;quot;DESIGN.x.KEY&amp;quot; (r)    Accesses component x in the building design and&lt;br /&gt;
                          returns the given property. Possible properties are:&lt;br /&gt;
                            ID: The ID of the component.&lt;br /&gt;
                            DX: The x offset of the component.&lt;br /&gt;
                            DY: The y offset of the component.&lt;br /&gt;
                            DZ: The z offset of the component.&lt;br /&gt;
                            D:  The x,y,z offset of the component.&lt;br /&gt;
                            FIXTURE:  Returns 1 if the component is a fixture.&lt;br /&gt;
    &amp;quot;DESIGNER&amp;quot;     (r)    The uid of the player designing the building (or 0).&lt;br /&gt;
    &amp;quot;EDITAREA&amp;quot;     (r)    The editable range of coordinates when in design&lt;br /&gt;
                          mode (TopLeftX,TopLeftY,BottomRightX,BottomRightY).&lt;br /&gt;
    &amp;quot;REVISION&amp;quot;     (r)    The revision number of the building design.&lt;br /&gt;
   -- Functions --&lt;br /&gt;
    &amp;quot;ADDITEM id,x,y,z&amp;quot;    Adds an item to the building design (see COMMIT).&lt;br /&gt;
    &amp;quot;ADDMULTI id,x,y,z&amp;quot;   Adds a multi to the building design (see COMMIT).&lt;br /&gt;
    &amp;quot;CLEAR&amp;quot;               Wipes the building of all components (see COMMIT).&lt;br /&gt;
    &amp;quot;COMMIT&amp;quot;              Commits changes made to the building design.&lt;br /&gt;
    &amp;quot;CUSTOMIZE [uid]&amp;quot;     Enters the given player (or SRC) into design mode.&lt;br /&gt;
    &amp;quot;ENDCUSTOMIZE&amp;quot;        Forces the player to exit design mode.&lt;br /&gt;
    &amp;quot;REMOVEITEM id,x,y,z&amp;quot; Removes an item from the building design (see&lt;br /&gt;
                          COMMIT). If the given id is 0 then any items found&lt;br /&gt;
                          at the location will be removed.&lt;br /&gt;
    &amp;quot;RESET&amp;quot;               Resets the building to it's default state (see&lt;br /&gt;
                          COMMIT).&lt;br /&gt;
    &amp;quot;RESYNC [uid]&amp;quot;        Resends the building structure to the given player&lt;br /&gt;
                          (or SRC)&lt;br /&gt;
 &amp;gt; Players also have some new house design-related properties and triggers.&lt;br /&gt;
   These are:&lt;br /&gt;
   -- References --&lt;br /&gt;
     &amp;quot;HOUSEDESIGN&amp;quot;        The building this player is currently designing.&lt;br /&gt;
   -- Properties --&lt;br /&gt;
    &amp;quot;HOUSEDESIGN&amp;quot;(r)      The uid of the building this player is designing (or&lt;br /&gt;
                          0).&lt;br /&gt;
   -- Triggers --&lt;br /&gt;
    @HouseDesignCommit    Called on a character when they commit a new design.&lt;br /&gt;
                            ARGN1:    Number of components in the old design.&lt;br /&gt;
                            ARGN2:    Number of components in the new design.&lt;br /&gt;
                            ARGN3:    The revision number of the new design.&lt;br /&gt;
                            ARGO:     The building being designed.&lt;br /&gt;
                            LOCAL.FIXTURES.OLD:    Number of fixtures in the&lt;br /&gt;
                                                   old design.&lt;br /&gt;
                            LOCAL.FIXTURES.NEW:    Number of fixtures in the&lt;br /&gt;
                                                   new design.&lt;br /&gt;
                            RETURN 1: Block the commit.&lt;br /&gt;
    @HouseDesignExit      Called on a character when they exit design mode.&lt;br /&gt;
                            ARGN1:    Is set to 1 if the character being forced&lt;br /&gt;
                                      out of house design mode (ie. they're&lt;br /&gt;
                                      logging out).&lt;br /&gt;
                            ARGO:     The building being designed.&lt;br /&gt;
                            RETURN 1: Keeps the client in design mode (if ARGN1&lt;br /&gt;
                                      was 0).&lt;br /&gt;
&lt;br /&gt;
10-08-2007, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_defs.scp (Updated type defnames)&lt;br /&gt;
- Updated: sphere_item_building_walls.scp (Split i_wall_stone_4's DUPELIST into&lt;br /&gt;
  different defnames for different wall heights)&lt;br /&gt;
- Updated: sphere_item_ground_tiles.scp (Added a few missing water tiles and split the&lt;br /&gt;
  waterfall DUPELIST into different defnames for different waterfall heights)&lt;br /&gt;
- Updated: sphere_item_profession_alchemist_mage.scp (Set the types of i_rune_alchem_*&lt;br /&gt;
  items to t_telepad)&lt;br /&gt;
- Added: sphere_item_multis_foundations.scp (Added foundation multi definitions)&lt;br /&gt;
- Added: sphere_item_multis_stairs.scp (Added stair multi definitions)&lt;br /&gt;
- Added: sphere_item_building_roofs_aos.scp (Added AOS roof definitions)&lt;br /&gt;
- Added: sphere_item_building_roofs_ml.scp (Added ML roof definitions)&lt;br /&gt;
- Added: sphere_item_building_stairs_ml.scp (Added ML stair definitions)&lt;br /&gt;
- Added: add-on/House_Placement.zip (Added a sample script that allows custom houses&lt;br /&gt;
  to be design by players)&lt;br /&gt;
&lt;br /&gt;
14-08-2007, Nazghul&lt;br /&gt;
- Modified: sphere_defs.scp, added DEATHFLAG_HASCORPSE (010) to deathflags. If set on&lt;br /&gt;
  a character like water elemental it will leave a corpse. Caveat: If DEATHFLAG_NOCORPSE&lt;br /&gt;
  and DEATHFLAG_HASCORPSE are set, the NOCORPSE takes precedence!&lt;br /&gt;
&lt;br /&gt;
17-08-2007, Nazghul&lt;br /&gt;
- Added: Item CAN flag CAN_I_BLOCKLOS (see sphere_defs.scp). Works only if&lt;br /&gt;
  INI option AdvancedLOS is != 0.&lt;br /&gt;
&lt;br /&gt;
18-08-2007, Nazghul&lt;br /&gt;
- Added: Spellflags TARG_NO_PLAYER and TARG_NO_NPC&lt;br /&gt;
- Updated: sphere_msgs.scp and sphere_defs.scp &lt;br /&gt;
&lt;br /&gt;
19-08-2007, MrSugarCube&lt;br /&gt;
- Fixed #1242: TAT_AS_ARGO Triggers not working with hexadecimal uids.&lt;br /&gt;
- Fixed #1243: MODAR on weapons not showing the correct minimum damage on the&lt;br /&gt;
  status window and tooltips.&lt;br /&gt;
- Fixed #1244: TAGAT.x.KEY and TAGAT.x.VAL returning the opposite properties.&lt;br /&gt;
&lt;br /&gt;
21-08-2007, MrSugarCube&lt;br /&gt;
- Fixed #1246: Exception caused by using EQUIPWEAPON function on a character&lt;br /&gt;
  with no backpack.&lt;br /&gt;
- Fixed #1247: NPCs not moving closer to their targets when they're using a&lt;br /&gt;
  bow with a shorter range than the ini's archery range settings.&lt;br /&gt;
&lt;br /&gt;
25-08-2007, Beyonder (Script pack)&lt;br /&gt;
- Fixed #815: sphere_item_resources.scp (i_blood_2 not decaying: Changed the&lt;br /&gt;
  definition so that i_blood_2 now has a weight)&lt;br /&gt;
&lt;br /&gt;
30-08-2007, MrSugarCube&lt;br /&gt;
- Fixed #1248: Incorrect container weight shown on tooltips.&lt;br /&gt;
&lt;br /&gt;
04-09-2007, coruja747 (Script pack)&lt;br /&gt;
- Updated #1251: sphere_map_points2.scp (Missing teleports in Wisp Dungeon)&lt;br /&gt;
&lt;br /&gt;
05-09-2007, Furio&lt;br /&gt;
- Fixed #1254: Console error when guild member delete char.&lt;br /&gt;
- Fixed: Login relay problems from localhost.&lt;br /&gt;
- Added #1260: &amp;quot;Setup_Start acct&amp;quot; with IP on the same LOG line.&lt;br /&gt;
- Added #1261: Incognito names in kill logs.&lt;br /&gt;
- Added: CLEARCTAGS (working like cleartags for ctags).&lt;br /&gt;
&lt;br /&gt;
06-09-2007, MrSugarCube&lt;br /&gt;
- Fixed: &amp;quot;GetMapBlock failed at x&amp;quot; errors when logging in or placing a multi&lt;br /&gt;
  over the edge of the map.&lt;br /&gt;
&lt;br /&gt;
07-09-2007, Ellessar&lt;br /&gt;
- Fixed #1252: FloatVal not behaving correctly with negative numbers.&lt;br /&gt;
- Updated: sphere_msgs.scp (added login_lastlogged key)&lt;br /&gt;
&lt;br /&gt;
08-09-2007, MrSugarCube&lt;br /&gt;
- Fixed: Character creation allowed whilst another character is still idling&lt;br /&gt;
  in the world.&lt;br /&gt;
&lt;br /&gt;
11-09-2007, MrSugarCube&lt;br /&gt;
- Fixed #1256: Ship plank exit allowing players to pass over blocked paths,&lt;br /&gt;
  such as walls or fences.&lt;br /&gt;
- Modified: Added more &amp;quot;Bad Login x&amp;quot; codes along with expanded descriptions&lt;br /&gt;
  to assist in identifying login issues.&lt;br /&gt;
&lt;br /&gt;
16-09-2007, coruja747 (Script pack)&lt;br /&gt;
- Fixed #1258: ctags will be cleared when leaving admin menu&lt;br /&gt;
&lt;br /&gt;
16-09-2007, nazghul&lt;br /&gt;
- Fixed #1257: Custom damage type didn´t work with COMBAT_USE_RESISTANCE&lt;br /&gt;
&lt;br /&gt;
22-09-2007, nazghul&lt;br /&gt;
- Added: TAG.OVERRIDE.RANGE on items and/or characters overriding the RANGE &lt;br /&gt;
  property of the itemdef/chardef.&lt;br /&gt;
&lt;br /&gt;
30-09-2007, nazghul&lt;br /&gt;
- Fixed: not-working tag override of SkillPracticeMax what may have caused &lt;br /&gt;
  problems with Linux builds. Now TAG.OVERRIDE.PRACTICEMAX.SKILL_# &lt;br /&gt;
  (with &amp;quot;#&amp;quot; == &amp;quot;40&amp;quot; for swordsmanship, &amp;quot;42&amp;quot; for fencing, etc.) on a training &lt;br /&gt;
  dummy can override the INI default upto what skill value one can practice &lt;br /&gt;
  with it.&lt;br /&gt;
&lt;br /&gt;
02-10-2007, coruja747 (Script pack)&lt;br /&gt;
- Updated #1224: sphere_admin.scp (Added char updates when modifying flags)&lt;br /&gt;
&lt;br /&gt;
03-10-2007, MrSugarCube&lt;br /&gt;
- Fixed #1269: Fixed house design commit issues on alternate maps.&lt;br /&gt;
- Fixed #1270: Fixed ISEVENT not working on regions.&lt;br /&gt;
&lt;br /&gt;
04-10-2007, MrSugarCube&lt;br /&gt;
- Fixed: House components being affected by OF_OSIMultiSight.&lt;br /&gt;
- Fixed: DESIGN.x.KEY not working on custom housing.&lt;br /&gt;
&lt;br /&gt;
06-10-2007, Fire-Dragon-Dol (Script pack)&lt;br /&gt;
- Updated #1274: sphere_map2.scp (Removed reference to non-existant resource)&lt;br /&gt;
&lt;br /&gt;
15-10-2007, MrSugarCube&lt;br /&gt;
- Added #1283: FEATURE_ML_NINTHAGE feature flag in sphere.ini. Setting this&lt;br /&gt;
  enables the crystal and shadow components in custom houses.&lt;br /&gt;
- Fixed #1281: Unable to disembark ships on west-facing planks.&lt;br /&gt;
- Fixed #1278: Unable to craft crafting tools.&lt;br /&gt;
&lt;br /&gt;
17-10-2007, Nazghul&lt;br /&gt;
- Changed: Behaviour of TAG.OVERRIDE.RANGE. Now the largest TAG value (on weapon &lt;br /&gt;
  and/or char) takes precedence over the other.&lt;br /&gt;
&lt;br /&gt;
18-10-2007, Nazghul&lt;br /&gt;
- Added: TAG.OVERRIDE.TRAINSKILLMAX and TAG.OVERRIDE.TRAINSKILLMAXPERCENT&lt;br /&gt;
  overriding the respective defaults from Sphere.INI based on an individual&lt;br /&gt;
  trainer (NPC).&lt;br /&gt;
&lt;br /&gt;
19-10-2007, MrSugarCube&lt;br /&gt;
- Fixed #1293: Checkbox positions in dialogs not working with dorigin.&lt;br /&gt;
- Fixed #1292: House designer not working with RESDISP less than 3, a minimum&lt;br /&gt;
  client version of 4.0.0 is still required though.&lt;br /&gt;
- Fixed #511: Character spawn tooltip modified to avoid bad token ID messages&lt;br /&gt;
  with characters using random names (#NAMES_xxx).&lt;br /&gt;
- Fixed: Quest and Guild buttons on the paperdoll not working with RESDISP less&lt;br /&gt;
  than 3.&lt;br /&gt;
&lt;br /&gt;
20-10-2007, MrSugarCube&lt;br /&gt;
- Fixed #1295: Radio positions in dialogs not working with dorigin.&lt;br /&gt;
- Modified: MAXCHARSPERACCOUNT limit has been raised to 7. Note that the client&lt;br /&gt;
  must support extra character slot(s) for them to be visible at the character&lt;br /&gt;
  selection menu, older clients can only display 5 or 6.&lt;br /&gt;
- Added: MAXCHARS property to accounts. Setting it to 0 will link it to&lt;br /&gt;
  MAXCHARSPERACCOUNT in the ini (default behaviour).&lt;br /&gt;
&lt;br /&gt;
21-10-2007, MrSugarCube&lt;br /&gt;
- Fixed #1297: No resources lost when failing to craft.&lt;br /&gt;
&lt;br /&gt;
26-10-2007, MrSugarCube&lt;br /&gt;
- Fixed #1304: Being able to light kindling whilst it is being dragged.&lt;br /&gt;
- Fixed #1300: Polymorphing whilst incognito'ed not updating the character's&lt;br /&gt;
  name correctly with creatures using random names (#NAMES_xxx).&lt;br /&gt;
- Fixed: Various means of removing game board pieces from their game boards.&lt;br /&gt;
- Modified #1303: ISTEVENT now works on items, exactly the same as it does with&lt;br /&gt;
  characters.&lt;br /&gt;
&lt;br /&gt;
30-10-2007, MrSugarCube&lt;br /&gt;
- Fixed #1306: NPCs accepting every item given to them.&lt;br /&gt;
- Fixed #1298: Infinite loop caused by combat between two characters with the&lt;br /&gt;
  statf_reactive flag set and the reflected damage being greater than the&lt;br /&gt;
  original damage.&lt;br /&gt;
&lt;br /&gt;
30-10-2007, Furio&lt;br /&gt;
- Fixed #1307: MySQL client running out of memory.&lt;br /&gt;
&lt;br /&gt;
24-11-2007, Furio&lt;br /&gt;
- Fixed #1294: Error with the third parameter of &amp;quot;spelleffect&amp;quot;. Now the third&lt;br /&gt;
  parameter refer to the current source if is -1. &lt;br /&gt;
- Fixed #1318: Owned NPC's names and NPC's vendors commands.&lt;br /&gt;
- Fixed #1330: Problems with client and accounts with 16 characters.&lt;br /&gt;
- Fixed #1345: Clear Party TAG's.&lt;br /&gt;
- Added: Support for login protocol in 6.0.5.0+ clients.&lt;br /&gt;
- Added #1329: Max dist to park boats (see sphere.ini MaxShipPlankTeleport).&lt;br /&gt;
- Added #1296: &amp;quot;trigger&amp;quot; function returning the values returned by @CustomTrigger.&lt;br /&gt;
&lt;br /&gt;
25-11-2007, MrSugarCube&lt;br /&gt;
- Fixed #1284: Multi regions being overlapped by area regions when map files are&lt;br /&gt;
  resynced.&lt;br /&gt;
- Fixed: Mount items are now adjusted using the RES* settings on the ride&lt;br /&gt;
  itself, to display themselves appropriately to lower RESDISP clients.&lt;br /&gt;
&lt;br /&gt;
25-11-2007, Elric (Script pack)&lt;br /&gt;
- Updated: sphere_item_aos_se.scp (Removed duplicate item definitions)&lt;br /&gt;
- Updated: sphere_item_building_walls_se.scp (Removed duplicate item&lt;br /&gt;
  definitions)&lt;br /&gt;
- Updated: sphere_item_misc_se.scp (Removed duplicate item definitions)&lt;br /&gt;
- Updated: sphere_item_ml_floor_wall.scp (Removed duplicate item definition)&lt;br /&gt;
- Updated: sphere_item_provisions_armor_ml.scp (Corrected Vulture Helm item&lt;br /&gt;
  definition)&lt;br /&gt;
- Updated: sphere_item_unsorted.scp (Removed duplicate item definitions)&lt;br /&gt;
&lt;br /&gt;
27-11-2007, MrSugarCube&lt;br /&gt;
- Fixed #1323: Criminal status for attacking dead players.&lt;br /&gt;
- Fixed #1250: Exception with region triggers.&lt;br /&gt;
- Fixed #1017: Magery skill being used for all spells. Now the first skill listed&lt;br /&gt;
  in the spell's SKILLREQ line will be the action used when casting. Note that&lt;br /&gt;
  unexpected things will happen if you've set this to be a non-magic skill (for&lt;br /&gt;
  example, Begging), so make sure the SKF_MAGIC flag is set on such skills.&lt;br /&gt;
  &lt;br /&gt;
14-12-2007, coruja747 (Script pack)&lt;br /&gt;
- Updated: sphere_item_building_walls_se.scp (Missing item 02753)&lt;br /&gt;
- Updated: sphere_item_deco_evilitem.scp (Incorrect dupeitem on itemdef 02a59)&lt;br /&gt;
- Updated: sphere_item_christimas.scp (Incorrect RESDISPx settings on i_Sleigh)&lt;br /&gt;
- Updated: sphere_map_points2.scp (Inaccessible teleports on Exodus Dungeon)&lt;br /&gt;
&lt;br /&gt;
21-12-2007, MrSugarCube&lt;br /&gt;
- Modified: Ships now move 2 spaces at a time instead of 1. This reduces a lot&lt;br /&gt;
  of lag caused by ship movement and also fixes overhead messages disappearing&lt;br /&gt;
  whilst the ship is in motion.&lt;br /&gt;
- Added: SHIPSPEED property to ship ITEMDEFs. This controls how often and how far&lt;br /&gt;
  the ship will move. SHIPSPEED.PERIOD and SHIPSPEED.TILES can be used to return&lt;br /&gt;
  the separate values. Usage:&lt;br /&gt;
    &amp;quot;SHIPSPEED=5,3&amp;quot;     Ship will move 3 tiles every half a second.&lt;br /&gt;
    &amp;quot;SHIPSPEED=1,5&amp;quot;     Ship will move 5 tiles every tenth of a second.&lt;br /&gt;
    &amp;quot;SHIPSPEED=20,2&amp;quot;    Ship will move 2 tiles every 2 seconds.&lt;br /&gt;
  Note 1: If there is less space available than specified by SHIPSPEED.TILES,&lt;br /&gt;
  the ship will still move as far as possible before stopping (so if a ship is&lt;br /&gt;
  set to move 10 tiles and is heading towards a coast that is 16 tiles away, the&lt;br /&gt;
  ship will move 10 tiles, then 6 tiles, and then stop.&lt;br /&gt;
  Note 2: TAG.OVERRIDE.SHIPSPEED.PERIOD and TAG.OVERRIDE.SHIPSPEED.TILES can also&lt;br /&gt;
  be set on the ships themselves to override their speed on an individual basis.&lt;br /&gt;
&lt;br /&gt;
22-12-2007, Nazghul&lt;br /&gt;
- Added: Triggers @NPCAction and @NPCSpecialAction&lt;br /&gt;
  @NPCSpecialAction&lt;br /&gt;
  If the NPC has a lot of spare time (i.e., nothing else to do) it&lt;br /&gt;
  looks for some special action. For example, giant spiders lay webs,&lt;br /&gt;
  and fire elems leave fire patches. This trigger fires on ANY type&lt;br /&gt;
  of creature. If you return 1, it will not do it's special action,&lt;br /&gt;
  on return 0 it will (what, as said above, will only be true with&lt;br /&gt;
  giant spiders and fire elems; you can script other NPC special&lt;br /&gt;
  events yourself).&lt;br /&gt;
&lt;br /&gt;
  @NPCAction&lt;br /&gt;
  AI-related trigger. If the situation is so the NPC will do something&lt;br /&gt;
  due to it's AI - things like animals pooping the ground, vendors&lt;br /&gt;
  going off/on duty, (un)equipping a lightsource when it's dark, &lt;br /&gt;
  (un)equipping a weapon when fighting, stabler feeding animals or&lt;br /&gt;
  giving players food for their animals etc. - (once hardcoded behaviour&lt;br /&gt;
  was planned also for beggars who should sleep at night, for thieves,&lt;br /&gt;
  undead mages, healers, and more, but never realized. Now you can script&lt;br /&gt;
  this yourself) this trigger will be fired. On RETURN 0 &lt;br /&gt;
  the NPC will continue with what it wants to do, RETURN 1 will abort it.&lt;br /&gt;
&lt;br /&gt;
  Both triggers will fire only if EF_NPCAct_Triggers is SET and &lt;br /&gt;
  EF_Minimize_Triggers is NOT SET in the sphere.INI. SO if you don't&lt;br /&gt;
  change your INI, everything will stay as it was before.&lt;br /&gt;
&lt;br /&gt;
22-12-2007, MrSugarCube&lt;br /&gt;
- Fixed #1341: Arguments not being parsed correctly for commands entered&lt;br /&gt;
  on the console.&lt;br /&gt;
- Fixed #1331: Script verbs not being parsed correctly when there is a&lt;br /&gt;
  space in them (ie. TAG.xxx_&amp;lt;EVAL yyy&amp;gt; = zzz).&lt;br /&gt;
&lt;br /&gt;
04-01-2008, Nazghul&lt;br /&gt;
- Added: Triggers @Mount and @Dismount, both are character trigger, firing &lt;br /&gt;
	when a character tries to mount/dismout it's ride (and will be able to).&lt;br /&gt;
  @DISMOUNT&lt;br /&gt;
    ARGO is the UID of the (still disconnected!) pet.&lt;br /&gt;
    RETURN 1 stops the dismount process.&lt;br /&gt;
  @MOUNT&lt;br /&gt;
    ARGO is the UID of the NPC bound to be ridden.&lt;br /&gt;
    RETURN 1 stops the mounting process.&lt;br /&gt;
&lt;br /&gt;
19-01-2008, MrSugarCube&lt;br /&gt;
- Fixed #1351: Gaining tactics when fighting players in no-pvp regions.&lt;br /&gt;
- Fixed #1337: Foundations of custom housing deletable by players.&lt;br /&gt;
- Fixed #1132: Maps other than #0 not showing up when logging in.&lt;br /&gt;
- Added #1003: ACTPRV property to characters. This is used in some skills, &lt;br /&gt;
  for example with magery to hold the source of the spell (character, wand, &lt;br /&gt;
  scroll, etc).&lt;br /&gt;
- Fixed: CALL not working with object references. (eg. &amp;quot;CALL src.myfunction&amp;quot;)&lt;br /&gt;
- Fixed: ++/-- in scripts being parsed as +=1 when not being used as operators.&lt;br /&gt;
&lt;br /&gt;
19-01-2008, MrSugarCube (Script pack)&lt;br /&gt;
- Updated #1360: sphere_admin.scp (Fixed blank client list when using .admin twice)&lt;br /&gt;
- Updated: sphere_backward_compatibility.scp (Added NpcCast function, which can be &lt;br /&gt;
  used to make a character start casting a spell)&lt;br /&gt;
&lt;br /&gt;
19-01-2008, Furio&lt;br /&gt;
- Fixed #1324: Undefined Symbols on attacker when accessing a bad attacker #&lt;br /&gt;
- Fixed: isneartype not searching through all statics.&lt;br /&gt;
- Updated: sphere.ini with missing values.&lt;br /&gt;
- Added #1358: now serv.newitem has a 4th argument if set to 1 trigger @Equip will&lt;br /&gt;
  be called upon item equipping.&lt;br /&gt;
- Added: SERV.MAPLIST.$mapid.$prop to cycle through maps to get props. The list of&lt;br /&gt;
  properties that can be accessed (read only) are:&lt;br /&gt;
  BOUND.X = maximum x for the map&lt;br /&gt;
	BOUND.Y = maximum y for the map&lt;br /&gt;
	CENTER.X = x coord of map center&lt;br /&gt;
  CENTER.Y = y coord of map center&lt;br /&gt;
	SECTOR.SIZE = size of sectors&lt;br /&gt;
	SECTOR.ROWS = qty of sector rows for the map&lt;br /&gt;
  SECTOR.COLS = qty of sector columns for the map&lt;br /&gt;
  SECTOR.QTY = total number of sectors for the map&lt;br /&gt;
- Added: FeatureKR and Kr reslevel (6). Guess what they do (it's a wip).&lt;br /&gt;
- Added: EF_UseNetworkMulti (00800000) to experimental flags. Tired of crashing due&lt;br /&gt;
  too many items/npcs, try it. Don't change it while the server is running.&lt;br /&gt;
  (Thx to Z. for the windows version)&lt;br /&gt;
&lt;br /&gt;
21-01-2008, MrSugarCube&lt;br /&gt;
- Fixed #1311: NPC Pathfinding failing when EF_DiagonalWalkCheck is enabled.&lt;br /&gt;
- Added #738: Combat flag COMBAT_STAYINRANGE. Causes out-of-range attacks to fail&lt;br /&gt;
  at the end of the swing instead of waiting until the target is in range.&lt;br /&gt;
- Added: WEATHER property to sectors, sets or gets the current weather.&lt;br /&gt;
&lt;br /&gt;
22-01-2008, MrSugarCube (Script pack)&lt;br /&gt;
- Updated #1107: sphere_genericstone_functions.scp (added function to control or &lt;br /&gt;
  override ally status between guilds (f_stonesys_internal_isalliedwith), see&lt;br /&gt;
  comments for details)&lt;br /&gt;
&lt;br /&gt;
24-01-2008, MrSugarCube&lt;br /&gt;
- Fixed #1363: Players unable to pick up single items from heavy stacks.&lt;br /&gt;
&lt;br /&gt;
31-01-2008, Nazghul&lt;br /&gt;
- Fixed #989: Fame-titles will not be shown on NPC anymore if INI option NPCNoFameTitle&lt;br /&gt;
  is set.&lt;br /&gt;
&lt;br /&gt;
31-01-2008, MrSugarCube&lt;br /&gt;
- Fixed #1372: EF_NewPositionChecks causing fishing to fail from boats when&lt;br /&gt;
  AdvancedLos is disabled.&lt;br /&gt;
- Fixed: ADVANCEDLOS_PLAYER enabling AdvancedLos for all characters including&lt;br /&gt;
  NPCs (ADVANCEDLOS_NPC being ignored).&lt;br /&gt;
&lt;br /&gt;
02-02-2008, Furio&lt;br /&gt;
- Added DIALOGLIST keyword. DIALOGLIST.COUNT gives the number of open gump dialogs,&lt;br /&gt;
  DIALOGLIST.$x.ID ($x = a number between 0 and DIALOGLIST.COUNT-1) the ID of the&lt;br /&gt;
  respective gump dialog, and DIALOGLIST.$x.COUNT the number of active instances of&lt;br /&gt;
  this dialog. So to close a specified gump, DIALOGCLOSE &amp;lt;DIALOGLIST.$n.ID&amp;gt; should do.&lt;br /&gt;
- Added KRTOOLBARSTATUS (prop/verb) and @UserKRToolbar (ARGN1 type, ARGN2 arg) to&lt;br /&gt;
  interact with the hotbar in the KR client.&lt;br /&gt;
&lt;br /&gt;
03-02-2008, Shadow Dragon&lt;br /&gt;
- added @KarmaChange, @FameChange. Called when Karma/Fame adjusting.&lt;br /&gt;
  ARGN1 = Karma/Fame modifier, it's writable.&lt;br /&gt;
  return 0 will use Argn1 value in adjusting.&lt;br /&gt;
  return 1 will break adjusting.&lt;br /&gt;
  return 2 will ignore Argn1 and continue default adjusting.&lt;br /&gt;
  Both triggers work only when EF_Minimize_Triggers isn't set.&lt;br /&gt;
&lt;br /&gt;
07-02-2008, MrSugarCube&lt;br /&gt;
- Fixed #718: Ships unable to travel over static water tiles.&lt;br /&gt;
- Fixed #1378: Armour rating being factored in twice during damage calculations.&lt;br /&gt;
&lt;br /&gt;
11-02-2008, MrSugarCube&lt;br /&gt;
- Fixed #1406: Newly created characters not starting with the MALE_DEFAULT / FEMALE_DEFAULT&lt;br /&gt;
  newbie templates.&lt;br /&gt;
- Fixed: Exception caused by using ARGO.Verb when argo is not set.&lt;br /&gt;
- Modified: &amp;quot;Vendor uid=xxx selling unmovable item&amp;quot; message no longer shown when&lt;br /&gt;
  listing the items that a player can sell to a vendor.&lt;br /&gt;
&lt;br /&gt;
27-04-2008, MrSugarCube&lt;br /&gt;
- Fixed #1404: Restoring custom house design without first making a backup allowing players&lt;br /&gt;
  to remove the entire house foundation.&lt;br /&gt;
- Fixed #1398: Lightning spells causing @EnvironChange to be called on nearby characters.&lt;br /&gt;
- Fixed #1381: Maps with non-matching courses plotted can be stacked.&lt;br /&gt;
- Modified #1389: Character list to show filled character slots that are over the account's&lt;br /&gt;
  limit (eg. account containing 7 characters shows all 7 even when the limit is 5 ,assuming&lt;br /&gt;
  the client is capable of displaying all 7).&lt;br /&gt;
&lt;br /&gt;
27-04-2008, coruja747 (Script pack)&lt;br /&gt;
- Updated #1402: sphere_item_building_walls_se.scp (Fixed empty dupelist property)&lt;br /&gt;
&lt;br /&gt;
27-04-2008, Mordaunt (Script pack)&lt;br /&gt;
- Updated: sphere_item_multis_foundations.scp (Added the remaining house foundation sizes)&lt;br /&gt;
&lt;br /&gt;
28-04-2008, MrSugarCube&lt;br /&gt;
- Fixed #1394: Advanced pathfinding (NPC_AI_PATH) allowing NPCs to make invalid movements&lt;br /&gt;
  (for example walking whilst paralyzed). Some other adjustments have also been made,&lt;br /&gt;
  allowing NPCs to properly assess characters that may be blocking the way (to walk around&lt;br /&gt;
  them), negotiate corners with EF_DiagonalWalkCheck enabled, and attempt to compensate&lt;br /&gt;
  when new obstacles block a previously valid path.&lt;br /&gt;
- Fixed #1390: Locals not working in SKILLMENUs.&lt;br /&gt;
&lt;br /&gt;
28-04-2008, coruja747 (Script pack)&lt;br /&gt;
- Updated #1392: spherechar_new_mounts.scp, spherechar_mondains_legacy.scp (Updated&lt;br /&gt;
  RESDISPDNHUE property on rides)&lt;br /&gt;
&lt;br /&gt;
02-05-2008, MrSugarCube&lt;br /&gt;
- Fixed #1348: Problem where &amp;lt;SERV.ResourceType.Id&amp;gt; returns 1 when the id is a different&lt;br /&gt;
  resource type (e.g. &amp;lt;SERV.TEMPLATE.i_dagger&amp;gt; (dagger being an item not a template)).&lt;br /&gt;
&lt;br /&gt;
15-05-2008, Shadow Dragon&lt;br /&gt;
- Added LAYER_AUCTION that can contain container on character for script purposes, like&lt;br /&gt;
  auction system.&lt;br /&gt;
&lt;br /&gt;
19-05-2008, Shadow Dragon&lt;br /&gt;
- Modified: GOLD property adds new gold stacks to bankbox.&lt;br /&gt;
&lt;br /&gt;
21-05-2008, Nazghul &lt;br /&gt;
- Added: Combat flags to Sphere.ini to allow stacking armor and aimed hits. Example of usage&lt;br /&gt;
  is in scripts/AddOns. &lt;br /&gt;
  Aimed hits are controlled by tags on the &amp;quot;hitter&amp;quot;: TAG.HITPREFERENCE holds the targetted&lt;br /&gt;
  zone: 1=head, 2=neck/throat, 3=back, 4=chest, 5=arms, 6=hands, 7=legs, 8=feet (if the value&lt;br /&gt;
  is out of this range it will be changed by %9; &amp;quot;0&amp;quot; means: no preference set);&lt;br /&gt;
  TAG.HITPREFERENCE_CHANCE (0..1000) is the chance to really hit the desired area;&lt;br /&gt;
  TAG.HITPREFERENCE.BONUS is the percent the damage is raised when hit where desired,&lt;br /&gt;
  TAG.HITPREFERENCE.PENALTY is the percent the damage is lowered if the area was missed.&lt;br /&gt;
  The last two values are defaulting to &amp;quot;30&amp;quot;.&lt;br /&gt;
  The system is perhaps useful to script a system where a player can look for weak armored&lt;br /&gt;
  bodyparts of his opponent and try to hit him there; could be essential if armor stacking&lt;br /&gt;
  is used.&lt;br /&gt;
&lt;br /&gt;
23-05-2008, MrSugarCube&lt;br /&gt;
- Fixed #1418: Tracking being used to reveal the location of invisible staff members.&lt;br /&gt;
- Fixed #1417: Unable to access account properties using [SERV.]ACCOUNT.x.KEY where account&lt;br /&gt;
  x begins with a number.&lt;br /&gt;
- Fixed: Characters &amp;quot;drifting to shore&amp;quot; when logging in on a ship.&lt;br /&gt;
- Fixed: Variety of exceptions caused when items are being set to type t_eq_memory_obj after&lt;br /&gt;
  after creation.&lt;br /&gt;
- Modified: RESTOCK function on vendors now accepts a parameter to specify whether or not&lt;br /&gt;
  new stock should be spawned immediately (0=empty existing stock (default), 1=empty stock&lt;br /&gt;
  and spawn next set).&lt;br /&gt;
&lt;br /&gt;
26-05-2008, MrSugarCube&lt;br /&gt;
- Fixed: Code not being skipped properly when incorrect loop syntax is used.&lt;br /&gt;
- Modified: @UserVirtue trigger now has 2 arguments:&lt;br /&gt;
   ARGO  = The character whose virtue button has been pressed&lt;br /&gt;
   ARGN1 = The button ID pressed (1=virtue button (on paperdoll), 105-112=icons within the&lt;br /&gt;
           menu)&lt;br /&gt;
           Note: Clients only specify the character they're viewing (ARGO) when pressing the&lt;br /&gt;
           paperdoll button (ARGN1=1)&lt;br /&gt;
- Added: @UserVirtueInvoke trigger, called when a virtue is invoked through client macros.&lt;br /&gt;
   ARGN1 = The virtue ID (1=Honor, 2=Sacrifice, 3=Valor)&lt;br /&gt;
&lt;br /&gt;
27-05-2008, MrSugarCube&lt;br /&gt;
- Modified: ARGN2 in @SkillChange trigger is now writeable.&lt;br /&gt;
&lt;br /&gt;
27-05-2008, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_msgs.scp (Added 2 more &amp;quot;tracking_*&amp;quot; defmessages)&lt;br /&gt;
&lt;br /&gt;
25-06-2008, MrSugarCube&lt;br /&gt;
- Modified: Installing Sphere as a Windows service (using &amp;quot;-k install&amp;quot; with NTService=1) will&lt;br /&gt;
  now configure the service with an automatic restart configuration.&lt;br /&gt;
&lt;br /&gt;
02-07-2008, MrSugarCube&lt;br /&gt;
- Fixed #1439: NPC_AI_MOVEOBSTACLES allowing NPCs to move items whilst paralyzed.&lt;br /&gt;
- Added #850: @SpellSuccess trigger, fires on the caster just before the @Success trigger is&lt;br /&gt;
  fired on spell blocks.&lt;br /&gt;
&lt;br /&gt;
04-07-2008, MrSugarCube&lt;br /&gt;
- Fixed #1177: Client command parsing using brackets as argument separators.&lt;br /&gt;
- Fixed #1097: Possible infinite loop involving circular ownership (e.g. two characters set as&lt;br /&gt;
  owners of each other).&lt;br /&gt;
&lt;br /&gt;
04-07-2008, MrSugarCube (Script pack)&lt;br /&gt;
- Updated #1443: sphere_guild_dlg_charlist.scp, sphere_guild_promptconsole.scp,&lt;br /&gt;
  sphere_town_dlg_charlist.scp, sphere_town_promptconsole.scp (Fixed guild and town stones&lt;br /&gt;
  using TITLE property instead of GUILDTITLE)&lt;br /&gt;
&lt;br /&gt;
04-07-2008, Nazghul&lt;br /&gt;
- Added: skilltitles &amp;quot;Elder&amp;quot; and &amp;quot;Legendary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
05-07-2008, MrSugarCube (Script pack)&lt;br /&gt;
- Updated #1130: sphere_msgs.scp (Removed tracking_dis* defmessages and replaced them with&lt;br /&gt;
  simpler tracking_result* defmessages)&lt;br /&gt;
&lt;br /&gt;
06-07-2008, Nazghul&lt;br /&gt;
- Added: SPELLFLAG_NOPRECAST what disbles PRECASTING on a per-spell-base.&lt;br /&gt;
  Only valid if PRECAST is activated by Sphere.ini&lt;br /&gt;
&lt;br /&gt;
08-07-2008, MrSugarCube&lt;br /&gt;
- Fixed #1446: GM/MT_FLY enabled characters walking through stairs when EF_WalkCheck is not&lt;br /&gt;
  enabled. [Note: Due to potentially negative side-effects of this fix a temporary EF flag&lt;br /&gt;
  (EF_NoWalkingThroughStairsFix) has been added to sphere.ini which disables the fix just in&lt;br /&gt;
  case something bad happens (if no issues are reported that are caused by this fix then you&lt;br /&gt;
  can expect it to disappear very soon)]&lt;br /&gt;
&lt;br /&gt;
10-07-2008, MrSugarCube&lt;br /&gt;
- Fixed ##3: Unstackable items becoming stacked after being bought off a player-owned vendor,&lt;br /&gt;
  when the buyer cannot carry the items.&lt;br /&gt;
- Fixed ##2: NPC_AI_FOOD causing NPCs to get stuck whilst they attempt to eat grass from a&lt;br /&gt;
  tile where grass has already been eaten from recently.&lt;br /&gt;
&lt;br /&gt;
13-07-2008, Beyonder&lt;br /&gt;
- Fixed ##1: Sphere crashes with Experimental Flag UseNetworkMulti.&lt;br /&gt;
- Added: LOCAL.FIELDWIDTH and LOCAL.FIELDGAUGE to @SpellSuccess and @Success&lt;br /&gt;
  triggers.&lt;br /&gt;
  LOCAL.FIELDWIDTH sets the width of the field from character point of view.&lt;br /&gt;
  LOCAL.FIELDGAUGE sets the thickness of the field.&lt;br /&gt;
- Fixed #1449: Damage spells backfire when selecting summon while casting.&lt;br /&gt;
&lt;br /&gt;
15-07-2008, Beyonder&lt;br /&gt;
- Added: Extra local arguments to @SkillStart and @Start (skill section) triggers for crafting &lt;br /&gt;
  skills:&lt;br /&gt;
  LOCAL.CRAFTITEMDEF - the UID of defname of the item we are currently crafting. Readable/Writable.&lt;br /&gt;
  Accepts ONLY UIDs of ITEMDEFs, for example:&lt;br /&gt;
	if (&amp;lt;LOCAL.CRAFTITEMDEF&amp;gt; == &amp;lt;DEF.i_katana&amp;gt;)&lt;br /&gt;
		LOCAL.CRAFTITEMDEF = &amp;lt;DEF.i_sword_long&amp;gt;&lt;br /&gt;
	endif&lt;br /&gt;
  LOCAL.CRAFTSTROKECNT - amount of strokes character makes while creating the item. Each stroke &lt;br /&gt;
  has DELAY specified in SKILL section. Readable/Writable.&lt;br /&gt;
  LOCAL.CRAFTAMOUNT - amount of items that will be created. Only usable for REPLICATable items,&lt;br /&gt;
  otherwise will make no effect. Readable/Writable.&lt;br /&gt;
- Modified: @Destroy on items and characters is triggered before deletion, not after. This way&lt;br /&gt;
  all of the item/character properties are fully accessible.&lt;br /&gt;
  &amp;quot;return 1&amp;quot; forbids deletion. WARNING! putting return 1 in this trigger means it won't be deleted&lt;br /&gt;
  in any possible way! Use it with caution.&lt;br /&gt;
&lt;br /&gt;
15-07-2008, MrSugarCube&lt;br /&gt;
- Fixed: World saves being aborted when they are taking a long time to complete.&lt;br /&gt;
&lt;br /&gt;
20-07-2008, MrSugarCube&lt;br /&gt;
- Fixed #1459: Weather effects not being updated when walking in/outdoors.&lt;br /&gt;
- Fixed #1458: ARGV[x] not being updated when ARGS is set to a new value.&lt;br /&gt;
&lt;br /&gt;
20-07-2008, Coruja (Script pack)&lt;br /&gt;
- Updated #1457: sphere_items_multis_houses_ships.scp (Corrected sign height and door type for the&lt;br /&gt;
  stone and marble shops)&lt;br /&gt;
- Updated #1456: spherechar_new_mounts.scp (Added FOODTYPE for c_giant_beetle)&lt;br /&gt;
&lt;br /&gt;
24-07-2008, Coruja (Script pack)&lt;br /&gt;
- Updated #1465: sphere_spells.scp (Wrong spellflag for MARK spell)&lt;br /&gt;
&lt;br /&gt;
02-08-2008, MrSugarCube&lt;br /&gt;
- Fixed #1475: Undefined keyword error when using 'REGION.ALLCLIENTS' in a region with no clients.&lt;br /&gt;
&lt;br /&gt;
08-08-2008, MrSugarCube&lt;br /&gt;
- Fixed #1479: Custom layer values not being restored correctly when loading from world save.&lt;br /&gt;
- Fixed #1470: Entering house customization with open dialogs causing the sphere to lose track of&lt;br /&gt;
  which dialogs are still open on the client.&lt;br /&gt;
- Fixed #1468: Exiting house customization mode sending characters to the house sign's height&lt;br /&gt;
  instead of ground level.&lt;br /&gt;
&lt;br /&gt;
09-08-2008, MrSugarCube&lt;br /&gt;
- Fixed #1476: Players under the incognito spell being unable to read other players' profile&lt;br /&gt;
  scrolls.&lt;br /&gt;
- Fixed #1033: Mass Curse spell not affecting character stats.&lt;br /&gt;
- Modified #963: ARGN1 in @[item]DropOn_Ground can now be used to read/write the decay time (in&lt;br /&gt;
  tenths of a second) that will be set on the dropped item.&lt;br /&gt;
&lt;br /&gt;
10-08-2008, Coruja (Script pack)&lt;br /&gt;
- Updated #1486: sphere_map_points4.scp (Added teleports for Yomotsu Mines and Fan Dancer's Dojo)&lt;br /&gt;
- Updated #1485: sphere_map3.scp (Added missing Malas locations)&lt;br /&gt;
- Updated #1480: sphere_map_points0.scp, sphere_map_points1.scp (Incorrect teleports for Ice&lt;br /&gt;
  Dungeon)&lt;br /&gt;
&lt;br /&gt;
11-08-2008, MrSugarCube&lt;br /&gt;
- Fixed #1483: Issues with trying to load scripts from directories outside of where the Sphere&lt;br /&gt;
  executable is located.&lt;br /&gt;
&lt;br /&gt;
12-08-2008, MrSugarCube&lt;br /&gt;
- Fixed #1489: Longer ships being able to manoeuvre themselves into invalid positions.&lt;br /&gt;
&lt;br /&gt;
13-08-2008, MrSugarCube&lt;br /&gt;
- Fixed #1490: Formatting error when showing murderer/criminal title on the paperdoll.&lt;br /&gt;
&lt;br /&gt;
14-08-2008, MrSugarCube&lt;br /&gt;
- Fixed #1484: Client showing the wrong season and light level upon login.&lt;br /&gt;
&lt;br /&gt;
16-08-2008, Nazghul&lt;br /&gt;
- Added: Character Trigger @UserQuestArrowClick what fires if the user clicks on the quest arrow.&lt;br /&gt;
  No RETURN value checks, ARGN1 is the mouse button used (0=left, 1=right). Trigger works only&lt;br /&gt;
  with EF_MinimizeTriggers disabled.&lt;br /&gt;
&lt;br /&gt;
22-08-2008, MrSugarCube&lt;br /&gt;
- Fixed #1496: Female NotoTitles not always being shown on the paperdoll.&lt;br /&gt;
&lt;br /&gt;
25-08-2008, MrSugarCube&lt;br /&gt;
- Fixed: @Dismount trigger being fired multiple times under certain circumstances.&lt;br /&gt;
&lt;br /&gt;
26-08-2008, Shadow Dragon&lt;br /&gt;
- Fixed: Skills doesn't gain when lower than 1.8&lt;br /&gt;
- Added: New trigger @AfterClick and @ItemAfterClick. LOCAL.ClickMsgText will contain text, that&lt;br /&gt;
  will be shown after click on object, LOCAL.ClickMsgHue will contain color of the message. Both&lt;br /&gt;
  locals are writable. RETURN 1 - will cancel showing text. Requires EF_New_Triggers to be&lt;br /&gt;
  enabled.&lt;br /&gt;
- Fixed: Mounts removing when world save (error: Ridden NPC without a mount item).&lt;br /&gt;
&lt;br /&gt;
31-08-2008, MrSugarCube&lt;br /&gt;
- Added #1507: REVERT function to custom housing (t_multi_custom), calling this will clear any&lt;br /&gt;
  uncommitted changes that have been made to the building design.&lt;br /&gt;
&lt;br /&gt;
03-09-2008, Nazghul&lt;br /&gt;
- Added #1504: Optional second parameter &amp;quot;amount&amp;quot; to MAKEITEM. Please understand that the&lt;br /&gt;
  &amp;quot;additional&amp;quot; items crafted will neither fire any trigger, nor give experience or skill. So,&lt;br /&gt;
  from that point of view there's no difference between &amp;quot;MAKEITEM i_dagger&amp;quot; and &amp;quot;MAKEITEM i_dagger,10&amp;quot;&lt;br /&gt;
  (except for the number of daggers created). If the resources you have are insufficiant for&lt;br /&gt;
  the amount, it will be shortened respectively.&lt;br /&gt;
&lt;br /&gt;
08-09-2008, MrSugarCube&lt;br /&gt;
- Fixed #1514: Players and NPCs unable to cast spells.&lt;br /&gt;
- Fixed #1508: Dropped items stacking regardless of their difference in height.&lt;br /&gt;
&lt;br /&gt;
09-09-2008, MrSugarCube&lt;br /&gt;
- Fixed #1516: NPCs unable to use pathfinding when trying to follow or walk up to another character.&lt;br /&gt;
&lt;br /&gt;
13-09-2008, MrSugarCube&lt;br /&gt;
- Added: BASECOMPONENT property to multis. Usage is similar to COMPONENT except it returns&lt;br /&gt;
  information for the components specified in the mul files, and when accessing&lt;br /&gt;
  individual components (BASECOMPONENT.n.[ID/DX/DY/DZ/D] there is an additional &amp;quot;VISIBLE&amp;quot;&lt;br /&gt;
  property which returns 0 if the component is invisible (usually applies to doors and signs).&lt;br /&gt;
&lt;br /&gt;
16-09-2008, Nazghul&lt;br /&gt;
- Added: Override Tags for item/action related sound.&lt;br /&gt;
  TAG.OVERRIDE.DOORSOUND_CLOSE / TAG.OVERRIDE.DOORSOUND_OPEN &lt;br /&gt;
    (what it does should be obvious)&lt;br /&gt;
  TAG.OVERRIDE.PORTCULISSOUND - holds an sfx number played when &lt;br /&gt;
    opening/closing a portculis&lt;br /&gt;
  TAG.OVERRIDE.DROPSOUND - sfx an items makes when dropped. Att:&lt;br /&gt;
    system default sounds sometimes change due to the amount dropped&lt;br /&gt;
    (gold, ingots), or on what surface/item the item is dropped. All&lt;br /&gt;
    this will be overridden!&lt;br /&gt;
  TAG.OVERRIDE.SOUND_HIT - on weapons holds the sound when it hits,&lt;br /&gt;
    regardless of WHAT it hits!&lt;br /&gt;
  TAG.OVERRIDE.SOUND_MISS - on weapons, sound they make when missing&lt;br /&gt;
&lt;br /&gt;
  all TAGs need to hold a number (defname MAY be possible -&amp;gt; test!),&lt;br /&gt;
  what also can be &amp;quot;0&amp;quot; (zero) with the meaning: don't play any sound.&lt;br /&gt;
&lt;br /&gt;
17-09-2008, Nazghul&lt;br /&gt;
- Added: Trigger @PICKUP_STACK what fires only if an item was picked up from a pile.&lt;br /&gt;
  ARGO is the remaining part of the stack. (There's a char trigger itemPICKUP_STACK&lt;br /&gt;
  also)&lt;br /&gt;
&lt;br /&gt;
18-09-2008, Nazghul&lt;br /&gt;
- Added: TAG.OVERRIDE.RUNNINGPENALTY and TAG.OVERRIDE.STAMINALOSSATWEIGHT to&lt;br /&gt;
  override the respective INI settings on a per character base&lt;br /&gt;
&lt;br /&gt;
28-09-2008, Shadow Dragon&lt;br /&gt;
- Fixed: Sphere crashing when injection tries to add one item to another non-container item&lt;br /&gt;
  (errors in injection script and so).&lt;br /&gt;
&lt;br /&gt;
26-10-2008, MrSugarCube&lt;br /&gt;
- Fixed #1540: Server crash when invalid parameters are passed into RTIME.FORMAT.&lt;br /&gt;
- Fixed #1539: Infinite loop caused by &amp;quot;back&amp;quot; options on SKILLMENUs leading to a server crash.&lt;br /&gt;
- Fixed #1538: Possibility of quickly gaining arms lore skill through repairing, by repeatedly&lt;br /&gt;
  attempting to repair an item that cannot be repaired.&lt;br /&gt;
- Fixed #1518: Possibility of world save notification not being broadcasted.&lt;br /&gt;
- Fixed #1510: IsNum not working with negative numbers.&lt;br /&gt;
- Fixed #1158: Possibility of the statf_fly flag not being removed from players who have been stood&lt;br /&gt;
  still for some time.&lt;br /&gt;
- Fixed: &amp;quot;You can't think of a way to use that item.&amp;quot; when failing to repair an item.&lt;br /&gt;
- Modified: EVENTSPLAYER, EVENTSPET and EVENTSREGION settings now accept a comma-delimited list of&lt;br /&gt;
  events.&lt;br /&gt;
&lt;br /&gt;
26-10-2008, MrSugarCube (Script pack)&lt;br /&gt;
- Updated #1535: sphere_defs.scp (Corrected sounds for snd_rune_beetle through to snd_hiryu)&lt;br /&gt;
&lt;br /&gt;
02-11-2008, MrSugarCube&lt;br /&gt;
- Added #1499: CanUndressPets setting to sphere.ini. Setting this to 1 will enable players to&lt;br /&gt;
  take equipment from their pets' paperdolls.&lt;br /&gt;
&lt;br /&gt;
29-11-2008, MrSugarCube&lt;br /&gt;
- Fixed #1553: Repairing an item does not update its tooltip.&lt;br /&gt;
- Modified: IsNearType (including IsNearType.P) now accepts a third parameter, which when set to 1&lt;br /&gt;
  will cause the function to include multi components in the search.&lt;br /&gt;
- Added: New mt_mount flag (00400) which will allow character bodies to become capable of mounting&lt;br /&gt;
  rides. Note that this flag is not required for the bodies that could already mount rides prior&lt;br /&gt;
  to this flag's existence (c_man/c_woman/c_man_gm/c_elf_man/c_elf_woman). Also be aware that not&lt;br /&gt;
  all character bodies are intended to be used for mounting rides and won't have proper riding&lt;br /&gt;
  animations.&lt;br /&gt;
&lt;br /&gt;
29-11-2008, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_defs.scp (Added mt_mount to the can_flags defname section)&lt;br /&gt;
&lt;br /&gt;
05-12-2008, MrSugarCube&lt;br /&gt;
- Fixed: Server crash caused by exceedingly large dialogs being sent to clients.&lt;br /&gt;
&lt;br /&gt;
06-12-2008, jeem (Script pack)&lt;br /&gt;
- Updated #1555: sphere_guild_dlg_charlist.scp, sphere_town_dlg_charlist.scp (Fixed script error&lt;br /&gt;
  when showing guild member titles)&lt;br /&gt;
&lt;br /&gt;
07-12-2008, MrSugarCube&lt;br /&gt;
- Added #1086: Skill degradation for skills that have been set to decrease. @SkillChange trigger&lt;br /&gt;
  is called for decaying skills just as it does when they gain (compare &amp;lt;ARGN2&amp;gt; to &amp;lt;&amp;lt;ARGN1&amp;gt;&amp;gt; to&lt;br /&gt;
  determine if the skill is being increased or lowered).&lt;br /&gt;
- Added: Experimental flag EF_UseNetworkMultiVersionMod. This modifies the behaviour of the&lt;br /&gt;
  EF_UseNetworkMulti flag (don't forget to set this too) so that clients older than 4.0.0 will&lt;br /&gt;
  be unaffected and continue to use the original networking code as if the EF_UseNetworkMulti&lt;br /&gt;
  flag was never set.&lt;br /&gt;
&lt;br /&gt;
03-01-2009, Dwayne1988 (Script pack)&lt;br /&gt;
- Updated: spherechar_human.scp, spherechar_evil.scp (Axis Tags were messed up, came after&lt;br /&gt;
  @NPCRESTOCK _and_ had a leading TAB so Axis won't find them)&lt;br /&gt;
&lt;br /&gt;
24-01-2009, MrSugarCube&lt;br /&gt;
- Fixed #1572: Exception on Linux builds when mounting a horse.&lt;br /&gt;
- Fixed #1569: @UserWarmode trigger not being fired.&lt;br /&gt;
- Fixed #1568: Default webpage paths in Sphere.ini not valid for Linux.&lt;br /&gt;
- Fixed #1532: Added log message to indicate the account name being referred to when an account&lt;br /&gt;
  is already in use, blocked, or cannot log in due to CLIENTMAX setting.&lt;br /&gt;
&lt;br /&gt;
28-01-2009, Shadow Dragon&lt;br /&gt;
- Added: SERV.RTicks for reading purposes. Returns real system time in ticks as unsigned value (0..4294967295).&lt;br /&gt;
- Added: UVAL, which works like EVAL, but for unsigned values.&lt;br /&gt;
&lt;br /&gt;
01-02-2009, Shadow Dragon&lt;br /&gt;
- Added: Basic LIST support.&lt;br /&gt;
  LIST.xxx to show elements in list. Also, can be used like LIST.xxx=value to clear list and add a value&lt;br /&gt;
  LIST.xxx.ADD to add new element to list, can be number or string&lt;br /&gt;
  LIST.xxx.CLEAR to clear list&lt;br /&gt;
  LIST.xxx.index to read/write value on element in list&lt;br /&gt;
  LIST.xxx.COUNT to get count of elements in list&lt;br /&gt;
  LIST.xxx.index.REMOVE to remove element at specified index in list&lt;br /&gt;
  LIST.xxx.index.INSERT to insert element at specified index in list&lt;br /&gt;
  LIST.xxx.FINDELEM search_value returns index of first found element in list. Search starting from begin&lt;br /&gt;
  LIST.xxx.index.FINDELEM search_value returns index of first found element in list. Search starting from index&lt;br /&gt;
  SERV.PRINTLISTS to print all lists and their elements&lt;br /&gt;
  SERV.CLEARLISTS to clear all lists. If used with mask parameter, then clear all lists, which name countains specified mask&lt;br /&gt;
- Added: SERV.Map.x.AllSectors some_verb_to_use&lt;br /&gt;
  If used not in this syntax, then gives old error about MAP is readonly.&lt;br /&gt;
&lt;br /&gt;
08-02-2009, MrSugarCube&lt;br /&gt;
- Fixed #1517: Unable to cast polymorph spell.&lt;br /&gt;
- Fixed: Possible infinite loop when creating fight memories in scripts.&lt;br /&gt;
&lt;br /&gt;
09-02-2009, Coruja (Script pack)&lt;br /&gt;
- Updated #1576: sphere_item_profession.scp, sphere_item_deco_dungeons_traps_dead.scp (Corrected&lt;br /&gt;
  portrait DUPELISTs)&lt;br /&gt;
&lt;br /&gt;
15-02-2009, MrSugarCube&lt;br /&gt;
- Modified #1545: JOINASMEMBER function no longer requires that the new member be online.&lt;br /&gt;
- Fixed: Unable to connect to local server with an encrypted client when it decides to reuse its&lt;br /&gt;
  login server connection instead of open a new one.&lt;br /&gt;
&lt;br /&gt;
21-02-2009, MrSugarCube&lt;br /&gt;
- Fixed #1571: Creating a player with a hyphen or period in its name causing a random name to be&lt;br /&gt;
  generated.&lt;br /&gt;
- Fixed #1548: Armor MODAR being factored in twice when calculating total armour value, and sometimes&lt;br /&gt;
  character MODAR being factored in twice when calculating damage.&lt;br /&gt;
- Fixed: Messages such as &amp;quot;You can't reach anything in your state.&amp;quot; and &amp;quot;You can't think of a way to&lt;br /&gt;
  use that item.&amp;quot; being sent to players as they try to free themselves from spider webs.&lt;br /&gt;
- Added #1564: PetsInheritNotoriety setting to sphere.ini. This can be used to specify which&lt;br /&gt;
  notoriety flags a pet will inherit from its master (so if for example a pet has an evil owner&lt;br /&gt;
  and the NotoEvil flag is set then the pet will also show as evil regardless of its real notoriety).&lt;br /&gt;
&lt;br /&gt;
22-02-2009, MrSugarCube&lt;br /&gt;
- Fixed #1575: Improved handling of unicode speech in Linux build.&lt;br /&gt;
- Fixed #1537: TEST in skillmenus not being parsed in the same way as TESTIF.&lt;br /&gt;
&lt;br /&gt;
26-02-2009, MrSugarCube&lt;br /&gt;
- Modified #1560: Separated PROMPTCONSOLE from the targeting system. Targeting no longer interferes&lt;br /&gt;
  with prompts and vice-versa.&lt;br /&gt;
&lt;br /&gt;
14-03-2009, MrSugarCube&lt;br /&gt;
- Fixed #1585: Multiple arguments not being passed into commands when using the syntax&lt;br /&gt;
  [SERV.]ACCOUNT &amp;lt;name&amp;gt; &amp;lt;command&amp;gt; &amp;lt;args&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20-03-2009, MrSugarCube&lt;br /&gt;
- Fixed #1586: Exception in Linux build when using the ADDCLILOC function with DEBUGF_SCRIPTS enabled.&lt;br /&gt;
- Fixed: Exception when passing an invalid object uid into the NEWDUPE function.&lt;br /&gt;
&lt;br /&gt;
21-03-2009, MrSugarCube&lt;br /&gt;
- Fixed: Crashes with EF_Unicode enabled on Linux builds.&lt;br /&gt;
- Fixed: SuppressCapitals causing speech to be blanked out.&lt;br /&gt;
&lt;br /&gt;
22-03-2009, MrSugarCube&lt;br /&gt;
- Fixed #1557: Sphere only sending partial webpages to certain browsers such as FireFox.&lt;br /&gt;
- Fixed: Sphere only sending partial webpages to all browsers when EF_UseNetworkMulti is used.&lt;br /&gt;
- Modified: EF_UseNetworkMultiVersionMod now also disables the effects of EF_UseNetworkMulti for HTTP&lt;br /&gt;
  clients.&lt;br /&gt;
&lt;br /&gt;
29-03-2009, MrSugarCube&lt;br /&gt;
- Fixed #1589: TWOHANDS returning 1 with items that are equipped in the second hand but aren't&lt;br /&gt;
  two-handed, such as shields and lanterns.&lt;br /&gt;
&lt;br /&gt;
04-04-2009, MrSugarCube&lt;br /&gt;
- Fixed #1588: Possibility of overflow when applying markups to vendor prices (note that prices are&lt;br /&gt;
  limited to a maximum of 2,147,483,647gp inclusive of markup).&lt;br /&gt;
&lt;br /&gt;
10-04-2009, MrSugarCube&lt;br /&gt;
- Fixed: Server crash caused by deeply nested SKILLMENUs.&lt;br /&gt;
- Modified: Menu options are no longer hidden from SKILLMENUs when Sphere is unable to fully search&lt;br /&gt;
  within them.&lt;br /&gt;
&lt;br /&gt;
13-04-2009, MrSugarCube&lt;br /&gt;
- Added: SERV.RTICKS.FROMTIME year,month,day,hour,minute,second. Returns the timestamp for the given&lt;br /&gt;
  date.&lt;br /&gt;
- Added: SERV.RTICKS.FORMAT timestamp[,format]. Converts the given timestamp into a formatted date&lt;br /&gt;
  string (similar to SERV.RTIME.FORMAT).&lt;br /&gt;
&lt;br /&gt;
14-04-2009, MrSugarCube (Script pack)&lt;br /&gt;
- Updated #1497: sphere_item_multis_houses_ships.scp (Fixed ship masts not blocking line of sight)&lt;br /&gt;
&lt;br /&gt;
19-04-2009, MrSugarCube&lt;br /&gt;
- Fixed #1586: Possible exception when checking line of sight near multis when AdvancedLos is enabled.&lt;br /&gt;
- Fixed #1495: Ghosts able to teleport through walls when resurrecting. Line of sight is now required&lt;br /&gt;
  for a ghost to resurrect with their corpse.&lt;br /&gt;
- Fixed: Exception when EF_NewPositionChecks is enabled and there are statics placed on the map which&lt;br /&gt;
  don't have scripts.&lt;br /&gt;
&lt;br /&gt;
19-04-2009, MrSugarCube (Script pack)&lt;br /&gt;
- Updated #1469: sphere_item_ground_tiles.scp (Corrected height of i_waterfall_low)&lt;br /&gt;
&lt;br /&gt;
25-04-2009, MrSugarCube&lt;br /&gt;
- Modified: Jailing players (&amp;quot;.JAIL cell#&amp;quot; command) now remembers the cell number that was specified,&lt;br /&gt;
  stored in Tag.JailCell on the account and used when returning players to jail.&lt;br /&gt;
- Modified: Jailed players are no longer blocked from being teleported within the jail region.&lt;br /&gt;
&lt;br /&gt;
25-04-2009, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_map0.scp (Renamed individual jail AREADEFs to jail cell ROOMDEFs)&lt;br /&gt;
&lt;br /&gt;
02-05-2009, MrSugarCube&lt;br /&gt;
- Fixed #1581: Characters unable to see objects that are in the corners of their visual range.&lt;br /&gt;
&lt;br /&gt;
03-05-2009, MrSugarCube&lt;br /&gt;
- Fixed #1526: No decay timer set on lights after they become unlit.&lt;br /&gt;
&lt;br /&gt;
04-05-2009, MrSugarCube&lt;br /&gt;
- Fixed: Objects on the corners of .EXTRACT, .NUKE, .NUKECHAR areas not being affected by the command.&lt;br /&gt;
&lt;br /&gt;
05-05-2009, MrSugarCube&lt;br /&gt;
- Fixed #1451: Missing mana checks, skill checks and @Select triggers not being fired before casting,&lt;br /&gt;
  when precasting is enabled.&lt;br /&gt;
- Modified: Separated the movement behaviour of the MAGICF_PRECAST flag into a new MAGIC_FREEZEONCAST&lt;br /&gt;
  flag. Enable MAGICF_PRECAST to enable casting before targeting, and enable MAGICF_FREEZEONCAST to&lt;br /&gt;
  prevent characters from moving whilst casting (enable both to retain the previous behaviour of&lt;br /&gt;
  MAGICF_PRECAST). Also added SPELLFLAG_NOFREEZEONCAST to disable the effects of MAGICF_FREEZEONCAST&lt;br /&gt;
  for individual spells.&lt;br /&gt;
&lt;br /&gt;
06-05-2009, MrSugarCube&lt;br /&gt;
- Added #1599: SpellTimeout setting to Sphere.ini. If set to a value greater than zero then when&lt;br /&gt;
  casting a spell the player is given this many seconds to choose a target before the spell is&lt;br /&gt;
  automatically cancelled.&lt;br /&gt;
&lt;br /&gt;
16-05-2009, MrSugarCube&lt;br /&gt;
- Modified #1610: Cure spell just sends the packet needed to update the health bar rather than sending&lt;br /&gt;
  a full refresh of the entire screen.&lt;br /&gt;
- Added #1609: MAGICF_SUMMONWALKCHECK flag to ensure that summoned creatures can only be successfully&lt;br /&gt;
  summoned on tiles that are walkable for them (i.e. a sea creature can only be summoned on water).&lt;br /&gt;
&lt;br /&gt;
16-05-2009, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_msgs.scp (Added msg_summon_invalidtarg defmessage)&lt;br /&gt;
&lt;br /&gt;
18-05-2009, MrSugarCube&lt;br /&gt;
- Added #1466: MAGICF_NOFIELDSOVERWALLS flag to enable additional checks when casting field spells to&lt;br /&gt;
  prevent them from passing through blocking objects (CAN_I_BLOCK and/or CAN_I_DOOR).&lt;br /&gt;
&lt;br /&gt;
20-05-2009, MrSugarCube&lt;br /&gt;
- Added #1604: PROMPTCONSOLEU function. This is an alternative to the PROMPTCONSOLE which enables the&lt;br /&gt;
  client to respond with unicode text.&lt;br /&gt;
- Added: SYSMESSAGELOCEX, an extended version of SYSMESSAGELOC which can be used for sending localized&lt;br /&gt;
  messages to clients with a non-localized string attached to the start or end of the message. SMSGLEX&lt;br /&gt;
  can also be used as a shortcut.&lt;br /&gt;
  Syntax is: &amp;quot;SYSMESSAGELOCEX color,clilocid,flags,affix[,arguments]&amp;quot;&lt;br /&gt;
  All arguments must be separated by a comma &amp;quot;,&amp;quot;. Specify -1 for color if you do not wish to override&lt;br /&gt;
  it. Known possible values for flags are:&lt;br /&gt;
    0x00 = Append text to message&lt;br /&gt;
    0x01 = Prepend text to message&lt;br /&gt;
    0x02 = Forces message to show as a system message&lt;br /&gt;
  A couple of examples of this being used (latest clilocs) are:&lt;br /&gt;
   &amp;quot;SYSMESSAGELOCEX -1,1008078,01,MrSugarCube&amp;quot;                    - Displays &amp;quot;MrSugarCube : Attempting to heal you.&amp;quot;&lt;br /&gt;
   &amp;quot;SYSMESSAGELOCEX -1,3002003,00,Smoking is bad for your health&amp;quot; - Displays &amp;quot;Note to self:  Smoking is bad for your health&amp;quot;&lt;br /&gt;
  For overriding messages in sphere_msgs.scp (or other message functions such as SAY and MESSAGE) the&lt;br /&gt;
  syntax &amp;quot;@hue,font,3 clilocid,flags,affix[,arguments]&amp;quot; can be used, for example:&lt;br /&gt;
   &amp;quot;SAY @022,,3 1008097,01,MrSugarCube&amp;quot;                           - Object says &amp;quot;MrSugarCube : poisoned you!&amp;quot; in red&lt;br /&gt;
&lt;br /&gt;
30-05-2009, Nazghul&lt;br /&gt;
- Fixed: @GetHit always gave damagetype type (argn2) 0C02 (physical | slash | pierce). Now the type is set &lt;br /&gt;
  to dam_physical, dam_slash or dam_pierce is added depending on weapon type (wrestling and mace weapons&lt;br /&gt;
  don't set extra flags).&lt;br /&gt;
- Added: TAG.OVERRIDE.DAMAGETYPE for weapon type items. Holds a numerical value and overrides the&lt;br /&gt;
  type specific damage type.&lt;br /&gt;
&lt;br /&gt;
20-06-2009, MrSugarCube&lt;br /&gt;
- Fixed #1617: Dispel and Mass Dispel spells sending an unnecessary full client update to all players&lt;br /&gt;
  touched by the spell.&lt;br /&gt;
&lt;br /&gt;
21-06-2009, MrSugarCube&lt;br /&gt;
- Added #1627: PlayerEvil setting to Sphere.ini. Similar to the PlayerNeutral setting, this&lt;br /&gt;
  will control the karma level at which a player will be considered evil.&lt;br /&gt;
&lt;br /&gt;
25-07-2009, MrSugarCube&lt;br /&gt;
- Added: Support for packet changes found in client 6.0.14.2.&lt;br /&gt;
&lt;br /&gt;
02-08-2009, MrSugarCube&lt;br /&gt;
- Fixed #1636: Exception caused when an online player character is deleted.&lt;br /&gt;
- Fixed #1639: Tooltips not being sent for objects on the edge of the client's screen.&lt;br /&gt;
&lt;br /&gt;
29-08-2009, MrSugarCube&lt;br /&gt;
- Fixed: Unable to drop 'new' spell scrolls (necro+) into spellbooks even when MOREZ has&lt;br /&gt;
  been correctly set on the book.&lt;br /&gt;
- Fixed: Incorrect character race being sent to clients.&lt;br /&gt;
&lt;br /&gt;
30-08-2009, MrSugarCube&lt;br /&gt;
- Fixed #1625: Extremely high vendor prices on Linux build.&lt;br /&gt;
- Fixed: Archery buttes not checking for OVERRIDE.AMMOTYPE and OVERRIDE.ANIM* tags on the&lt;br /&gt;
  character's weapon.&lt;br /&gt;
- Modified #1642: Reduced delay between asynchronous database query callbacks.&lt;br /&gt;
- Added: Skill flag SKF_RANGED. Combine this with the SKF_FIGHT flag to create ranged&lt;br /&gt;
  (i.e. archery) combat skills.&lt;br /&gt;
&lt;br /&gt;
30-08-2009, MrSugarCube (Script pack)&lt;br /&gt;
- Updated: sphere_defs.scp (Added SKF_RANGED definition)&lt;br /&gt;
&lt;br /&gt;
07-09-2009, MrSugarCube&lt;br /&gt;
- Added: Console command &amp;quot;d ui&amp;quot; to generate a file named &amp;quot;unscripted_items.scp&amp;quot; that&lt;br /&gt;
  contains *basic* definitions for items in tiledata.mul that have no corresponding&lt;br /&gt;
  Sphere script.&lt;br /&gt;
&lt;br /&gt;
12-09-2009, MrSugarCube&lt;br /&gt;
- Fixed #1623: RESTEST requiring 1 of an item when checking for a quantity of 0. This also&lt;br /&gt;
  affects other resource-list-based functions and properties such as CONSUME, FOODTYPE,&lt;br /&gt;
  RESOURCES, SKILLMAKE, SKILLTEST, etc.&lt;br /&gt;
- Fixed #1655: Setting RAINCHANCE and COLDCHANCE to zero does did not disable rain or snow.&lt;br /&gt;
- Modified: When loading a WORLD* block from a save Sphere can resolve defnames to find the&lt;br /&gt;
  object being loaded (like the ones in sphere_backward_compatibility.scp, for example).&lt;br /&gt;
&lt;br /&gt;
12-09-2009, Coruja (Script pack)&lt;br /&gt;
- Updated #1645: sphere_template_vend.scp, sphere_item_resources.scp, spherechar_human.scp,&lt;br /&gt;
  sphere_item_provisions_potions.scp, sphere_backward_compatibility.scp (Corrected spelling&lt;br /&gt;
  of the wyrm heart defname (i_reag_worm_heart-&amp;gt;i_reag_wyrm_heart))&lt;br /&gt;
- Updated #1654: sphere_defs.scp (Adjusted height of the Meer characters)&lt;br /&gt;
&lt;br /&gt;
13-09-2009, MrSugarCube&lt;br /&gt;
- Fixed #1595: @Destroy trigger not being fired for items inside removed containers. When&lt;br /&gt;
  returning 1 in @Destroy on an item inside a container about to be deleted, the item will&lt;br /&gt;
  be dropped to the ground (unless the item has already been moved elsewhere).&lt;br /&gt;
- Fixed #1656: Exception when players trade and item 01e5e has not been set as a container&lt;br /&gt;
  type.&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Articles]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Special_Items&amp;diff=515</id>
		<title>Special Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Special_Items&amp;diff=515"/>
				<updated>2009-08-30T02:04:30Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Corrected description of BODY property.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Certain types of items have extended functionality, and therefore have additional properties, functions or references to the ones already listed on the [[Items]] page. The following sections describe what these are.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Multis==&lt;br /&gt;
Multis have a TYPE t_multi, t_multi_custom or t_ship. These are multi-piece items that are usually stored in the client's multi.mul file, but are only considered to be one item to both the server and client (so when you approach a castle, there is a significant reduction in lag since the server doesn't have to tell the client to display thousands of wall pieces).&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all multi properties and functions. If a function is marked as readable then it can return a value when used as &amp;amp;lt;KEY&amp;amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[COMP]] || R || Gets the number of components defined in the [[ITEMDEF]].&lt;br /&gt;
|-&lt;br /&gt;
| [[COMP]]''.n.key''' || R || Gets the KEY (ID,DX,DY,DZ,D) of the nth component defined in the [[ITEMDEF]].&lt;br /&gt;
|-&lt;br /&gt;
| [[MULTICREATE]] ''owner_uid'' || W || When a multi is created via SERV.[[NEWITEM]], this function must be used to initialise the multi-region.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Customizable Multis==&lt;br /&gt;
Customizable multis are represented by the TYPE of t_multi_custom. These are designed to be used with the AOS House Designer tool that is present since the 4.0.0 series of UO clients.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[DESIGNER]] || R || Gets the [[Characters|character]] currently modifying the house design.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all custom multi properties and functions. If a function is marked as readable then it can return a value when used as &amp;amp;lt;KEY&amp;amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDITEM]] ''item_id, dx, dy, dz'' || W || Adds an item to the house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDMULTI]] ''multi_id, dx, dy, dz'' || W || Adds a multi to the house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEAR]] || W || Removes all items from the house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[COMMIT]] || W || Commits all changes that have been made to the house design, updating the state of the building.&lt;br /&gt;
|-&lt;br /&gt;
| [[COMPONENTS]] || R || Gets the number of components in the house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[CUSTOMIZE]] ''character_uid'' || W || Enters the building into edit mode for the specified character (or SRC).&lt;br /&gt;
|-&lt;br /&gt;
| [[DESIGN]]''.n.KEY'' || R || Gets a property (ID,DX,DY,DZ,D,FIXTURE) from the nth component in the house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[EDITAREA]] || R || Gets the designable area rectangle of the multi (left,top,right,bottom)&lt;br /&gt;
|-&lt;br /&gt;
| [[ENDCUSTOMIZE]] || W || Exits the current designer from edit mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[FIXTURES]] || R || Gets the number of fixtures in the house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVEITEM]] ''item_id, dx, dy, dz'' || W || Removes an item from the house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESET]] || W || Resets the house design back to the house foundation.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESYNC]] ''character_uid'' || W || Resends the current building state to the specified character (or SRC).&lt;br /&gt;
|-&lt;br /&gt;
| [[REVERT]] || W || Undoes all of the changes made to the house design since the last commit.&lt;br /&gt;
|-&lt;br /&gt;
| [[REVISION]] || R || Gets the revision number of the house design.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ships==&lt;br /&gt;
Ships have the TYPE t_ship, and are another extended version of multis that are designed to be used to sail around the world.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[HATCH]] || R || Gets the ship's [[Items|hatch]].&lt;br /&gt;
|-&lt;br /&gt;
| [[TILLER]] || R || Gets the ship's [[Items|tiller]].&lt;br /&gt;
|-&lt;br /&gt;
| [[PLANK]]''.n'' || R || Gets the nth ship [[Items|plank]]. (zero-based)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all ship properties and functions. If a function is marked as readable then it can return a value when used as &amp;amp;lt;KEY&amp;amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[PLANKS]] || R || Gets the number of planks on the ship.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPANCHORDROP]] || W || Drops the ship's anchor, preventing it from moving.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPANCHORRAISE]] || W || Raises the ship's anchor, allowing it to move.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPBACK]] || W || Begins moving the ship backwards.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPBACKLEFT]] || W || Begins moving the ship backwards and to its left.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPBACKRIGHT]] || W || Begins moving the ship backwards and to its right.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPDOWN]] || W || Begins moving the ship downards, if ATTR_MAGIC is set.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPDRIFTLEFT]] || W || Begins moving the ship to its left.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPDRIFTRIGHT]] || W || Begins moving the ship to its right.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPFACE]] ''direction'' || W || Sets the direction of the ship.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPFORE]] || W || Begins moving the ship forwards.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPFORELEFT]] || W || Begins moving the ship forwards and to its left.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPFORERIGHT]] || W || Begins moving the ship forwards and to its right.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPGATE]] ''location'' || W || Moves the entire ship and its contents to a specified location.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPLAND]] || W || Moves the ship to ground level, if ATTR_MAGIC is set.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPMOVE]] ''direction'' || W || Begins moving the ship in the specified direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPSPEED]].TILES || R || Gets the number of tiles that ths ship moves in one step.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPSPEED]].PERIOD || R || Gets the length of time between each step, in tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPSTOP]] || W || Stops the ship.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPTURN]] || W || Turns the ship to face the opposite direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPTURNLEFT]] || W || Rotates the ship to its left.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPTURNRIGHT]] || W || Rotates the ship to its right.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHIPUP]] || W || Begins moving the ship upwards, if ATTR_MAGIC is set.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maps==&lt;br /&gt;
The TYPEs t_map and t_map_blank are used to represent maps. These display a map to the player when used, that can be marked with a series of pins (markers) to plot a route.&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all map properties and functions. If a function is marked as readable then it can return a value when used as &amp;amp;lt;KEY&amp;amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[PIN]]''.n'' &amp;lt;br /&amp;gt; [[PIN]] ''x, y'' || RW || Gets the position of the ''nth'' pin (zero-based), or adds a pin to the map at the specified location.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Messages / Books==&lt;br /&gt;
Messages (t_message) and books (t_book) possess a range of properties and functions that are used to store their title, author and body text.&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all message properties and functions. If a function is marked as readable then it can return a value when used as &amp;amp;lt;KEY&amp;amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[AUTHOR]] || RW || Gets or sets the author of the message.&lt;br /&gt;
|-&lt;br /&gt;
| [[BODY]]''.n'' || RW || Gets the nth line of text from the message, or appends a new line of text to the message.&lt;br /&gt;
|-&lt;br /&gt;
| [[ERASE]] ''page_num'' || W || Removes all lines of text from the message, or if a page number (one-based) if supplied erases just a single line.&lt;br /&gt;
|-&lt;br /&gt;
| [[PAGE]]''.n'' || W || Sets the text of the nth single line of the message. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[PAGES]] || R || Gets the number of lines of text in the message.&lt;br /&gt;
|-&lt;br /&gt;
| [[TITLE]] || RW || Gets or sets the title of message.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Communication Crystals==&lt;br /&gt;
Communication crystals have the TYPE of t_comm_crystal.&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all communication crystal properties and functions. If a function is marked as readable then it can return a value when used as &amp;amp;lt;KEY&amp;amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[SPEECH]] ''-/+speech_defname'' || RW || Gets a list of attached SPEECH blocks, or adds to or removes from the attached speech..&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guild/Town Stones==&lt;br /&gt;
Guild and Town stones are defined by the types t_stone_guild and t_stone_town. Whilst a lot of functionality has been moved into the script pack, there are still some special properties, functions and references that can be used.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILD]]''.n || R || Gets the nth linked [[#Guild.2FTown_Members|guild or town]]. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDFROMUID]]''stone_uid || R || Gets the linked [[#Guild.2FTown_Members|guild or town]] with a specified UID.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMBER]]''.n || R || Gets the nth member of the [[#Guild.2FTown_Members|guild or town]]. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMBERFROMUID]].''character_uid || R || Gets the [[#Guild.2FTown_Members|member]] of the guild with a specified UID.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all guild/town stone properties and functions. If a function is marked as readable then it can return a value when used as &amp;amp;lt;KEY&amp;amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ABBREV]]  || RW || Gets or sets the guild/town abbreviation.&lt;br /&gt;
|-&lt;br /&gt;
| [[ABBREVIATIONTOGGLE]] || R || Returns one of the ''STONECONFIG_VARIOUSNAME_*'' defnames depending on whether SRC has their abbreviation showing or not.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALIGN]] || RW || Gets or sets the alignment of the guild/town.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALIGNTYPE]] || R || Returns the name of the guild or town's alignment.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLGUILDS]] ''flags, command'' || W || Performs the given comamnd on all linked guilds or towns based on flags. (0 = All, 1 = War Declared by 'Us' only, 2 = War Declared by 'Them' only, 3 = War Declayed by both)&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLMEMBERS]] ''priv, command'' || W || Performs the given command on all guild or town members with the specified privelege level. (-1 = All)&lt;br /&gt;
|-&lt;br /&gt;
| [[APPLYTOJOIN]] ''character_uid'' || W || Adds a character as a candidate to the guild or town.&lt;br /&gt;
|-&lt;br /&gt;
| [[CHANGEALIGN]] ''alignment'' || W || Changes the guild or town alignment.&lt;br /&gt;
|-&lt;br /&gt;
| [[DECLAREPEACE]] ''stone_uid'' || W || Declares peace towards another guild or town.&lt;br /&gt;
|- &lt;br /&gt;
| [[DECLAREWAR]] ''stone_uid'' || W || Declares war towards another guild or town.&lt;br /&gt;
|-&lt;br /&gt;
| [[ELECTMASTER]] || W || Selects a new guild or town master based on which member has the most votes.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILD]].COUNT || R || Gets the number linked guilds or towns.&lt;br /&gt;
|-&lt;br /&gt;
| [[INVITEWAR]] ''stone_uid, who_declared'' || W || Invites another guild or town to go to war (''who_declared'', 0 = They declared, 1 = We declared)&lt;br /&gt;
|-&lt;br /&gt;
| [[JOINASMEMBER]] ''character_uid'' || W || Adds a character as a full member of the guild or town.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOYALTO]] || R || Returns the name of the guild or town member that SRC has declared fealty to.&lt;br /&gt;
|-&lt;br /&gt;
| [[MASTER]] || R || Returns the name of the guild or town master.&lt;br /&gt;
|-&lt;br /&gt;
| [[MASTERGENDERTITLE]] || R || Returns the gender of the guild or town mastser.&lt;br /&gt;
|-&lt;br /&gt;
| [[MASTERTITLE]] || R || Returns the title of the guild or town master.&lt;br /&gt;
|-&lt;br /&gt;
| [[MASTERUID]] || RW || Gets the UID of the guild/town master, or sets it to the UID of a new master.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMBER]].COUNT ''priv'' || R || Gets the number of members in the guild/town with at least the given privileges (or all if not supplied).&lt;br /&gt;
|-&lt;br /&gt;
| [[RESIGN]] ''character_uid'' || W || Removes a character from the guild or town.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOGGLEABBREVIATION]] ''character_uid'' || W || Toggles the display of guild/town abbreviation for a member or SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEBPAGE]] || RW || Gets or sets the guild or town's webpage.&lt;br /&gt;
|-&lt;br /&gt;
| [[CHARTER]]''.n'' || EW || Gets or sets the nth line of the guild/town charter. (zero-based)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guild/Town Members==&lt;br /&gt;
When accessing a member of a guild or town via the [[MEMBER]].x,r [[MEMBERFROMUID]].uid, [[GUILD]].x, or [[GUILDFROMUID]].uid references, you access a special &amp;quot;Guild/Town Member&amp;quot; object which has specific properties, references and functions available. If you attempt to access something that doesn't exist in any of the following tables then the command is 'redirected' to the actual character or item the member object is linked to (so something like ''&amp;amp;lt;MEMBER.x.STR&amp;amp;gt;'' would work because the STR property exists on the [[Characters|character]]).&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all guild/town member properties and functions. If a function is marked as readable then it can return a value when used as &amp;amp;lt;KEY&amp;amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
====Character Members====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNTGOLD]]  || RW || Gets or sets the amount of gold the member has in their guild/town account.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCANDIDATE]] || R || Returns 1 if the member is a candidate of the guild/town.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISMASTER]] || R || Returns 1 if the member is a guild/town master.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOYALTO]] || RW || Gets or sets the UID of who the member has declared fealty towards.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRIV]] || RW || Gets or sets the member's privilege level within the guild/town.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRIVNAME]] || R || Returns the name of the member's privilege level within the guild/town.&lt;br /&gt;
|-&lt;br /&gt;
| [[TITLE]] || RW || Gets or sets the member's title within the guild/town.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHOWABBREV]] || RW || Gets or sets whether or not the member's abbreviation is shown.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Item Members====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ISENEMY]] || R || Returns 1 if the other guild/town is considered an enemy.&lt;br /&gt;
|-&lt;br /&gt;
| [[THEYALLIANCE]]  || RW || Gets or sets whether or not the other guild/town has declared an alliance with the guild/town.&lt;br /&gt;
|-&lt;br /&gt;
| [[THEYWAR]]  || RW || Gets or sets whether or not the other guild/town has declared war.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEALLIANCE]]  || RW || Gets or sets whether or not the guild/town has declared an alliance with the other guild/town.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEWAR]]  || RW || Gets or sets whether or not the guild/town has declared war with the other guild/town.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Containers==&lt;br /&gt;
Container items (backpacks, bankboxes, bags, etc) can be used to hold other items. These items have the [[TYPE]] of t_container.&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDCONT]]''.n'' || R || Gets the nth [[Items|item]] from inside the container. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDID]]''.item_id'' || R || Gets the first [[Items|item]] found inside the container with the matching [[BASEID]].&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDTYPE]]''.type'' || R || Gets the first [[Items|item]] found inside the container with the matching [[TYPE]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all custom multi properties and functions. If a function is marked as readable then it can return a value when used as &amp;amp;lt;KEY&amp;amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[COUNT]] || R || Returns the number of items inside the container.&lt;br /&gt;
|-&lt;br /&gt;
| [[DELETE]] ''nth'' || W || Deletes the nth item from inside the container. (1-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[EMPTY]] || W || Deletes all items inside the container.&lt;br /&gt;
|-&lt;br /&gt;
| [[FCOUNT]] || R || Returns the total number of items inside the container, including subcontainers.&lt;br /&gt;
|-&lt;br /&gt;
| [[FIXWEIGHT]] || W || Recalculates the total weight of the container and its contained items.&lt;br /&gt;
|-&lt;br /&gt;
| [[OPEN]] || W || Opens the container, for SRC to view its contents.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESCOUNT]] ''item_defname'' || R || Returns the total amount of a specific item inside the container, including subcontainers.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTEST]] ''item_list'' || R || Returns 1 if all of the items in the list can be found inside the container, including subcontainers.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vendable Items==&lt;br /&gt;
When an item has value, either explicitly in the ITEMDEF's [[VALUE]] property or implicity in the ITEMDEF's [[RESOURCES]] property, it is considered a &amp;quot;Vendable Item&amp;quot; that can be sold on vendors.&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all vendable item properties and functions. If a function is marked as readable then it can return a value when used as &amp;amp;lt;KEY&amp;amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[PRICE]] || RW || Gets or sets the price of the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[QUALITY]] || RW || Gets or sets the quality of the item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=AQUERY&amp;diff=512</id>
		<title>AQUERY</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=AQUERY&amp;diff=512"/>
				<updated>2009-08-01T16:10:51Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Created page with '__FORCETOC__  ==Description== This function will queue up a query and run it asynchronously in a background thread (rather than the script waiting for it to complete like the [[Q...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This function will queue up a query and run it asynchronously in a background thread (rather than the script waiting for it to complete like the [[QUERY]] function). Once the query has been executed, a specified callback function will run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unlike the [[QUERY]] function, results are not stored in the [[ROW]] object. Instead they are passed in to the callback function as [[LOCAL]]s. The following table shows the differences between accessing the results for the two functions:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| [[QUERY]] || [[AQUERY]]&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]].NUMROWS || LOCAL.NUMROWS&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]].NUMCOLS || LOCAL.NUMCOLS&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]].''row_index''.''col_index'' || LOCAL.''row_index''.''col_index''&lt;br /&gt;
|-&lt;br /&gt;
| [[ROW]].''row_index''.''col_name'' || LOCAL.''row_index''.''col_name''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Note 1''''': An open database connection is required for this function to work correctly. See the [[CONNECT]] function for information regarding the opening of a database connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Note 2''''': The [[AQUERY]] and [[QUERY]] functions are intended to run SQL commands that return results (such as SELECT). For commands that do not return results consider using the [[AEXECUTE]] and [[EXECUTE]] functions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valid for the following objects:&lt;br /&gt;
* [[Database]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;tt&amp;gt;AQUERY ''function'', ''command''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Argument''' || '''Type''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| ''function'' || string || A script function to call when the command has been executed.&lt;br /&gt;
{| cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Argument''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| ''ARGN1'' || The type of command (0 = [[AEXECUTE]], 1 = [[AQUERY]])&lt;br /&gt;
|-&lt;br /&gt;
| ''ARGN2'' || 0 = Command failed, 1 = Command succeeded.&lt;br /&gt;
|-&lt;br /&gt;
| ''ARGS'' || The command that was executed.&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| ''command'' || string || The SQL command to execute.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Return Values==&lt;br /&gt;
This function returns one of two values when executed. See the table below for the meanings of the return values:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Return Value''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Command has not been successfully queued.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Command has been successfully queued.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Queues an SQL query.&lt;br /&gt;
//&lt;br /&gt;
[FUNCTION f_aquery]&lt;br /&gt;
SERV.LOG Selecting some values in the background.&lt;br /&gt;
IF (&amp;lt;DB.AQUERY f_aquery_callback, SELECT 10 AS test1, 20 AS test2, 30 AS test3&amp;gt; == 0)&lt;br /&gt;
  SERV.LOG Failed to queue command.&lt;br /&gt;
ELSE&lt;br /&gt;
  SERV.LOG Command queued.&lt;br /&gt;
ENDIF&lt;br /&gt;
RETURN&lt;br /&gt;
&lt;br /&gt;
//&lt;br /&gt;
// This function will be called when the query has been executed.&lt;br /&gt;
//&lt;br /&gt;
[FUNCTION f_aquery_callback]&lt;br /&gt;
IF (&amp;lt;ARGN2&amp;gt; == 0)&lt;br /&gt;
  SERV.LOG The command failed to execute. (&amp;lt;ARGS&amp;gt;)&lt;br /&gt;
ELSE&lt;br /&gt;
  SERV.LOG The command succeeded, &amp;lt;dLOCAL.NUMROWS&amp;gt; row(s) of data returned. (&amp;lt;ARGS&amp;gt;)&lt;br /&gt;
  FOR 0 &amp;lt;EVAL &amp;lt;LOCAL.NUMROWS&amp;gt; - 1&amp;gt;&lt;br /&gt;
    SERV.LOG #&amp;lt;EVAL &amp;lt;LOCAL._FOR&amp;gt; + 1&amp;gt;. &amp;lt;LOCAL.&amp;lt;dLOCAL._FOR&amp;gt;.test1&amp;gt;, &amp;lt;LOCAL.&amp;lt;dLOCAL._FOR&amp;gt;.test2&amp;gt;, &amp;lt;LOCAL.&amp;lt;dLOCAL._FOR&amp;gt;.test3&amp;gt;&lt;br /&gt;
  ENDFOR&lt;br /&gt;
ENDIF&lt;br /&gt;
RETURN&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=AEXECUTE&amp;diff=511</id>
		<title>AEXECUTE</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=AEXECUTE&amp;diff=511"/>
				<updated>2009-08-01T15:45:08Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This function will queue up a query and run it asynchronously in a background thread (rather than the script waiting for it to complete like the [[EXECUTE]] function). Once the query has been executed, a specified callback function will run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Note 1''''': An open database connection is required for this function to work correctly. See the [[CONNECT]] function for information regarding the opening of a database connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Note 2''''': The [[AEXECUTE]] and [[EXECUTE]] functions are intended to run SQL commands that do not return any results (such as DELETE or UPDATE). For commands that return results (that you want to then read back) see the [[AQUERY]] and [[QUERY]] functions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valid for the following objects:&lt;br /&gt;
* [[Database]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;tt&amp;gt;AEXECUTE ''function'', ''command''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Argument''' || '''Type''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| ''function'' || string || A script function to call when the command has been executed.&lt;br /&gt;
{| cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Argument''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| ''ARGN1'' || The type of command (0 = [[AEXECUTE]], 1 = [[AQUERY]])&lt;br /&gt;
|-&lt;br /&gt;
| ''ARGN2'' || 0 = Command failed, 1 = Command succeeded.&lt;br /&gt;
|-&lt;br /&gt;
| ''ARGS'' || The command that was executed.&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| ''command'' || string || The SQL command to execute.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Return Values==&lt;br /&gt;
This function returns one of two values when executed. See the table below for the meanings of the return values:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Return Value''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Command has not been successfully queued.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Command has been successfully queued.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Queues up an SQL command.&lt;br /&gt;
//&lt;br /&gt;
[FUNCTION f_execute]&lt;br /&gt;
SERV.LOG Deleting all rows from table 'tbl_name'.&lt;br /&gt;
IF (&amp;lt;DB.AEXECUTE f_execute_callback, DELETE FROM tbl_name&amp;gt; == 0)&lt;br /&gt;
  SERV.LOG Failed to queue command.&lt;br /&gt;
ELSE&lt;br /&gt;
  SERV.LOG Command queued.&lt;br /&gt;
ENDIF&lt;br /&gt;
RETURN&lt;br /&gt;
&lt;br /&gt;
//&lt;br /&gt;
// This function will be called when the query has been executed.&lt;br /&gt;
//&lt;br /&gt;
[FUNCTION f_execute_callback]&lt;br /&gt;
IF (&amp;lt;ARGN2&amp;gt; == 0)&lt;br /&gt;
  SERV.LOG The command failed to execute. (&amp;lt;ARGS&amp;gt;)&lt;br /&gt;
ELSE&lt;br /&gt;
  SERV.LOG The command succeeded. (&amp;lt;ARGS&amp;gt;)&lt;br /&gt;
ENDIF&lt;br /&gt;
RETURN&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=AEXECUTE&amp;diff=510</id>
		<title>AEXECUTE</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=AEXECUTE&amp;diff=510"/>
				<updated>2009-08-01T15:44:48Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Created page with ''''''wip'''''  __FORCETOC__  ==Description== This function will queue up a query and run it asynchronously in a background thread (rather than the script waiting for it to comple...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''''wip'''''&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This function will queue up a query and run it asynchronously in a background thread (rather than the script waiting for it to complete like the [[EXECUTE]] function). Once the query has been executed, a specified callback function will run.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Note 1''''': An open database connection is required for this function to work correctly. See the [[CONNECT]] function for information regarding the opening of a database connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Note 2''''': The [[AEXECUTE]] and [[EXECUTE]] functions are intended to run SQL commands that do not return any results (such as DELETE or UPDATE). For commands that return results (that you want to then read back) see the [[AQUERY]] and [[QUERY]] functions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Valid for the following objects:&lt;br /&gt;
* [[Database]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;tt&amp;gt;AEXECUTE ''function'', ''command''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Argument''' || '''Type''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| ''function'' || string || A script function to call when the command has been executed.&lt;br /&gt;
{| cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Argument''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| ''ARGN1'' || The type of command (0 = [[AEXECUTE]], 1 = [[AQUERY]])&lt;br /&gt;
|-&lt;br /&gt;
| ''ARGN2'' || 0 = Command failed, 1 = Command succeeded.&lt;br /&gt;
|-&lt;br /&gt;
| ''ARGS'' || The command that was executed.&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| ''command'' || string || The SQL command to execute.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Return Values==&lt;br /&gt;
This function returns one of two values when executed. See the table below for the meanings of the return values:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Return Value''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Command has not been successfully queued.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Command has been successfully queued.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Queues up an SQL command.&lt;br /&gt;
//&lt;br /&gt;
[FUNCTION f_execute]&lt;br /&gt;
SERV.LOG Deleting all rows from table 'tbl_name'.&lt;br /&gt;
IF (&amp;lt;DB.AEXECUTE f_execute_callback, DELETE FROM tbl_name&amp;gt; == 0)&lt;br /&gt;
  SERV.LOG Failed to queue command.&lt;br /&gt;
ELSE&lt;br /&gt;
  SERV.LOG Command queued.&lt;br /&gt;
ENDIF&lt;br /&gt;
RETURN&lt;br /&gt;
&lt;br /&gt;
//&lt;br /&gt;
// This function will be called when the query has been executed.&lt;br /&gt;
//&lt;br /&gt;
[FUNCTION f_execute_callback]&lt;br /&gt;
IF (&amp;lt;ARGN2&amp;gt; == 0)&lt;br /&gt;
  SERV.LOG The command failed to execute. (&amp;lt;ARGS&amp;gt;)&lt;br /&gt;
ELSE&lt;br /&gt;
  SERV.LOG The command succeeded. (&amp;lt;ARGS&amp;gt;)&lt;br /&gt;
ENDIF&lt;br /&gt;
RETURN&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Category:Statements&amp;diff=505</id>
		<title>Category:Statements</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Category:Statements&amp;diff=505"/>
				<updated>2009-07-11T12:22:12Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Statement''' || '''End Statement''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[BEGIN]] || END || Groups a set of lines together, for use with [[DORAND]] and [[DOSWITCH]] statements.&lt;br /&gt;
|-&lt;br /&gt;
| [[DORAND]] ''line_count'' || ENDDO || Executes a random line of code within the block.&lt;br /&gt;
|-&lt;br /&gt;
| [[DOSWITCH]] ''line_number'' || ENDDO || Executes the specified line of code within the block.&lt;br /&gt;
|-&lt;br /&gt;
| [[FOR]] ''start end'' || ENDFOR || Loops through the block of code&lt;br /&gt;
|-&lt;br /&gt;
| [[FORCHARLAYER]] ''layer_id'' || ENDFOR || Loops through all items that a character has equipped on a specified layer.&lt;br /&gt;
|-&lt;br /&gt;
| [[FORCHARMEMORYTYPE]] ''memory_flags'' || ENDFOR || Loops through all memory items on a character that have one of the specified flags.&lt;br /&gt;
|-&lt;br /&gt;
| [[FORCHARS]] ''distance'' || ENDFOR || Loops through all characters within ''distance'' tiles.&lt;br /&gt;
|-&lt;br /&gt;
| [[FORCLIENTS]] ''distance'' || ENDFOR || Loops through all connected clients within ''distance'' tiles.&lt;br /&gt;
|-&lt;br /&gt;
| [[FORCONT]] ''container_uid, max_subcontainers'' || ENDFOR || Loops through all items inside a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[FORCONTID]] ''item_id, max_subcontainers'''' || ENDFOR || Loops through all items inside a container with a specified [[BASEID]]&lt;br /&gt;
|-&lt;br /&gt;
| [[FORCONTTYPE]] ''type, max_subcontainers'' || ENDFOR || Loops through all items inside a container with a specified [[TYPE]]&lt;br /&gt;
|-&lt;br /&gt;
| [[FORINSTANCES]] ''defname'' || ENDFOR || Loops through all instances of characters or items with the specified [[BASEID]]&lt;br /&gt;
|-&lt;br /&gt;
| [[FORITEMS]] ''distance'' || ENDFOR || Loops through all items within ''distance'' tiles.&lt;br /&gt;
|-&lt;br /&gt;
| [[FOROBJS]] ''distance'' || ENDFOR || Loops through all items and players within ''distance'' tiles.&lt;br /&gt;
|-&lt;br /&gt;
| [[FORPLAYERS]] ''distance'' || ENDFOR || Loops through all players (online and offline) within ''distance'' tiles.&lt;br /&gt;
|-&lt;br /&gt;
| [[IF]] ''condition''&amp;lt;br /&amp;gt;[[IF|ELIF]] ''condition''&amp;lt;br /&amp;gt;[[IF|ELSEIF]] ''condition'' || ENDIF || Executes the block of code if ''condition'' is true.&lt;br /&gt;
|-&lt;br /&gt;
| [[WHILE]] ''condition'' || ENDWHILE || Loops through the block of code whilst ''condition'' is true.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Scripts]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Error_Codes&amp;diff=502</id>
		<title>Error Codes</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Error_Codes&amp;diff=502"/>
				<updated>2009-06-25T21:10:29Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Created page with '__FORCETOC__ ==Exit Codes== When Sphere closes, an 'exit code' will normally be shown in the console to describe why it is being shut down. In general, an exit code less than 0 i...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
==Exit Codes==&lt;br /&gt;
When Sphere closes, an 'exit code' will normally be shown in the console to describe why it is being shut down. In general, an exit code less than 0 is considered to be an error code, and values above 0 are normal shutdown codes. In most cases, a more descriptive error will be shown in the console and/or log file to help better diagnose the reason behind error codes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following table lists all of the current codes and their meanings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| '''Code''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| -10 || Unexpected error occurred&lt;br /&gt;
|-&lt;br /&gt;
| -9 || Failed to bind server port&lt;br /&gt;
|-&lt;br /&gt;
| -8 || Failed to load world save(s)&lt;br /&gt;
|-&lt;br /&gt;
| -3 || Failed to load server settings (script, ini, mul files)&lt;br /&gt;
|-&lt;br /&gt;
| -1 || Shutdown via commandline (/?, /T and /Q switches)&lt;br /&gt;
|-&lt;br /&gt;
|  1 || X in console ''or'' &amp;lt;br /&amp;gt;SIGHUP signal, terminal closed (Linux Only)&lt;br /&gt;
|-&lt;br /&gt;
|  2 || SHUTDOWN command&lt;br /&gt;
|-&lt;br /&gt;
|  4 || Service shutdown ''(Windows Only)''&lt;br /&gt;
|-&lt;br /&gt;
|  5 || Console window closed ''(Windows Only)''&lt;br /&gt;
|-&lt;br /&gt;
|  6 || SIGABRT signal, process aborted ''(Linux Only)''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Garbage Collection==&lt;br /&gt;
The purpose of garbage collection is to validate all of the server objects and free up unused UIDs. Garbage collection is initiated:&lt;br /&gt;
* After the world save is loaded at startup.&lt;br /&gt;
* Before a world save begins, if the [[FORCEGARBAGECOLLECT]] setting is enabled in Sphere.ini.&lt;br /&gt;
* After the [[IMPORT]] or [[RESTORE]] functions have been used on the [[Server|server]] object.&lt;br /&gt;
* When the 'G' command is entered via the Sphere console&lt;br /&gt;
* When the [[GARBAGE]] function is used on the [[Server|server]] object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When garbage collection encounters a problem with an object it may attempt to automatically correct the error, otherwise the object will be removed. When an object is removed by garbage collection there will normally be an error shown in the console describing the item that was removed along with the reason. The following table lists all of the garbage collection codes along with their description:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
| '''Code''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| 1102 || Disconnected character not acting as such.&lt;br /&gt;
|-&lt;br /&gt;
| 1103 || NPC with STATF_Ridden does not have the correct action set.&lt;br /&gt;
|-&lt;br /&gt;
| 1104 || Ridden NPC without a mount item.&lt;br /&gt;
|-&lt;br /&gt;
| 1105 || Ridden NPC with a mount item that is not linked to them.&lt;br /&gt;
|-&lt;br /&gt;
| 1106 || Disconneced NPC neither dead or ridden.&lt;br /&gt;
|-&lt;br /&gt;
| 1107 || Ingame character that is neither a player or an NPC.&lt;br /&gt;
|-&lt;br /&gt;
| 1108 || Character not on a valid position.&lt;br /&gt;
|-&lt;br /&gt;
| 1203 || NPC with STATF_Ridden does not have the correct action set.&lt;br /&gt;
|-&lt;br /&gt;
| 1204 || Ridden NPC without a mount item.&lt;br /&gt;
|-&lt;br /&gt;
| 1205 || Ingame character that is neither a player or an NPC.&lt;br /&gt;
|-&lt;br /&gt;
| 2102 || Item without an ITEMDEF.&lt;br /&gt;
|-&lt;br /&gt;
| 2103 || Item ITEMDEF with an ID of 0.&lt;br /&gt;
|-&lt;br /&gt;
| 2104 || Disconnected item.&lt;br /&gt;
|-&lt;br /&gt;
| 2105 || Item not on a valid position.&lt;br /&gt;
|-&lt;br /&gt;
| 2106 || Item flagged as being in a container but it isn't.&lt;br /&gt;
|-&lt;br /&gt;
| 2202 || Item flagged as equipped but it isn't.&lt;br /&gt;
|-&lt;br /&gt;
| 2205 || Item's LINK property is set to itself or a UID that doesn't exist.&lt;br /&gt;
|-&lt;br /&gt;
| 2206 || GM Robe or Deathshroud not on a character.&lt;br /&gt;
|-&lt;br /&gt;
| 2207 || Deathshroud not on a dead character.&lt;br /&gt;
|-&lt;br /&gt;
| 2208 || GM Robe on a character without privileges.&lt;br /&gt;
|-&lt;br /&gt;
| 2220 || Trade window memory not equipped in the correct layer, or not equipped to a player.&lt;br /&gt;
|-&lt;br /&gt;
| 2221 || Client linger memory not equipped in the correct layer, or not equipped to a player.&lt;br /&gt;
|-&lt;br /&gt;
| 2222 || Memory not equipped or is not a real memory.&lt;br /&gt;
|-&lt;br /&gt;
| 2226 || Mount memory not equipped in the correct layer.&lt;br /&gt;
|-&lt;br /&gt;
| 2227 || Hair or beard item is not equipped, not in a corpse, and not in a vendor box.&lt;br /&gt;
|-&lt;br /&gt;
| 2228 || Hair or beard item is equipped, but not in the correct layer.&lt;br /&gt;
|-&lt;br /&gt;
| 2229 || Game piece not in a container.&lt;br /&gt;
|-&lt;br /&gt;
| 2230 || Item equipped in layer_none but it isn't a trade window.&lt;br /&gt;
|-&lt;br /&gt;
| 2231 || Item equipped in layer_special but it isn't a memory or script type.&lt;br /&gt;
|-&lt;br /&gt;
| 2233 || Item equipped in layer_horse but it isn't a mount memory.&lt;br /&gt;
|-&lt;br /&gt;
| 2234 || Item equipped in the client linger layer but it isn't a client linger memory.&lt;br /&gt;
|-&lt;br /&gt;
| 2235 || Item equipped in the murder memory layer but it isn't a murder memory.&lt;br /&gt;
|-&lt;br /&gt;
| 2236 || Item flagged as decay but without timer set.&lt;br /&gt;
|-&lt;br /&gt;
| 3101 || Object is totally lost, no parent exists.&lt;br /&gt;
|-&lt;br /&gt;
| 3102 || Object was deleted or UID is incorrect.&lt;br /&gt;
|-&lt;br /&gt;
| 3201 || More than one object with the same UID.&lt;br /&gt;
|-&lt;br /&gt;
| 4222 || Memory item is not equipped, not in the memory layer, or without colour&lt;br /&gt;
|-&lt;br /&gt;
| 4223 || Memory not on a character.&lt;br /&gt;
|-&lt;br /&gt;
| 4224 || Guild/town memory does not link to the character's town/guild.&lt;br /&gt;
|-&lt;br /&gt;
| 4225 || Guild/town memory linked to a stone, but the character is not a member.&lt;br /&gt;
|-&lt;br /&gt;
| 7101 || Object's UID does not match up with server's UID table.&lt;br /&gt;
|-&lt;br /&gt;
| 7102 || Object does not exist.&lt;br /&gt;
|-&lt;br /&gt;
| FFFF || Bad memory allocation (unknown error occured).&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=501</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Main_Page&amp;diff=501"/>
				<updated>2009-06-25T21:10:15Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the retake of Taran's famous &amp;quot;[http://www.cs.rit.edu/~djr7581/ Sphere Scripting for Dummies tutorials]&amp;quot; and information. His tutorial was made for Sphere 55i, but now that Sphere 56b is about to be released we have decided to rewrite his tutorials and update the information to reflect the latest changes and additions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Where should I start?'''&lt;br /&gt;
&lt;br /&gt;
If you want to learn to script for Sphere 56b you should start by first reading the [[#Setting Up Sphere|Setting Up Sphere]] section. It will teach you how to set up a basic empty world to start your path. After that you should try reading the [[#Tutorials|Tutorials]], go slow, don't try to go through everything in one day as it takes time to read and fully understand everything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I learned how to script! And now?'''&lt;br /&gt;
&lt;br /&gt;
If you have finished the 10 chapters then we encourage you to read the tutortials and other articles below. They may not be as important as the others but they are still quite useful and contain lots of useful information. Try making your own scripts and share with others at the [http://www.sphereserver.net/index.php SphereServer Forums]. You can also ask for help if you can't resolve something by yourself. Remember to use the [[#Reference Compendium|Reference Compendium]] below as it is really useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I want to contribute!'''&lt;br /&gt;
&lt;br /&gt;
Maintaining the information on this site involves a huge amount of work and not many of us have the time to do it. If you wish to help out then please feel free to do so! All you need to do to get started is [[Special:UserLogin|create an account]] if you haven't done so already. You can then edit any page by using the &amp;quot;Edit&amp;quot; link in the rop right corner. Before you go do this, you may want to start by reading the [[Contribution Guide]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Special thanks to:'''&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Ben, Cloud_Br, Ellessar, Jdog, Lord Zerofiz, Mordaunt, Nazghul-ll, RanXerox, Rattlehead, Sandman, Sharlenwar, ShiryuX, thelegbra, Maximus and WarAngel]], for helping to add content.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Daleth]], for writing the Sphere Reference Project, and [[WhoIsWho|Mordaunt]] for converting it to .chm format.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Tracker]], for writing the Sphere 56 Tracking Changes in Sphereserver.net&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Taran]], for writing the original and now famous Sphere Scripting for Dummies tutorials, and [[WhoIsWho|MrSugarCube]] for bringing it up-to-date directly from source.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Furio, Radiant, Vjaka, Nazghul-ll, Ellessar, Torfo, Shadow Dragon and MrSugarCube]] for continuing to develop Sphere into a powerful and very customizable Ultima Online emulator.&lt;br /&gt;
&lt;br /&gt;
[[WhoIsWho|Crius]], for providing hosting for the original SphereWiki, and [[WhoIsWho|Torfo]] for providing the current hosting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting up Sphere==&lt;br /&gt;
&lt;br /&gt;
* [[Where to get Sphere]]&lt;br /&gt;
* [[Installing Sphere]]&lt;br /&gt;
* [[Configuring Sphere.ini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
Here are the chapters of Taran's original compendium, updated for Sphere56b:&lt;br /&gt;
&lt;br /&gt;
* [[Chapter 1]] ''(Numbers, DEFNAME, ITEMDEF, CHARDEF)''&lt;br /&gt;
* [[Chapter 2]] ''(Sphere files explained)''&lt;br /&gt;
* [[Chapter 3]] ''(Scripting NPC's and items, Cool commands)''&lt;br /&gt;
* [[Chapter 4]] ''(Objects, operators, speech)''&lt;br /&gt;
* [[Chapter 5]] ''(Tags, Vars, Locals, Functions)''&lt;br /&gt;
* [[Chapter 6]] ''(LINKs, TIMERs, TARGETs)''&lt;br /&gt;
* [[Chapter 7]] ''(Loops and powerful functions)''&lt;br /&gt;
* [[Chapter 8]] ''(SKILLMENUs, MENUs, Gumps)''&lt;br /&gt;
* [[Chapter 9]] ''(Events)''&lt;br /&gt;
* [[Chapter 10]] ''(String Handling)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to these there are some more advanced tutorials that have been contributed by other members. Once you have read the above 10 tutorials you may wish to read these to learn more:&lt;br /&gt;
&lt;br /&gt;
* [[Common Mistakes|Common Mistakes Explained]] ''(A revision of Maximus's tutorial on the forums, and continuation of Taran's Misconceptions tutorial)''&lt;br /&gt;
* [[Internet and Sphere]] ''(And how to make the right use of them)''&lt;br /&gt;
* [[Languages Tutorial]] ''(How to script your own language system)''&lt;br /&gt;
* [[Making your own Skills]] ''(How to make and customize your skill)''&lt;br /&gt;
* [[Mul Patching Tutorial|Nazghul's Mul Patching Tutorial]] [http://sorea.profitux.cz/patching/ external link] ''(A document about mul patching and customizing your server)''&lt;br /&gt;
* [[Overriding Hardcoded Commands]] ''(How to override hardcoded commands and functions)''&lt;br /&gt;
* [[Scheduled Reboot]] ''(How to schedule system reboots)''&lt;br /&gt;
* [[Using MySQL]] ''(How to use MySQL)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference Compendium==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Definitions|Definitions]]&lt;br /&gt;
** [[CHARDEF|Characters]]&lt;br /&gt;
** [[DIALOG|Dialogs]]&lt;br /&gt;
** [[EVENTS|Events]]&lt;br /&gt;
** [[ITEMDEF|Items]]&lt;br /&gt;
** [[MENU|Menus]]&lt;br /&gt;
** [[REGIONRESOURCE|Region Resources]]&lt;br /&gt;
** [[REGIONTYPE|Region Types]]&lt;br /&gt;
** [[AREADEF|Regions]]&lt;br /&gt;
** [[ROOMDEF|Rooms]]&lt;br /&gt;
** [[SKILLCLASS|Skill Classes]]&lt;br /&gt;
** [[SKILLMENU|Skill Menus]]&lt;br /&gt;
** [[SKILL|Skills]]&lt;br /&gt;
** [[SPELL|Spells]]&lt;br /&gt;
** [[TYPEDEF|Types]]&lt;br /&gt;
* [[:Category:Objects|Objects]]&lt;br /&gt;
** [[Accounts]]&lt;br /&gt;
** [[Characters]]&lt;br /&gt;
** [[Database]]&lt;br /&gt;
** [[Files]]&lt;br /&gt;
** [[GM Pages]]&lt;br /&gt;
** [[Items]]&lt;br /&gt;
*** [[Special Items]]&lt;br /&gt;
** [[Map Points]]&lt;br /&gt;
** [[Parties]]&lt;br /&gt;
** [[Regions]]&lt;br /&gt;
** [[Rooms]]&lt;br /&gt;
** [[Sectors]]&lt;br /&gt;
** [[Server]]&lt;br /&gt;
* [[:Category:Scripts|Scripts]]&lt;br /&gt;
** [[:Category:Functions|Functions and Triggers]]&lt;br /&gt;
** [[:Category:Variables|General Functions, Properties and References]]&lt;br /&gt;
** [[Intrinsic Functions]]&lt;br /&gt;
** [[:Category:Statements|Statements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Articles==&lt;br /&gt;
&lt;br /&gt;
* [[Armor Calculation]]&lt;br /&gt;
* [[Client Changes]]&lt;br /&gt;
* [[Common Scripting Misconceptions]]&lt;br /&gt;
* [[Custom Object Properties]]&lt;br /&gt;
* [[Error Codes]]&lt;br /&gt;
* [[Experience System]]&lt;br /&gt;
* [[How Combat Works]]&lt;br /&gt;
* [[Occam's Razor]]&lt;br /&gt;
* [[Optimization|Optimization Theory]]&lt;br /&gt;
* [[Override TAGs]]&lt;br /&gt;
* [[Revisions Changelog]]&lt;br /&gt;
* [[Sendpacket]]&lt;br /&gt;
* [[Skill Gain Theory]]&lt;br /&gt;
* [[The Process of Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sphereserver.net/ Official SphereServer Website]&lt;br /&gt;
* [http://prerelease.sphereserver.net/ Official Sphere 56b Downloads]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/ ScriptSharing]&lt;br /&gt;
* [http://spherewiki.99k.org/index.php/Portada SphereWiki (Español/Spanish)]&lt;br /&gt;
* [http://www.cs.rit.edu/~djr7581/ Taran's Scripting for Dummies (Sphere 55i)]&lt;br /&gt;
* [http://scriptsharing.dv-team.de/docs/packet_doc.html UO Packet Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Navigation]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Items&amp;diff=500</id>
		<title>Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Items&amp;diff=500"/>
				<updated>2009-06-25T19:21:53Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: CONTP is not a reference to another object but an item property (see Properties and Functions section)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Generally speaking, there are two types of &amp;quot;things&amp;quot; in the game; characters and items. Compared to characters, items are very complex. Items have a number of different uses, for example a sword is an item that players can see and equip to increase the damage they can do in combat. Some items in the game can not be seen by the players, but they have as much impact on the player as their sword, for example, a memory item is equipped every time a player is under the effects of a spell. Some [[Special Items|special types of item]] also have additional properties that can be accessed via scripts. The following tables detail the various properties of items in SphereServer:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[CONT]] || RW || Gets or sets the [[Characters|character]] or [[Special Items#Containers|container item]] that the object is inside.&lt;br /&gt;
|-&lt;br /&gt;
| [[LINK]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that the item is linked to.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGION]] || R || Gets the [[Regions|region]] that the object is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROOM]] || R || Gets the [[Rooms|room]] that the object is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[P]] || RW || Gets or sets the [[Map Points|position]] that the object is at.&lt;br /&gt;
|-&lt;br /&gt;
| [[SECTOR]] || R || Gets the [[Sectors|sector]] that the object is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOPOBJ]] || R || Gets the top-most [[Characters|character]] or [[Items|item]] in the world that contains the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[TYPEDEF (Reference)|TYPEDEF]] || R || Gets the [[ITEMDEF]] that defines the item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Functions==&lt;br /&gt;
Here is a list of all item properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples. If an attempt is made to access a property that does not exist on the item, the property from the [[ITEMDEF]] will be accessed instead.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDCIRCLE]] ''spell_circle'' || W || Adds all of the spells in the given circle to the spellbook.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDSPELL]] ''spell_id'' || RW || Gets whether or not a spell exists in the spellbook, or adds a spell to the spellbook.&lt;br /&gt;
|-&lt;br /&gt;
| [[AMOUNT]] || RW || Gets the amount of this items this item represent (e.g. a pile of gold).&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTR]] || RW || Gets or sets the item's attribute flags.&lt;br /&gt;
|-&lt;br /&gt;
| [[BOUNCE]] || W || Moves the item to SRC's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEE]] || R || Returns 1 if SRC can see the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEELOS]] || R || Returns 1 if SRC has line of sight to the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEELOSFLAG]] ''flags'' || R || Returns 1 if SRC has line of sight to the item, with flags to modify what tests take place.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARTAGS]] ''prefix'' || W || Removes all TAGs from the item that start with the given prefix.&lt;br /&gt;
|-&lt;br /&gt;
| [[COLOR]] || RW || Gets or sets the object's hue.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONSUME]] ''amount'' || W || Deducts an amount from the item, deleting it at 0.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONTCONSUME]] ''resource_list'' || W || Deletes items from inside the container.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONTGRID]] || RW || If in a container, gets or sets the grid number that the item occupies (in KR's grid view)&lt;br /&gt;
|-&lt;br /&gt;
| [[CONTP]] || RW || Gets or sets the position of the item within its container.&lt;br /&gt;
|-&lt;br /&gt;
| [[DAMAGE]] ''amount, type, source'' || W || Inflicts damage upon the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[DCLICK]] || W || Double clicks the item, with SRC as the source of the event.&lt;br /&gt;
|-&lt;br /&gt;
| [[DECAY]] ''time'' || W || Sets the decay timer for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOG (Function)|DIALOG]] ''dialog_id, page, parameters'' || W || Displays a dialog to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISPID]] || RW || Gets or sets the ID that the item will appear as to players.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISPIDDEC]] || RW || Same as [[DISPID]], except it returns the ID as a decimal number.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISTANCE]] ''point_or_uid'' || R || Gets the distance between this object and either SRC, a map location or another object.&lt;br /&gt;
|-&lt;br /&gt;
| [[DMGCOLD]] || RW || Gets or sets the amount of cold damage the weapon will give.&lt;br /&gt;
|-&lt;br /&gt;
| [[DMGENERGY]] || RW || Gets or sets the amount of energy damage the weapon will give.&lt;br /&gt;
|-&lt;br /&gt;
| [[DMGFIRE]] || RW || Gets or sets the amount of fire damage the weapon will give.&lt;br /&gt;
|-&lt;br /&gt;
| [[DMGPOISON]] || RW || Gets or sets the amount of poison damage the weapon will give.&lt;br /&gt;
|-&lt;br /&gt;
| [[DROP]] || W || Drops the item to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[DUPE]] || W || Clones the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[EDIT]] || W || Displays an editing dialog for the item to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[EFFECT]] ''type, item_id, speed, loop, explode, colour, rendermode'' || W || Displays an effect to nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[EMOTE]] ''message'' || W || Displays a *You see* message to all nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIP]] || W || Equips the item to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVENTS (Property)|EVENTS]] ''event_defname'' || RW || Gets a list of events attached to the object, or adds or removes an event to or from the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[FIX]] || W || Re-aligns the item's Z level to ground level.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLIP]] || W || Rotates the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[FRUIT]] || RW || Gets or sets the fruit that will be produced by the crops.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEIGHT]] || R || Gets the height of the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[HITS]] || RW || Gets or sets the number of hitpoints the item has.&lt;br /&gt;
|-&lt;br /&gt;
| [[HITPOINTS]] || RW || Gets or sets the number of hitpoints the item has.&lt;br /&gt;
|-&lt;br /&gt;
| [[ID]] || RW || Gets or sets the ID of the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFO]] || W || Displays an information dialog about the item to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISARMOR]] ''object_uid'' || R || Returns 1 if the object is armour.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCHAR]] || R || Returns 1 if the object is a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCONT]] || R || Returns 1 if the object is a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISEVENT]]''.event_defname'' || R || Returns 1 if the object has an event attached to it.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISITEM]] || R || Returns 1 if the object is an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNEARTYPE]] ''type, distance, flags'' || R || Returns 1 if a nearby item has the given TYPE.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNEARTYPETOP]] ''type, distance, flags'' || R || Returns a nearby world location of a nearby item which has the given TYPE.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISPLAYER]] || R || Returns 1 if the object is a player.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISTEVENT]]''.event_defname'' || R || Returns 1 if the object has an event attached to its ITEMDEF.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISWEAPON]] ''object_uid'' || R || Returns 1 if the object is a weapon.&lt;br /&gt;
|-&lt;br /&gt;
| [[LAYER]] || RW || Gets or sets the layer that the item occupies when equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]] || RW || Gets or sets the map that this object is located.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXHITS]] || RW || Gets or sets the maximum number of hitpoints the item can have.&lt;br /&gt;
|-&lt;br /&gt;
| [[MENU (Function)|MENU]] ''menu_defname'' || W || Displays a menu to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MESSAGE]] ''message'' || W || Displays a message above this item to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MESSAGEUA]] ''colour, talkmode, font, lang_id, message'' || W || Displays a UNICODE message above this item to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODAR]] || RW || Gets or sets a modifier for the item's armour rating.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE1]] || RW || Gets or sets the MORE1 value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE1H]] || RW || Gets or sets the upper 4 bytes of the item's MORE1 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE1L]] || RW || Gets or sets the lower 4 bytes of the item's MORE1 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE2]] || RW || Gets or sets the MORE2 value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE2H]] || RW || Gets or sets the upper 4 bytes of the item's MORE2 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE2L]] || RW || Gets or sets the lower 4 bytes of the item's MORE2 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOREM]] || RW || Gets or sets the MOREM value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOREX]] || RW || Gets or sets the MOREX value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOREY]] || RW || Gets or sets the MOREY value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOREZ]] || RW || Gets or sets the MOREZ value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOREP]] || RW || Gets or sets the MOREP value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVE]] ''direction, amount''&amp;lt;br /&amp;gt; [[MOVE]] ''x y'' || W || Moves the object relative to its current position.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVENEAR]] ''object_uid, distance'' || W || Moves the object to a random location near another object within a certain distance.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVETO]] ''location'' || W || Moves the object to a specific location.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAME]] || RW || Gets or sets the object's name.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGEDOWN]] ''amount'' || W || Decreases the object's Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGEUP]] ''amount'' || W || Increases the object's Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROMPTCONSOLE]] ''function, prompt_message'' || W || Displays a prompt message to SRC and passes their response into a specified function.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROMPTCONSOLEU]] ''function, prompt_message'' || W || Displays a prompt message to SRC and passes their response into a specified function, supporting UNICODE response.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVE]] || W || Deletes the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVEFROMVIEW]] || W || Removes the object from nearby clients' screens.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESENDTOOLTIP]] || W || Forces Sphere to update the tooltips for nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAY]] ''message'' || W || Makes the object speak a message.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAYU]] ''message'' || W || Makes the object speak a UTF-8 message&lt;br /&gt;
|-&lt;br /&gt;
| [[SAYUA]] ''colour, talkmode, font, lang_id, text'' || W || MAkes the object speak a UNICODE message.&lt;br /&gt;
|-&lt;br /&gt;
| [[SDIALOG]] ''dialog_id, page, parameters'' || W || Displays a dialog to SRC, providing that it is not already open.&lt;br /&gt;
|-&lt;br /&gt;
| [[SERIAL]] || R || Gets the item's unique ID in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[SEXTANTP]] ''location'' || R || Converts the item's location or a specified location into sextant coordinates.&lt;br /&gt;
|-&lt;br /&gt;
| [[SOUND]] ''sound_id, repeat'' || W || Plays a sound from this object.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELLEFFECT]] ''spell_id, strength, source_character_uid, source_item_uid'' || W || Causes the item to be affected by a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAG]]''.name'' || RW || Gets or sets the value of a TAG.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index'' || R || Gets a TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.KEY || R || Gets the name of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.VAL || R || Gets the value of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGCOUNT]] || R || Gets the number of TAGs stored on the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGLIST]] || W || Outputs a list of the object's TAGs.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGET]]''FGMW'' ''function'' || W || Displays a targeting cursor to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMER]] || RW || Gets or sets the length of time before the item's timer expires, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERD]] || RW || Gets or sets the length of time before the item's timer expires, in tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERF]] ''time, function'' || W || Scheduled a function to be executed on this object in ''time'' seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERF]] CLEAR || W || Clears all scheduled functions from the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[TRIGGER]] ''trig_name, trig_type'' || R || Fires a custom trigger and returns the RETURN value.&lt;br /&gt;
|-&lt;br /&gt;
| [[TYPE]] || RW || Gets or sets the item type.&lt;br /&gt;
|-&lt;br /&gt;
| [[UID]] || R || Gets the item's unique ID in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNEQUIP]] || W || Unequips the item and places it in SRC's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[UPDATE]] || W || Updates the state of the item to nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[UPDATEX]] || W || Updates the state of the item to nearby clients, removing it from their view first to ensure a full refresh.&lt;br /&gt;
|-&lt;br /&gt;
| [[USE]] ''check_los'' || W || Uses the item, as if SRC had double clicked it.&lt;br /&gt;
|-&lt;br /&gt;
| [[USEITEM]] || W || Double clicks the item, with SRC as the source of the event, without checking for line of sight.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEIGHT]] || R || Gets the weight of the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[Z]] || R || Gets the Z position of the item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
Here is a list of all item triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@AfterClick]] || Fires when the object has been single-clicked, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Buy]] || Fires when the item is being bought from a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Click]] || Fires when the object has been single-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ClientTooltip]] || Fires when tooltips are about to be sent to a client.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuRequest]] || Fires when a client requests the context menu options for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuSelect]] || Fires when a client selects a context menu option for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Create]] || Fires when the object is initially created, before it is placed in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Damage]] || Fires when the item receives damage.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DClick]] || Fires when the object is double-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Destroy]] || Fires when the object is being deleted.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Char]] || Fires when the item has been dropped on to a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Ground]] || Fires when the item has been dropped on to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Item]] || Fires when the item is dropped on to another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Self]] || Fires when an item has been dropped on to this item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Equip]] || Fires when the item has been equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[@EquipTest]] || Fires when the item is about to be equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Ground]] || Fires when the item ihas been picked up from the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Pack]] || Fires when the item is picked up from inside a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Self]] || Fires when an item has been picked up from inside the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Stack]] || Fires when the item is picked up from a stack.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Sell]] || Fires when the item is sold to a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellEffect]] || Fires when the object is hit by the effects of a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Step]] || Fires when a character steps on the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Cancel]] || Fires when a target is cancelled from the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Char]] || Fires when a character is targeted from the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Ground]] || Fires when the ground is targeted from the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Item]] || Fires when an item is targeted from this item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Timer]] || Fires when the item's timer expires.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ToolTip]] || Fires when old-style tooltips are requested for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UnEquip]] || Fires when the item is unequipped.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Regions&amp;diff=499</id>
		<title>Regions</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Regions&amp;diff=499"/>
				<updated>2009-06-25T19:21:51Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Corrected description of the region's TYPE property.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Areas in the world, such as dungeons and cities are defined by regions. Accessing regions in scripts can be accomplished using the REGION reference from a [[Characters|character]], [[Items|item]] or [[Map Points|map point]] object, or the AREA.region_id reference from the [[Server|server]] object. The following tables detail the various properties of the region object in SphereServer:&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
References return pointers to other objects (e.g. the CHAR.n reference allows you to access the characters that are attached to the account). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[REGION]] || R || For regions linked to a multi, gets the region that contains the multi region. Only valid for reading values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Functions==&lt;br /&gt;
Here is a list of all region properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples. Properties from the [[AREADEF|region definition]] can also be accessed from the region object. If an attempt is made to execute (not read) a command that does not exist on the region or its definition, then the command will be called on all sectors that touch the region area.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLCLIENTS]] ''command'' || W || Executes ''command'' on all clients inside the region boundaries.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARTAGS]] ''prefix'' || W || Removes all TAGs from the region that start with the given prefix.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTS]] || R || Gets the total number of clients that are inside the sectors that touch the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[DEFNAME]] || R || Gets the region's defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVENTS (Property)|EVENTS]] ''+/-regiontype_defname'' || RW || Gets a list of attached region events, or adds or removes a region event to or from the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISEVENT]]''.regiontype_defname'' || R || Returns 1 if the region has a specified region event attached.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]] || R || Gets the map that the region exists on.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECT]] || R || Gets the number of rectangles that this region is made from.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECT]]''.n'' || R || Gets the nth rectangle that this region is made from.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESOURCES]] ''+/-regiontype_defname'' || RW || Gets a list of attached region events, or adds or removes a region event to or from the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index'' || R || Gets a TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.KEY || R || Gets the name of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.VAL || R || Gets the value of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGCOUNT]] || R || Gets the number of TAGs stored on the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGLIST]] || W || Outputs a list of the region's TAGs.&lt;br /&gt;
|-&lt;br /&gt;
| [[TYPE]] || R || If the region is linked to a multi, returns the multi's [[BASEID]] property.&lt;br /&gt;
|-&lt;br /&gt;
| [[UID]] || R || Gets the region's unique ID in the world.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
Here is a list of all region triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@CliPeriodic]] || Fires multiple times approximately every 30 seconds, for each client in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Enter]] || Fires when a character enters the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Exit]] || Fires when a character exits the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegPeriodic]] || Fires once approximately every 30 seconds, as long as there is at least one client in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Step]] || Fires whenever a character takes a step within the region.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=WhoIsWho&amp;diff=495</id>
		<title>WhoIsWho</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=WhoIsWho&amp;diff=495"/>
				<updated>2009-06-20T12:46:48Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Created page with 'Just to give you an impression about who is who of the contributors of this website, here's a small image gallery.    &amp;lt;tt&amp;gt;All pictures were taken from public sources. So if &amp;lt;br /...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just to give you an impression about who is who of the contributors of this website, here's a small image gallery. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;All pictures were taken from public sources. So if &amp;lt;br /&amp;gt;&lt;br /&gt;
you find your picture here accidentally and want it removed, &amp;lt;br /&amp;gt;&lt;br /&gt;
just drop me a mail to nazghul AT dv-team DOT de.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The same applies if you would be kind enough to provide a &amp;lt;br /&amp;gt;&lt;br /&gt;
photography of yourself to this page - just drop it into a &amp;lt;br /&amp;gt;&lt;br /&gt;
mail at the same mail address as above.&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
| http://www.lostland.de/swiki/bladecraft.jpg&lt;br /&gt;
[http://www.sphereserver.net/index.php?showuser=30593 Admin BladeCraft]&lt;br /&gt;
| http://www.lostland.de/swiki/cloudBR.jpg&lt;br /&gt;
[http://www.sphereserver.net/index.php?showuser=24106 ClouD_BR]&lt;br /&gt;
| http://www.lostland.de/swiki/furio.jpg&lt;br /&gt;
[http://www.sphereserver.net/index.php?showuser=23903 Furio]&lt;br /&gt;
| http://www.lostland.de/swiki/Jdog.jpg&lt;br /&gt;
[http://www.sphereserver.net/index.php?showuser=9131 Jdog]&lt;br /&gt;
|-&lt;br /&gt;
| http://www.lostland.de/swiki/maximus.jpg&lt;br /&gt;
[http://www.sphereserver.net/index.php?showuser=5247 Maximus]&lt;br /&gt;
| http://www.lostland.de/swiki/pyromapes.jpg&lt;br /&gt;
[http://www.sphereserver.net/index.php?showuser=6022 Pyromapes]&lt;br /&gt;
| http://www.lostland.de/swiki/rattle.jpg&lt;br /&gt;
[http://www.sphereserver.net/index.php?showuser=25714 Rattlehead]&lt;br /&gt;
| http://www.lostland.de/swiki/saciBR.jpg&lt;br /&gt;
[http://www.sphereserver.net/index.php?showuser=29706 SaCi_BR]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=ROOMDEF&amp;diff=494</id>
		<title>ROOMDEF</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=ROOMDEF&amp;diff=494"/>
				<updated>2009-06-20T12:21:39Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Within [[Regions|regions]] you can also define rooms, which are basically 'sub-regions' that exist inside the area which may represent buildings within a town or a boss room within a dungeon. Rooms are almost identical to regions, except they cannot possess triggers, events or tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The syntax for defining a room is as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
[ROOMDEF ''defname'']&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT=''left, top, right, bottom, map''&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT=''left, top, right, bottom, map''&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT=''left, top, right, bottom, map''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
Within the room definition the following properties are also available to customise the behaviour of the area.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ANNOUNCE]] || RW || Gets or sets whether or not there will be an announcement when someone enters or exits the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[ARENA]] || RW || Gets or sets whether or not the room is considered to be an arena.&lt;br /&gt;
|-&lt;br /&gt;
| [[BUILDABLE]] || RW || Gets or sets whether or not players can place buildings and ships in the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLAGS]] || RW || Gets or sets the room's attributes.&lt;br /&gt;
|-&lt;br /&gt;
| [[GATE]] || RW || Gets or sets whether or not casting the gate travel spell is allowed in the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[GROUP]] || RW || Gets or sets a group name for the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUARDED]] || RW || Gets or sets whether or not guards can be called within the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAGIC]] || RW || Gets or sets whether or not there is an anti-magic field in the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[MARK]] || RW || Gets or sets whether or not casting the mark spell is allowed in the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAME]] || RW || Gets or sets the name of the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[NOBUILD]] || RW || Gets or sets whether or not players can place buildings in the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[NODECAY]] || RW || Gets or sets whether or not items will decay in the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[NOPVP]] || RW || Gets or sets whether or not PvP combat is allowed in the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[P]] || RW || Gets or sets the location of the room (used when using the [[GO]] command).&lt;br /&gt;
|-&lt;br /&gt;
| [[RECALL]] || RW || Gets or sets whether or not casting the recall spell is allowed in the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECALLIN]] || RW || Gets or sets whether or not it is possible to use the recall spell to enter the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECALLOUT]] || RW || Gets or sets whether players can recall out of the room.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAFE]] || RW || Gets or sets whether or not the room is a safe zone.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNDERGROUND]] || RW || Gets or sets whether or not the room is considered to be underground.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// A House in Minoc, from the default script pack.&lt;br /&gt;
//&lt;br /&gt;
[ROOMDEF a_house_1]&lt;br /&gt;
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass&lt;br /&gt;
NAME=House&lt;br /&gt;
GROUP=Minoc&lt;br /&gt;
FLAGS=04000&lt;br /&gt;
P=2484,472,0,0&lt;br /&gt;
RECT=2479,463,2489,481,0&lt;br /&gt;
RECT=2489,471,2497,481,0&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// A Secret Cave, from the default script pack.&lt;br /&gt;
//&lt;br /&gt;
[ROOMDEF a_secret_cave_1]&lt;br /&gt;
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass&lt;br /&gt;
NAME=Secret Cave&lt;br /&gt;
GROUP=Hidden Valley&lt;br /&gt;
P=1653,2967,0,0&lt;br /&gt;
RECT=1648,2957,1658,2977,0&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Definitions]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=AREADEF&amp;diff=493</id>
		<title>AREADEF</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=AREADEF&amp;diff=493"/>
				<updated>2009-06-20T12:21:37Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Areas in the world, such as dungeons and cities are defined by regions. Regions are constructed from one or more &amp;quot;rectangles&amp;quot; on the map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The basic syntax for definining a region is as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
[AREADEF ''defname'']&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT=''left, top, right, bottom, map''&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT=''left, top, right, bottom, map''&amp;lt;br /&amp;gt;&lt;br /&gt;
RECT=''left, top, right, bottom, map''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
Within the region definition the following properties are also available to customise the behaviour of the area.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ANNOUNCE]] || RW || Gets or sets whether or not there will be an announcement when someone enters or exits the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[ARENA]] || RW || Gets or sets whether or not the region is considered to be an arena.&lt;br /&gt;
|-&lt;br /&gt;
| [[BUILDABLE]] || RW || Gets or sets whether or not players can place buildings and ships in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVENTS (Property)|EVENTS]] ''regiontype_defname'' || W || Adds a region event to the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLAGS]] || RW || Gets or sets the region's attributes.&lt;br /&gt;
|-&lt;br /&gt;
| [[GATE]] || RW || Gets or sets whether or not casting the gate travel spell is allowed in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[GROUP]] || RW || Gets or sets a group name for the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUARDED]] || RW || Gets or sets whether or not guards can be called within the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAGIC]] || RW || Gets or sets whether or not there is an anti-magic field in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[MARK]] || RW || Gets or sets whether or not casting the mark spell is allowed in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAME]] || RW || Gets or sets the name of the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[NOBUILD]] || RW || Gets or sets whether or not players can place buildings in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[NODECAY]] || RW || Gets or sets whether or not items will decay in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[NOPVP]] || RW || Gets or sets whether or not PvP combat is allowed in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[P]] || RW || Gets or sets the location of the region (used when using the [[GO]] command).&lt;br /&gt;
|-&lt;br /&gt;
| [[RECALL]] || RW || Gets or sets whether or not casting the recall spell is allowed in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECALLIN]] || RW || Gets or sets whether or not it is possible to use the recall spell to enter the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECALLOUT]] || RW || Gets or sets whether players can recall out of the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECT]] ''left, top, right, bottom, map'' || W || Adds a rectangle to the region definition.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESOURCES]] ''regiontype_defname'' || W || Adds a region event to the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAFE]] || RW || Gets or sets whether or not the region is a safe zone.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAG]]''.name'' || RW || Gets or sets the value of a TAG.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNDERGROUND]] || RW || Gets or sets whether or not the region is considered to be underground.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// The world region from the default script pack.&lt;br /&gt;
//&lt;br /&gt;
[AREADEF a_world]&lt;br /&gt;
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass&lt;br /&gt;
NAME=Felucca&lt;br /&gt;
GROUP=ALLMAP&lt;br /&gt;
P=1323,1624,55,0&lt;br /&gt;
RECT=0,0,7168,4096,0&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Lord British's Castle from the default script pack.&lt;br /&gt;
//&lt;br /&gt;
[AREADEF a_lord_britishs_castle_1]&lt;br /&gt;
EVENTS=r_default,r_default_rock,r_default_water,r_default_tree,r_default_grass&lt;br /&gt;
NAME=Lord British's Castle&lt;br /&gt;
GROUP=Britain&lt;br /&gt;
FLAGS=0648e&lt;br /&gt;
P=1392,1625,30,0&lt;br /&gt;
RECT=1294,1679,1411,1697,0&lt;br /&gt;
RECT=1295,1559,1313,1577,0&lt;br /&gt;
RECT=1392,1559,1410,1577,0&lt;br /&gt;
RECT=1302,1577,1410,1680,0&lt;br /&gt;
RECT=1313,1563,1392,1577,0&lt;br /&gt;
EVENTS=r_brit_castle&lt;br /&gt;
TAG.GUARDOWNER=Lord British's Personal&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Definitions]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Category:Triggers&amp;diff=492</id>
		<title>Category:Triggers</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Category:Triggers&amp;diff=492"/>
				<updated>2009-06-20T12:18:30Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: Created page with ' ==Characters== Here is a list of all character triggers. Click on the trigger name for more detailed information such as arguments and examples.  {| border=&amp;quot;1&amp;quot; ce...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Characters==&lt;br /&gt;
Here is a list of all [[Characters|character]] triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@AfterClick]] || Fires when the object has been single-clicked, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Attack]] || Fires when the character begins attacking another.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CallGuards]] || Fires when the character calls for guards.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharAttack]] || Fires when the character is attacked by another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharClick]] || Fires when the character is clicked by another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharClientTooltip]] || Fires when the tooltips are about to be sent to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharDClick]] || Fires when the character double clicks another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharTradeAccepted]] || Fires when another character accepts trade with the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Click]] || Fires when the object has been single-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ClientTooltip]] || Fires when tooltips for this character are about to be sent to a client.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuRequest]] || Fires when a client requests the context menu options for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuSelect]] || Fires when a client selects a context menu option for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Create]] || Fires when the object is initially created, before it is placed in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Criminal]] || Fires when the character becomes a criminal.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DClick]] || Fires when the object is double-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Death]] || Fires when the character's hitpoints reaches zero.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DeathCorpse]] || Fires when a corpse is created for the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Destroy]] || Fires when the object is being deleted.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Dismount]] || Fires when the character dismounts their ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[@EnvironChange]] || Fires when the environment changes for the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ExpChange]] || Fires when the character's experience points change.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ExpLevelChange]] || Fires when the character's experience level changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@FameChange]] || Fires when the character's fame changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@GetHit]] || Fires when the character receives damage.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Hit]] || Fires when the character hits another in combat.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HitMiss]] || Fires when the character fails to hit another in combat.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HouseDesignCommit]] || Fires when the character commits a new house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HouseDesignExit]] || Fires when the character exits house design mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Hunger]] || Fires when the character's food level decreases.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemAfterClick]] || Fires when the character single-clicks an item, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemBuy]] || Fires when the character buys an item from a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemClick]] || Fires when the character single-clicks an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemClientTooltip]] || Fires when the tooltips are about to be sent to the client for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemContextMenuRequest]] || Fires when the character requests the context menu options for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemContextMenuSelect]] || Fires when the character selects a context menu option for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemCreate]] || Fires when an item is initially created, before it is placed in the world, and the character is in some way responsible for it.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDamage]] || Fires when the character damages an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDClick]] || Fires when the character double-clicks an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Char]] || Fires when the character drops an item on to a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Ground]] || Fires when the character drops an item on to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Item]] || Fires when the character drops an item on to another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Self]] || Fires when the character drops an item inside another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemEquip]] || Fires when the character equips an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemEquipTest]] || Fires when the characer is about to equip an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Ground]] || Fires when the character picks an item up from the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Pack]] || Fires when the character picks an item up from inside a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Self]] || Fires when the character picks an item up from inside another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Stack]] || Fires when the character picks up an item from a stack.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemSell]] || Fires when the character sells an item to a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemSpellEffect]] || Fires when the character hits an item with a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemStep]] || Fires when the character steps on an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Cancel]] || Fires when the character cancels an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Char]] || Fires when the character targets a character with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Ground]] || Fires when the character targets the ground with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Item]] || Fires when the character targets an item with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemToolTip]] || Fires when the character requests old-style tooltips for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemUnEquip]] || Fires when the character unequips an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Jailed]] || Fires when the character is sent to jail.&lt;br /&gt;
|-&lt;br /&gt;
| [[@KarmaChange]] || Fires when the character's karma changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Kill]] || Fires when the character kills another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Login]] || Fires when the character logs in.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Logout]] || Fires when the character logs out.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Mount]] || Fires when the character mounts a ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[@MurderDecay]] || Fires when one of the character's kills is about to decay.&lt;br /&gt;
|-&lt;br /&gt;
| [[@MurderMark]] || Fires when the character is about to gain a kill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCAcceptItem]] || Fires when the NPC receives an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCActFight]] || Fires when the NPC makes a combat decision.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCActFollow]] || Fires when the NPC follows another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCAction]] || Fires when the NPC is about to perform an AI action.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCHearGreeting]] || Fires when the NPC hears a character for the first time.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCHearUnknown]] || Fires when the NPC hears something they don't understand.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLookAtChar]] || Fires then the NPC looks at a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLookAtItem]] || Fires when the NPC looks at an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLostTeleport]] || Fires when the NPC is lost and is about to be teleported back to their [[HOME]].&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCRefuseItem]] || Fires when the NPC refuses an item being given to them.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCRestock]] || Fires when the NPC is having their items restocked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSeeNewPlayer]] || Fires when the NPC first sees a player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSeeWantItem]] || Fires when the NPC sees an item they want.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSpecialAction]] || Fires when the NPC is about to perform a special action (leaving fire trail, dropping web).&lt;br /&gt;
|-&lt;br /&gt;
| [[@PersonalSpace]] || Fires when the character is stepped on.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PetDesert]] || Fires when the character deserts its owner.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Profile]] || Fires when a player attempts to read the character's profile from the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ReceiveItem]] || Fires when the NPC receives an item from another character, before they decide if they want it or not.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegionEnter]] || Fires when the character enters a region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegionLeave]] || Fires when the character leaves a region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Rename]] || Fires when the character renames another.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SeeCrime]] || Fires when the character sees a crime take place.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillAbort]] || Fires when the character aborts a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillChange]] || Fires when the character's skill level changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillFail]] || Fires when the character fails a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillGain]] || Fires when the character has a chance to gain in a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillMakeItem]] || Fires when the character crafts an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillMenu]] || Fires when a skill menu is shown to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillPreStart]] || Fires when the character starts a skill, before any hardcoded action takes place.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillSelect]] || Fires when the character selects a skill on their skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillStart]] || Fires when the character starts a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillSuccess]] || Fires when the character succeeds at a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillUseQuick]] || Fires when the character quickly uses a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellBook]] || Fires when the character opens their spellbook.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellCast]] || Fires when the character casts a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellEffect]] || Fires when the character is hit by the effects of a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellFail]] || Fires when the character fails to cast a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellSelect]] || Fires when the character selects a spell to cast.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellSuccess]] || Fires when the character successfully casts a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@StatChange]] || Fires when the character's STR, DEX or INT is changed through skill gain.&lt;br /&gt;
|-&lt;br /&gt;
| [[@StepStealth]] || Fires when the character takes a step whilst hidden.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ToolTip]] || Fires when a player requests old-style tooltips for this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TradeAccepted]] || Fires when the character accepts a trade with another player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserBugReport]] || Fires when the player submits a bug report.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserChatButton]] || Fires when the player presses the Chat button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserExtCmd]] || Fires when the player sends an extended command packet. (used by some macros)&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserExWalkLimit]] || Fires when the player's movement is restricted by the movement speed settings in Sphere.ini&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserGuildButton]] || Fires when the player presses the Guild button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserKRToolbar]] || Fires when the player presses a button on the toolbar.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserMailBag]] || Fires when the player drags the mail bag on to another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserQuestArrowClick]] || Fires when the player clicks the quest arrow.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserQuestButton]] || Fires when the player presses the Quest button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserSkills]] || Fires when the player opens their skill menu, or a skill update is sent to the player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserSpecialMove]] || Fires when the player uses a special move.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserStats]] || Fires when the player opens the status window.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserVirtue]] || Fires when the player presses on the Virtue button.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserVirtueInvoke]] || Fires when the player invokes a virtue through macros.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserWarmode]] || Fires when the player switches between war and peace mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Items==&lt;br /&gt;
Here is a list of all [[Items|item]] triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@AfterClick]] || Fires when the object has been single-clicked, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Buy]] || Fires when the item is being bought from a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Click]] || Fires when the object has been single-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ClientTooltip]] || Fires when tooltips are about to be sent to a client.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuRequest]] || Fires when a client requests the context menu options for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuSelect]] || Fires when a client selects a context menu option for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Create]] || Fires when the object is initially created, before it is placed in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Damage]] || Fires when the item receives damage.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DClick]] || Fires when the object is double-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Destroy]] || Fires when the object is being deleted.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Char]] || Fires when the item has been dropped on to a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Ground]] || Fires when the item has been dropped on to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Item]] || Fires when the item is dropped on to another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Self]] || Fires when an item has been dropped on to this item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Equip]] || Fires when the item has been equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[@EquipTest]] || Fires when the item is about to be equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Ground]] || Fires when the item ihas been picked up from the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Pack]] || Fires when the item is picked up from inside a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Self]] || Fires when an item has been picked up from inside the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Stack]] || Fires when the item is picked up from a stack.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Sell]] || Fires when the item is sold to a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellEffect]] || Fires when the object is hit by the effects of a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Step]] || Fires when a character steps on the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Cancel]] || Fires when a target is cancelled from the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Char]] || Fires when a character is targeted from the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Ground]] || Fires when the ground is targeted from the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Item]] || Fires when an item is targeted from this item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Timer]] || Fires when the item's timer expires.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ToolTip]] || Fires when old-style tooltips are requested for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UnEquip]] || Fires when the item is unequipped.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Region Resources==&lt;br /&gt;
Here is a list of all [[REGIONRESOURCE|region resource]] triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@ResourceTest]] || Fires when the resource is being considered for spawning.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ResourceFound]] || Fires when the resource is spawned.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Regions==&lt;br /&gt;
Here is a list of all [[Regions|region]] triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@CliPeriodic]] || Fires multiple times approximately every 30 seconds, for each client in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Enter]] || Fires when a character enters the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Exit]] || Fires when a character exits the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegPeriodic]] || Fires once approximately every 30 seconds, as long as there is at least one client in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Step]] || Fires whenever a character takes a step within the region.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Skills==&lt;br /&gt;
The following table lists all of the triggers that can be placed under a skill definition. All of the triggers here have an equivalent @Skill trigger on the [[Characters|character]] object.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@Abort]] || Fires when a character aborts an attempt at using the skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Fail]] || Fires when a character fails an attempt at using the skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Gain]] || Fires when a character is given the chance to gain in the skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PreStart]] || Fires when a character starts to use the skill, before any hardcoded behaviour takes place.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Select]] || Fires when a character selects the skill from their skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Start]] || Fires when a character starts to use the skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Success]] || Fires when a character succeeds an attempt at using the skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UseQuick]] || Fires when a character quickly uses the skill, without changing their [[ACTION]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Spells==&lt;br /&gt;
The following table lists all of the triggers that can be placed under a spell definition. All of the triggers here have an equivalent @Spell trigger on the [[Characters|character]] object.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@Effect]] || Fires when a character or item is hit by the spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Fail (Spell Trigger)|@Fail]] || Fires when a character fails to cast the spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Select (Spell Trigger)|@Select]] || Fires when a character selects to cast the spell, or when Sphere checks if a character is capable of casting it.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Start (Spell Trigger)|@Start]] || Fires when a character starts to cast the spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Success (Spell Trigger)|@Success]] || Fires when a character successfully casts the spell.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Functions]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=REGIONRESOURCE&amp;diff=491</id>
		<title>REGIONRESOURCE</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=REGIONRESOURCE&amp;diff=491"/>
				<updated>2009-06-20T12:15:44Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
A region resource block defines a resource that can be found in a region.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
The following properties are available when defining a region resource:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[AMOUNT]] || RW || Gets or sets the initial amount of the resource available when it spawns. Accepts multiple values to build a weighted range of difficulty values.&lt;br /&gt;
|-&lt;br /&gt;
| [[DEFNAME]] || W || Gets or sets the resource defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[REAP]] || RW || Gets or sets the [[BASEID]] of the resource item.&lt;br /&gt;
|-&lt;br /&gt;
| [[REAPAMOUNT]] || RW || Gets or sets the amount of the resource that can be gathered in one use of a skill. Accepts multiple values to adjust based on skill level.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]] || RW || Gets or sets the length of time it takes for the resource to decay, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILL (Region Resource Property)|SKILL]] || RW || Gets or sets the difficulty of gathering the resource. Accepts multiple values to build a weighted range of difficulty values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
Here is a list of all region resource triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@ResourceTest]] || Fires when the resource is being considered for spawning.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ResourceFound]] || Fires when the resource is spawned.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Fish resource from default script pack.&lt;br /&gt;
//&lt;br /&gt;
[REGIONRESOURCE mr_fish1]&lt;br /&gt;
SKILL=1.0,100.0    // requires between 1% and 100% skill to gather&lt;br /&gt;
AMOUNT=9,30        // between 9 and 30 fish available&lt;br /&gt;
REAP=i_fish_big_1  // the resource item&lt;br /&gt;
REGEN=60*60*10     // decays after 10 hours&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Characters&amp;diff=490</id>
		<title>Characters</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Characters&amp;diff=490"/>
				<updated>2009-06-20T12:14:01Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
A character can be either a player or an NPC.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] || RW || Gets or sets the [[Accounts|account]] that the character belongs to.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACT]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that is related to the action the character is performing.&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDCONT]]''.n'' || R || Gets the nth [[Items|item]] equipped to the character. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDID]]''.item_id'' || R || Gets the first [[Items|item]] found equipped to the character or inside their backpack, with the matching [[BASEID]].&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDLAYER]]''.layer'' || R || Gets the [[Items|item]] that the character has equipped in a specified layer.&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDTYPE]]''.type'' || R || Gets the first [[Items|item]] found equipped to the character or inside their backpack, with the matching [[TYPE]].&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMORYFINDTYPE]].''.memory_flags'' || R || Gets a [[Items|memory item]] with the specified flags.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMORYFIND]].''object_uid'' || R || Gets a [[Items|memory item]] that is linked to the given object.&lt;br /&gt;
|-&lt;br /&gt;
| [[OWNER]] || R || Gets the character that owns this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPAWNITEM]] || R || Gets the [[Items|spawn item]] (t_spawn_char) that this character originated from.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEAPON]] || R || Gets the [[Items|weapon]] that the character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[P]] || RW || Gets or sets the [[Map Points|position]] that the character is at.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGION]] || R || Gets the [[Regions|region]] that the character is currently located in.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROOM]] || R || Gets the [[Rooms|room]] that the character is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[SECTOR]] || R || Gets the [[Sectors|sector]] that the character is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOPOBJ]] || R || Gets the top-most [[Characters|character]] or [[Items|item]] in the world that contains the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[TYPEDEF  (Reference)|TYPEDEF]] || R || Gets the [[CHARDEF]] that defines the character.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Functions==&lt;br /&gt;
Here is a list of all character properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples. If an attempt is made to access a property that does not exist on the character, the property from the [[CHARDEF]] will be accessed instead.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[AC]] || R || Returns the character's total defense.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTARG1]] || RW || Gets or sets the character's ACTARG1 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTARG2]] || RW || Gets or sets the character's ACTARG2 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTARG3]] || RW || Gets or sets the character's ACTARG3 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTDIFF]] || RW || Gets or sets the difficulty of the character's current action.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTION]] || RW || Gets or sets the skill that the character is currently using.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTP]] || RW || Gets or sets the character's ACTP value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTPRV]] || RW || Gets or sets the character's ACTPRV value.&lt;br /&gt;
|-&lt;br /&gt;
| [[AFK]] || W || Gets or sets whether or not the character is in AFK mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[AGE]] || R || Returns the age of the character since its creation, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLSKILLS]] ''amount'' || W || Sets all of the character's skills to the specified amount.&lt;br /&gt;
|-&lt;br /&gt;
| [[ANIM]] ''anim_id'' || W || Plays the specified animation on the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]] || R || Gets the number of opponents who have damaged the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.LAST'' || R || Gets the UID of the opponent who most recently damaged the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.MAX'' || R || Gets the UID of the opponent who has dealt the most damage to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.n.DAM'' || R || Gets the amount of damage that the nth opponent has dealt to the character. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.n.ELAPSED'' || R || Gets the length of time since the nth opponent has damaged the characer, in seconds. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.n.UID'' || R || Gets the UID of the nth opponent who has damaged the characer. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[BANK]] ''layer'' || W || Opens the character's bank (or the container at the specified layer) for SRC to view.&lt;br /&gt;
|-&lt;br /&gt;
| [[BANKBALANCE]] || R || Returns the total amount of gold in the character's bankbox.&lt;br /&gt;
|-&lt;br /&gt;
| [[BARK]] ''sound_id'' || W || Plays the specified sound (or the character's generic sound if not specified) to nearby clients from this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BODY]] || RW || Gets or sets the character's body.&lt;br /&gt;
|-&lt;br /&gt;
| [[BOUNCE]] ''item_uid'' || W || Places a specified item in the character's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[BOW]] || W || Makes the character bow to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANCAST]] ''spell_id, check_antimagic'' || R || Returns 1 if the character can cast a given spell, bypassing anti-magic field tests if ''check_antimagic'' set to 0.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANMAKE]] ''item_id'' || R || Returns 1 if the character has the skills and resources to craft a certain item.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANMAKESKILL]] ''item_id'' || R || Returns 1 if the character has the skills to craft a certain item.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANMOVE]] ''direction'' || R || Returns 1 if the character can move in the given direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEE]] || R || Returns 1 if SRC can see the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEELOS]] || R || Returns 1 if SRC has line of sight to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEELOSFLAG]] ''flags'' || R || Returns 1 if SRC has line of sight to the character, with flags to modify what tests take place.&lt;br /&gt;
|-&lt;br /&gt;
| [[COLOR]] || RW || Gets or sets the character's hue.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONSUME]] ''resource_list'' || W || Removes specified resources from SRC's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[COUNT]] || R || Returns the number of items equipped to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[CREATE]] || RW || Gets or sets the character's age since creation, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[CRIMINAL]] || W || Sets whether or not the character is a criminal.&lt;br /&gt;
|-&lt;br /&gt;
| [[DAMAGE]] ''amount, type, source'' || W || Inflicts damage upon the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[DEX]] || RW || Gets or sets the character's total dexterity.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOG (Function)|DIALOG]] ''dialog_id, page, parameters'' || W || Displays a dialog to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGCLOSE]] ''dialog_id button'' || W || Closes a dialog that SRC has open, simulating a button press.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGLIST]]''.COUNT'' || R || Gets the number of number of dialogs currently considered to be visible on SRC's screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGLIST]]''.n.ID'' || R || Gets the ID of the nth dialog that SRC has open (zero-based).&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGLIST]]''.n.COUNT'' || R || Gets the number of instances of nth dialog SRC has open (zero-based).&lt;br /&gt;
|-&lt;br /&gt;
| [[DIR]] || RW || Gets or setes the direction that the character is facing.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISCONNECT]] || W || Disconnects the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISMOUNT]] || W || Dismounts the character from their ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISPIDDEC]] || R || Gets the ID of the character as a decimal number.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISTANCE]] ''point_or_uid'' || R || Gets the distance between this object and either SRC, a map location or another object.&lt;br /&gt;
|-&lt;br /&gt;
| [[DCLICK]] || W || Double clicks the character, with SRC as the source of the event.&lt;br /&gt;
|-&lt;br /&gt;
| [[DCLICK]] ''object_uid'' || W || Double clicks an object, with the character as SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[DRAWMAP]] ''radius'' || W || Starts the cartography skill, drawing a map of the local area up to ''radius'' tiles.&lt;br /&gt;
|-&lt;br /&gt;
| [[DROP]] ''item_uid'' || W || Drops a specified item at the character's feet.&lt;br /&gt;
|-&lt;br /&gt;
| [[DUPE]] || W || Creates a clone of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[EDIT]] || W || Displays an editing dialog for the character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[EFFECT]] ''type, item_id, speed, loop, explode, colour, rendermode'' || W || Displays an effect to nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[EMOTE]] ''message'' || W || Displays a *You see* message to all nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[EMOTEACT]] || RW || Gets, sets or toggles whether or not the character will emote all of its actions.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIP]] ''item_uid'' || W || Equips an item to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIPARMOR]] || W || Equips the character with the best armour in their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIPHALO]] ''timeout'' || W || Equips a halo light to the character, lasting for ''timeout'' tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIPWEAPON]] || W || Equips the character with the best weapon in their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVENTS (Property)|EVENTS]] ''event_defname'' || RW || Gets a list of events attached to the object, or adds or removes an event to or from the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[EXP]] || RW || Gets or sets the character's experience points.&lt;br /&gt;
|-&lt;br /&gt;
| [[FACE]] ''object_uid'' || W || Turns the character to face a specified object or SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[FAME]] || RW || Gets or sets the character's fame.&lt;br /&gt;
|-&lt;br /&gt;
| [[FAME]]''.fame_group'' || R || Returns 1 if the character's fame falls within the specified fame group.&lt;br /&gt;
|-&lt;br /&gt;
| [[FCOUNT]] || R || Returns the total number of items equipped to the character, including subitems&lt;br /&gt;
|-&lt;br /&gt;
| [[FLAGS]] || RW || Gets or sets the character's flags.&lt;br /&gt;
|-&lt;br /&gt;
| [[FIX]] || W || Re-aligns the character's Z level to ground level.&lt;br /&gt;
|-&lt;br /&gt;
| [[FIXWEIGHT]] || W || Recalculates the character's total weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLIP]] || W || Rotates the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[FONT]] || RW || Gets or sets the character's speech font.&lt;br /&gt;
|-&lt;br /&gt;
| [[FOOD]] || RW || Gets or sets the character's food level.&lt;br /&gt;
|-&lt;br /&gt;
| [[FORGIVE]] || W || Revokes the character's jailed status.&lt;br /&gt;
|-&lt;br /&gt;
| [[GO]] ''location'' || W || Teleports the character to the specified location.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOCHAR]] ''n'' || W || Teleports the character to the nth character in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOCHARID]] ''character_defname'' || W || Teleports the character to the next characer in the world with the specified [[BASEID]]&lt;br /&gt;
|-&lt;br /&gt;
| [[GOCLI]] ''n'' || W || Teleports the character to the nth online player. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GOITEMID]] ''item_defname'' || W || Teleports the character to the next item in the world with the specified [[BASEID]].&lt;br /&gt;
|-&lt;br /&gt;
| [[GOLD]] || RW || Gets or sets the amount of gold the character has.&lt;br /&gt;
|-&lt;br /&gt;
| [[GONAME]] ''name'' || W || Teleports the character to the next character or item in the world with the specified name, accepts wildcards (*).&lt;br /&gt;
|-&lt;br /&gt;
| [[GOSOCK]] ''socket'' || W || Teleports the character to the online player with the specified socket number.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOTYPE]] ''item_type'' || W || Teleports the character to the next item in the world with the specified [[TYPE]].&lt;br /&gt;
|-&lt;br /&gt;
| [[GOUID]] ''object_uid'' || W || Teleports the character to the object with the specified [[UID]].&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDABBREV]] || R || Returns the character's guild abbreviation.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEAR]] ''text'' || W || For NPCs, acts as if SRC had spoken the specified ''text''. For players, displays ''text'' as a system message.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEIGHT]] || R || Gets the character's height.&lt;br /&gt;
|-&lt;br /&gt;
| [[HITS]] || RW || Gets or sets the character's hitpoints.&lt;br /&gt;
|-&lt;br /&gt;
| [[HOME]] || RW || Gets or sets the character's home location.&lt;br /&gt;
|-&lt;br /&gt;
| [[HUNGRY]] || W || Displays this character's hunger level to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[INVIS]] || W || Sets whether or not the character is invisible.&lt;br /&gt;
|-&lt;br /&gt;
| [[INVUL]] || W || Sets whether or not the character is invulnerable.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISARMOR]] ''object_uid'' || R || Returns 1 if the object is armour.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCHAR]] || R || Returns 1 if the object is a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCONT]] || R || Returns 1 if the object is a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISDIALOGOPEN]] ''dialog_id'' || R || Returns 1 if SRC has the specified dialog visible on their screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISEVENT]]''.event_defname'' || R || Returns 1 if the object has an event attached to it.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISITEM]] || R || Returns 1 if the object is an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNEARTYPE]] ''type, distance, flags'' || R || Returns 1 if a nearby item has the given TYPE.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNEARTYPETOP]] ''type, distance, flags'' || R || Returns a nearby world location of a nearby item which has the given TYPE.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISPLAYER]] || R || Returns 1 if the object is a player.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISTEVENT]]''.event_defname'' || R || Returns 1 if the object has an event attached to its [[CHARDEF]].&lt;br /&gt;
|-&lt;br /&gt;
| [[ISWEAPON]] ''object_uid'' || R || Returns 1 if the object is a weapon.&lt;br /&gt;
|-&lt;br /&gt;
| [[ID]] || R || Gets the character's ID.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFO]] || W || Displays an information dialog about the character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT]] || RW || Gets or sets the character's total intelligence.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISGM]] || R || Returns 1 if the character is in GM mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISINPARTY]] || R || Returns 1 if the character is in a party.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISMYPET]] || R || Returns 1 if the character belongs to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISONLINE]] || R || Returns 1 if the character is considered to be online.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISSTUCK]] || R || Returns 1 if the character cannot walk in any direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISVENDOR]] || R || Returns 1 if the character is a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISVERTICALSPACE]] ''location'' || R || Returns 1 if the ceiling at the given location is high enough for the character to fit under.&lt;br /&gt;
|-&lt;br /&gt;
| [[JAIL]] ''cell'' || W || Sends the character to jail, to a specified jail cell.&lt;br /&gt;
|-&lt;br /&gt;
| [[KARMA]] || RW || Gets or sets the character's karma.&lt;br /&gt;
|-&lt;br /&gt;
| [[KARMA]]''.karma_group'' || R || Returns 1 if the character's karma falls within the specified karma group.&lt;br /&gt;
|-&lt;br /&gt;
| [[KILL]] || W || Kills the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[LEVEL]] || RW || Gets or sets the character's experience level.&lt;br /&gt;
|-&lt;br /&gt;
| [[LIGHT]] || RW || Gets or sets the character's personal light level.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAKEITEM]] ''item_defname, amount'' ||| W || Begins an attempt to craft the specified quantity of the given item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MANA]] || RW || Gets or sets the character's mana.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]] || RW || Gets or sets the map that this object is located.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXHITS]] || RW || Gets or sets the character's maximum hitpoints.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXMANA]] || RW || Gets or sets the character's maximum mana.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXSTAM]] || RW || Gets or sets the character's maximum stamina.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXWEIGHT]] || R || Returns the maximum weight that the character can carry.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMORY]]''.object_uid'' || RW || Gets or sets the memory flags the character has for the given object.&lt;br /&gt;
|-&lt;br /&gt;
| [[MENU (Function)|MENU]] ''menu_defname'' || W || Displays a menu to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MESSAGE]] ''message'' || W || Displays a message above this character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MESSAGEUA]] ''colour, talkmode, font, lang_id, message'' || W || Displays a UNICODE message above this character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODAR]] || RW || Gets or sets a modifier for the character's armour rating.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODDEX]] || RW || Gets or sets the character's dexterity modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODINT]] || RW || Gets or sets the character's intelligence modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODMAXWEIGHT]] || RW || Gets or sets the character's maximum weight modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODSTR]] || RW || Gets or sets the character's strength modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOUNT]] || R || Gets the UID of the character's mount.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOUNT]] ''mount_uid'' || W || Attempts to mount the character on to the specified mount.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVE]] ''direction'' || R || Returns the movement flags for the tile in the given direction (see can_flags in sphere_defs.scp).&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVE]] ''direction, amount''&amp;lt;br /&amp;gt; [[MOVE]] ''x y'' || W || Moves the object relative to its current position.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVENEAR]] ''object_uid, distance'' || W || Moves the character to a random location near another object within a certain distance.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVETO]] ''location'' || W || Moves the character to a specific location.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAME]] || RW || Gets or sets the character's name.&lt;br /&gt;
|-&lt;br /&gt;
| [[NEWBIESKILL]] ''skill_id'' || W || Distributes items that are associated with the specified skill, to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[NEWGOLD]] ''amount'' || W || Generates ''amount'' gold in the character's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[NEWLOOT]] ''item_or_template_defname'' || W || Generates the specified item or template into the character's backpack, providing that they are an NPC that hasn't been summoned.&lt;br /&gt;
|-&lt;br /&gt;
| [[NIGHTSIGHT]] || RW || Gets or sets whether or not the character has nightsight enabled.&lt;br /&gt;
|-&lt;br /&gt;
| [[NOTOGETFLAG]] ''viewer_uid, allow_incognito'' || RW || Gets the character's notoriety flags as seen by the specified viewer.&lt;br /&gt;
|-&lt;br /&gt;
| [[NPC]] || RW || Gets or sets the character's AI type.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGEDOWN]] ''amount'' || W || Decreases the character's Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGEUP]] ''amount'' || W || Increases the characer's Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[OBODY]] || RW || Gets or sets the character's original body.&lt;br /&gt;
|-&lt;br /&gt;
| [[OPENPAPERDOLL]] || W || Displays the character's paperdoll to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[OPENPAPERDOLL]] ''character_uid'' || W || Displays a specified character's paperdoll to this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[OSKIN]] || RW || Gets or sets the character's original colour.&lt;br /&gt;
|-&lt;br /&gt;
| [[ODEX]] || RW || Gets or sets the character's base dexterity (without modifiers).&lt;br /&gt;
|-&lt;br /&gt;
| [[OINT]] || RW || Gets or sets the character's base intelligence (without modifiers).&lt;br /&gt;
|-&lt;br /&gt;
| [[OSTR]] || RW || Gets or sets the character's base strength (without modifiers).&lt;br /&gt;
|-&lt;br /&gt;
| [[PACK]] || W || Opens the character's backpack for SRC to view.&lt;br /&gt;
|-&lt;br /&gt;
| [[POISON]] ''strength'' || W || Poisons the character, with the specified poison strength.&lt;br /&gt;
|-&lt;br /&gt;
| [[POLY]] ''character_id'' || W || Begins casting the polymorph spell, with ''character_id'' being the character to turn into.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROMPTCONSOLE]] ''function, prompt_message'' || W || Displays a prompt message to SRC and passes their response into a specified function.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROMPTCONSOLEU]] ''function, prompt_message'' || W || Displays a prompt message to SRC and passes their response into a specified function, supporting UNICODE response.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRIVSET]] ''plevel'' || W || Sets the PLEVEL of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[RANGE]] || R || Gets the combat range of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[RELEASE]] || W || Clears the character's owners.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVE]] ''allow_player_removal'' || W || Deletes the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVEFROMVIEW]] || W || Removes the object from nearby clients' screens.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESCOLD]] || RW || Gets or sets the character's resistance to cold.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESCOUNT]] ''item_defname'' || R || Returns the total amount of a specific item equipped to the character or inside their baackpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESENDTOOLTIP]] || W || Forces Sphere to update the tooltips for nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESENERGY]] || RW || Gets or sets the character's resistance to energy.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESFIRE]] || RW || Gets or sets the character's resistance to fire.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESPOISON]] || RW || Gets or sets the character's resistance to poison.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTEST]] ''item_list'' || R || Returns 1 if all of the items in the list can be found equipped to the character or inside their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESURRECT]] ''force'' || W || Resurrects the character. If ''force'' is 1 then usual anti-magic checks are bypasses.&lt;br /&gt;
|-&lt;br /&gt;
| [[SALUTE]] ''object_uid'' || W || Makes the character salute a specified object or SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAY]] ''message'' || W || Makes the character speak a message.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAYU]] ''message'' || W || Makes the character speak a UTF-8 message&lt;br /&gt;
|-&lt;br /&gt;
| [[SAYUA]] ''colour, talkmode, font, lang_id, text'' || W || MAkes the character speak a UNICODE message.&lt;br /&gt;
|-&lt;br /&gt;
| [[SDIALOG]] ''dialog_id, page, parameters'' || W || Displays a dialog to SRC, providing that it is not already open.&lt;br /&gt;
|-&lt;br /&gt;
| [[SERIAL]] || R || Gets the item's unique ID in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[SEX]] ''value_male:value_female'' || R || Returns ''value_male'' or ''value_female'' depending on the character's gender.&lt;br /&gt;
|-&lt;br /&gt;
| [[SEXTANTP]] ''location'' || R || Converts the character's location or a specified location into sextant coordinates.&lt;br /&gt;
|-&lt;br /&gt;
| ''skill_name'' || RW || Gets or sets the character's skill level in ''skill_name''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILL (Function)|SKILL]] || W || Begins using a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLCHECK]] ''skill_id, skill_amount'' || R || Returns 1 if the character has the specified amount of skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLBEST]]''.n'' || R || Returns the ID of the character's nth highest skill (0 = Highest)&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLGAIN]] ''skill, difficulty'' || W || Invokes Sphere's skill gain for the specified skill, with the given difficulty (0-100)&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTEST]] ''skill_list'' || R || Returns 1 if t he character possess all of the skills in the list.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] || R || Returns the total value of all the character's skills.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] ''skill_group'' || R || Returns the total value of all the character's skills with the specified group flag(s).&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] ''-amount'' || R || Returns the total value of all the character's skills that are under ''amount''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] ''+amount'' || R || Returns the total value of all the character's skills that are over ''amount''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLUSEQUICK]] ''skill_id, difficulty'' || R || Quickly uses a skill, returning 1 if the attempt was successful.&lt;br /&gt;
|-&lt;br /&gt;
| [[SLEEP]] ''fall_forwards'' || W || Makes the character appear to sleep.&lt;br /&gt;
|-&lt;br /&gt;
| [[SOUND]] ''sound_id, repeat'' || W || Plays a sound from this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELLEFFECT]] ''spell_id, strength, source_character_uid, source_item_uid'' || W || Causes the character to be affected by a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[STAM]] || RW || Gets or sets the character's stamina.&lt;br /&gt;
|-&lt;br /&gt;
| [[STONE]] || RW || Gets or sets whether or not the character is trapped in stone.&lt;br /&gt;
|-&lt;br /&gt;
| [[STR]] || RW || Gets or sets the character's total strength.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUICIDE]] || W || Forces the character to commit suicide.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUMMONCAGE]] || W || Teleports the character to SRC's, surrounded by a cage multi.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUMMONTO]] || W || Teleports the character to SRC's position.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAG]]''.name'' || RW || Gets or sets the value of a TAG.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index'' || R || Gets a TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.KEY || R || Gets the name of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.VAL || R || Gets the value of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGCOUNT]] || R || Gets the number of TAGs stored on the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGLIST]] || W || Outputs a list of the object's TAGs.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGET]]''FGMW'' ''function'' || W || Displays a targeting cursor to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMER]] || RW || Gets or sets the length of time before the item's timer expires, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERD]] || RW || Gets or sets the length of time before the item's timer expires, in tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERF]] ''time, function'' || W || Scheduled a function to be executed on this object in ''time'' seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERF]] CLEAR || W || Clears all scheduled functions from the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[TITLE]] || RW || Gets or sets the character's title.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWNABBREV]] || R || Returns the character's town abbreviation.&lt;br /&gt;
|-&lt;br /&gt;
| [[TRIGGER]] ''trig_name, trig_type'' || R || Fires a custom trigger and returns the RETURN value.&lt;br /&gt;
|-&lt;br /&gt;
| [[UID]] || R || Gets the item's unique ID in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNDERWEAR]] || W || Toggles the display of underwear on the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNEQUIP]] ''item_uid'' || W || Unequips an item from the character, placing it in their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[UPDATE]] || W || Updates the state of the character to nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[UPDATEX]] || W || Updates the state of the character to nearby clients, removing it from their view first to ensure a full refresh.&lt;br /&gt;
|-&lt;br /&gt;
| [[USEITEM]] || W || Double clicks the character, with SRC as the source of the event, without checking for line of sight.&lt;br /&gt;
|-&lt;br /&gt;
| [[USEITEM]] ''object_uid'' || W || Double clicks an object, with the character as SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[VISUALRANGE]] || RW || Gets or sets the character's sight range.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEIGHT]] || R || Gets the weight of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[WHERE]] || W || Describes the character's location to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[Z]] || R || Gets the Z position of the character.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
Here is a list of all character triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@AfterClick]] || Fires when the object has been single-clicked, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Attack]] || Fires when the character begins attacking another.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CallGuards]] || Fires when the character calls for guards.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharAttack]] || Fires when the character is attacked by another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharClick]] || Fires when the character is clicked by another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharClientTooltip]] || Fires when the tooltips are about to be sent to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharDClick]] || Fires when the character double clicks another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharTradeAccepted]] || Fires when another character accepts trade with the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Click]] || Fires when the object has been single-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ClientTooltip]] || Fires when tooltips for this character are about to be sent to a client.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuRequest]] || Fires when a client requests the context menu options for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuSelect]] || Fires when a client selects a context menu option for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Create]] || Fires when the object is initially created, before it is placed in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Criminal]] || Fires when the character becomes a criminal.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DClick]] || Fires when the object is double-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Death]] || Fires when the character's hitpoints reaches zero.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DeathCorpse]] || Fires when a corpse is created for the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Destroy]] || Fires when the object is being deleted.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Dismount]] || Fires when the character dismounts their ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[@EnvironChange]] || Fires when the environment changes for the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ExpChange]] || Fires when the character's experience points change.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ExpLevelChange]] || Fires when the character's experience level changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@FameChange]] || Fires when the character's fame changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@GetHit]] || Fires when the character receives damage.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Hit]] || Fires when the character hits another in combat.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HitMiss]] || Fires when the character fails to hit another in combat.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HouseDesignCommit]] || Fires when the character commits a new house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HouseDesignExit]] || Fires when the character exits house design mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Hunger]] || Fires when the character's food level decreases.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemAfterClick]] || Fires when the character single-clicks an item, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemBuy]] || Fires when the character buys an item from a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemClick]] || Fires when the character single-clicks an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemClientTooltip]] || Fires when the tooltips are about to be sent to the client for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemContextMenuRequest]] || Fires when the character requests the context menu options for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemContextMenuSelect]] || Fires when the character selects a context menu option for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemCreate]] || Fires when an item is initially created, before it is placed in the world, and the character is in some way responsible for it.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDamage]] || Fires when the character damages an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDClick]] || Fires when the character double-clicks an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Char]] || Fires when the character drops an item on to a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Ground]] || Fires when the character drops an item on to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Item]] || Fires when the character drops an item on to another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Self]] || Fires when the character drops an item inside another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemEquip]] || Fires when the character equips an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemEquipTest]] || Fires when the characer is about to equip an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Ground]] || Fires when the character picks an item up from the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Pack]] || Fires when the character picks an item up from inside a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Self]] || Fires when the character picks an item up from inside another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Stack]] || Fires when the character picks up an item from a stack.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemSell]] || Fires when the character sells an item to a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemSpellEffect]] || Fires when the character hits an item with a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemStep]] || Fires when the character steps on an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Cancel]] || Fires when the character cancels an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Char]] || Fires when the character targets a character with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Ground]] || Fires when the character targets the ground with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Item]] || Fires when the character targets an item with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemToolTip]] || Fires when the character requests old-style tooltips for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemUnEquip]] || Fires when the character unequips an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Jailed]] || Fires when the character is sent to jail.&lt;br /&gt;
|-&lt;br /&gt;
| [[@KarmaChange]] || Fires when the character's karma changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Kill]] || Fires when the character kills another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Login]] || Fires when the character logs in.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Logout]] || Fires when the character logs out.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Mount]] || Fires when the character mounts a ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[@MurderDecay]] || Fires when one of the character's kills is about to decay.&lt;br /&gt;
|-&lt;br /&gt;
| [[@MurderMark]] || Fires when the character is about to gain a kill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCAcceptItem]] || Fires when the NPC receives an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCActFight]] || Fires when the NPC makes a combat decision.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCActFollow]] || Fires when the NPC follows another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCAction]] || Fires when the NPC is about to perform an AI action.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCHearGreeting]] || Fires when the NPC hears a character for the first time.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCHearUnknown]] || Fires when the NPC hears something they don't understand.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLookAtChar]] || Fires then the NPC looks at a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLookAtItem]] || Fires when the NPC looks at an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLostTeleport]] || Fires when the NPC is lost and is about to be teleported back to their [[HOME]].&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCRefuseItem]] || Fires when the NPC refuses an item being given to them.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCRestock]] || Fires when the NPC is having their items restocked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSeeNewPlayer]] || Fires when the NPC first sees a player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSeeWantItem]] || Fires when the NPC sees an item they want.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSpecialAction]] || Fires when the NPC is about to perform a special action (leaving fire trail, dropping web).&lt;br /&gt;
|-&lt;br /&gt;
| [[@PersonalSpace]] || Fires when the character is stepped on.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PetDesert]] || Fires when the character deserts its owner.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Profile]] || Fires when a player attempts to read the character's profile from the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ReceiveItem]] || Fires when the NPC receives an item from another character, before they decide if they want it or not.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegionEnter]] || Fires when the character enters a region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegionLeave]] || Fires when the character leaves a region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Rename]] || Fires when the character renames another.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SeeCrime]] || Fires when the character sees a crime take place.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillAbort]] || Fires when the character aborts a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillChange]] || Fires when the character's skill level changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillFail]] || Fires when the character fails a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillGain]] || Fires when the character has a chance to gain in a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillMakeItem]] || Fires when the character crafts an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillMenu]] || Fires when a skill menu is shown to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillPreStart]] || Fires when the character starts a skill, before any hardcoded action takes place.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillSelect]] || Fires when the character selects a skill on their skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillStart]] || Fires when the character starts a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillSuccess]] || Fires when the character succeeds at a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillUseQuick]] || Fires when the character quickly uses a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellBook]] || Fires when the character opens their spellbook.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellCast]] || Fires when the character casts a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellEffect]] || Fires when the character is hit by the effects of a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellFail]] || Fires when the character fails to cast a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellSelect]] || Fires when the character selects a spell to cast.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellSuccess]] || Fires when the character successfully casts a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@StatChange]] || Fires when the character's STR, DEX or INT is changed through skill gain.&lt;br /&gt;
|-&lt;br /&gt;
| [[@StepStealth]] || Fires when the character takes a step whilst hidden.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ToolTip]] || Fires when a player requests old-style tooltips for this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TradeAccepted]] || Fires when the character accepts a trade with another player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserBugReport]] || Fires when the player submits a bug report.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserChatButton]] || Fires when the player presses the Chat button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserExtCmd]] || Fires when the player sends an extended command packet. (used by some macros)&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserExWalkLimit]] || Fires when the player's movement is restricted by the movement speed settings in Sphere.ini&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserGuildButton]] || Fires when the player presses the Guild button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserKRToolbar]] || Fires when the player presses a button on the toolbar.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserMailBag]] || Fires when the player drags the mail bag on to another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserQuestArrowClick]] || Fires when the player clicks the quest arrow.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserQuestButton]] || Fires when the player presses the Quest button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserSkills]] || Fires when the player opens their skill menu, or a skill update is sent to the player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserSpecialMove]] || Fires when the player uses a special move.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserStats]] || Fires when the player opens the status window.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserVirtue]] || Fires when the player presses on the Virtue button.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserVirtueInvoke]] || Fires when the player invokes a virtue through macros.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserWarmode]] || Fires when the player switches between war and peace mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Players==&lt;br /&gt;
Characters that are attached to an account become Player Characters. In addition to the basic character references, properties and functions they also receive the following:&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILD]] || R || Gets the [[Special Items#Guild.2FTown_Stones|guild stone]] that the player belongs to.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLCLASS (Reference)|SKILLCLASS]] || RW || Gets or sets the player's [[SKILLCLASS|skillclass]].&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWN]] || R || Gets the [[Special Items#Guild.2FTown_Stones|town stone]] that the player belongs to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all player properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[CURFOLLOWER]] || RW || Gets or sets the number of current followers the player has,&lt;br /&gt;
|-&lt;br /&gt;
| [[DEATHS]] || RW || Gets or sets the number of times the player has died.&lt;br /&gt;
|-&lt;br /&gt;
| [[DSPEECH]] ''+/-speech_id'' || RW || Gets a list of attached speech handlers, or adds or removes a speech handler to or from the player.&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n.DELETE'' || W || Deletes the nth GM page. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n.HANDLE'' || W || Sets the player as the handler for the nth GM page. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n.key'' || W || Executes the .page command with ''key'' as the arguments.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISDSPEECH]]''.speech_id'' || R || Returns 1 if the player has the given speech handler attached.&lt;br /&gt;
|-&lt;br /&gt;
| [[KICK]] || W || Disconnects and blocks the player's account.&lt;br /&gt;
|-&lt;br /&gt;
| [[KILLS]] || RW || Gets the number of murders the player has committed.&lt;br /&gt;
|-&lt;br /&gt;
| [[KRTOOLBARSTATUS]] || RW || Gets or sets whether or not the KR toolbar is enabled for this player.&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTUSED]] || RW || Gets the length of time since the player was last attached to a client, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[LUCK]] || RW || Gets or sets the luck value for the player.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXFOLLOWER]] || RW || Gets or sets the maximum number of followers the player can have.&lt;br /&gt;
|-&lt;br /&gt;
| [[PASSWORD]] || W || Sets or clears the player's password.&lt;br /&gt;
|-&lt;br /&gt;
| [[PFLAG]] || RW || Gets or sets the player's PFLAG value.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROFILE]] || RW || Gets or sets the text to display on the player's profile.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLLOCK]]''.skill_id'' || RW || Gets or sets the lock state of the player's skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPEEDMODE]] || RW || Gets or sets the speed that the player moves at. (0=Normal, 1=Double Speed on Foot, 2=Always walk, 3=Always Run on Foot/Always Walk on Mount)&lt;br /&gt;
|-&lt;br /&gt;
| [[STATLOCK]]''.stat_id || RW || Gets or sets the lock state of the player's STR, DEX or INT.&lt;br /&gt;
|-&lt;br /&gt;
| [[TITHING]] || RW || Gets or sets the number of tithing points the player has.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NPCs==&lt;br /&gt;
Characters that are not attached to an account are NPCs and are controlled by Sphere's AI. In addition to the basic character references, properties and functions they also receive the following:&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all NPC properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTPRI]] || RW || Gets or sets the NPC's motivation towards their current action.&lt;br /&gt;
|-&lt;br /&gt;
| [[BUY]] || W || Displays the shop window to SRC, in buy mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYE]] || W || Ends the NPC's current action.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLEE]] ''distance'' || W || Begins moving the NPC away from its current location.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOTO]] ''location'' || W || Begins moving the NPC towards the specified location.&lt;br /&gt;
|-&lt;br /&gt;
| [[HIRE]] || W || Begins the hiring process between the NPC and SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[LEAVE]] ''distance'' || W || Begins moving the NPC away from its current location.&lt;br /&gt;
|-&lt;br /&gt;
| [[NPC]] || RW || Gets or sets the NPC's AI type.&lt;br /&gt;
|-&lt;br /&gt;
| [[HOMEDIST]] || RW || Gets or sets the distance that the NPC can wander from its [[HOME]] position.&lt;br /&gt;
|-&lt;br /&gt;
| [[PETRETRIEVE]] || W || Enables SRC to retrieve their stabled pets from the NPC.&lt;br /&gt;
|-&lt;br /&gt;
| [[PETSTABLE]] || W || Enables SRC to stable their pet with the NPC.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTOCK]] ''force'' || W || Clears all of the NPC's stock, repopulating it when it is next accessed (or immediately if ''force''=1)&lt;br /&gt;
|-&lt;br /&gt;
| [[RUN]] ''direction'' || W || Forces the NPC to run one tile in the specified direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[SELL]] || W || Displays the shop window to SRC, in sell mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHRINK]] || W || Shrinks the NPC into a figurine item.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPEECH]] ''+/-speech_id'' || RW || Gets the list of speech handlers attached to the NPC, or adds or removes a speech handler to or from the NPC.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPEECHCOLOR]] || RW || Gets or sets the colour of the NPC's speech.&lt;br /&gt;
|-&lt;br /&gt;
| [[TRAIN]] ''skill'' || W || Initiates training between the NPC and SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[VENDCAP]] || RW || Gets or sets the amount of gold a vendor will restock to.&lt;br /&gt;
|-&lt;br /&gt;
| [[VENDGOLD]] || RW || Gets or sets the amount of gold a vendor has.&lt;br /&gt;
|-&lt;br /&gt;
| [[WALK]] ''direction'' || W || Forces the NPC to walk one tile in the specified direction.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Clients==&lt;br /&gt;
When a client is controlling a character, the following references, properties and functions will be available:&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGEP]] || R || Gets the [[GM Pages|GM page]] that the client is currently handling.&lt;br /&gt;
|-&lt;br /&gt;
| [[HOUSEDESIGN]] || R || Gets the [[Special Items#Customizable Multis|building]] that is currently being designed by the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[PARTY]] || R || Gets the [[Parties|party]] that the client is a member of.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARG]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that the client has targeted.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGP]] || RW || Gets or sets the [[Map Points|location]] that the client has targeted.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGPROP]] || RW || Gets or sets the character whose skills are shown in the client's skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGPRV]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that the client previously targeted.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all client properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ADD]] ''item_defname'' || W || Prompts the client to target a location to add the specified item at.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDBUFF]] ''icon, cliloc1, cliloc2, time, arg1, arg2, arg3'' || W || Displays a buff icon in the client's buff icon bar.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDCLILOC]] ''cliloc, args'' || W || Adds a cliloc to the tooltip being sent to the client. Only valid in @ClientTooltip triggers.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDCONTEXTENTRY]] ''entry_id, cliloc, flags, colour'' || W || Adds an entry to the context menu being sent to the client. Only valid in @ContextMenuRequest triggers.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLMOVE]] || RW || Gets or sets whether or not the client has ALLMOVE privileges.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLSHOW]] || RW || Gets or sets whether or not the client is able to see disconnected characters.&lt;br /&gt;
|-&lt;br /&gt;
| [[ARROWQUEST]] ''x, y'' || W || Displays an arrow on the client's screen that points to the specified world coordinates.&lt;br /&gt;
|-&lt;br /&gt;
| [[BADSPAWN]] || W || Teleports the client to the first invalid spawn point in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[BANKSELF]] || W || Opens up the client's bankbox.&lt;br /&gt;
|-&lt;br /&gt;
| [[CAST]] ''spell_id' || W || Begins casting a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[CHARLIST]] || W || Displays the client's character list screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARCTAGS]] || W || Removes all of the client's CTAGs.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTIS3D]] || R || Returns 1 if the client is using the 3D client.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTISKR]] || R || Returns 1 if the client is using the KR client.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTVERSION]] || R || Gets the client version the client is using, based on the encryption keys being used (unencrypted clients return 0).&lt;br /&gt;
|-&lt;br /&gt;
| [[CTAG]] || RW || Gets or sets the value of a CTAG.&lt;br /&gt;
|-&lt;br /&gt;
| [[CTAGLIST]] || W || Displays a list of the client's CTAGs to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[CTAGLIST]] LOG || W || Displays a list of the client's CTAGs on the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[DEBUG]] || RW || Gets or sets whether or not the client is in debug mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[DETAIL]] || RW || Gets or sets whether or not the client receives additional detail, such as combat messages.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVERBTARG]] ''command'' || W || Prompts the client to enter a command, or arguments to the command if specified. The complete command with arguments is then executed on TARG.&lt;br /&gt;
|-&lt;br /&gt;
| [[EXTRACT]] ''file, template_id'' || W || Extracts static items from a targeted area on the map and saves them into the specified file.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLUSH]] || W || Forces queued network data to be immediately sent to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[GM]] || RW || Gets or sets whether or not the client is in GM mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]] ''ADD message'' || W || Sends a GM page from the client with the specified message, or if no arguments provided will prompt the client for a message.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOTARG]] || W || Teleports the client to their targeted item.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEARALL]] || RW || Gets or sets whether or not the client can hear all player speech regardless of location.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFO]] || W || Displays an information dialog to the client for an object they target.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFORMATION]] || W || Displays server information to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[LAST]] || W || Forces the client to target the object referenced by [[ACT]].&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTEVENT]] || RW || Returns the time when data was last received from the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[LINK]] || W || Allows the client to target two objects to link them together.&lt;br /&gt;
|-&lt;br /&gt;
| [[MENU (Function)|MENU]] ''menu_id'' || W || Displays a menu to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[MIDILIST]] ''music1, music2, ...'' || W || Selects a random music id from the given list and tells the client to play it.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGE]] ''dx, dy, dz'' || W || Allows the client to nudge an area of items by the given coordinates, relative to the items' position.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUKE]] ''command'' || W || Allows the client to execute ''command'' on all items in a targeted area.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUKECHAR]] ''command'' || W || Allows the client to execute ''command'' on all NPCs in a targeted area.&lt;br /&gt;
|-&lt;br /&gt;
| [[PAGE]] || W || Displays the GM page menu to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRIVSHOW]] || W || Gets or sets whether or not the client's privilege level should show in their name.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVEBUFF]] ''icon'' || W || Removes a buff icon from the client's buff icon bar.&lt;br /&gt;
|-&lt;br /&gt;
| [[REPAIR]] || W || Prompts the client to target an item for them to repair.&lt;br /&gt;
|-&lt;br /&gt;
| [[REPORTEDCLIVER]] || R || Gets the client version the client is using, based on what it has identified itself as to the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[REPORTEDCLIVER]].FULL || R || Gets the client version the client is using, based on what it has identified itself as to the server, including the 4th digit.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESEND]] || W || Forces a full refresh of the client's screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVE]] ''immediate'' || W || Begins a world save. If background saving is enabled then ''[[SAVE]] 1'' will force a foreground save.&lt;br /&gt;
|-&lt;br /&gt;
| [[SCREENSIZE]] || R || Gets the client's screen size. (width,height)&lt;br /&gt;
|-&lt;br /&gt;
| [[SCREENSIZE]].X || R || Gets the width of the client's screen size.&lt;br /&gt;
|-&lt;br /&gt;
| [[SCREENSIZE]].Y || R || Gets the height of the client's screen size.&lt;br /&gt;
|-&lt;br /&gt;
| [[SCROLL]] ''scroll_id'' || W || Displays a message scroll to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SELF]] || W || Forces the client to target itself.&lt;br /&gt;
|-&lt;br /&gt;
| [[SENDPACKET]] ''data'' || W || Sends a raw data packet to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SET]] ''command'' || W || Prompts the client to target an object to execute ''command'' on.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHOWSKILLS]] || W || Refreshes the client's skills for the skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLMENU (Function)|SKILLMENU]] ''skillmenu_id'' || W || Displays a skillmenu to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLSELECT]] ''skill_id'' || W || Simulates the client selecting a skill from their skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUMMON]] ''character_id'' || W || Casts the summon spell, with ''character_id'; being the character to summon.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGE]] ''text'' || W || Displays a system message to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGELOC]] ''hue, cliloc, args'' || W || Displays a localized system message to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGELOCEX]] ''hue, cliloc, flags, affix, args'' || W || Displays a localized system message to the client with affixed text.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGEUA]] ''hue, font, mode, language, text'' || W || Displays a UNICODE system message to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGTXT]] || RW || Gets or sets the client's target text.&lt;br /&gt;
|-&lt;br /&gt;
| [[TELE]] || W || Casts the teleport spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[TILE]] ''z, item1, item2, ...'' || W || Tiles the ground within a targeted area with the listed items, at the given Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNEXTRACT]] ''file'' || W || Unextracts previously extracted statics, as dynamic items at a targeted location.&lt;br /&gt;
|-&lt;br /&gt;
| [[VERSION]] || W || Displays the server description to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEBLINK]] ''url'' || W || Opens the client's web browser to send them to the specified url.&lt;br /&gt;
|-&lt;br /&gt;
| [[X]]''command'' || W || Prompts the client to target an object to execute ''command'' on.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=MediaWiki:Sidebar&amp;diff=489</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=MediaWiki:Sidebar&amp;diff=489"/>
				<updated>2009-06-20T12:06:00Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* SEARCH&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** http://www.sphereserver.net|SphereServer Forum&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Setting Up Sphere&lt;br /&gt;
** Where to get Sphere|Where To Get Sphere&lt;br /&gt;
** Installing Sphere|Installing Sphere&lt;br /&gt;
** Configuring Sphere.ini|Configuring Sphere.ini&lt;br /&gt;
* Reference Compendium&lt;br /&gt;
** Category:Definitions|Definitions&lt;br /&gt;
** Category:Objects|Objects&lt;br /&gt;
** Category:Scripts|Scripts&lt;br /&gt;
* Tutorial Chapters&lt;br /&gt;
** Chapter 1|Chapter One&lt;br /&gt;
** Chapter 2|Chapter Two&lt;br /&gt;
** Chapter 3|Chapter Three&lt;br /&gt;
** Chapter 4|Chapter Four&lt;br /&gt;
** Chapter 5|Chapter Five&lt;br /&gt;
** Chapter 6|Chapter Six&lt;br /&gt;
** Chapter 7|Chapter Seven&lt;br /&gt;
** Chapter 8|Chapter Eight&lt;br /&gt;
** Chapter 9|Chapter Nine&lt;br /&gt;
** Chapter 10|Chapter Ten&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Server&amp;diff=488</id>
		<title>Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Server&amp;diff=488"/>
				<updated>2009-06-20T12:04:48Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
The server object is a global object that can be accessed from any script, by using the SERV reference. The following tables detail the various properties of the server in SphereServer:&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
References return pointers to other objects (e.g. the CHAR.n reference allows you to access the characters that are attached to the account). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]]''.n'' || R || Gets the nth [[Accounts|account]] on the server. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]]''.name'' || R || Gets the [[Accounts|account]] with the specified name.&lt;br /&gt;
|-&lt;br /&gt;
| [[AREA]]''.defname'' || R || Gets the [[Regions|region]] with the specified defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[CHARDEF (Reference)|CHARDEF]]''.defname'' || R || Gets the [[CHARDEF|character definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENT]]''.n'' || R || Gets the nth [[Characters#Clients|client]] on the server.&amp;lt;br /&amp;gt;'''Note:''' The nth client may not be an ingame player character, &amp;amp;lt;CLIENT.n&amp;amp;gt; first as it returns 1 for ingame clients and 0 for non-player clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n'' || R || Gets the nth [[GM Pages|GM page]] on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDSTONES]]''.n'' || R || Gets the nth [[Special Items#Guild.2FTown_Stones|guild stone]] on the server. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ITEMDEF (Reference)|ITEMDEF]]''.defname'' || R || Gets the [[ITEMDEF|item definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTNEWCHAR]] || R || Gets the last [[Characters|character]] created on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTNEWITEM]] || R || Gets the last [[Items|item]] created on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]]''(x, y, map)''&amp;lt;br /&amp;gt;[[MAP]]''(x, y, z, map)'' || R || Gets the [[Map Points|map point]] for a specified location.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGIONRESOURCE (Reference)|REGIONRESOURCE]]''.defname'' || R || Gets the [[REGIONRESOURCE|region resource definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGIONTYPE (Reference)|REGIONTYPE]]''.defname'' || R || Gets the [[REGIONTYPE|region type definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROOM (Reference)|ROOM]]''.defname'' || R || Gets the [[Rooms|room]] with the specified defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILL (Reference)|SKILL]]''.defname'' || R || Gets the [[SKILL|skill definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLCLASS (Reference)|SKILLCLASS]]''.defname'' || R || Gets the [[SKILLCLASS|skillclass]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELL (Reference)|SPELL]]''.defname'' || R || Gets the [[SPELL|spell definition]] for ''defname''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELL (Reference)|SPELL]]''-n'' || R || Gets the nth [[SPELL|spell definition]], ordered by skill requirements (1-based, ascending).&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWNSTONES]]''.n'' || R || Gets the nth [[Special Items#Guild.2FTown_Stones|town stone]] on the server. (zero-based)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Functions==&lt;br /&gt;
Here is a list of all item properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples. Settings from Sphere.ini can also be accessed from the server object, but they are not listed in this table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] ADD ''name password'' || W || Creates an account with the specified name and password.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] ADDMD5 ''name hash'' || W || Creates an account with the specified name and MD5 password hash.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] BLOCKED ''days command'' || W || Executes ''command'' on all accounts that have been unused for ''days'' days and are currently blocked.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] JAILED ''days command'' || W || Executes ''command'' on all accounts that have been unused for ''days'' days and are currently jailed.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] UNUSED ''days command'' || W || Executes ''command'' on all accounts that have been unused for ''days'' days.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] UPDATE || W || Saves the accounts to file.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] ''name command'' || W || Executes ''command'' on the account with the specified name.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNTS]] || RW || Gets or sets the number of accounts on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLCLIENTS]] ''command'' || W || Executes ''command'' on all online player characters.&lt;br /&gt;
|-&lt;br /&gt;
| [[B]] ''message'' || W || Broadcasts ''message'' to all clients on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[BLOCKIP]] ''address, time'' || W || Blocks an IP address for ''time'', in tenths of a second (-1 = permanent).&lt;br /&gt;
|-&lt;br /&gt;
| [[CHARS]] || RW || Gets or sets the number of characters on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARLISTS]] ''mask'' || W || Removes all LISTs whose name contains ''mask''.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARVARS]] ''prefix'' || W || Removes all VARs that start with the given prefix.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTS]] || R || Gets the total number of connected clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONSOLE]] ''command'' || W || Executes ''command'' as if it had been typed directly into the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[EXPORT]] ''file, flags, distance'' || W || Exports all objects within ''distance'' tiles of SRC to a file. (Flags: 1 = Items, 2 = Characters, 3 = Both)&lt;br /&gt;
|-&lt;br /&gt;
| [[GARBAGE]] || W || Forces an immediate garbage collection (checks for invalid objects and fixes them if possible, or else removes them).&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGES]] || R || Returns the total number of GM pages.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDS]] || R || Returns the total number of guild ''and'' town stones.&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDSTONES]].COUNT || R || Returns the total number of guild stones on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEARALL]] || RW || Gets or sets whether player speech is logged to server console and log file.&lt;br /&gt;
|-&lt;br /&gt;
| [[IMPORT]] ''file, flags, distance'' || W || Imports previously exported items that were within ''distance'' tiles. (Flags: 1 = Items, 2 = Characters, 3 = Both)&lt;br /&gt;
|-&lt;br /&gt;
| [[INFORMATION]] || W || Displays server information to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[ITEMS]] || RW || Gets or sets the number of items on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOAD]] ''file'' || W || Loads a script file.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOG]] ''message'' || W || Logs ''message'' to server console and logs.&lt;br /&gt;
|-&lt;br /&gt;
| [[LOOKUPSKILL]] ''skill_name'' || R || Looks up a skill name or key, and returns its skill number.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]]''.map_num.ALLSECTORS command'' || W || Executes ''command'' on all sectors of a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num'' || R || Returns 1 if ''map_num'' is a valid map number.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.BOUND.X || R || Returns the maximum X coordinate for a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.BOUND.Y || R || Returns the maximum Y coordinate for a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.CENTER.X || R || Returns the central X coordinate of a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.CENTER.Y || R || Returns the central Y coordinate of a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.COLS || R || Returns the number of sector columns on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.QTY || R || Returns the number of sectors on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.ROWs || R || Returns the number of sector rows on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAPLIST]]''.map_num''.SECTOR.SIZE || R || Returns the size of the sectors on a map.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEM]] || R || Returns the total amount of memory being used, in kilobytes.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRINTLISTS]] ''LOG'' || W || Displays a list of all LISTs to SRC, or the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]0 || RW || Gets or sets the length of time it takes for characters to regenerate 1 health point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]1 || RW || Gets or sets the length of time it takes for characters to regenerate 1 mana point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]2 || RW || Gets or sets the length of time it takes for characters to regenerate 1 stamina point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGEN]]3 || RW || Gets or sets the length of time it takes for characters to lose 1 food point, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESPAWN]] || W || Respawns all dead NPCs (not corpses) in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTOCK]] || W || Restocks all NPCs in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTORE]] ''file, account_name, character_name'' || W || Restores a player character from a backup save.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESYNC]] || W || Checks all script files for any changes made since they were last loaded.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTICKS]] || R || Returns the real-world time, as a timestamp.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTICKS]].FORMAT ''timestamp, format'' || R || Returns the real-world timestamp as a formatted datetime string.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTICKS]].FROMTIME ''year, month, day, hour, minutes, seconds'' || R || Returns the specified real-world time, as a timestamp.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTIME]] || R || Returns the real-world time, as a formatted string.&lt;br /&gt;
|-&lt;br /&gt;
| [[RTIME]].FORMAT ''format'' || R || Returns the real-world time, as a formatted string.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVE]] ''force_immediate'' || W || Begins a world save. If background saving is enabled, ''force_immediate'' can be used to force a foreground save.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVECOUNT]] || R || Returns the number of world saves that have taken place.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVESTATICS]] || W || Performs a statics save.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHRINKMEM]] || W || Temporarily reduces memory usage.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHUTDOWN]] ''time'' || W || Schedules a server shutdown in ''time'' minutes.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIME]] || R || Returns the total server uptime, in tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWNSTONES]].COUNT || R || Returns the total number of town stones on the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNBLOCKIP]] ''address'' || W || Unblocks a previously blocked IP address.&lt;br /&gt;
|-&lt;br /&gt;
| [[VARLIST]] ''LOG'' || W || Displays a list of all VARs to SRC, or the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[VERSION]] || R || Returns the SphereServer version.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Regions&amp;diff=487</id>
		<title>Regions</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Regions&amp;diff=487"/>
				<updated>2009-06-20T11:59:37Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Areas in the world, such as dungeons and cities are defined by regions. Accessing regions in scripts can be accomplished using the REGION reference from a [[Characters|character]], [[Items|item]] or [[Map Points|map point]] object, or the AREA.region_id reference from the [[Server|server]] object. The following tables detail the various properties of the region object in SphereServer:&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
References return pointers to other objects (e.g. the CHAR.n reference allows you to access the characters that are attached to the account). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[REGION]] || R || For regions linked to a multi, gets the region that contains the multi region. Only valid for reading values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Functions==&lt;br /&gt;
Here is a list of all region properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples. Properties from the [[AREADEF|region definition]] can also be accessed from the region object. If an attempt is made to execute (not read) a command that does not exist on the region or its definition, then the command will be called on all sectors that touch the region area.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLCLIENTS]] ''command'' || W || Executes ''command'' on all clients inside the region boundaries.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARTAGS]] ''prefix'' || W || Removes all TAGs from the region that start with the given prefix.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTS]] || R || Gets the total number of clients that are inside the sectors that touch the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[DEFNAME]] || R || Gets the region's defname.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVENTS (Property)|EVENTS]] ''+/-regiontype_defname'' || RW || Gets a list of attached region events, or adds or removes a region event to or from the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISEVENT]]''.regiontype_defname'' || R || Returns 1 if the region has a specified region event attached.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]] || R || Gets the map that the region exists on.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECT]] || R || Gets the number of rectangles that this region is made from.&lt;br /&gt;
|-&lt;br /&gt;
| [[RECT]]''.n'' || R || Gets the nth rectangle that this region is made from.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESOURCES]] ''+/-regiontype_defname'' || RW || Gets a list of attached region events, or adds or removes a region event to or from the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index'' || R || Gets a TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.KEY || R || Gets the name of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.VAL || R || Gets the value of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGCOUNT]] || R || Gets the number of TAGs stored on the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGLIST]] || W || Outputs a list of the region's TAGs.&lt;br /&gt;
|-&lt;br /&gt;
| [[TYPE]] || R || If the region is linked to a multi, returns the multi's [[TYPE]] property.&lt;br /&gt;
|-&lt;br /&gt;
| [[UID]] || R || Gets the region's unique ID in the world.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
Here is a list of all region triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@CliPeriodic]] || Fires multiple times approximately every 30 seconds, for each client in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Enter]] || Fires when a character enters the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Exit]] || Fires when a character exits the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegPeriodic]] || Fires once approximately every 30 seconds, as long as there is at least one client in the region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Step]] || Fires whenever a character takes a step within the region.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Items&amp;diff=486</id>
		<title>Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Items&amp;diff=486"/>
				<updated>2009-06-20T11:58:31Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Generally speaking, there are two types of &amp;quot;things&amp;quot; in the game; characters and items. Compared to characters, items are very complex. Items have a number of different uses, for example a sword is an item that players can see and equip to increase the damage they can do in combat. Some items in the game can not be seen by the players, but they have as much impact on the player as their sword, for example, a memory item is equipped every time a player is under the effects of a spell. Some [[Special Items|special types of item]] also have additional properties that can be accessed via scripts. The following tables detail the various properties of items in SphereServer:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[CONT]] || RW || Gets or sets the [[Characters|character]] or [[Special Items#Containers|container item]] that the object is inside.&lt;br /&gt;
|-&lt;br /&gt;
| [[LINK]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that the item is linked to.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGION]] || R || Gets the [[Regions|region]] that the object is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROOM]] || R || Gets the [[Rooms|room]] that the object is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[P]] || RW || Gets or sets the [[Map Points|position]] that the object is at.&lt;br /&gt;
|-&lt;br /&gt;
| [[SECTOR]] || R || Gets the [[Sectors|sector]] that the object is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOPOBJ]] || R || Gets the top-most [[Characters|character]] or [[Items|item]] in the world that contains the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[TYPEDEF (Reference)|TYPEDEF]] || R || Gets the [[ITEMDEF]] that defines the item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Functions==&lt;br /&gt;
Here is a list of all item properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples. If an attempt is made to access a property that does not exist on the item, the property from the [[ITEMDEF]] will be accessed instead.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDCIRCLE]] ''spell_circle'' || W || Adds all of the spells in the given circle to the spellbook.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDSPELL]] ''spell_id'' || RW || Gets whether or not a spell exists in the spellbook, or adds a spell to the spellbook.&lt;br /&gt;
|-&lt;br /&gt;
| [[AMOUNT]] || RW || Gets the amount of this items this item represent (e.g. a pile of gold).&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTR]] || RW || Gets or sets the item's attribute flags.&lt;br /&gt;
|-&lt;br /&gt;
| [[BOUNCE]] || W || Moves the item to SRC's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEE]] || R || Returns 1 if SRC can see the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEELOS]] || R || Returns 1 if SRC has line of sight to the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEELOSFLAG]] ''flags'' || R || Returns 1 if SRC has line of sight to the item, with flags to modify what tests take place.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARTAGS]] ''prefix'' || W || Removes all TAGs from the item that start with the given prefix.&lt;br /&gt;
|-&lt;br /&gt;
| [[COLOR]] || RW || Gets or sets the object's hue.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONSUME]] ''amount'' || W || Deducts an amount from the item, deleting it at 0.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONTCONSUME]] ''resource_list'' || W || Deletes items from inside the container.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONTGRID]] || RW || If in a container, gets or sets the grid number that the item occupies (in KR's grid view)&lt;br /&gt;
|-&lt;br /&gt;
| [[CONTP]] || RW || Gets or sets the position of the item within its container.&lt;br /&gt;
|-&lt;br /&gt;
| [[DAMAGE]] ''amount, type, source'' || W || Inflicts damage upon the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[DCLICK]] || W || Double clicks the item, with SRC as the source of the event.&lt;br /&gt;
|-&lt;br /&gt;
| [[DECAY]] ''time'' || W || Sets the decay timer for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOG (Function)|DIALOG]] ''dialog_id, page, parameters'' || W || Displays a dialog to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISPID]] || RW || Gets or sets the ID that the item will appear as to players.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISPIDDEC]] || RW || Same as [[DISPID]], except it returns the ID as a decimal number.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISTANCE]] ''point_or_uid'' || R || Gets the distance between this object and either SRC, a map location or another object.&lt;br /&gt;
|-&lt;br /&gt;
| [[DMGCOLD]] || RW || Gets or sets the amount of cold damage the weapon will give.&lt;br /&gt;
|-&lt;br /&gt;
| [[DMGENERGY]] || RW || Gets or sets the amount of energy damage the weapon will give.&lt;br /&gt;
|-&lt;br /&gt;
| [[DMGFIRE]] || RW || Gets or sets the amount of fire damage the weapon will give.&lt;br /&gt;
|-&lt;br /&gt;
| [[DMGPOISON]] || RW || Gets or sets the amount of poison damage the weapon will give.&lt;br /&gt;
|-&lt;br /&gt;
| [[DROP]] || W || Drops the item to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[DUPE]] || W || Clones the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[EDIT]] || W || Displays an editing dialog for the item to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[EFFECT]] ''type, item_id, speed, loop, explode, colour, rendermode'' || W || Displays an effect to nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[EMOTE]] ''message'' || W || Displays a *You see* message to all nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIP]] || W || Equips the item to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVENTS (Property)|EVENTS]] ''event_defname'' || RW || Gets a list of events attached to the object, or adds or removes an event to or from the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[FIX]] || W || Re-aligns the item's Z level to ground level.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLIP]] || W || Rotates the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[FRUIT]] || RW || Gets or sets the fruit that will be produced by the crops.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEIGHT]] || R || Gets the height of the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[HITS]] || RW || Gets or sets the number of hitpoints the item has.&lt;br /&gt;
|-&lt;br /&gt;
| [[HITPOINTS]] || RW || Gets or sets the number of hitpoints the item has.&lt;br /&gt;
|-&lt;br /&gt;
| [[ID]] || RW || Gets or sets the ID of the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFO]] || W || Displays an information dialog about the item to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISARMOR]] ''object_uid'' || R || Returns 1 if the object is armour.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCHAR]] || R || Returns 1 if the object is a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCONT]] || R || Returns 1 if the object is a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISEVENT]]''.event_defname'' || R || Returns 1 if the object has an event attached to it.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISITEM]] || R || Returns 1 if the object is an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNEARTYPE]] ''type, distance, flags'' || R || Returns 1 if a nearby item has the given TYPE.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNEARTYPETOP]] ''type, distance, flags'' || R || Returns a nearby world location of a nearby item which has the given TYPE.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISPLAYER]] || R || Returns 1 if the object is a player.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISTEVENT]]''.event_defname'' || R || Returns 1 if the object has an event attached to its ITEMDEF.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISWEAPON]] ''object_uid'' || R || Returns 1 if the object is a weapon.&lt;br /&gt;
|-&lt;br /&gt;
| [[LAYER]] || RW || Gets or sets the layer that the item occupies when equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]] || RW || Gets or sets the map that this object is located.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXHITS]] || RW || Gets or sets the maximum number of hitpoints the item can have.&lt;br /&gt;
|-&lt;br /&gt;
| [[MENU (Function)|MENU]] ''menu_defname'' || W || Displays a menu to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MESSAGE]] ''message'' || W || Displays a message above this item to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MESSAGEUA]] ''colour, talkmode, font, lang_id, message'' || W || Displays a UNICODE message above this item to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODAR]] || RW || Gets or sets a modifier for the item's armour rating.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE1]] || RW || Gets or sets the MORE1 value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE1H]] || RW || Gets or sets the upper 4 bytes of the item's MORE1 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE1L]] || RW || Gets or sets the lower 4 bytes of the item's MORE1 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE2]] || RW || Gets or sets the MORE2 value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE2H]] || RW || Gets or sets the upper 4 bytes of the item's MORE2 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[MORE2L]] || RW || Gets or sets the lower 4 bytes of the item's MORE2 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOREM]] || RW || Gets or sets the MOREM value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOREX]] || RW || Gets or sets the MOREX value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOREY]] || RW || Gets or sets the MOREY value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOREZ]] || RW || Gets or sets the MOREZ value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOREP]] || RW || Gets or sets the MOREP value for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVE]] ''direction, amount''&amp;lt;br /&amp;gt; [[MOVE]] ''x y'' || W || Moves the object relative to its current position.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVENEAR]] ''object_uid, distance'' || W || Moves the object to a random location near another object within a certain distance.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVETO]] ''location'' || W || Moves the object to a specific location.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAME]] || RW || Gets or sets the object's name.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGEDOWN]] ''amount'' || W || Decreases the object's Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGEUP]] ''amount'' || W || Increases the object's Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROMPTCONSOLE]] ''function, prompt_message'' || W || Displays a prompt message to SRC and passes their response into a specified function.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROMPTCONSOLEU]] ''function, prompt_message'' || W || Displays a prompt message to SRC and passes their response into a specified function, supporting UNICODE response.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVE]] || W || Deletes the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVEFROMVIEW]] || W || Removes the object from nearby clients' screens.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESENDTOOLTIP]] || W || Forces Sphere to update the tooltips for nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAY]] ''message'' || W || Makes the object speak a message.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAYU]] ''message'' || W || Makes the object speak a UTF-8 message&lt;br /&gt;
|-&lt;br /&gt;
| [[SAYUA]] ''colour, talkmode, font, lang_id, text'' || W || MAkes the object speak a UNICODE message.&lt;br /&gt;
|-&lt;br /&gt;
| [[SDIALOG]] ''dialog_id, page, parameters'' || W || Displays a dialog to SRC, providing that it is not already open.&lt;br /&gt;
|-&lt;br /&gt;
| [[SERIAL]] || R || Gets the item's unique ID in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[SEXTANTP]] ''location'' || R || Converts the item's location or a specified location into sextant coordinates.&lt;br /&gt;
|-&lt;br /&gt;
| [[SOUND]] ''sound_id, repeat'' || W || Plays a sound from this object.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELLEFFECT]] ''spell_id, strength, source_character_uid, source_item_uid'' || W || Causes the item to be affected by a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAG]]''.name'' || RW || Gets or sets the value of a TAG.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index'' || R || Gets a TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.KEY || R || Gets the name of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.VAL || R || Gets the value of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGCOUNT]] || R || Gets the number of TAGs stored on the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGLIST]] || W || Outputs a list of the object's TAGs.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGET]]''FGMW'' ''function'' || W || Displays a targeting cursor to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMER]] || RW || Gets or sets the length of time before the item's timer expires, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERD]] || RW || Gets or sets the length of time before the item's timer expires, in tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERF]] ''time, function'' || W || Scheduled a function to be executed on this object in ''time'' seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERF]] CLEAR || W || Clears all scheduled functions from the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[TRIGGER]] ''trig_name, trig_type'' || R || Fires a custom trigger and returns the RETURN value.&lt;br /&gt;
|-&lt;br /&gt;
| [[TYPE]] || RW || Gets or sets the item type.&lt;br /&gt;
|-&lt;br /&gt;
| [[UID]] || R || Gets the item's unique ID in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNEQUIP]] || W || Unequips the item and places it in SRC's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[UPDATE]] || W || Updates the state of the item to nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[UPDATEX]] || W || Updates the state of the item to nearby clients, removing it from their view first to ensure a full refresh.&lt;br /&gt;
|-&lt;br /&gt;
| [[USE]] ''check_los'' || W || Uses the item, as if SRC had double clicked it.&lt;br /&gt;
|-&lt;br /&gt;
| [[USEITEM]] || W || Double clicks the item, with SRC as the source of the event, without checking for line of sight.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEIGHT]] || R || Gets the weight of the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[Z]] || R || Gets the Z position of the item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
Here is a list of all item triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@AfterClick]] || Fires when the object has been single-clicked, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Buy]] || Fires when the item is being bought from a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Click]] || Fires when the object has been single-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ClientTooltip]] || Fires when tooltips are about to be sent to a client.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuRequest]] || Fires when a client requests the context menu options for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuSelect]] || Fires when a client selects a context menu option for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Create]] || Fires when the object is initially created, before it is placed in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Damage]] || Fires when the item receives damage.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DClick]] || Fires when the object is double-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Destroy]] || Fires when the object is being deleted.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Char]] || Fires when the item has been dropped on to a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Ground]] || Fires when the item has been dropped on to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Item]] || Fires when the item is dropped on to another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DropOn_Self]] || Fires when an item has been dropped on to this item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Equip]] || Fires when the item has been equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[@EquipTest]] || Fires when the item is about to be equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Ground]] || Fires when the item ihas been picked up from the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Pack]] || Fires when the item is picked up from inside a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Self]] || Fires when an item has been picked up from inside the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PickUp_Stack]] || Fires when the item is picked up from a stack.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Sell]] || Fires when the item is sold to a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellEffect]] || Fires when the object is hit by the effects of a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Step]] || Fires when a character steps on the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Cancel]] || Fires when a target is cancelled from the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Char]] || Fires when a character is targeted from the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Ground]] || Fires when the ground is targeted from the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TargOn_Item]] || Fires when an item is targeted from this item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Timer]] || Fires when the item's timer expires.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ToolTip]] || Fires when old-style tooltips are requested for the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UnEquip]] || Fires when the item is unequipped.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=Characters&amp;diff=485</id>
		<title>Characters</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=Characters&amp;diff=485"/>
				<updated>2009-06-20T11:53:39Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
A character can be either a player or an NPC.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACCOUNT]] || RW || Gets or sets the [[Accounts|account]] that the character belongs to.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACT]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that is related to the action the character is performing.&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDCONT]]''.n'' || R || Gets the nth [[Items|item]] equipped to the character. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDID]]''.item_id'' || R || Gets the first [[Items|item]] found equipped to the character or inside their backpack, with the matching [[BASEID]].&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDLAYER]]''.layer'' || R || Gets the [[Items|item]] that the character has equipped in a specified layer.&lt;br /&gt;
|-&lt;br /&gt;
| [[FINDTYPE]]''.type'' || R || Gets the first [[Items|item]] found equipped to the character or inside their backpack, with the matching [[TYPE]].&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMORYFINDTYPE]].''.memory_flags'' || R || Gets a [[Items|memory item]] with the specified flags.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMORYFIND]].''object_uid'' || R || Gets a [[Items|memory item]] that is linked to the given object.&lt;br /&gt;
|-&lt;br /&gt;
| [[OWNER]] || R || Gets the character that owns this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPAWNITEM]] || R || Gets the [[Items|spawn item]] (t_spawn_char) that this character originated from.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEAPON]] || R || Gets the [[Items|weapon]] that the character currently has equipped.&lt;br /&gt;
|-&lt;br /&gt;
| [[P]] || RW || Gets or sets the [[Map Points|position]] that the character is at.&lt;br /&gt;
|-&lt;br /&gt;
| [[REGION]] || R || Gets the [[Regions|region]] that the character is currently located in.&lt;br /&gt;
|-&lt;br /&gt;
| [[ROOM]] || R || Gets the [[Rooms|room]] that the character is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[SECTOR]] || R || Gets the [[Sectors|sector]] that the character is in.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOPOBJ]] || R || Gets the top-most [[Characters|character]] or [[Items|item]] in the world that contains the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[TYPEDEF  (Reference)|TYPEDEF]] || R || Gets the [[CHARDEF]] that defines the character.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Functions==&lt;br /&gt;
Here is a list of all character properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples. If an attempt is made to access a property that does not exist on the character, the property from the [[CHARDEF]] will be accessed instead.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[AC]] || R || Returns the character's total defense.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTARG1]] || RW || Gets or sets the character's ACTARG1 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTARG2]] || RW || Gets or sets the character's ACTARG2 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTARG3]] || RW || Gets or sets the character's ACTARG3 value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTDIFF]] || RW || Gets or sets the difficulty of the character's current action.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTION]] || RW || Gets or sets the skill that the character is currently using.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTP]] || RW || Gets or sets the character's ACTP value.&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTPRV]] || RW || Gets or sets the character's ACTPRV value.&lt;br /&gt;
|-&lt;br /&gt;
| [[AFK]] || W || Gets or sets whether or not the character is in AFK mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[AGE]] || R || Returns the age of the character since its creation, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLSKILLS]] ''amount'' || W || Sets all of the character's skills to the specified amount.&lt;br /&gt;
|-&lt;br /&gt;
| [[ANIM]] ''anim_id'' || W || Plays the specified animation on the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]] || R || Gets the number of opponents who have damaged the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.LAST'' || R || Gets the UID of the opponent who most recently damaged the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.MAX'' || R || Gets the UID of the opponent who has dealt the most damage to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.n.DAM'' || R || Gets the amount of damage that the nth opponent has dealt to the character. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.n.ELAPSED'' || R || Gets the length of time since the nth opponent has damaged the characer, in seconds. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[ATTACKER]]''.n.UID'' || R || Gets the UID of the nth opponent who has damaged the characer. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[BANK]] ''layer'' || W || Opens the character's bank (or the container at the specified layer) for SRC to view.&lt;br /&gt;
|-&lt;br /&gt;
| [[BANKBALANCE]] || R || Returns the total amount of gold in the character's bankbox.&lt;br /&gt;
|-&lt;br /&gt;
| [[BARK]] ''sound_id'' || W || Plays the specified sound (or the character's generic sound if not specified) to nearby clients from this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[BODY]] || RW || Gets or sets the character's body.&lt;br /&gt;
|-&lt;br /&gt;
| [[BOUNCE]] ''item_uid'' || W || Places a specified item in the character's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[BOW]] || W || Makes the character bow to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANCAST]] ''spell_id, check_antimagic'' || R || Returns 1 if the character can cast a given spell, bypassing anti-magic field tests if ''check_antimagic'' set to 0.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANMAKE]] ''item_id'' || R || Returns 1 if the character has the skills and resources to craft a certain item.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANMAKESKILL]] ''item_id'' || R || Returns 1 if the character has the skills to craft a certain item.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANMOVE]] ''direction'' || R || Returns 1 if the character can move in the given direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEE]] || R || Returns 1 if SRC can see the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEELOS]] || R || Returns 1 if SRC has line of sight to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[CANSEELOSFLAG]] ''flags'' || R || Returns 1 if SRC has line of sight to the character, with flags to modify what tests take place.&lt;br /&gt;
|-&lt;br /&gt;
| [[COLOR]] || RW || Gets or sets the character's hue.&lt;br /&gt;
|-&lt;br /&gt;
| [[CONSUME]] ''resource_list'' || W || Removes specified resources from SRC's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[COUNT]] || R || Returns the number of items equipped to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[CREATE]] || RW || Gets or sets the character's age since creation, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[CRIMINAL]] || W || Sets whether or not the character is a criminal.&lt;br /&gt;
|-&lt;br /&gt;
| [[DAMAGE]] ''amount, type, source'' || W || Inflicts damage upon the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[DEX]] || RW || Gets or sets the character's total dexterity.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOG (Function)|DIALOG]] ''dialog_id, page, parameters'' || W || Displays a dialog to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGCLOSE]] ''dialog_id button'' || W || Closes a dialog that SRC has open, simulating a button press.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGLIST]]''.COUNT'' || R || Gets the number of number of dialogs currently considered to be visible on SRC's screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGLIST]]''.n.ID'' || R || Gets the ID of the nth dialog that SRC has open (zero-based).&lt;br /&gt;
|-&lt;br /&gt;
| [[DIALOGLIST]]''.n.COUNT'' || R || Gets the number of instances of nth dialog SRC has open (zero-based).&lt;br /&gt;
|-&lt;br /&gt;
| [[DIR]] || RW || Gets or setes the direction that the character is facing.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISCONNECT]] || W || Disconnects the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISMOUNT]] || W || Dismounts the character from their ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISPIDDEC]] || R || Gets the ID of the character as a decimal number.&lt;br /&gt;
|-&lt;br /&gt;
| [[DISTANCE]] ''point_or_uid'' || R || Gets the distance between this object and either SRC, a map location or another object.&lt;br /&gt;
|-&lt;br /&gt;
| [[DCLICK]] || W || Double clicks the character, with SRC as the source of the event.&lt;br /&gt;
|-&lt;br /&gt;
| [[DCLICK]] ''object_uid'' || W || Double clicks an object, with the character as SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[DRAWMAP]] ''radius'' || W || Starts the cartography skill, drawing a map of the local area up to ''radius'' tiles.&lt;br /&gt;
|-&lt;br /&gt;
| [[DROP]] ''item_uid'' || W || Drops a specified item at the character's feet.&lt;br /&gt;
|-&lt;br /&gt;
| [[DUPE]] || W || Creates a clone of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[EDIT]] || W || Displays an editing dialog for the character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[EFFECT]] ''type, item_id, speed, loop, explode, colour, rendermode'' || W || Displays an effect to nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[EMOTE]] ''message'' || W || Displays a *You see* message to all nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[EMOTEACT]] || RW || Gets, sets or toggles whether or not the character will emote all of its actions.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIP]] ''item_uid'' || W || Equips an item to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIPARMOR]] || W || Equips the character with the best armour in their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIPHALO]] ''timeout'' || W || Equips a halo light to the character, lasting for ''timeout'' tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[EQUIPWEAPON]] || W || Equips the character with the best weapon in their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVENTS (Property)|EVENTS]] ''event_defname'' || RW || Gets a list of events attached to the object, or adds or removes an event to or from the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[EXP]] || RW || Gets or sets the character's experience points.&lt;br /&gt;
|-&lt;br /&gt;
| [[FACE]] ''object_uid'' || W || Turns the character to face a specified object or SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[FAME]] || RW || Gets or sets the character's fame.&lt;br /&gt;
|-&lt;br /&gt;
| [[FAME]]''.fame_group'' || R || Returns 1 if the character's fame falls within the specified fame group.&lt;br /&gt;
|-&lt;br /&gt;
| [[FCOUNT]] || R || Returns the total number of items equipped to the character, including subitems&lt;br /&gt;
|-&lt;br /&gt;
| [[FLAGS]] || RW || Gets or sets the character's flags.&lt;br /&gt;
|-&lt;br /&gt;
| [[FIX]] || W || Re-aligns the character's Z level to ground level.&lt;br /&gt;
|-&lt;br /&gt;
| [[FIXWEIGHT]] || W || Recalculates the character's total weight.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLIP]] || W || Rotates the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[FONT]] || RW || Gets or sets the character's speech font.&lt;br /&gt;
|-&lt;br /&gt;
| [[FOOD]] || RW || Gets or sets the character's food level.&lt;br /&gt;
|-&lt;br /&gt;
| [[FORGIVE]] || W || Revokes the character's jailed status.&lt;br /&gt;
|-&lt;br /&gt;
| [[GO]] ''location'' || W || Teleports the character to the specified location.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOCHAR]] ''n'' || W || Teleports the character to the nth character in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOCHARID]] ''character_defname'' || W || Teleports the character to the next characer in the world with the specified [[BASEID]]&lt;br /&gt;
|-&lt;br /&gt;
| [[GOCLI]] ''n'' || W || Teleports the character to the nth online player. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GOITEMID]] ''item_defname'' || W || Teleports the character to the next item in the world with the specified [[BASEID]].&lt;br /&gt;
|-&lt;br /&gt;
| [[GOLD]] || RW || Gets or sets the amount of gold the character has.&lt;br /&gt;
|-&lt;br /&gt;
| [[GONAME]] ''name'' || W || Teleports the character to the next character or item in the world with the specified name, accepts wildcards (*).&lt;br /&gt;
|-&lt;br /&gt;
| [[GOSOCK]] ''socket'' || W || Teleports the character to the online player with the specified socket number.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOTYPE]] ''item_type'' || W || Teleports the character to the next item in the world with the specified [[TYPE]].&lt;br /&gt;
|-&lt;br /&gt;
| [[GOUID]] ''object_uid'' || W || Teleports the character to the object with the specified [[UID]].&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILDABBREV]] || R || Returns the character's guild abbreviation.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEAR]] ''text'' || W || For NPCs, acts as if SRC had spoken the specified ''text''. For players, displays ''text'' as a system message.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEIGHT]] || R || Gets the character's height.&lt;br /&gt;
|-&lt;br /&gt;
| [[HITS]] || RW || Gets or sets the character's hitpoints.&lt;br /&gt;
|-&lt;br /&gt;
| [[HOME]] || RW || Gets or sets the character's home location.&lt;br /&gt;
|-&lt;br /&gt;
| [[HUNGRY]] || W || Displays this character's hunger level to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[INVIS]] || W || Sets whether or not the character is invisible.&lt;br /&gt;
|-&lt;br /&gt;
| [[INVUL]] || W || Sets whether or not the character is invulnerable.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISARMOR]] ''object_uid'' || R || Returns 1 if the object is armour.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCHAR]] || R || Returns 1 if the object is a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISCONT]] || R || Returns 1 if the object is a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISDIALOGOPEN]] ''dialog_id'' || R || Returns 1 if SRC has the specified dialog visible on their screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISEVENT]]''.event_defname'' || R || Returns 1 if the object has an event attached to it.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISITEM]] || R || Returns 1 if the object is an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNEARTYPE]] ''type, distance, flags'' || R || Returns 1 if a nearby item has the given TYPE.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISNEARTYPETOP]] ''type, distance, flags'' || R || Returns a nearby world location of a nearby item which has the given TYPE.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISPLAYER]] || R || Returns 1 if the object is a player.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISTEVENT]]''.event_defname'' || R || Returns 1 if the object has an event attached to its [[CHARDEF]].&lt;br /&gt;
|-&lt;br /&gt;
| [[ISWEAPON]] ''object_uid'' || R || Returns 1 if the object is a weapon.&lt;br /&gt;
|-&lt;br /&gt;
| [[ID]] || R || Gets the character's ID.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFO]] || W || Displays an information dialog about the character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT]] || RW || Gets or sets the character's total intelligence.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISGM]] || R || Returns 1 if the character is in GM mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISINPARTY]] || R || Returns 1 if the character is in a party.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISMYPET]] || R || Returns 1 if the character belongs to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISONLINE]] || R || Returns 1 if the character is considered to be online.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISSTUCK]] || R || Returns 1 if the character cannot walk in any direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISVENDOR]] || R || Returns 1 if the character is a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISVERTICALSPACE]] ''location'' || R || Returns 1 if the ceiling at the given location is high enough for the character to fit under.&lt;br /&gt;
|-&lt;br /&gt;
| [[JAIL]] ''cell'' || W || Sends the character to jail, to a specified jail cell.&lt;br /&gt;
|-&lt;br /&gt;
| [[KARMA]] || RW || Gets or sets the character's karma.&lt;br /&gt;
|-&lt;br /&gt;
| [[KARMA]]''.karma_group'' || R || Returns 1 if the character's karma falls within the specified karma group.&lt;br /&gt;
|-&lt;br /&gt;
| [[KILL]] || W || Kills the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[LEVEL]] || RW || Gets or sets the character's experience level.&lt;br /&gt;
|-&lt;br /&gt;
| [[LIGHT]] || RW || Gets or sets the character's personal light level.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAKEITEM]] ''item_defname, amount'' ||| W || Begins an attempt to craft the specified quantity of the given item.&lt;br /&gt;
|-&lt;br /&gt;
| [[MANA]] || RW || Gets or sets the character's mana.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAP]] || RW || Gets or sets the map that this object is located.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXHITS]] || RW || Gets or sets the character's maximum hitpoints.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXMANA]] || RW || Gets or sets the character's maximum mana.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXSTAM]] || RW || Gets or sets the character's maximum stamina.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXWEIGHT]] || R || Returns the maximum weight that the character can carry.&lt;br /&gt;
|-&lt;br /&gt;
| [[MEMORY]]''.object_uid'' || RW || Gets or sets the memory flags the character has for the given object.&lt;br /&gt;
|-&lt;br /&gt;
| [[MENU (Function)|MENU]] ''menu_defname'' || W || Displays a menu to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MESSAGE]] ''message'' || W || Displays a message above this character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MESSAGEUA]] ''colour, talkmode, font, lang_id, message'' || W || Displays a UNICODE message above this character to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODAR]] || RW || Gets or sets a modifier for the character's armour rating.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODDEX]] || RW || Gets or sets the character's dexterity modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODINT]] || RW || Gets or sets the character's intelligence modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODMAXWEIGHT]] || RW || Gets or sets the character's maximum weight modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MODSTR]] || RW || Gets or sets the character's strength modifier.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOUNT]] || R || Gets the UID of the character's mount.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOUNT]] ''mount_uid'' || W || Attempts to mount the character on to the specified mount.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVE]] ''direction'' || R || Returns the movement flags for the tile in the given direction (see can_flags in sphere_defs.scp).&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVE]] ''direction, amount''&amp;lt;br /&amp;gt; [[MOVE]] ''x y'' || W || Moves the object relative to its current position.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVENEAR]] ''object_uid, distance'' || W || Moves the character to a random location near another object within a certain distance.&lt;br /&gt;
|-&lt;br /&gt;
| [[MOVETO]] ''location'' || W || Moves the character to a specific location.&lt;br /&gt;
|-&lt;br /&gt;
| [[NAME]] || RW || Gets or sets the character's name.&lt;br /&gt;
|-&lt;br /&gt;
| [[NEWBIESKILL]] ''skill_id'' || W || Distributes items that are associated with the specified skill, to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[NEWGOLD]] ''amount'' || W || Generates ''amount'' gold in the character's backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[NEWLOOT]] ''item_or_template_defname'' || W || Generates the specified item or template into the character's backpack, providing that they are an NPC that hasn't been summoned.&lt;br /&gt;
|-&lt;br /&gt;
| [[NIGHTSIGHT]] || RW || Gets or sets whether or not the character has nightsight enabled.&lt;br /&gt;
|-&lt;br /&gt;
| [[NOTOGETFLAG]] ''viewer_uid, allow_incognito'' || RW || Gets the character's notoriety flags as seen by the specified viewer.&lt;br /&gt;
|-&lt;br /&gt;
| [[NPC]] || RW || Gets or sets the character's AI type.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGEDOWN]] ''amount'' || W || Decreases the character's Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGEUP]] ''amount'' || W || Increases the characer's Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[OBODY]] || RW || Gets or sets the character's original body.&lt;br /&gt;
|-&lt;br /&gt;
| [[OPENPAPERDOLL]] || W || Displays the character's paperdoll to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[OPENPAPERDOLL]] ''character_uid'' || W || Displays a specified character's paperdoll to this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[OSKIN]] || RW || Gets or sets the character's original colour.&lt;br /&gt;
|-&lt;br /&gt;
| [[ODEX]] || RW || Gets or sets the character's base dexterity (without modifiers).&lt;br /&gt;
|-&lt;br /&gt;
| [[OINT]] || RW || Gets or sets the character's base intelligence (without modifiers).&lt;br /&gt;
|-&lt;br /&gt;
| [[OSTR]] || RW || Gets or sets the character's base strength (without modifiers).&lt;br /&gt;
|-&lt;br /&gt;
| [[PACK]] || W || Opens the character's backpack for SRC to view.&lt;br /&gt;
|-&lt;br /&gt;
| [[POISON]] ''strength'' || W || Poisons the character, with the specified poison strength.&lt;br /&gt;
|-&lt;br /&gt;
| [[POLY]] ''character_id'' || W || Begins casting the polymorph spell, with ''character_id'' being the character to turn into.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROMPTCONSOLE]] ''function, prompt_message'' || W || Displays a prompt message to SRC and passes their response into a specified function.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROMPTCONSOLEU]] ''function, prompt_message'' || W || Displays a prompt message to SRC and passes their response into a specified function, supporting UNICODE response.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRIVSET]] ''plevel'' || W || Sets the PLEVEL of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[RANGE]] || R || Gets the combat range of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[RELEASE]] || W || Clears the character's owners.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVE]] ''allow_player_removal'' || W || Deletes the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVEFROMVIEW]] || W || Removes the object from nearby clients' screens.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESCOLD]] || RW || Gets or sets the character's resistance to cold.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESCOUNT]] ''item_defname'' || R || Returns the total amount of a specific item equipped to the character or inside their baackpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESENDTOOLTIP]] || W || Forces Sphere to update the tooltips for nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESENERGY]] || RW || Gets or sets the character's resistance to energy.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESFIRE]] || RW || Gets or sets the character's resistance to fire.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESPOISON]] || RW || Gets or sets the character's resistance to poison.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTEST]] ''item_list'' || R || Returns 1 if all of the items in the list can be found equipped to the character or inside their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESURRECT]] ''force'' || W || Resurrects the character. If ''force'' is 1 then usual anti-magic checks are bypasses.&lt;br /&gt;
|-&lt;br /&gt;
| [[SALUTE]] ''object_uid'' || W || Makes the character salute a specified object or SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAY]] ''message'' || W || Makes the character speak a message.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAYU]] ''message'' || W || Makes the character speak a UTF-8 message&lt;br /&gt;
|-&lt;br /&gt;
| [[SAYUA]] ''colour, talkmode, font, lang_id, text'' || W || MAkes the character speak a UNICODE message.&lt;br /&gt;
|-&lt;br /&gt;
| [[SDIALOG]] ''dialog_id, page, parameters'' || W || Displays a dialog to SRC, providing that it is not already open.&lt;br /&gt;
|-&lt;br /&gt;
| [[SERIAL]] || R || Gets the item's unique ID in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[SEX]] ''value_male:value_female'' || R || Returns ''value_male'' or ''value_female'' depending on the character's gender.&lt;br /&gt;
|-&lt;br /&gt;
| [[SEXTANTP]] ''location'' || R || Converts the character's location or a specified location into sextant coordinates.&lt;br /&gt;
|-&lt;br /&gt;
| ''skill_name'' || RW || Gets or sets the character's skill level in ''skill_name''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILL (Function)|SKILL]] || W || Begins using a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLCHECK]] ''skill_id, skill_amount'' || R || Returns 1 if the character has the specified amount of skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLBEST]]''.n'' || R || Returns the ID of the character's nth highest skill (0 = Highest)&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLGAIN]] ''skill, difficulty'' || W || Invokes Sphere's skill gain for the specified skill, with the given difficulty (0-100)&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTEST]] ''skill_list'' || R || Returns 1 if t he character possess all of the skills in the list.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] || R || Returns the total value of all the character's skills.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] ''skill_group'' || R || Returns the total value of all the character's skills with the specified group flag(s).&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] ''-amount'' || R || Returns the total value of all the character's skills that are under ''amount''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLTOTAL]] ''+amount'' || R || Returns the total value of all the character's skills that are over ''amount''.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLUSEQUICK]] ''skill_id, difficulty'' || R || Quickly uses a skill, returning 1 if the attempt was successful.&lt;br /&gt;
|-&lt;br /&gt;
| [[SLEEP]] ''fall_forwards'' || W || Makes the character appear to sleep.&lt;br /&gt;
|-&lt;br /&gt;
| [[SOUND]] ''sound_id, repeat'' || W || Plays a sound from this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPELLEFFECT]] ''spell_id, strength, source_character_uid, source_item_uid'' || W || Causes the character to be affected by a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[STAM]] || RW || Gets or sets the character's stamina.&lt;br /&gt;
|-&lt;br /&gt;
| [[STONE]] || RW || Gets or sets whether or not the character is trapped in stone.&lt;br /&gt;
|-&lt;br /&gt;
| [[STR]] || RW || Gets or sets the character's total strength.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUICIDE]] || W || Forces the character to commit suicide.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUMMONCAGE]] || W || Teleports the character to SRC's, surrounded by a cage multi.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUMMONTO]] || W || Teleports the character to SRC's position.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAG]]''.name'' || RW || Gets or sets the value of a TAG.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index'' || R || Gets a TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.KEY || R || Gets the name of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGAT]]''.index''.VAL || R || Gets the value of the TAG at the given zero-based index.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGCOUNT]] || R || Gets the number of TAGs stored on the item.&lt;br /&gt;
|-&lt;br /&gt;
| [[TAGLIST]] || W || Outputs a list of the object's TAGs.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGET]]''FGMW'' ''function'' || W || Displays a targeting cursor to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMER]] || RW || Gets or sets the length of time before the item's timer expires, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERD]] || RW || Gets or sets the length of time before the item's timer expires, in tenths of a second.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERF]] ''time, function'' || W || Scheduled a function to be executed on this object in ''time'' seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[TIMERF]] CLEAR || W || Clears all scheduled functions from the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[TITLE]] || RW || Gets or sets the character's title.&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWNABBREV]] || R || Returns the character's town abbreviation.&lt;br /&gt;
|-&lt;br /&gt;
| [[TRIGGER]] ''trig_name, trig_type'' || R || Fires a custom trigger and returns the RETURN value.&lt;br /&gt;
|-&lt;br /&gt;
| [[UID]] || R || Gets the item's unique ID in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNDERWEAR]] || W || Toggles the display of underwear on the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNEQUIP]] ''item_uid'' || W || Unequips an item from the character, placing it in their backpack.&lt;br /&gt;
|-&lt;br /&gt;
| [[UPDATE]] || W || Updates the state of the character to nearby clients.&lt;br /&gt;
|-&lt;br /&gt;
| [[UPDATEX]] || W || Updates the state of the character to nearby clients, removing it from their view first to ensure a full refresh.&lt;br /&gt;
|-&lt;br /&gt;
| [[USEITEM]] || W || Double clicks the character, with SRC as the source of the event, without checking for line of sight.&lt;br /&gt;
|-&lt;br /&gt;
| [[USEITEM]] ''object_uid'' || W || Double clicks an object, with the character as SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[VISUALRANGE]] || RW || Gets or sets the character's sight range.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEIGHT]] || R || Gets the weight of the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[WHERE]] || W || Describes the character's location to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[Z]] || R || Gets the Z position of the character.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Triggers==&lt;br /&gt;
Here is a list of all item triggers. Click on the trigger name for more detailed information such as arguments and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[@AfterClick]] || Fires when the object has been single-clicked, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Attack]] || Fires when the character begins attacking another.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CallGuards]] || Fires when the character calls for guards.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharAttack]] || Fires when the character is attacked by another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharClick]] || Fires when the character is clicked by another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharClientTooltip]] || Fires when the tooltips are about to be sent to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharDClick]] || Fires when the character double clicks another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@CharTradeAccepted]] || Fires when another character accepts trade with the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Click]] || Fires when the object has been single-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ClientTooltip]] || Fires when tooltips for this character are about to be sent to a client.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuRequest]] || Fires when a client requests the context menu options for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ContextMenuSelect]] || Fires when a client selects a context menu option for the object.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Create]] || Fires when the object is initially created, before it is placed in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Criminal]] || Fires when the character becomes a criminal.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DClick]] || Fires when the object is double-clicked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Death]] || Fires when the character's hitpoints reaches zero.&lt;br /&gt;
|-&lt;br /&gt;
| [[@DeathCorpse]] || Fires when a corpse is created for the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Destroy]] || Fires when the object is being deleted.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Dismount]] || Fires when the character dismounts their ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[@EnvironChange]] || Fires when the environment changes for the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ExpChange]] || Fires when the character's experience points change.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ExpLevelChange]] || Fires when the character's experience level changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@FameChange]] || Fires when the character's fame changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@GetHit]] || Fires when the character receives damage.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Hit]] || Fires when the character hits another in combat.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HitMiss]] || Fires when the character fails to hit another in combat.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HouseDesignCommit]] || Fires when the character commits a new house design.&lt;br /&gt;
|-&lt;br /&gt;
| [[@HouseDesignExit]] || Fires when the character exits house design mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Hunger]] || Fires when the character's food level decreases.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemAfterClick]] || Fires when the character single-clicks an item, just before the overhead name is shown.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemBuy]] || Fires when the character buys an item from a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemClick]] || Fires when the character single-clicks an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemClientTooltip]] || Fires when the tooltips are about to be sent to the client for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemContextMenuRequest]] || Fires when the character requests the context menu options for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemContextMenuSelect]] || Fires when the character selects a context menu option for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemCreate]] || Fires when an item is initially created, before it is placed in the world, and the character is in some way responsible for it.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDamage]] || Fires when the character damages an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDClick]] || Fires when the character double-clicks an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Char]] || Fires when the character drops an item on to a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Ground]] || Fires when the character drops an item on to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Item]] || Fires when the character drops an item on to another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemDropOn_Self]] || Fires when the character drops an item inside another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemEquip]] || Fires when the character equips an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemEquipTest]] || Fires when the characer is about to equip an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Ground]] || Fires when the character picks an item up from the ground.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Pack]] || Fires when the character picks an item up from inside a container.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Self]] || Fires when the character picks an item up from inside another item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemPickUp_Stack]] || Fires when the character picks up an item from a stack.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemSell]] || Fires when the character sells an item to a vendor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemSpellEffect]] || Fires when the character hits an item with a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemStep]] || Fires when the character steps on an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Cancel]] || Fires when the character cancels an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Char]] || Fires when the character targets a character with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Ground]] || Fires when the character targets the ground with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemTargOn_Item]] || Fires when the character targets an item with an item's target cursor.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemToolTip]] || Fires when the character requests old-style tooltips for an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ItemUnEquip]] || Fires when the character unequips an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Jailed]] || Fires when the character is sent to jail.&lt;br /&gt;
|-&lt;br /&gt;
| [[@KarmaChange]] || Fires when the character's karma changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Kill]] || Fires when the character kills another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Login]] || Fires when the character logs in.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Logout]] || Fires when the character logs out.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Mount]] || Fires when the character mounts a ride.&lt;br /&gt;
|-&lt;br /&gt;
| [[@MurderDecay]] || Fires when one of the character's kills is about to decay.&lt;br /&gt;
|-&lt;br /&gt;
| [[@MurderMark]] || Fires when the character is about to gain a kill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCAcceptItem]] || Fires when the NPC receives an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCActFight]] || Fires when the NPC makes a combat decision.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCActFollow]] || Fires when the NPC follows another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCAction]] || Fires when the NPC is about to perform an AI action.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCHearGreeting]] || Fires when the NPC hears a character for the first time.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCHearUnknown]] || Fires when the NPC hears something they don't understand.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLookAtChar]] || Fires then the NPC looks at a character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLookAtItem]] || Fires when the NPC looks at an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCLostTeleport]] || Fires when the NPC is lost and is about to be teleported back to their [[HOME]].&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCRefuseItem]] || Fires when the NPC refuses an item being given to them.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCRestock]] || Fires when the NPC is having their items restocked.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSeeNewPlayer]] || Fires when the NPC first sees a player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSeeWantItem]] || Fires when the NPC sees an item they want.&lt;br /&gt;
|-&lt;br /&gt;
| [[@NPCSpecialAction]] || Fires when the NPC is about to perform a special action (leaving fire trail, dropping web).&lt;br /&gt;
|-&lt;br /&gt;
| [[@PersonalSpace]] || Fires when the character is stepped on.&lt;br /&gt;
|-&lt;br /&gt;
| [[@PetDesert]] || Fires when the character deserts its owner.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Profile]] || Fires when a player attempts to read the character's profile from the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ReceiveItem]] || Fires when the NPC receives an item from another character, before they decide if they want it or not.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegionEnter]] || Fires when the character enters a region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@RegionLeave]] || Fires when the character leaves a region.&lt;br /&gt;
|-&lt;br /&gt;
| [[@Rename]] || Fires when the character renames another.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SeeCrime]] || Fires when the character sees a crime take place.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillAbort]] || Fires when the character aborts a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillChange]] || Fires when the character's skill level changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillFail]] || Fires when the character fails a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillGain]] || Fires when the character has a chance to gain in a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillMakeItem]] || Fires when the character crafts an item.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillMenu]] || Fires when a skill menu is shown to the character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillPreStart]] || Fires when the character starts a skill, before any hardcoded action takes place.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillSelect]] || Fires when the character selects a skill on their skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillStart]] || Fires when the character starts a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillSuccess]] || Fires when the character succeeds at a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SkillUseQuick]] || Fires when the character quickly uses a skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellBook]] || Fires when the character opens their spellbook.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellCast]] || Fires when the character casts a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellEffect]] || Fires when the character is hit by the effects of a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellFail]] || Fires when the character fails to cast a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellSelect]] || Fires when the character selects a spell to cast.&lt;br /&gt;
|-&lt;br /&gt;
| [[@SpellSuccess]] || Fires when the character successfully casts a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[@StatChange]] || Fires when the character's STR, DEX or INT is changed through skill gain.&lt;br /&gt;
|-&lt;br /&gt;
| [[@StepStealth]] || Fires when the character takes a step whilst hidden.&lt;br /&gt;
|-&lt;br /&gt;
| [[@ToolTip]] || Fires when a player requests old-style tooltips for this character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@TradeAccepted]] || Fires when the character accepts a trade with another player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserBugReport]] || Fires when the player submits a bug report.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserChatButton]] || Fires when the player presses the Chat button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserExtCmd]] || Fires when the player sends an extended command packet. (used by some macros)&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserExWalkLimit]] || Fires when the player's movement is restricted by the movement speed settings in Sphere.ini&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserGuildButton]] || Fires when the player presses the Guild button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserKRToolbar]] || Fires when the player presses a button on the toolbar.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserMailBag]] || Fires when the player drags the mail bag on to another character.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserQuestArrowClick]] || Fires when the player clicks the quest arrow.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserQuestButton]] || Fires when the player presses the Quest button on the paperdoll.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserSkills]] || Fires when the player opens their skill menu, or a skill update is sent to the player.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserSpecialMove]] || Fires when the player uses a special move.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserStats]] || Fires when the player opens the status window.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserVirtue]] || Fires when the player presses on the Virtue button.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserVirtueInvoke]] || Fires when the player invokes a virtue through macros.&lt;br /&gt;
|-&lt;br /&gt;
| [[@UserWarmode]] || Fires when the player switches between war and peace mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Players==&lt;br /&gt;
Characters that are attached to an account become Player Characters. In addition to the basic character references, properties and functions they also receive the following:&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[GUILD]] || R || Gets the [[Special Items#Guild.2FTown_Stones|guild stone]] that the player belongs to.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLCLASS (Reference)|SKILLCLASS]] || RW || Gets or sets the player's [[SKILLCLASS|skillclass]].&lt;br /&gt;
|-&lt;br /&gt;
| [[TOWN]] || R || Gets the [[Special Items#Guild.2FTown_Stones|town stone]] that the player belongs to.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all player properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[CURFOLLOWER]] || RW || Gets or sets the number of current followers the player has,&lt;br /&gt;
|-&lt;br /&gt;
| [[DEATHS]] || RW || Gets or sets the number of times the player has died.&lt;br /&gt;
|-&lt;br /&gt;
| [[DSPEECH]] ''+/-speech_id'' || RW || Gets a list of attached speech handlers, or adds or removes a speech handler to or from the player.&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n.DELETE'' || W || Deletes the nth GM page. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n.HANDLE'' || W || Sets the player as the handler for the nth GM page. (zero-based)&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]]''.n.key'' || W || Executes the .page command with ''key'' as the arguments.&lt;br /&gt;
|-&lt;br /&gt;
| [[ISDSPEECH]]''.speech_id'' || R || Returns 1 if the player has the given speech handler attached.&lt;br /&gt;
|-&lt;br /&gt;
| [[KICK]] || W || Disconnects and blocks the player's account.&lt;br /&gt;
|-&lt;br /&gt;
| [[KILLS]] || RW || Gets the number of murders the player has committed.&lt;br /&gt;
|-&lt;br /&gt;
| [[KRTOOLBARSTATUS]] || RW || Gets or sets whether or not the KR toolbar is enabled for this player.&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTUSED]] || RW || Gets the length of time since the player was last attached to a client, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
| [[LUCK]] || RW || Gets or sets the luck value for the player.&lt;br /&gt;
|-&lt;br /&gt;
| [[MAXFOLLOWER]] || RW || Gets or sets the maximum number of followers the player can have.&lt;br /&gt;
|-&lt;br /&gt;
| [[PASSWORD]] || W || Sets or clears the player's password.&lt;br /&gt;
|-&lt;br /&gt;
| [[PFLAG]] || RW || Gets or sets the player's PFLAG value.&lt;br /&gt;
|-&lt;br /&gt;
| [[PROFILE]] || RW || Gets or sets the text to display on the player's profile.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLLOCK]]''.skill_id'' || RW || Gets or sets the lock state of the player's skill.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPEEDMODE]] || RW || Gets or sets the speed that the player moves at. (0=Normal, 1=Double Speed on Foot, 2=Always walk, 3=Always Run on Foot/Always Walk on Mount)&lt;br /&gt;
|-&lt;br /&gt;
| [[STATLOCK]]''.stat_id || RW || Gets or sets the lock state of the player's STR, DEX or INT.&lt;br /&gt;
|-&lt;br /&gt;
| [[TITHING]] || RW || Gets or sets the number of tithing points the player has.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NPCs==&lt;br /&gt;
Characters that are not attached to an account are NPCs and are controlled by Sphere's AI. In addition to the basic character references, properties and functions they also receive the following:&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all NPC properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ACTPRI]] || RW || Gets or sets the NPC's motivation towards their current action.&lt;br /&gt;
|-&lt;br /&gt;
| [[BUY]] || W || Displays the shop window to SRC, in buy mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[BYE]] || W || Ends the NPC's current action.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLEE]] ''distance'' || W || Begins moving the NPC away from its current location.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOTO]] ''location'' || W || Begins moving the NPC towards the specified location.&lt;br /&gt;
|-&lt;br /&gt;
| [[HIRE]] || W || Begins the hiring process between the NPC and SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[LEAVE]] ''distance'' || W || Begins moving the NPC away from its current location.&lt;br /&gt;
|-&lt;br /&gt;
| [[NPC]] || RW || Gets or sets the NPC's AI type.&lt;br /&gt;
|-&lt;br /&gt;
| [[HOMEDIST]] || RW || Gets or sets the distance that the NPC can wander from its [[HOME]] position.&lt;br /&gt;
|-&lt;br /&gt;
| [[PETRETRIEVE]] || W || Enables SRC to retrieve their stabled pets from the NPC.&lt;br /&gt;
|-&lt;br /&gt;
| [[PETSTABLE]] || W || Enables SRC to stable their pet with the NPC.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESTOCK]] ''force'' || W || Clears all of the NPC's stock, repopulating it when it is next accessed (or immediately if ''force''=1)&lt;br /&gt;
|-&lt;br /&gt;
| [[RUN]] ''direction'' || W || Forces the NPC to run one tile in the specified direction.&lt;br /&gt;
|-&lt;br /&gt;
| [[SELL]] || W || Displays the shop window to SRC, in sell mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHRINK]] || W || Shrinks the NPC into a figurine item.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPEECH]] ''+/-speech_id'' || RW || Gets the list of speech handlers attached to the NPC, or adds or removes a speech handler to or from the NPC.&lt;br /&gt;
|-&lt;br /&gt;
| [[SPEECHCOLOR]] || RW || Gets or sets the colour of the NPC's speech.&lt;br /&gt;
|-&lt;br /&gt;
| [[TRAIN]] ''skill'' || W || Initiates training between the NPC and SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[VENDCAP]] || RW || Gets or sets the amount of gold a vendor will restock to.&lt;br /&gt;
|-&lt;br /&gt;
| [[VENDGOLD]] || RW || Gets or sets the amount of gold a vendor has.&lt;br /&gt;
|-&lt;br /&gt;
| [[WALK]] ''direction'' || W || Forces the NPC to walk one tile in the specified direction.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Clients==&lt;br /&gt;
When a client is controlling a character, the following references, properties and functions will be available:&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
References return pointers to other objects (e.g. the REGION reference allows you to access the REGION that an object is in). These can either be accessed by using ''&amp;amp;lt;REFNAME&amp;amp;gt;'' to return the [[UID]] (1 for object types that don't have UIDs) of the object or 0 if it doesn't exist, or by using ''&amp;amp;lt;REFNAME.KEY&amp;amp;gt;'' where KEY is a valid property/function/reference for the ''REFNAME'' object. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGEP]] || R || Gets the [[GM Pages|GM page]] that the client is currently handling.&lt;br /&gt;
|-&lt;br /&gt;
| [[HOUSEDESIGN]] || R || Gets the [[Special Items#Customizable Multis|building]] that is currently being designed by the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[PARTY]] || R || Gets the [[Parties|party]] that the client is a member of.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARG]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that the client has targeted.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGP]] || RW || Gets or sets the [[Map Points|location]] that the client has targeted.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGPROP]] || RW || Gets or sets the character whose skills are shown in the client's skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGPRV]] || RW || Gets or sets the [[Characters|character]] or [[Items|item]] that the client previously targeted.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties and Functions===&lt;br /&gt;
Here is a list of all client properties and functions. If a function is marked as readable then it can return a value when used as &amp;lt;KEY&amp;gt;. Click on the name for more detailed information such as usage and examples.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
| '''Name''' || '''Read/Write''' || '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| [[ADD]] ''item_defname'' || W || Prompts the client to target a location to add the specified item at.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDBUFF]] ''icon, cliloc1, cliloc2, time, arg1, arg2, arg3'' || W || Displays a buff icon in the client's buff icon bar.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDCLILOC]] ''cliloc, args'' || W || Adds a cliloc to the tooltip being sent to the client. Only valid in @ClientTooltip triggers.&lt;br /&gt;
|-&lt;br /&gt;
| [[ADDCONTEXTENTRY]] ''entry_id, cliloc, flags, colour'' || W || Adds an entry to the context menu being sent to the client. Only valid in @ContextMenuRequest triggers.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLMOVE]] || RW || Gets or sets whether or not the client has ALLMOVE privileges.&lt;br /&gt;
|-&lt;br /&gt;
| [[ALLSHOW]] || RW || Gets or sets whether or not the client is able to see disconnected characters.&lt;br /&gt;
|-&lt;br /&gt;
| [[ARROWQUEST]] ''x, y'' || W || Displays an arrow on the client's screen that points to the specified world coordinates.&lt;br /&gt;
|-&lt;br /&gt;
| [[BADSPAWN]] || W || Teleports the client to the first invalid spawn point in the world.&lt;br /&gt;
|-&lt;br /&gt;
| [[BANKSELF]] || W || Opens up the client's bankbox.&lt;br /&gt;
|-&lt;br /&gt;
| [[CAST]] ''spell_id' || W || Begins casting a spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[CHARLIST]] || W || Displays the client's character list screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLEARCTAGS]] || W || Removes all of the client's CTAGs.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTIS3D]] || R || Returns 1 if the client is using the 3D client.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTISKR]] || R || Returns 1 if the client is using the KR client.&lt;br /&gt;
|-&lt;br /&gt;
| [[CLIENTVERSION]] || R || Gets the client version the client is using, based on the encryption keys being used (unencrypted clients return 0).&lt;br /&gt;
|-&lt;br /&gt;
| [[CTAG]] || RW || Gets or sets the value of a CTAG.&lt;br /&gt;
|-&lt;br /&gt;
| [[CTAGLIST]] || W || Displays a list of the client's CTAGs to SRC.&lt;br /&gt;
|-&lt;br /&gt;
| [[CTAGLIST]] LOG || W || Displays a list of the client's CTAGs on the server console.&lt;br /&gt;
|-&lt;br /&gt;
| [[DEBUG]] || RW || Gets or sets whether or not the client is in debug mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[DETAIL]] || RW || Gets or sets whether or not the client receives additional detail, such as combat messages.&lt;br /&gt;
|-&lt;br /&gt;
| [[EVERBTARG]] ''command'' || W || Prompts the client to enter a command, or arguments to the command if specified. The complete command with arguments is then executed on TARG.&lt;br /&gt;
|-&lt;br /&gt;
| [[EXTRACT]] ''file, template_id'' || W || Extracts static items from a targeted area on the map and saves them into the specified file.&lt;br /&gt;
|-&lt;br /&gt;
| [[FLUSH]] || W || Forces queued network data to be immediately sent to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[GM]] || RW || Gets or sets whether or not the client is in GM mode.&lt;br /&gt;
|-&lt;br /&gt;
| [[GMPAGE]] ''ADD message'' || W || Sends a GM page from the client with the specified message, or if no arguments provided will prompt the client for a message.&lt;br /&gt;
|-&lt;br /&gt;
| [[GOTARG]] || W || Teleports the client to their targeted item.&lt;br /&gt;
|-&lt;br /&gt;
| [[HEARALL]] || RW || Gets or sets whether or not the client can hear all player speech regardless of location.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFO]] || W || Displays an information dialog to the client for an object they target.&lt;br /&gt;
|-&lt;br /&gt;
| [[INFORMATION]] || W || Displays server information to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[LAST]] || W || Forces the client to target the object referenced by [[ACT]].&lt;br /&gt;
|-&lt;br /&gt;
| [[LASTEVENT]] || RW || Returns the time when data was last received from the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[LINK]] || W || Allows the client to target two objects to link them together.&lt;br /&gt;
|-&lt;br /&gt;
| [[MENU (Function)|MENU]] ''menu_id'' || W || Displays a menu to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[MIDILIST]] ''music1, music2, ...'' || W || Selects a random music id from the given list and tells the client to play it.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUDGE]] ''dx, dy, dz'' || W || Allows the client to nudge an area of items by the given coordinates, relative to the items' position.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUKE]] ''command'' || W || Allows the client to execute ''command'' on all items in a targeted area.&lt;br /&gt;
|-&lt;br /&gt;
| [[NUKECHAR]] ''command'' || W || Allows the client to execute ''command'' on all NPCs in a targeted area.&lt;br /&gt;
|-&lt;br /&gt;
| [[PAGE]] || W || Displays the GM page menu to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[PRIVSHOW]] || W || Gets or sets whether or not the client's privilege level should show in their name.&lt;br /&gt;
|-&lt;br /&gt;
| [[REMOVEBUFF]] ''icon'' || W || Removes a buff icon from the client's buff icon bar.&lt;br /&gt;
|-&lt;br /&gt;
| [[REPAIR]] || W || Prompts the client to target an item for them to repair.&lt;br /&gt;
|-&lt;br /&gt;
| [[REPORTEDCLIVER]] || R || Gets the client version the client is using, based on what it has identified itself as to the server.&lt;br /&gt;
|-&lt;br /&gt;
| [[REPORTEDCLIVER]].FULL || R || Gets the client version the client is using, based on what it has identified itself as to the server, including the 4th digit.&lt;br /&gt;
|-&lt;br /&gt;
| [[RESEND]] || W || Forces a full refresh of the client's screen.&lt;br /&gt;
|-&lt;br /&gt;
| [[SAVE]] ''immediate'' || W || Begins a world save. If background saving is enabled then ''[[SAVE]] 1'' will force a foreground save.&lt;br /&gt;
|-&lt;br /&gt;
| [[SCREENSIZE]] || R || Gets the client's screen size. (width,height)&lt;br /&gt;
|-&lt;br /&gt;
| [[SCREENSIZE]].X || R || Gets the width of the client's screen size.&lt;br /&gt;
|-&lt;br /&gt;
| [[SCREENSIZE]].Y || R || Gets the height of the client's screen size.&lt;br /&gt;
|-&lt;br /&gt;
| [[SCROLL]] ''scroll_id'' || W || Displays a message scroll to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SELF]] || W || Forces the client to target itself.&lt;br /&gt;
|-&lt;br /&gt;
| [[SENDPACKET]] ''data'' || W || Sends a raw data packet to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SET]] ''command'' || W || Prompts the client to target an object to execute ''command'' on.&lt;br /&gt;
|-&lt;br /&gt;
| [[SHOWSKILLS]] || W || Refreshes the client's skills for the skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLMENU (Function)|SKILLMENU]] ''skillmenu_id'' || W || Displays a skillmenu to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SKILLSELECT]] ''skill_id'' || W || Simulates the client selecting a skill from their skill menu.&lt;br /&gt;
|-&lt;br /&gt;
| [[SUMMON]] ''character_id'' || W || Casts the summon spell, with ''character_id'; being the character to summon.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGE]] ''text'' || W || Displays a system message to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGELOC]] ''hue, cliloc, args'' || W || Displays a localized system message to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGELOCEX]] ''hue, cliloc, flags, affix, args'' || W || Displays a localized system message to the client with affixed text.&lt;br /&gt;
|-&lt;br /&gt;
| [[SYSMESSAGEUA]] ''hue, font, mode, language, text'' || W || Displays a UNICODE system message to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[TARGTXT]] || RW || Gets or sets the client's target text.&lt;br /&gt;
|-&lt;br /&gt;
| [[TELE]] || W || Casts the teleport spell.&lt;br /&gt;
|-&lt;br /&gt;
| [[TILE]] ''z, item1, item2, ...'' || W || Tiles the ground within a targeted area with the listed items, at the given Z level.&lt;br /&gt;
|-&lt;br /&gt;
| [[UNEXTRACT]] ''file'' || W || Unextracts previously extracted statics, as dynamic items at a targeted location.&lt;br /&gt;
|-&lt;br /&gt;
| [[VERSION]] || W || Displays the server description to the client.&lt;br /&gt;
|-&lt;br /&gt;
| [[WEBLINK]] ''url'' || W || Opens the client's web browser to send them to the specified url.&lt;br /&gt;
|-&lt;br /&gt;
| [[X]]''command'' || W || Prompts the client to target an object to execute ''command'' on.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Reference Compendium]]&lt;br /&gt;
[[Category: Objects]]&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	<entry>
		<id>https://wiki.spherecommunity.net/index.php?title=TYPEDEF&amp;diff=484</id>
		<title>TYPEDEF</title>
		<link rel="alternate" type="text/html" href="https://wiki.spherecommunity.net/index.php?title=TYPEDEF&amp;diff=484"/>
				<updated>2009-06-20T11:49:17Z</updated>
		
		<summary type="html">&lt;p&gt;MrSugarCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
Type definitions are the equivalent of [[EVENTS]] that can be attached to [[Items|items]]. There are different properties that can be used to attach a type block to an item or set of items:&lt;br /&gt;
* [[ITEMDEF|item definitions]] via their [[TYPE]] and/or [[TEVENTS]] property.&lt;br /&gt;
* [[Items|items]] via their [[TYPE]] and/or [[EVENTS (Property)|EVENTS]] property.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to handling triggers, type definitions can also be used to define different types of terrain. This can be used to affect the return value of the [[TYPE]] property on [[Map points|map points]], or for some hardcoded types such as t_rock it can be used to define which terrain IDs Sphere should consider to be rock when the mining skill is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
The syntax for defining a type is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
[TYPEDEF ''defname'']&amp;lt;br /&amp;gt;&lt;br /&gt;
TERRAIN=''id''&amp;lt;br /&amp;gt;&lt;br /&gt;
TERRAIN=''start_id'', ''end_id''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
ON=''trigger_name''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;''script''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
ON=''trigger_name''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;''script''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Any number of triggers can be handled by one [[TYPEDEF]] definition, however it is not possible to handle the same trigger twice without using multiple definitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The trigger name can be the name of any [[Items#Triggers|item trigger]]. The return value from the script can affect Sphere's hardcoded behaviour in different ways. See the documentation for the trigger to discover what parameters are passed in to each trigger and what the return values do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note:''' If the ''defname'' matches any of Sphere's hardcoded types (see 'typedefs' block in sphere_defs.scp), then the [[TYPEDEF]] can be used to override the behaviours of items of that type.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Water definition from default script pack.&lt;br /&gt;
//&lt;br /&gt;
[TYPEDEF t_water]&lt;br /&gt;
TERRAIN = 0a8	0ab&lt;br /&gt;
TERRAIN = 0136	0137&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;spherescript&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Makes an item speak when double clicked.&lt;br /&gt;
//&lt;br /&gt;
[TYPEDEF t_exampletype]&lt;br /&gt;
ON=@DClick&lt;br /&gt;
  SAY I have been double clicked!&lt;br /&gt;
  RETURN 2&lt;br /&gt;
&amp;lt;/spherescript&amp;gt;&lt;/div&gt;</summary>
		<author><name>MrSugarCube</name></author>	</entry>

	</feed>