<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://opensimulator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Manni</id>
		<title>OpenSimulator - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Manni"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Special:Contributions/Manni"/>
		<updated>2026-09-10T22:57:02Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules/fr</id>
		<title>Addon-modules/fr</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules/fr"/>
				<updated>2026-08-10T11:51:43Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Addon-modules}}&lt;br /&gt;
&lt;br /&gt;
== Modules complémentaires pour OpenSimulator (Collection communautaire) ==&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant résume un certain nombre de modules complémentaires développés par la communauté. '''Veuillez noter :''' Il n'y a '''aucun support officiel''' pour ces modules de la part du projet OpenSimulator. L'utilisation, les tests de compatibilité et le dépannage sont sous votre propre responsabilité.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Nom / Lien !! Description / Fonction !! Statut / Informations (selon les sources)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/SnoopyPfeffer/ActivityLog '''ActivityLog'''] || Un module pour journaliser les activités des utilisateurs ou du système. || Veuillez consulter le dépôt directement pour plus de détails.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/WeslieDE/Chris.OS.Additions '''Chris.OS.Additions'''] || Une collection d'extensions pour OpenSimulator. || Veuillez consulter le dépôt directement pour plus de détails.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Service autonome et module régional avec support pour MySQL, PostgreSQL et SQLite. || Issu d'OpenSim-Continuum (alpha). Non recommandé pour une utilisation en production.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/dispatcher '''Dispatcher'''] || Une API indépendante du langage pour le script externe des régions OpenSim via des messages JSON. Prend en charge les mises à jour de scène, la manipulation d'assets, l'inventaire, l'apparence des avatars et les événements in-world. Fournit des bibliothèques pour Perl et Python. || Dernière mise à jour en juillet 2016. Une partie du code a été déplacée depuis le dépôt scisim-addons.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Un module complémentaire qui doit être compilé à partir du code source et nécessite la dernière version de développement d'OpenSim. || Les informations se trouvent sur la page wiki GitHub associée.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/ExampleNonSharedRegionModule '''ExampleNonSharedRegionModule'''] || Un exemple de module abondamment commenté implémentant l'interface &amp;lt;code&amp;gt;NonSharedRegionModule&amp;lt;/code&amp;gt; d'OpenSimulator. Conçu comme une ressource d'apprentissage pour le développement de modules. || Dernière mise à jour en janvier 2015. Contient des commentaires détaillés dans le code source et le fichier prebuild.xml.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/ExampleSharedRegionModule '''ExampleSharedRegionModule'''] || Un exemple de module abondamment commenté implémentant l'interface &amp;lt;code&amp;gt;SharedRegionModule&amp;lt;/code&amp;gt; d'OpenSimulator. Conçu comme une ressource d'apprentissage pour le développement de modules. || Dernière mise à jour en décembre 2014. Contient des commentaires détaillés dans le code source et le fichier prebuild.xml.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Module monétaire Gloebit'''] || Module de devise pour l'intégration de Gloebit. || Issu d'OpenSim-Continuum. Module économique optionnel.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vraisemblablement un autre module de devise Gloebit. || Le contenu/statut exact devrait être vérifié.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/diva/Grider '''Grider'''] || Un client sécurisé pour l'Hypergrid d'OpenSim utilisant GridProxy de LibOMV. Permet la connexion avec le prénom.nom et l'adresse du serveur utilisateur (ex. : localhost:9000). || Dernière mise à jour en août 2009. Nécessite un grid supportant HG2.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Module pour les invitations automatiques aux groupes. || Issu d'OpenSim-Continuum. Module régional optionnel.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Module combiné pour un site web par région, des outils de gestion protégés et un portail de portefeuille optionnel. || Issu d'OpenSim-Continuum (intégration alpha). Désactivé par défaut.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Module pour les fonctions de protection physique. || Issu d'OpenSim-Continuum. Le mode &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; fonctionne '''uniquement avec MySQL/MariaDB'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Un module exemple dans un dépôt externe, utile comme aide au développement. || Sert d'exemple pour l'intégration de modules personnalisés.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/SnoopyPfeffer/Mod-PayPal '''Mod-PayPal'''] || Un module PayPal pour OpenSimulator. || Veuillez consulter le dépôt directement pour plus de détails.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Service de compatibilité pour le protocole DTL/NSL établi. || Issu d'OpenSim-Continuum. '''Spécifique à MySQL'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/AdilElFarissi/nsl-opensim-currency-for-btcpay '''nsl-opensim-currency-for-btcpay'''] || Un module de devise pour intégrer la devise NSL (probablement &amp;quot;New Second Life&amp;quot;) avec BTCPay. || Veuillez consulter le dépôt directement pour plus de détails.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jonc/osboids '''osboids'''] || Un module régional implémentant des algorithmes de vol en banc (Boids) dans une scène OpenSim. Configurable pour la taille du banc, la vitesse et l'apparence des Boids. || Dernière mise à jour en juillet 2011. Testé avec OpenSim master. Probablement en stade alpha.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/os-data-backup '''os-data-backup (ManfredAabye)'''] || '''Module de sauvegarde de base de données Robust''' – un module complémentaire MySQL de sauvegarde/restauration/synchronisation pour Robust. Prend en charge l'exportation, l'importation, la copie, la comparaison, la vérification et la réparation de tables. Fonctionne avec les systèmes de fichiers locaux et le stockage cloud WebDAV. Version 1.0.0 Alpha. || MySQL uniquement. Fournit de nombreuses commandes console (ex. : &amp;lt;code&amp;gt;sqlbackup export all&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sqlbackup copy replace users&amp;lt;/code&amp;gt;). Dernière mise à jour en mars 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/os-fs2blob '''os-fs2blob (ManfredAabye)'''] || Un outil pour migrer les actifs d'un stockage basé sur le système de fichiers (FSAssets) vers le stockage Blob standard. || Étude de faisabilité. Fournit un outil (&amp;lt;code&amp;gt;FsAssetsToBlobDump&amp;lt;/code&amp;gt;) pour cette migration. Dernière mise à jour en mai 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Misterblue/os-luablue '''os-luablue'''] || Un module complémentaire expérimental pour ajouter le script Lua à OpenSimulator, utilisant Lua-CSharp comme moteur de script. || '''Hautement expérimental'''. Actuellement empaqueté comme module complémentaire séparé. Dernière mise à jour en mai 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/AdilElFarissi/opensim-ai-module '''opensim-ai-module'''] || Un module vraisemblablement pour des fonctionnalités liées à l'IA. || Veuillez consulter le dépôt directement pour plus de détails.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''OpenSim-Addon-modules (QuillLittlefeather)'''] || Vraisemblablement une collection de divers modules complémentaires. || Le contenu/statut exact devrait être vérifié.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''opensim-addon-modules-exp'''] || Un dépôt expérimental contenant des modules complémentaires. || Le contenu/statut exact devrait être vérifié.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Un module &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt; pour contrôler des volées d'oiseaux constitués de prims dans une scène OpenSim. || Exemple d'un module placé dans le répertoire &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/JakDaniels/OpenSimCities '''OpenSimCities'''] || Un module probablement lié à des fonctionnalités de construction ou de planification urbaine. || Veuillez consulter le dépôt directement pour plus de détails.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Module complémentaire pour la livraison directe sur le marché OpenSim. || Issu d'OpenSim-Continuum. Désactivé par défaut.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim-PhP-Client '''OpenSim-PhP-Client'''] || Un module destiné à fournir une base propre et extensible pour servir et traiter des points d'accès PHP entre un grid OpenSim et le viewer/client. || '''Pas encore fonctionnel''' (selon le README). Dernière mise à jour en août 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''OpenSim.RemoteAdmin.2025'''] || Un module pour l'administration à distance d'OpenSim. || Le contenu/statut exact devrait être vérifié.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Client de compatibilité pour la recherche dans l'annuaire du viewer. || Issu d'OpenSim-Continuum. Nécessite un service de recherche compatible déployé séparément.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide (Continuum)'''] || Module pour les effets de marée dans les régions. || Issu d'OpenSim-Continuum. Module environnemental optionnel.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/JakDaniels/OpenSimTide '''OpenSimTide (JakDaniels)'''] || Un module pour les effets de marée dans les régions. || Veuillez consulter le dépôt directement pour plus de détails.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Module pour les effets météo dans les régions. || Issu d'OpenSim-Continuum. Module environnemental optionnel.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''opensimcurrencyserver-dotnet'''] || Un serveur de devise pour OpenSim, basé sur .NET. || Le contenu/statut exact devrait être vérifié.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-spl-sql-system '''opensim-spl-sql-system'''] || '''SplAssets''' – un système de partitionnement (sharding) de base de données haute performance pour les actifs OpenSim. Distribue les actifs sur plusieurs partitions (shards) en fonction de la distribution des UUID. Prend en charge MySQL et PostgreSQL et inclut un service compatible HyperGrid. || La fonctionnalité de partitionnement de base est implémentée, mais le stockage des données des actifs nécessite actuellement encore un service de secours. Des commandes console sont disponibles pour la surveillance et la migration. Dernière mise à jour en octobre 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-tsassets '''opensim-tsassets'''] || '''TS Asset Service''' – un système de gestion d'actifs par tables typées qui déplace les actifs d'une table &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; générique vers des tables spécifiques au type (&amp;lt;code&amp;gt;assets_0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;assets_1&amp;lt;/code&amp;gt;, ...). Inclut des commandes console pour la migration, la vérification et la réparation. || Hautement expérimental (révision 0.4.3). Fournit des modes de secours et une stratégie de déploiement sécurisée. Dernière mise à jour en mars 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-tsassets-V2 '''opensim-tsassets-V2'''] || Une version &amp;quot;Test&amp;quot; du TS Asset Service. || Semblerait être un dépôt de test ou d'espace réservé minime. Statut incertain.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/S3Asset '''S3Asset'''] || '''S3 Asset''' – une implémentation expérimentale qui stocke les actifs OpenSim dans un stockage d'objets compatible S3 (ex. : MinIO). Inclut une documentation de configuration en plusieurs langues et un script de gestion (&amp;lt;code&amp;gt;minio_tool.sh&amp;lt;/code&amp;gt;). || Étude de faisabilité. Actuellement en développement ; la documentation est divisée en plusieurs fichiers linguistiques. Dernière mise à jour en juillet 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/scisim-addons '''scisim-addons'''] || Une collection de modules régionaux OpenSimulator développés pour le grid ScienceSim, destinés à permettre la visualisation collaborative. || Le code pour les projets Dispatcher et Remote Control a été déplacé vers un dépôt séparé. Dernière mise à jour en décembre 2014.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/SlipStream '''SlipStream'''] || Une collection de plugins Robust pour le développement d'OpenSimulator. || Dernière mise à jour en janvier 2015.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jonc/terraintools '''terraintools'''] || Un module pour les outils de terrain. || Dernière mise à jour en janvier 2012. Aucune description supplémentaire disponible dans le dépôt.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Module pour le traitement des signalements d'abus soumis via le viewer. || Issu d'OpenSim-Continuum. Les services sont implémentés.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Une collection de modules complémentaires spécifiques au simulateur et à Robust (ex. : avis de version, devise Gloebit). || Contient plusieurs modules complémentaires dans un seul paquet.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/waterwars '''WaterWars'''] || Un module régional de &amp;quot;jeu sérieux&amp;quot; (serious game) qui permet aux joueurs de participer à des décisions sur les ressources en eau dans la vallée de San Luis. Inclut la logique du jeu, des OARs pour l'environnement et une interface web. || Dernière mise à jour en mars 2013. Nécessite OpenSimulator 0.7.5 ou ultérieur.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''Module vocal WebRTC'''] || Étend OpenSimulator avec des fonctionnalités vocales WebRTC via une passerelle Janus. || Un module plus récent (dernière mise à jour il y a environ un mois).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les informations collectées ici ne sont pas garanties complètes ou à jour. Pour les informations les plus précises et actuelles sur un module, vous devriez toujours consulter le dépôt respectif directement.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules</id>
		<title>Addon-modules</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules"/>
				<updated>2026-08-10T11:49:44Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Addon-modules}}&lt;br /&gt;
&lt;br /&gt;
== Add-on Modules for OpenSimulator (Community Collection) ==&lt;br /&gt;
&lt;br /&gt;
The following table summarizes a number of add-on modules developed by the community. '''Please note:''' There is '''no official support''' for these modules from the OpenSimulator project. Use, compatibility testing, and troubleshooting are your own responsibility.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Description / Function !! Status / Info (from sources)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/SnoopyPfeffer/ActivityLog '''ActivityLog'''] || A module for logging user or system activity. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/WeslieDE/Chris.OS.Additions '''Chris.OS.Additions'''] || A collection of additions for OpenSimulator. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Standalone service and region module with support for MySQL, PostgreSQL, and SQLite. || From OpenSim-Continuum (alpha). Not recommended for live operation.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/dispatcher '''Dispatcher'''] || A language-independent API for external scripting of OpenSim regions using JSON messaging. Supports scene updates, asset manipulation, inventory, avatar appearance, and in-world events. Comes with Perl and Python libraries. || Last updated July 2016. Part of the code was moved from the scisim-addons repository.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || An add-on module that must be compiled from source and requires the latest OpenSim development version. || Information can be found on the associated GitHub wiki page.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/ExampleNonSharedRegionModule '''ExampleNonSharedRegionModule'''] || A heavily commented example module implementing the OpenSimulator NonSharedRegionModule interface. Designed as a learning resource for module development. || Last updated January 2015. Includes detailed comments in the source code and prebuild.xml.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/ExampleSharedRegionModule '''ExampleSharedRegionModule'''] || A heavily commented example module implementing the OpenSimulator SharedRegionModule interface. Designed as a learning resource for module development. || Last updated December 2014. Includes detailed comments in the source code and prebuild.xml.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Currency module for integrating Gloebit. || From OpenSim-Continuum. Optional economy module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Presumably another Gloebit currency module. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/diva/Grider '''Grider'''] || A secure client for OpenSim's Hypergrid using LibOMV's GridProxy. Enables login with First.Last and the user server address (e.g., localhost:9000). || Last updated August 2009. Requires a grid supporting HG2.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Module for automatic group invitations. || From OpenSim-Continuum. Optional region module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Combined module for a per-region website, protected estate tools, and an optional wallet portal. || From OpenSim-Continuum (alpha integration). Disabled by default.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Module for physics protection functions. || From OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; mode works '''only with MySQL/MariaDB'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || An example module in an external repository, useful as a development aid. || Serves as an example for integrating custom modules.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/SnoopyPfeffer/Mod-PayPal '''Mod-PayPal'''] || A PayPal module for OpenSimulator. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Compatibility service for the established DTL/NSL protocol. || From OpenSim-Continuum. '''MySQL-specific'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/AdilElFarissi/nsl-opensim-currency-for-btcpay '''nsl-opensim-currency-for-btcpay'''] || A currency module for integrating NSL (likely &amp;quot;New Second Life&amp;quot;) currency with BTCPay. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jonc/osboids '''osboids'''] || A region module implementing flocking algorithms (Boids) within an OpenSim scene. Configurable for flock size, speed, and boid appearance. || Last updated July 2011. Tested against OpenSim master. Likely alpha status.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/os-data-backup '''ManfredAabye/os-data-backup'''] || '''Robust Database Backup Addon''' – a MySQL backup/restore/sync addon for Robust. Supports table-wise export, import, copy, compare, check, and repair. Works with local filesystems and WebDAV-based cloud storage. Version 1.0.0 Alpha. || MySQL-only. Provides extensive console commands (e.g., &amp;lt;code&amp;gt;sqlbackup export all&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sqlbackup copy replace users&amp;lt;/code&amp;gt;). Last updated March 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/os-fs2blob '''ManfredAabye/os-fs2blob'''] || A tool to migrate assets from a file-system-based asset store (FSAssets) back to the default blob-based asset store. || Feasibility study. Provides a tool (&amp;lt;code&amp;gt;FsAssetsToBlobDump&amp;lt;/code&amp;gt;) for this migration. Last updated May 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Misterblue/os-luablue '''os-luablue'''] || An experimental addon-module to add Lua language scripting to OpenSimulator, using Lua-CSharp as a script engine. || '''Highly experimental'''. Currently packaged as a separate addon-module. Last updated May 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/AdilElFarissi/opensim-ai-module '''opensim-ai-module'''] || A module presumably for AI-related functionalities. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''OpenSim-Addon-modules (QuillLittlefeather)'''] || Presumably a collection of various add-on modules. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''opensim-addon-modules-exp'''] || An experimental repository with add-on modules. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || An &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt; module to control flocks of birds made from prims in an OpenSim scene. || Example of a module placed in the &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/JakDaniels/OpenSimCities '''OpenSimCities'''] || A module presumably related to city-building or urban simulation features. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Add-on for direct delivery in the OpenSim marketplace. || From OpenSim-Continuum. Disabled by default.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim-PhP-Client '''OpenSim-PhP-Client'''] || A module intended to provide a clean, extensible foundation for serving and handling PHP endpoints between an OpenSim grid and viewer/client. || '''Not yet functional''' (as stated in the README). Last updated August 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''OpenSim.RemoteAdmin.2025'''] || A module for remote administration of OpenSim. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Compatibility client for the viewer directory search. || From OpenSim-Continuum. Requires a separately deployed compatible search service.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide (Continuum)'''] || Module for tide effects in regions. || From OpenSim-Continuum. Optional environment module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/JakDaniels/OpenSimTide '''OpenSimTide (JakDaniels)'''] || A module for tide effects in regions. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Module for weather effects in regions. || From OpenSim-Continuum. Optional environment module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''opensimcurrencyserver-dotnet'''] || A currency server for OpenSim, based on .NET. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-spl-sql-system '''opensim-spl-sql-system'''] || '''SplAssets''' – a high-performance database sharding system for OpenSim assets. Distributes assets across multiple database shards based on UUID distribution. Supports MySQL and PostgreSQL, and includes HyperGrid-compatible service. || Core sharding functionality is implemented, but asset data storage currently still requires a fallback service. Console commands available for monitoring and migration. Last updated October 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-tsassets '''opensim-tsassets'''] || '''TS Asset Service''' – a typed table asset system that moves assets from a generic &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; table into type-specific tables (&amp;lt;code&amp;gt;assets_0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;assets_1&amp;lt;/code&amp;gt;, ...). Includes console commands for migration, verification, and repair. || Highly experimental (revision 0.4.3). Provides fallback modes and a safe rollout strategy. Last updated March 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-tsassets-V2 '''opensim-tsassets-V2'''] || A &amp;quot;Test&amp;quot; version of the TS Asset Service. || Appears to be a minimal test or placeholder repository. Status unclear.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/S3Asset '''S3Asset'''] || '''S3 Asset''' – an experimental implementation that stores OpenSim assets in an S3-compatible object store (e.g., MinIO). Includes configuration documentation in multiple languages and a management script (&amp;lt;code&amp;gt;minio_tool.sh&amp;lt;/code&amp;gt;). || Feasibility study. Currently under development; documentation is split into multiple language files. Last updated July 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/scisim-addons '''scisim-addons'''] || A collection of OpenSimulator region modules developed for the ScienceSim grid, intended to enable collaborative visualization. || Code for the Dispatcher and remote control projects has been moved to a separate repository. Last updated December 2014.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/SlipStream '''SlipStream'''] || A collection of Robust plugins for OpenSimulator development. || Last updated January 2015.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jonc/terraintools '''terraintools'''] || A module for terrain tools. || Last updated January 2012. No further description available in the repository.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Module for processing abuse reports submitted via the viewer. || From OpenSim-Continuum. Services are implemented.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || A collection of simulator- and Robust-specific add-ons (e.g., version notices, Gloebit currency). || Contains multiple add-ons in one package.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/waterwars '''WaterWars'''] || A &amp;quot;serious game&amp;quot; region module that allows players to take part in water resource decisions in the San Luis Valley. Includes game logic, OARs for the environment, and a web UI. || Last updated March 2013. Requires OpenSimulator 0.7.5 or later.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Extends OpenSimulator with WebRTC voice functionality via a Janus Gateway. || A more recent module (last updated about one month ago).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The information collected here is not guaranteed to be complete or up-to-date. For the most accurate and current information about a module, you should always check the respective repository directly.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules/de</id>
		<title>Addon-modules/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules/de"/>
				<updated>2026-08-10T11:49:22Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Addon-modules}}&lt;br /&gt;
&lt;br /&gt;
== Add-on-Module für OpenSimulator (Community-Sammlung) ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle fasst eine Reihe von Add-on-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte beachten Sie:''' Für diese Module gibt es '''keinen offiziellen Support''' durch das OpenSimulator-Projekt. Einsatz, Kompatibilitätsprüfung und Fehlerbehebung liegen in Ihrer eigenen Verantwortung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Beschreibung / Funktion !! Stand / Info (aus den Quellen)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/SnoopyPfeffer/ActivityLog '''ActivityLog'''] || Ein Modul zur Protokollierung von Benutzer- oder Systemaktivitäten. || Für Details bitte direkt das Repository konsultieren.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/WeslieDE/Chris.OS.Additions '''Chris.OS.Additions'''] || Eine Sammlung von Erweiterungen für OpenSimulator. || Für Details bitte direkt das Repository konsultieren.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Eigenständiger Dienst und Regionsmodul mit Unterstützung für MySQL, PostgreSQL und SQLite. || Aus OpenSim-Continuum (Alpha). Nicht für den Live-Betrieb empfohlen.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/dispatcher '''Dispatcher'''] || Eine sprachunabhängige API für die externe Skripterstellung von OpenSim-Regionen mittels JSON-Nachrichten. Unterstützt Szenenaktualisierungen, Asset-Manipulation, Inventar, Avatar-Aussehen und In-World-Ereignisse. Enthält Bibliotheken für Perl und Python. || Letzte Aktualisierung Juli 2016. Teile des Codes wurden aus dem scisim-addons-Repository verschoben.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Ein Add-on-Modul, das aus dem Quellcode kompiliert werden muss und die neueste OpenSim-Entwicklungsversion voraussetzt. || Informationen finden sich auf der zugehörigen GitHub-Wiki-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/ExampleNonSharedRegionModule '''ExampleNonSharedRegionModule'''] || Ein ausführlich kommentiertes Beispielmodul, das das &amp;lt;code&amp;gt;NonSharedRegionModule&amp;lt;/code&amp;gt;-Interface von OpenSimulator implementiert. Dient als Lernressource für die Modulentwicklung. || Letzte Aktualisierung Januar 2015. Enthält detaillierte Kommentare im Quellcode und in der prebuild.xml.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/ExampleSharedRegionModule '''ExampleSharedRegionModule'''] || Ein ausführlich kommentiertes Beispielmodul, das das &amp;lt;code&amp;gt;SharedRegionModule&amp;lt;/code&amp;gt;-Interface von OpenSimulator implementiert. Dient als Lernressource für die Modulentwicklung. || Letzte Aktualisierung Dezember 2014. Enthält detaillierte Kommentare im Quellcode und in der prebuild.xml.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit-Geldmodul'''] || Währungsmodul für die Integration von Gloebit. || Aus OpenSim-Continuum. Optionales Wirtschaftsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vermutlich ein weiteres Gloebit-Währungsmodul. || Genaue Inhalte/Status müssten geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/diva/Grider '''Grider'''] || Ein sicherer Client für OpenSims Hypergrid unter Verwendung von LibOMVs GridProxy. Ermöglicht die Anmeldung mit Vor- und Nachname sowie der Adresse des Benutzerservers (z.B. localhost:9000). || Letzte Aktualisierung August 2009. Erfordert ein Grid, das HG2 unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Modul für automatische Gruppeneinladungen. || Aus OpenSim-Continuum. Optionales Regionsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Kombiniertes Modul für eine pro-Region-Website, geschützte Estate-Tools und ein optionales Wallet-Portal. || Aus OpenSim-Continuum (Alpha-Integration). Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Modul für Physik-Schutzfunktionen. || Aus OpenSim-Continuum. Der &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt;-Modus funktioniert '''nur mit MySQL/MariaDB'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Ein Beispielmodul in einem externen Repository, das als Entwicklungshilfe dient. || Dient als Beispiel für die Einbindung eigener Module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/SnoopyPfeffer/Mod-PayPal '''Mod-PayPal'''] || Ein PayPal-Modul für OpenSimulator. || Für Details bitte direkt das Repository konsultieren.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer-Kompatibilität'''] || Kompatibilitätsdienst für das etablierte DTL/NSL-Protokoll. || Aus OpenSim-Continuum. '''MySQL-spezifisch'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/AdilElFarissi/nsl-opensim-currency-for-btcpay '''nsl-opensim-currency-for-btcpay'''] || Ein Währungsmodul zur Integration der NSL-Währung (vermutlich &amp;quot;New Second Life&amp;quot;) mit BTCPay. || Für Details bitte direkt das Repository konsultieren.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jonc/osboids '''osboids'''] || Ein Regionsmodul, das Schwarmalgorithmen (Boids) in einer OpenSim-Szene implementiert. Konfigurierbar für Schwarmgröße, Geschwindigkeit und Aussehen der Boids. || Letzte Aktualisierung Juli 2011. Getestet mit OpenSim-master. Vermutlich Alpha-Status.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/os-data-backup '''os-data-backup (ManfredAabye)'''] || '''Robust-Datenbank-Backup-Addon''' – ein MySQL-Backup/Restore/Sync-Addon für Robust. Unterstützt tabellenweises Exportieren, Importieren, Kopieren, Vergleichen, Prüfen und Reparieren. Funktioniert mit lokalen Dateisystemen und WebDAV-basiertem Cloud-Speicher. Version 1.0.0 Alpha. || Nur MySQL. Bietet umfangreiche Konsolenbefehle (z.B. &amp;lt;code&amp;gt;sqlbackup export all&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sqlbackup copy replace users&amp;lt;/code&amp;gt;). Letzte Aktualisierung März 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/os-fs2blob '''os-fs2blob (ManfredAabye)'''] || Ein Werkzeug zur Migration von Assets aus einem dateisystembasierten Asset-Speicher (FSAssets) zurück in den standardmäßigen Blob-basierten Asset-Speicher. || Machbarkeitsstudie. Stellt ein Werkzeug (&amp;lt;code&amp;gt;FsAssetsToBlobDump&amp;lt;/code&amp;gt;) für diese Migration bereit. Letzte Aktualisierung Mai 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Misterblue/os-luablue '''os-luablue'''] || Ein experimentelles Addon-Modul, das Lua-Skripting in OpenSimulator hinzufügt, unter Verwendung von Lua-CSharp als Skript-Engine. || '''Hochgradig experimentell'''. Derzeit als separates Addon-Modul verpackt. Letzte Aktualisierung Mai 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/AdilElFarissi/opensim-ai-module '''opensim-ai-module'''] || Ein Modul vermutlich für KI-bezogene Funktionalitäten. || Für Details bitte direkt das Repository konsultieren.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''OpenSim-Addon-modules (QuillLittlefeather)'''] || Vermutlich eine Sammlung verschiedener Add-on-Module. || Genaue Inhalte/Status müssten geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''opensim-addon-modules-exp'''] || Ein experimentelles Repository mit Add-on-Modulen. || Genaue Inhalte/Status müssten geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Ein &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt;-Modul zur Steuerung von Vogelschwärmen aus Prims in einer OpenSim-Szene. || Beispiel für ein Modul im &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;-Verzeichnis.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/JakDaniels/OpenSimCities '''OpenSimCities'''] || Ein Modul, das vermutlich mit Stadtbau- oder Stadtplanungsfunktionen zusammenhängt. || Für Details bitte direkt das Repository konsultieren.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Add-on für die Direktlieferung im OpenSim-Marktplatz. || Aus OpenSim-Continuum. Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim-PhP-Client '''OpenSim-PhP-Client'''] || Ein Modul, das eine saubere, erweiterbare Grundlage für die Bedienung und Verarbeitung von PHP-Endpunkten zwischen einem OpenSim-Grid und Viewer/Client bieten soll. || '''Noch nicht funktionsfähig''' (laut README). Letzte Aktualisierung August 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''OpenSim.RemoteAdmin.2025'''] || Ein Modul für die Fernverwaltung von OpenSim. || Genaue Inhalte/Status müssten geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Kompatibilitätsclient für die Viewer-Verzeichnissuche. || Aus OpenSim-Continuum. Erfordert einen separat bereitgestellten, kompatiblen Suchdienst.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide (Continuum)'''] || Modul für Gezeiten-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/JakDaniels/OpenSimTide '''OpenSimTide (JakDaniels)'''] || Ein Modul für Gezeiten-Effekte in Regionen. || Für Details bitte direkt das Repository konsultieren.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Modul für Wetter-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''opensimcurrencyserver-dotnet'''] || Ein Währungsserver für OpenSim, basierend auf .NET. || Genaue Inhalte/Status müssten geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-spl-sql-system '''opensim-spl-sql-system'''] || '''SplAssets''' – ein Hochleistungs-Datenbank-Sharding-System für OpenSim-Assets. Verteilt Assets basierend auf der UUID-Verteilung auf mehrere Datenbank-Shards. Unterstützt MySQL und PostgreSQL und enthält einen HyperGrid-kompatiblen Dienst. || Die Kern-Sharding-Funktionalität ist implementiert, aber die Asset-Datenspeicherung erfordert derzeit noch einen Fallback-Dienst. Konsolenbefehle für Überwachung und Migration verfügbar. Letzte Aktualisierung Oktober 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-tsassets '''opensim-tsassets'''] || '''TS Asset Service''' – ein typisiertes Tabellen-Asset-System, das Assets aus einer generischen &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;-Tabelle in typspezifische Tabellen (&amp;lt;code&amp;gt;assets_0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;assets_1&amp;lt;/code&amp;gt;, ...) verschiebt. Enthält Konsolenbefehle für Migration, Überprüfung und Reparatur. || Hochgradig experimentell (Version 0.4.3). Bietet Fallback-Modi und eine sichere Einführungsstrategie. Letzte Aktualisierung März 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-tsassets-V2 '''opensim-tsassets-V2'''] || Eine &amp;quot;Test&amp;quot;-Version des TS Asset Service. || Scheint ein minimales Test- oder Platzhalter-Repository zu sein. Status unklar.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/S3Asset '''S3Asset'''] || '''S3 Asset''' – eine experimentelle Implementierung, die OpenSim-Assets in einem S3-kompatiblen Objektspeicher (z.B. MinIO) speichert. Enthält Konfigurationsdokumentation in mehreren Sprachen und ein Verwaltungsskript (&amp;lt;code&amp;gt;minio_tool.sh&amp;lt;/code&amp;gt;). || Machbarkeitsstudie. Derzeit in Entwicklung; die Dokumentation ist auf mehrere Sprachdateien aufgeteilt. Letzte Aktualisierung Juli 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/scisim-addons '''scisim-addons'''] || Eine Sammlung von OpenSimulator-Regionsmodulen, die für das ScienceSim-Grid entwickelt wurden und die kollaborative Visualisierung ermöglichen sollen. || Der Code für die Dispatcher- und Remote-Control-Projekte wurde in ein separates Repository verschoben. Letzte Aktualisierung Dezember 2014.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/SlipStream '''SlipStream'''] || Eine Sammlung von Robust-Plugins für die OpenSimulator-Entwicklung. || Letzte Aktualisierung Januar 2015.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jonc/terraintools '''terraintools'''] || Ein Modul für Geländewerkzeuge. || Letzte Aktualisierung Januar 2012. Im Repository ist keine weitere Beschreibung verfügbar.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Modul für die Verarbeitung von Missbrauchsmeldungen, die über den Viewer eingereicht werden. || Aus OpenSim-Continuum. Die Dienste sind implementiert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Eine Sammlung von simulator- und Robust-spezifischen Add-ons (z.B. Versionshinweise, Gloebit-Währung). || Enthält mehrere Add-ons in einem Paket.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/waterwars '''WaterWars'''] || Ein &amp;quot;Serious Game&amp;quot;-Regionsmodul, das es Spielern ermöglicht, an Entscheidungen über Wasserressourcen im San Luis Valley teilzunehmen. Enthält Spiellogik, OARs für die Umgebung und eine Web-Oberfläche. || Letzte Aktualisierung März 2013. Erfordert OpenSimulator 0.7.5 oder höher.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC-Sprachmodul'''] || Erweitert OpenSimulator um WebRTC-Sprachfunktionen über ein Janus-Gateway. || Ein aktuelleres Modul (letzte Aktualisierung vor etwa einem Monat).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die hier gesammelten Informationen erheben keinen Anspruch auf Vollständigkeit oder Aktualität. Für die genauesten und aktuellsten Informationen zu einem Modul sollten Sie immer das jeweilige Repository direkt einsehen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules</id>
		<title>Addon-modules</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules"/>
				<updated>2026-08-10T11:45:50Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Add-on Modules for OpenSimulator (Community Collection) ==&lt;br /&gt;
&lt;br /&gt;
The following table summarizes a number of add-on modules developed by the community. '''Please note:''' There is '''no official support''' for these modules from the OpenSimulator project. Use, compatibility testing, and troubleshooting are your own responsibility.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Description / Function !! Status / Info (from sources)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/SnoopyPfeffer/ActivityLog '''ActivityLog'''] || A module for logging user or system activity. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/WeslieDE/Chris.OS.Additions '''Chris.OS.Additions'''] || A collection of additions for OpenSimulator. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Standalone service and region module with support for MySQL, PostgreSQL, and SQLite. || From OpenSim-Continuum (alpha). Not recommended for live operation.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/dispatcher '''Dispatcher'''] || A language-independent API for external scripting of OpenSim regions using JSON messaging. Supports scene updates, asset manipulation, inventory, avatar appearance, and in-world events. Comes with Perl and Python libraries. || Last updated July 2016. Part of the code was moved from the scisim-addons repository.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || An add-on module that must be compiled from source and requires the latest OpenSim development version. || Information can be found on the associated GitHub wiki page.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/ExampleNonSharedRegionModule '''ExampleNonSharedRegionModule'''] || A heavily commented example module implementing the OpenSimulator NonSharedRegionModule interface. Designed as a learning resource for module development. || Last updated January 2015. Includes detailed comments in the source code and prebuild.xml.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/ExampleSharedRegionModule '''ExampleSharedRegionModule'''] || A heavily commented example module implementing the OpenSimulator SharedRegionModule interface. Designed as a learning resource for module development. || Last updated December 2014. Includes detailed comments in the source code and prebuild.xml.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Currency module for integrating Gloebit. || From OpenSim-Continuum. Optional economy module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Presumably another Gloebit currency module. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/diva/Grider '''Grider'''] || A secure client for OpenSim's Hypergrid using LibOMV's GridProxy. Enables login with First.Last and the user server address (e.g., localhost:9000). || Last updated August 2009. Requires a grid supporting HG2.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Module for automatic group invitations. || From OpenSim-Continuum. Optional region module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Combined module for a per-region website, protected estate tools, and an optional wallet portal. || From OpenSim-Continuum (alpha integration). Disabled by default.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Module for physics protection functions. || From OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; mode works '''only with MySQL/MariaDB'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || An example module in an external repository, useful as a development aid. || Serves as an example for integrating custom modules.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/SnoopyPfeffer/Mod-PayPal '''Mod-PayPal'''] || A PayPal module for OpenSimulator. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Compatibility service for the established DTL/NSL protocol. || From OpenSim-Continuum. '''MySQL-specific'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/AdilElFarissi/nsl-opensim-currency-for-btcpay '''nsl-opensim-currency-for-btcpay'''] || A currency module for integrating NSL (likely &amp;quot;New Second Life&amp;quot;) currency with BTCPay. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jonc/osboids '''osboids'''] || A region module implementing flocking algorithms (Boids) within an OpenSim scene. Configurable for flock size, speed, and boid appearance. || Last updated July 2011. Tested against OpenSim master. Likely alpha status.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/os-data-backup '''ManfredAabye/os-data-backup'''] || '''Robust Database Backup Addon''' – a MySQL backup/restore/sync addon for Robust. Supports table-wise export, import, copy, compare, check, and repair. Works with local filesystems and WebDAV-based cloud storage. Version 1.0.0 Alpha. || MySQL-only. Provides extensive console commands (e.g., &amp;lt;code&amp;gt;sqlbackup export all&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sqlbackup copy replace users&amp;lt;/code&amp;gt;). Last updated March 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/os-fs2blob '''ManfredAabye/os-fs2blob'''] || A tool to migrate assets from a file-system-based asset store (FSAssets) back to the default blob-based asset store. || Feasibility study. Provides a tool (&amp;lt;code&amp;gt;FsAssetsToBlobDump&amp;lt;/code&amp;gt;) for this migration. Last updated May 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Misterblue/os-luablue '''os-luablue'''] || An experimental addon-module to add Lua language scripting to OpenSimulator, using Lua-CSharp as a script engine. || '''Highly experimental'''. Currently packaged as a separate addon-module. Last updated May 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/AdilElFarissi/opensim-ai-module '''opensim-ai-module'''] || A module presumably for AI-related functionalities. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''OpenSim-Addon-modules (QuillLittlefeather)'''] || Presumably a collection of various add-on modules. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''opensim-addon-modules-exp'''] || An experimental repository with add-on modules. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || An &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt; module to control flocks of birds made from prims in an OpenSim scene. || Example of a module placed in the &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/JakDaniels/OpenSimCities '''OpenSimCities'''] || A module presumably related to city-building or urban simulation features. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Add-on for direct delivery in the OpenSim marketplace. || From OpenSim-Continuum. Disabled by default.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim-PhP-Client '''OpenSim-PhP-Client'''] || A module intended to provide a clean, extensible foundation for serving and handling PHP endpoints between an OpenSim grid and viewer/client. || '''Not yet functional''' (as stated in the README). Last updated August 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''OpenSim.RemoteAdmin.2025'''] || A module for remote administration of OpenSim. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Compatibility client for the viewer directory search. || From OpenSim-Continuum. Requires a separately deployed compatible search service.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide (Continuum)'''] || Module for tide effects in regions. || From OpenSim-Continuum. Optional environment module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/JakDaniels/OpenSimTide '''OpenSimTide (JakDaniels)'''] || A module for tide effects in regions. || Please refer to the repository directly for details.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Module for weather effects in regions. || From OpenSim-Continuum. Optional environment module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''opensimcurrencyserver-dotnet'''] || A currency server for OpenSim, based on .NET. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-spl-sql-system '''opensim-spl-sql-system'''] || '''SplAssets''' – a high-performance database sharding system for OpenSim assets. Distributes assets across multiple database shards based on UUID distribution. Supports MySQL and PostgreSQL, and includes HyperGrid-compatible service. || Core sharding functionality is implemented, but asset data storage currently still requires a fallback service. Console commands available for monitoring and migration. Last updated October 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-tsassets '''opensim-tsassets'''] || '''TS Asset Service''' – a typed table asset system that moves assets from a generic &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; table into type-specific tables (&amp;lt;code&amp;gt;assets_0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;assets_1&amp;lt;/code&amp;gt;, ...). Includes console commands for migration, verification, and repair. || Highly experimental (revision 0.4.3). Provides fallback modes and a safe rollout strategy. Last updated March 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-tsassets-V2 '''opensim-tsassets-V2'''] || A &amp;quot;Test&amp;quot; version of the TS Asset Service. || Appears to be a minimal test or placeholder repository. Status unclear.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/S3Asset '''S3Asset'''] || '''S3 Asset''' – an experimental implementation that stores OpenSim assets in an S3-compatible object store (e.g., MinIO). Includes configuration documentation in multiple languages and a management script (&amp;lt;code&amp;gt;minio_tool.sh&amp;lt;/code&amp;gt;). || Feasibility study. Currently under development; documentation is split into multiple language files. Last updated July 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/scisim-addons '''scisim-addons'''] || A collection of OpenSimulator region modules developed for the ScienceSim grid, intended to enable collaborative visualization. || Code for the Dispatcher and remote control projects has been moved to a separate repository. Last updated December 2014.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/BlueWall/SlipStream '''SlipStream'''] || A collection of Robust plugins for OpenSimulator development. || Last updated January 2015.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jonc/terraintools '''terraintools'''] || A module for terrain tools. || Last updated January 2012. No further description available in the repository.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Module for processing abuse reports submitted via the viewer. || From OpenSim-Continuum. Services are implemented.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || A collection of simulator- and Robust-specific add-ons (e.g., version notices, Gloebit currency). || Contains multiple add-ons in one package.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cmickeyb/waterwars '''WaterWars'''] || A &amp;quot;serious game&amp;quot; region module that allows players to take part in water resource decisions in the San Luis Valley. Includes game logic, OARs for the environment, and a web UI. || Last updated March 2013. Requires OpenSimulator 0.7.5 or later.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Extends OpenSimulator with WebRTC voice functionality via a Janus Gateway. || A more recent module (last updated about one month ago).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The information collected here is not guaranteed to be complete or up-to-date. For the most accurate and current information about a module, you should always check the respective repository directly.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Talk:Addon-modules</id>
		<title>Talk:Addon-modules</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Talk:Addon-modules"/>
				<updated>2026-08-10T08:12:36Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;This is intended to be an information page about add-on modules for OpenSimulator; there is no guarantee that they will work. Please add further add-on modules. There is no so...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is intended to be an information page about add-on modules for OpenSimulator; there is no guarantee that they will work.&lt;br /&gt;
Please add further add-on modules.&lt;br /&gt;
There is no sorting yet.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules</id>
		<title>Addon-modules</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules"/>
				<updated>2026-08-10T07:59:07Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Addon-modules}}&lt;br /&gt;
&lt;br /&gt;
== Add-on Modules for OpenSimulator (Community Collection) ==&lt;br /&gt;
&lt;br /&gt;
The following table summarizes a number of add-on modules developed by the community. '''Please note:''' There is '''no official support''' for these modules from the OpenSimulator project. Use, compatibility testing, and troubleshooting are your own responsibility.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Description / Function !! Status / Info (from sources)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || An &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt; module to control flocks of birds made from prims in an OpenSim scene. || Example of a module placed in the &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || An add-on module that must be compiled from source and requires the latest OpenSim development version. || Information can be found on the associated GitHub wiki page.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || An example module in an external repository, useful as a development aid. || Serves as an example for integrating custom modules.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || A collection of simulator- and Robust-specific add-ons (e.g., version notices, Gloebit currency). || Contains multiple add-ons in one package.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Extends OpenSimulator with WebRTC voice functionality via a Janus Gateway. || A more recent module (last updated about one month ago).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Combined module for a per-region website, protected estate tools, and an optional wallet portal. || From OpenSim-Continuum (alpha integration). Disabled by default.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Module for automatic group invitations. || From OpenSim-Continuum. Optional region module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Add-on for direct delivery in the OpenSim marketplace. || From OpenSim-Continuum. Disabled by default.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Currency module for integrating Gloebit. || From OpenSim-Continuum. Optional economy module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Compatibility service for the established DTL/NSL protocol. || From OpenSim-Continuum. '''MySQL-specific'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Standalone service and region module with support for MySQL, PostgreSQL, and SQLite. || From OpenSim-Continuum (alpha). Not recommended for live operation.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Module for physics protection functions. || From OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; mode works '''only with MySQL/MariaDB'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Compatibility client for the viewer directory search. || From OpenSim-Continuum. Requires a separately deployed compatible search service.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Module for tide effects in regions. || From OpenSim-Continuum. Optional environment module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Module for weather effects in regions. || From OpenSim-Continuum. Optional environment module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Module for processing abuse reports submitted via the viewer. || From OpenSim-Continuum. Services are implemented.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Presumably another Gloebit currency module. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || A currency server for OpenSim, based on .NET. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Presumably a collection of various add-on modules. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || A module for remote administration of OpenSim. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || An experimental repository with add-on modules. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-tsassets '''ManfredAabye/opensim-tsassets'''] || '''TS Asset Service''' – a typed table asset system that moves assets from a generic &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; table into type-specific tables (&amp;lt;code&amp;gt;assets_0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;assets_1&amp;lt;/code&amp;gt;, ...). Includes console commands for migration, verification, and repair. || Highly experimental (revision 0.4.3). Provides fallback modes and a safe rollout strategy. Last updated March 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-tsassets-V2 '''ManfredAabye/opensim-tsassets-V2'''] || A &amp;quot;Test&amp;quot; version of the TS Asset Service. || Appears to be a minimal test or placeholder repository. Status unclear.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/S3Asset '''ManfredAabye/S3Asset'''] || '''S3 Asset''' – an experimental implementation that stores OpenSim assets in an S3-compatible object store (e.g., MinIO). Includes configuration documentation in multiple languages and a management script (&amp;lt;code&amp;gt;minio_tool.sh&amp;lt;/code&amp;gt;). || Feasibility study. Currently under development; documentation is split into multiple language files. Last updated July 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/os-fs2blob '''ManfredAabye/os-fs2blob'''] || A tool to migrate assets from a file-system-based asset store (FSAssets) back to the default blob-based asset store. || Feasibility study. Provides a tool (&amp;lt;code&amp;gt;FsAssetsToBlobDump&amp;lt;/code&amp;gt;) for this migration. Last updated May 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/os-data-backup '''ManfredAabye/os-data-backup'''] || '''Robust Database Backup Addon''' – a MySQL backup/restore/sync addon for Robust. Supports table-wise export, import, copy, compare, check, and repair. Works with local filesystems and WebDAV-based cloud storage. Version 1.0.0 Alpha. || MySQL-only. Provides extensive console commands (e.g., &amp;lt;code&amp;gt;sqlbackup export all&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sqlbackup copy replace users&amp;lt;/code&amp;gt;). Last updated March 2026.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensim-spl-sql-system '''ManfredAabye/opensim-spl-sql-system'''] || '''SplAssets''' – a high-performance database sharding system for OpenSim assets. Distributes assets across multiple database shards based on UUID distribution. Supports MySQL and PostgreSQL, and includes HyperGrid-compatible service. || Core sharding functionality is implemented, but asset data storage currently still requires a fallback service. Console commands available for monitoring and migration. Last updated October 2025.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim-PhP-Client '''ManfredAabye/OpenSim-PhP-Client'''] || A module intended to provide a clean, extensible foundation for serving and handling PHP endpoints between an OpenSim grid and viewer/client. || '''Not yet functional''' (as stated in the README). Last updated August 2025.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The information collected here is not guaranteed to be complete or up-to-date. For the most accurate and current information about a module, you should always check the respective repository directly.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules/fr</id>
		<title>Addon-modules/fr</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules/fr"/>
				<updated>2026-08-09T18:45:54Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;{{Languages|Addon-modules}} == Modules complémentaires pour OpenSimulator (Collection communautaire) ==  Le tableau suivant résume un certain nombre de modules complémentai...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Addon-modules}}&lt;br /&gt;
== Modules complémentaires pour OpenSimulator (Collection communautaire) ==&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant résume un certain nombre de modules complémentaires développés par la communauté. '''Veuillez noter :''' Il n'y a '''aucun support officiel''' pour ces modules de la part du projet OpenSimulator. L'utilisation, les tests de compatibilité et le dépannage sont sous votre propre responsabilité.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Nom / Lien !! Description / Fonction !! Statut / Informations (selon les sources)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Un module &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt; pour contrôler des volées d'oiseaux constitués de prims dans une scène OpenSim. || Exemple d'un module placé dans le répertoire &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Un module complémentaire qui doit être compilé à partir du code source et nécessite la dernière version de développement d'OpenSim. || Les informations se trouvent sur la page wiki GitHub associée.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Un module exemple dans un dépôt externe, utile comme aide au développement. || Sert d'exemple pour l'intégration de modules personnalisés.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Une collection de modules complémentaires spécifiques au simulateur et à Robust (ex. : avis de version, devise Gloebit). || Contient plusieurs modules complémentaires dans un seul paquet.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''Module vocal WebRTC'''] || Étend OpenSimulator avec des fonctions vocales WebRTC via une passerelle Janus. || Un module plus récent (dernière mise à jour il y a environ un mois).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Module combiné pour un site web par région, des outils de gestion protégés et un portail de portefeuille optionnel. || Issu d'OpenSim-Continuum (intégration alpha). Désactivé par défaut.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Module pour les invitations automatiques aux groupes. || Issu d'OpenSim-Continuum. Module régional optionnel.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Module complémentaire pour la livraison directe sur le marché OpenSim. || Issu d'OpenSim-Continuum. Désactivé par défaut.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Module monétaire Gloebit'''] || Module de devise pour l'intégration de Gloebit. || Issu d'OpenSim-Continuum. Module économique optionnel.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Service de compatibilité pour le protocole DTL/NSL établi. || Issu d'OpenSim-Continuum. '''Spécifique à MySQL'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Service autonome et module régional avec support pour MySQL, PostgreSQL et SQLite. || Issu d'OpenSim-Continuum (alpha). Non recommandé pour une utilisation en production.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Module pour les fonctions de protection physique. || Issu d'OpenSim-Continuum. Le mode &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; fonctionne '''uniquement avec MySQL/MariaDB'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Client de compatibilité pour la recherche dans l'annuaire du viewer. || Issu d'OpenSim-Continuum. Nécessite un service de recherche compatible déployé séparément.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Module pour les effets de marée dans les régions. || Issu d'OpenSim-Continuum. Module environnemental optionnel.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Module pour les effets météo dans les régions. || Issu d'OpenSim-Continuum. Module environnemental optionnel.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Module pour le traitement des signalements d'abus soumis via le viewer. || Issu d'OpenSim-Continuum. Les services sont implémentés.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vraisemblablement un autre module de devise Gloebit. || Le contenu/statut exact devrait être vérifié.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || Un serveur de devise pour OpenSim, basé sur .NET. || Le contenu/statut exact devrait être vérifié.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Vraisemblablement une collection de divers modules complémentaires. || Le contenu/statut exact devrait être vérifié.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || Un module pour l'administration à distance d'OpenSim. || Le contenu/statut exact devrait être vérifié.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || Un dépôt expérimental contenant des modules complémentaires. || Le contenu/statut exact devrait être vérifié.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les informations collectées ici ne sont pas garanties complètes ou à jour. Pour les informations les plus précises et actuelles sur un module, vous devriez toujours consulter le dépôt respectif directement.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules/de</id>
		<title>Addon-modules/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules/de"/>
				<updated>2026-08-09T18:43:50Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Addon-modules}}&lt;br /&gt;
== Addon-Module für OpenSimulator (Community-Sammlung) ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle fasst eine Reihe von Addon-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte beachten Sie:''' Für diese Module gibt es '''keinen offiziellen Support''' durch das OpenSimulator-Projekt. Einsatz, Kompatibilitätsprüfung und Fehlerbehebung liegen in Ihrer eigenen Verantwortung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Beschreibung / Funktion !! Stand / Info (aus den Quellen)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Ein &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt;-Modul zur Steuerung von Vogelschwärmen aus Prims. || Beispiel für ein Modul im &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;-Verzeichnis.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Ein Addon-Modul, das kompiliert werden muss und die neueste OpenSim-Entwicklungsversion voraussetzt. || Informationen auf der zugehörigen GitHub-Wiki-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Ein Beispielmodul in einem externen Repository als Entwicklungshilfe. || Dient als Beispiel für die Einbindung eigener Module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Eine Sammlung von simulator- und robust-spezifischen Addons (z.B. Versionshinweise, Gloebit-Währung). || Enthält mehrere Addons in einem Paket.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Erweitert OpenSimulator um WebRTC-Sprachfunktionen über Janus-Gateway. || Ein aktuelleres Modul (letzte Aktualisierung vor etwa einem Monat).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Kombiniertes Modul für eine pro-Region-Website, Estate-Tools und Wallet-Portal. || Aus OpenSim-Continuum (Alpha-Integration). Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Modul für automatische Gruppeneinladungen. || Aus OpenSim-Continuum. Optionales Regionsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Addon für die Direktlieferung im OpenSim-Marktplatz. || Aus OpenSim-Continuum. Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Geldmodul für die Integration von Gloebit. || Aus OpenSim-Continuum. Optionales Wirtschaftsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Kompatibilitätsdienst für das etablierte DTL/NSL-Protokoll. || Aus OpenSim-Continuum. '''MySQL-spezifisch'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Eigenständiger Dienst und Regionsmodul mit Unterstützung für MySQL, PostgreSQL und SQLite. || Aus OpenSim-Continuum (Alpha). Nicht für Live-Betrieb empfohlen.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Modul für Physik-Schutzfunktionen. || Aus OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; nur mit MySQL/MariaDB.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Kompatibilitätsclient für die Viewer-Verzeichnissuche. || Aus OpenSim-Continuum. Benötigt einen separaten Suchdienst.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Modul für Gezeiten-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Modul für Wetter-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Modul für die Verarbeitung von Missbrauchsmeldungen (Abuse Reports). || Aus OpenSim-Continuum. Dienste sind implementiert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vermutlich ein weiteres Gloebit-Geldmodul. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || Ein Währungsserver für OpenSim, basierend auf .NET. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Vermutlich eine Sammlung verschiedener Addon-Module. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || Ein Modul für die Fernverwaltung (Remote Admin) von OpenSim. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || Ein experimentelles Repository mit Addon-Modulen. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die hier gesammelten Informationen erheben keinen Anspruch auf Vollständigkeit oder Aktualität. Für die genauesten und aktuellsten Informationen zu einem Modul sollten Sie immer das jeweilige Repository direkt einsehen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules</id>
		<title>Addon-modules</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules"/>
				<updated>2026-08-09T18:43:19Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Addon-modules}}&lt;br /&gt;
== Add-on Modules for OpenSimulator (Community Collection) ==&lt;br /&gt;
&lt;br /&gt;
The following table summarizes a number of add-on modules developed by the community. '''Please note:''' There is '''no official support''' for these modules from the OpenSimulator project. Use, compatibility testing, and troubleshooting are your own responsibility.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Description / Function !! Status / Info (from sources)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || An &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt; module to control flocks of birds made from prims in an OpenSim scene. || Example of a module placed in the &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || An add-on module that must be compiled from source and requires the latest OpenSim development version. || Information can be found on the associated GitHub wiki page.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || An example module in an external repository, useful as a development aid. || Serves as an example for integrating custom modules.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || A collection of simulator- and Robust-specific add-ons (e.g., version notices, Gloebit currency). || Contains multiple add-ons in one package.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Extends OpenSimulator with WebRTC voice functionality via a Janus Gateway. || A more recent module (last updated about one month ago).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Combined module for a per-region website, protected estate tools, and an optional wallet portal. || From OpenSim-Continuum (alpha integration). Disabled by default.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Module for automatic group invitations. || From OpenSim-Continuum. Optional region module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Add-on for direct delivery in the OpenSim marketplace. || From OpenSim-Continuum. Disabled by default.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Currency module for integrating Gloebit. || From OpenSim-Continuum. Optional economy module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Compatibility service for the established DTL/NSL protocol. || From OpenSim-Continuum. '''MySQL-specific'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Standalone service and region module with support for MySQL, PostgreSQL, and SQLite. || From OpenSim-Continuum (alpha). Not recommended for live operation.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Module for physics protection functions. || From OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; mode works '''only with MySQL/MariaDB'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Compatibility client for the viewer directory search. || From OpenSim-Continuum. Requires a separately deployed compatible search service.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Module for tide effects in regions. || From OpenSim-Continuum. Optional environment module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Module for weather effects in regions. || From OpenSim-Continuum. Optional environment module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Module for processing abuse reports submitted via the viewer. || From OpenSim-Continuum. Services are implemented.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Presumably another Gloebit currency module. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || A currency server for OpenSim, based on .NET. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Presumably a collection of various add-on modules. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || A module for remote administration of OpenSim. || Exact content/status would need to be checked.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || An experimental repository with add-on modules. || Exact content/status would need to be checked.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The information collected here is not guaranteed to be complete or up-to-date. For the most accurate and current information about a module, you should always check the respective repository directly.&lt;br /&gt;
&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules</id>
		<title>Addon-modules</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules"/>
				<updated>2026-08-09T18:40:18Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Addon-modules}}&lt;br /&gt;
== Addon-Module für OpenSimulator (Community-Sammlung) ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle fasst eine Reihe von Addon-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte beachten Sie:''' Für diese Module gibt es '''keinen offiziellen Support''' durch das OpenSimulator-Projekt. Einsatz, Kompatibilitätsprüfung und Fehlerbehebung liegen in Ihrer eigenen Verantwortung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Beschreibung / Funktion !! Stand / Info (aus den Quellen)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Ein &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt;-Modul zur Steuerung von Vogelschwärmen aus Prims. || Beispiel für ein Modul im &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;-Verzeichnis.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Ein Addon-Modul, das kompiliert werden muss und die neueste OpenSim-Entwicklungsversion voraussetzt. || Informationen auf der zugehörigen GitHub-Wiki-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Ein Beispielmodul in einem externen Repository als Entwicklungshilfe. || Dient als Beispiel für die Einbindung eigener Module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Eine Sammlung von simulator- und robust-spezifischen Addons (z.B. Versionshinweise, Gloebit-Währung). || Enthält mehrere Addons in einem Paket.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Erweitert OpenSimulator um WebRTC-Sprachfunktionen über Janus-Gateway. || Ein aktuelleres Modul (letzte Aktualisierung vor etwa einem Monat).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Kombiniertes Modul für eine pro-Region-Website, Estate-Tools und Wallet-Portal. || Aus OpenSim-Continuum (Alpha-Integration). Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Modul für automatische Gruppeneinladungen. || Aus OpenSim-Continuum. Optionales Regionsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Addon für die Direktlieferung im OpenSim-Marktplatz. || Aus OpenSim-Continuum. Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Geldmodul für die Integration von Gloebit. || Aus OpenSim-Continuum. Optionales Wirtschaftsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Kompatibilitätsdienst für das etablierte DTL/NSL-Protokoll. || Aus OpenSim-Continuum. '''MySQL-spezifisch'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Eigenständiger Dienst und Regionsmodul mit Unterstützung für MySQL, PostgreSQL und SQLite. || Aus OpenSim-Continuum (Alpha). Nicht für Live-Betrieb empfohlen.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Modul für Physik-Schutzfunktionen. || Aus OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; nur mit MySQL/MariaDB.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Kompatibilitätsclient für die Viewer-Verzeichnissuche. || Aus OpenSim-Continuum. Benötigt einen separaten Suchdienst.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Modul für Gezeiten-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Modul für Wetter-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Modul für die Verarbeitung von Missbrauchsmeldungen (Abuse Reports). || Aus OpenSim-Continuum. Dienste sind implementiert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vermutlich ein weiteres Gloebit-Geldmodul. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || Ein Währungsserver für OpenSim, basierend auf .NET. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Vermutlich eine Sammlung verschiedener Addon-Module. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || Ein Modul für die Fernverwaltung (Remote Admin) von OpenSim. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || Ein experimentelles Repository mit Addon-Modulen. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die hier gesammelten Informationen erheben keinen Anspruch auf Vollständigkeit oder Aktualität. Für die genauesten und aktuellsten Informationen zu einem Modul sollten Sie immer das jeweilige Repository direkt einsehen.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules/de</id>
		<title>Addon-modules/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules/de"/>
				<updated>2026-08-09T18:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Addon-modules}}&lt;br /&gt;
== Addon-Module für OpenSimulator (Community-Sammlung) ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle fasst eine Reihe von Addon-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte beachten Sie:''' Für diese Module gibt es '''keinen offiziellen Support''' durch das OpenSimulator-Projekt. Einsatz, Kompatibilitätsprüfung und Fehlerbehebung liegen in Ihrer eigenen Verantwortung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Beschreibung / Funktion !! Stand / Info (aus den Quellen)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Ein &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt;-Modul zur Steuerung von Vogelschwärmen aus Prims. || Beispiel für ein Modul im &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;-Verzeichnis.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Ein Addon-Modul, das kompiliert werden muss und die neueste OpenSim-Entwicklungsversion voraussetzt. || Informationen auf der zugehörigen GitHub-Wiki-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Ein Beispielmodul in einem externen Repository als Entwicklungshilfe. || Dient als Beispiel für die Einbindung eigener Module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Eine Sammlung von simulator- und robust-spezifischen Addons (z.B. Versionshinweise, Gloebit-Währung). || Enthält mehrere Addons in einem Paket.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Erweitert OpenSimulator um WebRTC-Sprachfunktionen über Janus-Gateway. || Ein aktuelleres Modul (letzte Aktualisierung vor etwa einem Monat).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Kombiniertes Modul für eine pro-Region-Website, Estate-Tools und Wallet-Portal. || Aus OpenSim-Continuum (Alpha-Integration). Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Modul für automatische Gruppeneinladungen. || Aus OpenSim-Continuum. Optionales Regionsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Addon für die Direktlieferung im OpenSim-Marktplatz. || Aus OpenSim-Continuum. Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Geldmodul für die Integration von Gloebit. || Aus OpenSim-Continuum. Optionales Wirtschaftsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Kompatibilitätsdienst für das etablierte DTL/NSL-Protokoll. || Aus OpenSim-Continuum. '''MySQL-spezifisch'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Eigenständiger Dienst und Regionsmodul mit Unterstützung für MySQL, PostgreSQL und SQLite. || Aus OpenSim-Continuum (Alpha). Nicht für Live-Betrieb empfohlen.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Modul für Physik-Schutzfunktionen. || Aus OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; nur mit MySQL/MariaDB.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Kompatibilitätsclient für die Viewer-Verzeichnissuche. || Aus OpenSim-Continuum. Benötigt einen separaten Suchdienst.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Modul für Gezeiten-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Modul für Wetter-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Modul für die Verarbeitung von Missbrauchsmeldungen (Abuse Reports). || Aus OpenSim-Continuum. Dienste sind implementiert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vermutlich ein weiteres Gloebit-Geldmodul. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || Ein Währungsserver für OpenSim, basierend auf .NET. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Vermutlich eine Sammlung verschiedener Addon-Module. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || Ein Modul für die Fernverwaltung (Remote Admin) von OpenSim. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || Ein experimentelles Repository mit Addon-Modulen. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die hier gesammelten Informationen erheben keinen Anspruch auf Vollständigkeit oder Aktualität. Für die genauesten und aktuellsten Informationen zu einem Modul sollten Sie immer das jeweilige Repository direkt einsehen.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules/de</id>
		<title>Addon-modules/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules/de"/>
				<updated>2026-08-09T18:37:21Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}{{Addon-modules}}&lt;br /&gt;
== Addon-Module für OpenSimulator (Community-Sammlung) ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle fasst eine Reihe von Addon-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte beachten Sie:''' Für diese Module gibt es '''keinen offiziellen Support''' durch das OpenSimulator-Projekt. Einsatz, Kompatibilitätsprüfung und Fehlerbehebung liegen in Ihrer eigenen Verantwortung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Beschreibung / Funktion !! Stand / Info (aus den Quellen)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Ein &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt;-Modul zur Steuerung von Vogelschwärmen aus Prims. || Beispiel für ein Modul im &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;-Verzeichnis.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Ein Addon-Modul, das kompiliert werden muss und die neueste OpenSim-Entwicklungsversion voraussetzt. || Informationen auf der zugehörigen GitHub-Wiki-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Ein Beispielmodul in einem externen Repository als Entwicklungshilfe. || Dient als Beispiel für die Einbindung eigener Module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Eine Sammlung von simulator- und robust-spezifischen Addons (z.B. Versionshinweise, Gloebit-Währung). || Enthält mehrere Addons in einem Paket.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Erweitert OpenSimulator um WebRTC-Sprachfunktionen über Janus-Gateway. || Ein aktuelleres Modul (letzte Aktualisierung vor etwa einem Monat).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Kombiniertes Modul für eine pro-Region-Website, Estate-Tools und Wallet-Portal. || Aus OpenSim-Continuum (Alpha-Integration). Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Modul für automatische Gruppeneinladungen. || Aus OpenSim-Continuum. Optionales Regionsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Addon für die Direktlieferung im OpenSim-Marktplatz. || Aus OpenSim-Continuum. Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Geldmodul für die Integration von Gloebit. || Aus OpenSim-Continuum. Optionales Wirtschaftsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Kompatibilitätsdienst für das etablierte DTL/NSL-Protokoll. || Aus OpenSim-Continuum. '''MySQL-spezifisch'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Eigenständiger Dienst und Regionsmodul mit Unterstützung für MySQL, PostgreSQL und SQLite. || Aus OpenSim-Continuum (Alpha). Nicht für Live-Betrieb empfohlen.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Modul für Physik-Schutzfunktionen. || Aus OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; nur mit MySQL/MariaDB.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Kompatibilitätsclient für die Viewer-Verzeichnissuche. || Aus OpenSim-Continuum. Benötigt einen separaten Suchdienst.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Modul für Gezeiten-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Modul für Wetter-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Modul für die Verarbeitung von Missbrauchsmeldungen (Abuse Reports). || Aus OpenSim-Continuum. Dienste sind implementiert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vermutlich ein weiteres Gloebit-Geldmodul. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || Ein Währungsserver für OpenSim, basierend auf .NET. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Vermutlich eine Sammlung verschiedener Addon-Module. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || Ein Modul für die Fernverwaltung (Remote Admin) von OpenSim. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || Ein experimentelles Repository mit Addon-Modulen. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die hier gesammelten Informationen erheben keinen Anspruch auf Vollständigkeit oder Aktualität. Für die genauesten und aktuellsten Informationen zu einem Modul sollten Sie immer das jeweilige Repository direkt einsehen.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules</id>
		<title>Addon-modules</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules"/>
				<updated>2026-08-09T18:37:04Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}{{Addon-modules}}&lt;br /&gt;
== Addon-Module für OpenSimulator (Community-Sammlung) ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle fasst eine Reihe von Addon-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte beachten Sie:''' Für diese Module gibt es '''keinen offiziellen Support''' durch das OpenSimulator-Projekt. Einsatz, Kompatibilitätsprüfung und Fehlerbehebung liegen in Ihrer eigenen Verantwortung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Beschreibung / Funktion !! Stand / Info (aus den Quellen)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Ein &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt;-Modul zur Steuerung von Vogelschwärmen aus Prims. || Beispiel für ein Modul im &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;-Verzeichnis.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Ein Addon-Modul, das kompiliert werden muss und die neueste OpenSim-Entwicklungsversion voraussetzt. || Informationen auf der zugehörigen GitHub-Wiki-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Ein Beispielmodul in einem externen Repository als Entwicklungshilfe. || Dient als Beispiel für die Einbindung eigener Module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Eine Sammlung von simulator- und robust-spezifischen Addons (z.B. Versionshinweise, Gloebit-Währung). || Enthält mehrere Addons in einem Paket.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Erweitert OpenSimulator um WebRTC-Sprachfunktionen über Janus-Gateway. || Ein aktuelleres Modul (letzte Aktualisierung vor etwa einem Monat).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Kombiniertes Modul für eine pro-Region-Website, Estate-Tools und Wallet-Portal. || Aus OpenSim-Continuum (Alpha-Integration). Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Modul für automatische Gruppeneinladungen. || Aus OpenSim-Continuum. Optionales Regionsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Addon für die Direktlieferung im OpenSim-Marktplatz. || Aus OpenSim-Continuum. Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Geldmodul für die Integration von Gloebit. || Aus OpenSim-Continuum. Optionales Wirtschaftsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Kompatibilitätsdienst für das etablierte DTL/NSL-Protokoll. || Aus OpenSim-Continuum. '''MySQL-spezifisch'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Eigenständiger Dienst und Regionsmodul mit Unterstützung für MySQL, PostgreSQL und SQLite. || Aus OpenSim-Continuum (Alpha). Nicht für Live-Betrieb empfohlen.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Modul für Physik-Schutzfunktionen. || Aus OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; nur mit MySQL/MariaDB.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Kompatibilitätsclient für die Viewer-Verzeichnissuche. || Aus OpenSim-Continuum. Benötigt einen separaten Suchdienst.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Modul für Gezeiten-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Modul für Wetter-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Modul für die Verarbeitung von Missbrauchsmeldungen (Abuse Reports). || Aus OpenSim-Continuum. Dienste sind implementiert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vermutlich ein weiteres Gloebit-Geldmodul. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || Ein Währungsserver für OpenSim, basierend auf .NET. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Vermutlich eine Sammlung verschiedener Addon-Module. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || Ein Modul für die Fernverwaltung (Remote Admin) von OpenSim. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || Ein experimentelles Repository mit Addon-Modulen. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die hier gesammelten Informationen erheben keinen Anspruch auf Vollständigkeit oder Aktualität. Für die genauesten und aktuellsten Informationen zu einem Modul sollten Sie immer das jeweilige Repository direkt einsehen.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules/de</id>
		<title>Addon-modules/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules/de"/>
				<updated>2026-08-09T18:35:59Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}{{ReleaseInfo}}&lt;br /&gt;
== Addon-Module für OpenSimulator (Community-Sammlung) ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle fasst eine Reihe von Addon-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte beachten Sie:''' Für diese Module gibt es '''keinen offiziellen Support''' durch das OpenSimulator-Projekt. Einsatz, Kompatibilitätsprüfung und Fehlerbehebung liegen in Ihrer eigenen Verantwortung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Beschreibung / Funktion !! Stand / Info (aus den Quellen)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Ein &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt;-Modul zur Steuerung von Vogelschwärmen aus Prims. || Beispiel für ein Modul im &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;-Verzeichnis.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Ein Addon-Modul, das kompiliert werden muss und die neueste OpenSim-Entwicklungsversion voraussetzt. || Informationen auf der zugehörigen GitHub-Wiki-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Ein Beispielmodul in einem externen Repository als Entwicklungshilfe. || Dient als Beispiel für die Einbindung eigener Module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Eine Sammlung von simulator- und robust-spezifischen Addons (z.B. Versionshinweise, Gloebit-Währung). || Enthält mehrere Addons in einem Paket.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Erweitert OpenSimulator um WebRTC-Sprachfunktionen über Janus-Gateway. || Ein aktuelleres Modul (letzte Aktualisierung vor etwa einem Monat).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Kombiniertes Modul für eine pro-Region-Website, Estate-Tools und Wallet-Portal. || Aus OpenSim-Continuum (Alpha-Integration). Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Modul für automatische Gruppeneinladungen. || Aus OpenSim-Continuum. Optionales Regionsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Addon für die Direktlieferung im OpenSim-Marktplatz. || Aus OpenSim-Continuum. Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Geldmodul für die Integration von Gloebit. || Aus OpenSim-Continuum. Optionales Wirtschaftsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Kompatibilitätsdienst für das etablierte DTL/NSL-Protokoll. || Aus OpenSim-Continuum. '''MySQL-spezifisch'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Eigenständiger Dienst und Regionsmodul mit Unterstützung für MySQL, PostgreSQL und SQLite. || Aus OpenSim-Continuum (Alpha). Nicht für Live-Betrieb empfohlen.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Modul für Physik-Schutzfunktionen. || Aus OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; nur mit MySQL/MariaDB.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Kompatibilitätsclient für die Viewer-Verzeichnissuche. || Aus OpenSim-Continuum. Benötigt einen separaten Suchdienst.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Modul für Gezeiten-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Modul für Wetter-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Modul für die Verarbeitung von Missbrauchsmeldungen (Abuse Reports). || Aus OpenSim-Continuum. Dienste sind implementiert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vermutlich ein weiteres Gloebit-Geldmodul. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || Ein Währungsserver für OpenSim, basierend auf .NET. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Vermutlich eine Sammlung verschiedener Addon-Module. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || Ein Modul für die Fernverwaltung (Remote Admin) von OpenSim. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || Ein experimentelles Repository mit Addon-Modulen. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die hier gesammelten Informationen erheben keinen Anspruch auf Vollständigkeit oder Aktualität. Für die genauesten und aktuellsten Informationen zu einem Modul sollten Sie immer das jeweilige Repository direkt einsehen.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules/de</id>
		<title>Addon-modules/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules/de"/>
				<updated>2026-08-09T18:34:09Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;== Addon-Module für OpenSimulator (Community-Sammlung) ==  Die folgende Tabelle fasst eine Reihe von Addon-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Addon-Module für OpenSimulator (Community-Sammlung) ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle fasst eine Reihe von Addon-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte beachten Sie:''' Für diese Module gibt es '''keinen offiziellen Support''' durch das OpenSimulator-Projekt. Einsatz, Kompatibilitätsprüfung und Fehlerbehebung liegen in Ihrer eigenen Verantwortung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Beschreibung / Funktion !! Stand / Info (aus den Quellen)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Ein &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt;-Modul zur Steuerung von Vogelschwärmen aus Prims. || Beispiel für ein Modul im &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;-Verzeichnis.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Ein Addon-Modul, das kompiliert werden muss und die neueste OpenSim-Entwicklungsversion voraussetzt. || Informationen auf der zugehörigen GitHub-Wiki-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Ein Beispielmodul in einem externen Repository als Entwicklungshilfe. || Dient als Beispiel für die Einbindung eigener Module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Eine Sammlung von simulator- und robust-spezifischen Addons (z.B. Versionshinweise, Gloebit-Währung). || Enthält mehrere Addons in einem Paket.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Erweitert OpenSimulator um WebRTC-Sprachfunktionen über Janus-Gateway. || Ein aktuelleres Modul (letzte Aktualisierung vor etwa einem Monat).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Kombiniertes Modul für eine pro-Region-Website, Estate-Tools und Wallet-Portal. || Aus OpenSim-Continuum (Alpha-Integration). Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Modul für automatische Gruppeneinladungen. || Aus OpenSim-Continuum. Optionales Regionsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Addon für die Direktlieferung im OpenSim-Marktplatz. || Aus OpenSim-Continuum. Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Geldmodul für die Integration von Gloebit. || Aus OpenSim-Continuum. Optionales Wirtschaftsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Kompatibilitätsdienst für das etablierte DTL/NSL-Protokoll. || Aus OpenSim-Continuum. '''MySQL-spezifisch'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Eigenständiger Dienst und Regionsmodul mit Unterstützung für MySQL, PostgreSQL und SQLite. || Aus OpenSim-Continuum (Alpha). Nicht für Live-Betrieb empfohlen.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Modul für Physik-Schutzfunktionen. || Aus OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; nur mit MySQL/MariaDB.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Kompatibilitätsclient für die Viewer-Verzeichnissuche. || Aus OpenSim-Continuum. Benötigt einen separaten Suchdienst.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Modul für Gezeiten-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Modul für Wetter-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Modul für die Verarbeitung von Missbrauchsmeldungen (Abuse Reports). || Aus OpenSim-Continuum. Dienste sind implementiert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vermutlich ein weiteres Gloebit-Geldmodul. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || Ein Währungsserver für OpenSim, basierend auf .NET. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Vermutlich eine Sammlung verschiedener Addon-Module. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || Ein Modul für die Fernverwaltung (Remote Admin) von OpenSim. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || Ein experimentelles Repository mit Addon-Modulen. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die hier gesammelten Informationen erheben keinen Anspruch auf Vollständigkeit oder Aktualität. Für die genauesten und aktuellsten Informationen zu einem Modul sollten Sie immer das jeweilige Repository direkt einsehen.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Addon-modules</id>
		<title>Addon-modules</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Addon-modules"/>
				<updated>2026-08-09T18:33:47Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;== Addon-Module für OpenSimulator (Community-Sammlung) ==  Die folgende Tabelle fasst eine Reihe von Addon-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Addon-Module für OpenSimulator (Community-Sammlung) ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle fasst eine Reihe von Addon-Modulen zusammen, die von der Community entwickelt wurden. '''Bitte beachten Sie:''' Für diese Module gibt es '''keinen offiziellen Support''' durch das OpenSimulator-Projekt. Einsatz, Kompatibilitätsprüfung und Fehlerbehebung liegen in Ihrer eigenen Verantwortung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name / Link !! Beschreibung / Funktion !! Stand / Info (aus den Quellen)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=OpenSimBirds+addon-modules&amp;amp;type=code '''OpenSimBirds'''] || Ein &amp;lt;code&amp;gt;INonSharedRegion&amp;lt;/code&amp;gt;-Modul zur Steuerung von Vogelschwärmen aus Prims. || Beispiel für ein Modul im &amp;lt;code&amp;gt;addon-modules&amp;lt;/code&amp;gt;-Verzeichnis.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=DSG+opensim+addon-modules&amp;amp;type=repositories '''DSG'''] || Ein Addon-Modul, das kompiliert werden muss und die neueste OpenSim-Entwicklungsversion voraussetzt. || Informationen auf der zugehörigen GitHub-Wiki-Seite.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=Loden+opensim+addon-modules&amp;amp;type=repositories '''Loden'''] || Ein Beispielmodul in einem externen Repository als Entwicklungshilfe. || Dient als Beispiel für die Einbindung eigener Module.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/opensim-addons '''vortexsystem/opensim-addons'''] || Eine Sammlung von simulator- und robust-spezifischen Addons (z.B. Versionshinweise, Gloebit-Währung). || Enthält mehrere Addons in einem Paket.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/search?q=WebRTC+Voice+Module+opensim&amp;amp;type=repositories '''WebRTC Voice Module'''] || Erweitert OpenSimulator um WebRTC-Sprachfunktionen über Janus-Gateway. || Ein aktuelleres Modul (letzte Aktualisierung vor etwa einem Monat).&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gunthar RegionWeb'''] || Kombiniertes Modul für eine pro-Region-Website, Estate-Tools und Wallet-Portal. || Aus OpenSim-Continuum (Alpha-Integration). Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''GroupAutoInvite'''] || Modul für automatische Gruppeneinladungen. || Aus OpenSim-Continuum. Optionales Regionsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimMarketplace'''] || Addon für die Direktlieferung im OpenSim-Marktplatz. || Aus OpenSim-Continuum. Standardmäßig deaktiviert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Gloebit money module'''] || Geldmodul für die Integration von Gloebit. || Aus OpenSim-Continuum. Optionales Wirtschaftsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''MoneyServer Compatibility'''] || Kompatibilitätsdienst für das etablierte DTL/NSL-Protokoll. || Aus OpenSim-Continuum. '''MySQL-spezifisch'''.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''ContinuumEconomy'''] || Eigenständiger Dienst und Regionsmodul mit Unterstützung für MySQL, PostgreSQL und SQLite. || Aus OpenSim-Continuum (Alpha). Nicht für Live-Betrieb empfohlen.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''HoloPhysicsGuard'''] || Modul für Physik-Schutzfunktionen. || Aus OpenSim-Continuum. &amp;lt;code&amp;gt;PersistSleep&amp;lt;/code&amp;gt; nur mit MySQL/MariaDB.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimSearch'''] || Kompatibilitätsclient für die Viewer-Verzeichnissuche. || Aus OpenSim-Continuum. Benötigt einen separaten Suchdienst.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimTide'''] || Modul für Gezeiten-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''OpenSimWeather'''] || Modul für Wetter-Effekte in Regionen. || Aus OpenSim-Continuum. Optionales Umgebungsmodul.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Ramius1701/OpenSim-Continuum/tree/master/addon-modules '''Viewer Abuse Reports'''] || Modul für die Verarbeitung von Missbrauchsmeldungen (Abuse Reports). || Aus OpenSim-Continuum. Dienste sind implementiert.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/gloebit/opensim-moneymodule-gloebit '''gloebit/opensim-moneymodule-gloebit'''] || Vermutlich ein weiteres Gloebit-Geldmodul. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/opensimcurrencyserver-dotnet '''ManfredAabye/opensimcurrencyserver-dotnet'''] || Ein Währungsserver für OpenSim, basierend auf .NET. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/QuillLittlefeather/OpenSim-Addon-modules '''QuillLittlefeather/OpenSim-Addon-modules'''] || Vermutlich eine Sammlung verschiedener Addon-Module. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/OpenSim.RemoteAdmin.2025 '''ManfredAabye/OpenSim.RemoteAdmin.2025'''] || Ein Modul für die Fernverwaltung (Remote Admin) von OpenSim. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jamenai/opensim-addon-modules-exp '''jamenai/opensim-addon-modules-exp'''] || Ein experimentelles Repository mit Addon-Modulen. || Genauer Inhalt/Status müsste selbst geprüft werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die hier gesammelten Informationen erheben keinen Anspruch auf Vollständigkeit oder Aktualität. Für die genauesten und aktuellsten Informationen zu einem Modul sollten Sie immer das jeweilige Repository direkt einsehen.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/LSL_Status/Functions</id>
		<title>LSL Status/Functions</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/LSL_Status/Functions"/>
				<updated>2026-04-30T07:25:18Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
= What is the current LSL Function Status? =&lt;br /&gt;
&lt;br /&gt;
Back to [[LSL Status]]&lt;br /&gt;
&lt;br /&gt;
== LSL Functions Status ==&lt;br /&gt;
&lt;br /&gt;
'''Updated: October 28, 2014 using OpenSim-1a24b7f/r25290 (0.8-post-fixes)'''&lt;br /&gt;
   added EEP function tested with Y and X Engine using OpenSim 0.9.2.0 Yeti Dev night build 2020-09-09&lt;br /&gt;
&lt;br /&gt;
The update will reflect ALL current LL-LSL Functions including those which are not supported in OpenSimulator.&amp;lt;br /&amp;gt;&lt;br /&gt;
These unsupported functions (notably Pathfinding etc) are there to show what is implemented &amp;amp; not.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is a total of 415 LL Functions as of the date of the update.&amp;lt;br /&amp;gt;&lt;br /&gt;
    Deprecated Functions:  12 indicated&amp;lt;br /&amp;gt;&lt;br /&gt;
    God Mode Functions:     3 indicated&amp;lt;br /&amp;gt;&lt;br /&gt;
    Pathfinding Functions: 12 indicated. (Path Finding is '''not''' supported by OpenSimulator)&amp;lt;br /&amp;gt;&lt;br /&gt;
    Total remaining functions: 389&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;llXorBase64Strings&lt;br /&gt;
Function List Reference at SL. [http://wiki.secondlife.com/wiki/Template:LSL_All_Functions/Name Reference]&lt;br /&gt;
&lt;br /&gt;
== Source Delta (2026-04-30) ==&lt;br /&gt;
&lt;br /&gt;
This page was cross-checked against ''OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs''.&lt;br /&gt;
Detailed local categorization: ''LSL-Delta-Categories.txt''&lt;br /&gt;
&lt;br /&gt;
* LSL source unique signatures: 473&lt;br /&gt;
* LSL unique names in compared wiki files: 501&lt;br /&gt;
* LSL missing in wiki: 0&lt;br /&gt;
* LSL wiki-only (not found in current interface): 28&lt;br /&gt;
&lt;br /&gt;
'''LSL missing in wiki (source present) categories'''&lt;br /&gt;
* &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''LSL wiki-only (source missing) categories'''&lt;br /&gt;
* LL-only Environment APIs (2)&lt;br /&gt;
* LL-only Experience/KeyValue (11)&lt;br /&gt;
* LL-only Pathfinding/Characters (12)&lt;br /&gt;
* Wiki legacy/other not in interface (3)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' If the Implemented field is blank, the function requires testing and verification.  Possibly incomplete or stub within the OpenSimulator Source code.&amp;lt;br /&amp;gt;&lt;br /&gt;
{{LSL Key Table}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click on a letter to see the implementation information or click on the function to see an example how the function was tested in-world.&lt;br /&gt;
&lt;br /&gt;
{{ABC}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;width: 100%;&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#57C604;font-size:10pt;font-weight:bold;border-bottom:1px solid;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;bottom&amp;quot;&lt;br /&gt;
| width=&amp;quot;5%&amp;quot; scope=&amp;quot;col&amp;quot; | Function &lt;br /&gt;
| width=&amp;quot;2%&amp;quot; scope=&amp;quot;col&amp;quot; | Implemented&lt;br /&gt;
| width=&amp;quot;2%&amp;quot; scope=&amp;quot;col&amp;quot; | Developer&lt;br /&gt;
| width=&amp;quot;2%&amp;quot; scope=&amp;quot;col&amp;quot; | Tester &lt;br /&gt;
| width=&amp;quot;10%&amp;quot; scope=&amp;quot;col&amp;quot; | Comments&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAbs&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=See also [[LlAbs|llAbs]]&lt;br /&gt;
|anc=A&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAcos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=F&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAddToLandBanList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAddToLandPassList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAdjustSoundVolume&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAgentInExperience&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAllowInventoryDrop&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Patnad&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAngleBetween&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=NUnit&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llApplyImpulse&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llApplyRotationalImpulse&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAsin&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAtan2&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAttachToAvatar&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAttachToAvatarTemp&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev &lt;br /&gt;
&lt;br /&gt;
with an error message in Singularity&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAvatarOnLinkSitTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAvatarOnSitTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Teravus&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAxes2Rot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Patnad&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAxisAngle2Rot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llBase64ToInteger&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=B&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llBase64ToString&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llBreakAllLinks&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llBreakLink&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCastRay&lt;br /&gt;
|status= full&lt;br /&gt;
|impl= Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=C&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCeil&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llChar&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llClearCameraParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llClearLinkMedia&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llClearPrimMedia&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCloseRemoteDataChannel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCloud&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCollisionFilter&lt;br /&gt;
|status=full&lt;br /&gt;
|impl= yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCollisionSound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCollisionSprite&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llComputeHash&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCreateCharacter&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCreateKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCreateLink&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCSV2List&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDataSizeKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDeleteCharacter&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
|anc=D&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDeleteKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDeleteSubList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDeleteSubString&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDerezObject&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetachFromAvatar&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedGrab&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedGroup&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedLinkNumber&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=tested at 2011.01.25 on 0.7.1 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedOwner&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchBinormal&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchFace&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchNormal&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchST&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Azwaldo Villota&lt;br /&gt;
|comment=* Tested in OpenSim 0.8.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchUV&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=acryline&lt;br /&gt;
|comment=Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedType&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedVel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDialog&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDie&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Krtaylor&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDumpList2String&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEdgeOfWorld&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes*&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Garmin Kawaguichi&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=E&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEjectFromLand&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEmail&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEscapeURL&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEuler2Rot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEvade&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llExecCharacterCmd&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llFabs&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
|anc=F&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llFleeFrom&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llFloor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llForceMouselook&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llFrand&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGenerateKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=G&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAccel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAgentInfo&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAgentLanguage&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=cinderblocks&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=Working as of 0.8.2.0 for local avatar only &lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAgentList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAgentSize&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAlpha&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=ALLSIDES returns default texture, not sum, specific faces display correctly&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAndResetTime&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2750)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAnimation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=StrawberryFride&lt;br /&gt;
|test=StrawberryFride&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAnimationList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAnimationOverride&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=works in 0901&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAttached&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAttachedList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetBoundingBox&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCameraAspect&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCameraFOV&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCameraPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Phrearch&lt;br /&gt;
|test=Phrearch&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCameraRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCenterOfMass&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetClosestNavPoint&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetColor&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=ALLSIDES returns default texture, not average, anything trying to grab more than 3 sides fails per example 2&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCreator&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetDate&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetDayLength&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetDayOffset&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetDisplayName&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= returns usernames&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetEnergy&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Always returns 1.0f&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetEnv&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetEnvironment&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Environment API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetExperienceDetails&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetExperienceErrorMessage&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetForce&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetFreeMemory&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetFreeURLs&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetGeometricCenter&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetGMTclock&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetHealth&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetHTTPHeader&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Tokeiito&lt;br /&gt;
|comment=tested at 2011.01.25 on 0.7.1 Dev with XEngine&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryAcquireTime&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryCreator&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryDesc&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryNumber&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryPermMask&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryType&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLandOwnerAt&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkMedia&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkNumber&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2754)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkNumberOfSides&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Azwaldo Villota&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkPrimitiveParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkSitFlags&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetListEntryType&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetListLength&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2750)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLocalPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLocalRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMass&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMassMKS&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMaxScaleFactor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMemoryLimit&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMinScaleFactor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMoonDirection&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMoonRotation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNextEmail&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNotecardLine&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Krtaylor&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNotecardLineSync&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNumberOfNotecardLines&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Krtaylor&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNumberOfPrims&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNumberOfSides&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectAnimationNames&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectDesc&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectDetails&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectLinkKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= 0.9.2.2&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectMass&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=Sitting avatars are phanton, don't count for the mass.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectPermMask&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectPrimCount&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetOmega&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetOwner&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetOwnerKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelDetails&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelFlags&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelMaxPrims&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelMusicURL&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelPrimCount&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelPrimOwners&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=See also [[LlGetParcelPrimOwners|llGetParcelPrimOwners]]&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPermissions&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPermissionsKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPhysicsMaterial&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPrimitiveParams&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPrimMediaParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionAgentCount&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionCorner&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionDayLength&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionDayOffset&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionFlags&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionFPS&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Always returns 10.0f&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionMoonDirection&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionMoonRotation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionSunDirection&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionSunRotation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionTimeDilation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRenderMaterial&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRootPosition&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRootRotation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetScale&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetScriptName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetScriptState&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSimStats&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSimulatorHostname&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSPMaxMemory&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetStartParameter&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Returns always 0!   Same limitations as llSetStatus&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetStartString&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetStaticPath&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetStatus&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=dev&lt;br /&gt;
|test=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSubString&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSunDirection&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Krtaylor&lt;br /&gt;
|test=FredoChaplin&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSunRotation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTextureOffset&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTextureRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTextureScale&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTime&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTimeOfDay&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Vytek&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTimestamp&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTorque&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetUnixTime&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetUsedMemory&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetUsername&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetVel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetVisualParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetWallclock&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGiveInventory&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGiveInventoryList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Patnad&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGiveMoney&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGodLikeRezObject&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGround&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGroundContour&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGroundNormal&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGroundRepel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGroundSlope&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llHash&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llHMAC&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llHTTPRequest&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=H&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llHTTPResponse&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Tokeiito&lt;br /&gt;
|comment=Tested on 2011.01.25 with 0.7.1 Dev OS and xEngine&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llInsertString&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= Unlike SL, negative indexes are relative to end of string, so not compatible in this case&lt;br /&gt;
|anc=I&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llInstantMessage&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=100%&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llIntegerToBase64&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llIsFriend&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llIsLinkGLTFMaterial&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llJson2List&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llJsonGetValue&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llJsonSetValue&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llJsonValueType&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llKey2Name&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=K&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llKeyCountKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llKeysKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinear2sRGB&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=0.9.3.0&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkAdjustSoundVolume&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkParticleSystem&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=L&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkPlaySound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=L&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataAvailable&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataCountFound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataCountKeys&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataDelete&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataDeleteFound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataDeleteProtected&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataFindKeys&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataListKeys&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataRead&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataReadProtected&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataReset&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataWrite&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataWriteProtected&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkSetSoundQueueing&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkSetSoundRadius&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkSitTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkStopSound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2CSV&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Float&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Integer&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Json&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Key&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2List&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2ListSlice&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2ListStrided&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Rot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2754)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2String&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Vector&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListen&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListenControl&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListenRemove&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListFindList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Needed for Kan-ed#11&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListFindListNext&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListFindStrided&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListInsertList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListRandomize&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListReplaceList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListSort&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListSortStrided&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListStatistics&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLoadURL&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLog&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLog10&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLookAt&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLoopSound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLoopSoundMaster&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLoopSoundSlave&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMakeExplosion&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
|anc=M&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMakeFire&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMakeFountain&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMakeSmoke&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llManageEstateAccess&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMapBeacon&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMapDestination&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMD5String&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMessageLinked&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMinEventDelay&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llModifyLand&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llModPow&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMoveToTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llName2Key&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llNavigateTo&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
|anc=N&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llOffsetTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
|anc=O&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llOpenRemoteDataChannel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llOrd&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llOverMyLand&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llOwnerSay&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llParcelMediaCommandList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=P&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llParcelMediaQuery&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llParseString2List&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Spacers are not parsed if separator list is empty&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llParseStringKeepNulls&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llParticleSystem&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Teravus&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPassCollisions&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= True/False argument only, as SL was until 2015&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPassTouches&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= True/False argument only, as SL was until 2015&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPatrolPoints&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPlaySound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Azwaldo Villota&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPlaySoundSlave&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPointAt&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPow&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPreloadSound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPursue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPushObject&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReadKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRefreshPrimURL&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=R&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRegionSay&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRegionSayTo&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=BlueWall&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReleaseCamera&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReleaseControls&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReleaseURL&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoteDataReply&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoteDataSetRegion&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoteLoadScript&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated (from LSL Wiki)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoteLoadScriptPin&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoveFromLandBanList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoveFromLandPassList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoveInventory&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoveVehicleFlags&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReplaceSubString&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestAgentData&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestDisplayName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestExperiencePermissions&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestInventoryData&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestPermissions&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestSecureURL&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestSimulatorData&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= Will only report status as up, if the region is registered to grid service, otherwise unknown. Does not test actual connection or any status of a region. Does not return specific version string.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestURL&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Tokeiito&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestUserKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestUsername&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetAnimationOverride&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetLandBanList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetLandPassList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReturnObjectsByID&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Legacy wiki entry. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReturnObjectsByOwner&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Legacy wiki entry. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetOtherScript&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetScript&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=This function is ignored in the state_entry() function of the default state&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetTime&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2750)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRezAtRoot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRezObject&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRezObjectWithParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Angle&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Axis&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Euler&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Fwd&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Left&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Up&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRotateTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRotBetween&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRotLookAt&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Kayaker Magic&lt;br /&gt;
|comment=Works different than SL (better?)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRotTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRotTargetRemove&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSameGroup&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=S&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSay&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)(limited to 1023 chars)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llScaleByFactor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llScaleTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llScriptDanger&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llScriptProfiler&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSendRemoteData&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSensor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works beyond 96m :) tested past 1000m&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSensorRemove&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSensorRepeat&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works beyond 96m :) tested past 1000m&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetAgentEnvironment&lt;br /&gt;
|status=&lt;br /&gt;
|impl=no&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Environment API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetAlpha&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetAngularVelocity&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetAnimationOverride&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=works in 0901&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetBuoyancy&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Mlorrey&lt;br /&gt;
|comment=Works on free objects, does not make avatars buoyant with scripted attachments&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetCameraAtOffset&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetCameraEyeOffset&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetCameraParams&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetClickAction&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetColor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetContentType&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetDamage&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetForce&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= Does not work with current avatar motors physics&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetForceAndTorque&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetHoverHeight&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes/No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Gimisa &lt;br /&gt;
|comment= 0901 works with ubode physic ONLY &lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetInventoryPermMask&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetKeyframedMotion&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Kayaker Magic&lt;br /&gt;
|comment=Worked well since OpenSim 0.7.6&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkAlpha&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Charlie Omega&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2760)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkCamera&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkColor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Charlie Omega&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2760)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkMedia&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkPrimitiveParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkPrimitiveParamsFast&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkSitFlags&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkTextureAnim&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLocalRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetMemoryLimit&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetObjectDesc&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=100% implemented&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetObjectName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=100% implemented&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetObjectPermMask&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetParcelMusicURL&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPayPrice&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPhysicsMaterial&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688) (now with limitation of 10m as in sl)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPrimitiveParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPrimMediaParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=* Requires testing and Verification (update here plz)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPrimURL&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetRegionPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=MrFrans/Frans Charming&lt;br /&gt;
|comment=Tested on the Kitely and Avacon grids.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetRemoteScriptAccessPin&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Tokeiito&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetRenderMaterial&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetScale&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetScriptState&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetSitText&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Teravus&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetSoundQueueing&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetSoundRadius&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetStatus&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetText&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2760)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetTextureAnim&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetTimerEvent&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688) (uses Timer plugin!)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetTorque&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetTouchText&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVehicleFlags&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVehicleFloatParam&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVehicleRotationParam&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVehicleType&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVehicleVectorParam&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVelocity&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSHA1String&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSHA256String&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llShout&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688) (limits 1023 chars)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSin&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSitOnLink&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Legacy wiki entry. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}{{FunctionStatusRow&lt;br /&gt;
|name=llSitTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSleep&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=This function CAN lock script threads on XEngine, do not use with XEngine&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSound&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSoundPreload&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSqrt&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llsRGB2Linear&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStartAnimation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStartObjectAnimation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopAnimation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopHover&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopLookAt&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopMoveToTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopObjectAnimation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopPointAt&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopSound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStringLength&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStringToBase64&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStringTrim&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Hashbox&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSubStringIndex&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTakeCamera&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
|anc=T&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTakeControls&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Patnad&lt;br /&gt;
|comment=Needed for Kan-ed#12&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTan&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTargetedEmail&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTargetOmega&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTargetRemove&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTeleportAgent&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTeleportAgentGlobalCoords&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTeleportAgentHome&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTextBox&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie_T&lt;br /&gt;
|test=Fritigern&lt;br /&gt;
|comment=Operational with Viewers that support it.  V3 and above all do.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llToLower&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llToUpper&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTransferLindenDollars&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires External money Module&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTriggerSound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTriggerSoundLimited&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llUnescapeURL&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=U&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llUnSit&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llUpdateCharacter&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llUpdateKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llVecDist&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Azwaldo Villota&lt;br /&gt;
|comment=Tested in OpenSim 0.7.6 Dev&lt;br /&gt;
|anc=V&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llVecMag&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Azwaldo Villota&lt;br /&gt;
|comment=Tested in OpenSim 0.7.6 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llVecNorm&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llVolumeDetect&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Gerhard&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llWanderWithin&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
|anc=W&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llWater&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llWhisper&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688) (but limited to 1023 chars)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llWind&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llWorldPosToHUD&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llXorBase64&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}{{FunctionStatusRow&lt;br /&gt;
|name=llXorBase64Strings&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
|anc=X&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llXorBase64StringsCorrect&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Back to [[LSL Status]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Support]]&lt;br /&gt;
[[Category:Tech Reference]]&lt;br /&gt;
[[Category:Help]]&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
[[Category:Getting Started]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Todo]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Category:OSSL_Functions</id>
		<title>Category:OSSL Functions</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Category:OSSL_Functions"/>
				<updated>2026-04-30T06:49:07Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#FFA500; padding:10px; padding-bottom:5px; border: 1px #FF544F solid&amp;quot;&amp;gt;&lt;br /&gt;
This information is relative to (almost) the last OpenSimulator Development version. In some cases it may not apply to older versions.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OSSL function permissions ==&lt;br /&gt;
Several OSSL functions have execution permission control to prevent abusive or dangerous use.&lt;br /&gt;
&lt;br /&gt;
This is controlled by files osslDefaultEnable.ini and osslEnable.ini, by default in folder bin/config-include&amp;lt;br&amp;gt;&lt;br /&gt;
The use logic of these two files is identical to OpenSimDefaults.ini and OpenSim.ini&lt;br /&gt;
&lt;br /&gt;
Older OpenSimulator versions only used file osslEnable.ini.&amp;lt;br&amp;gt;&lt;br /&gt;
Some older OpenSimulator versions had checks for all OSSLfunctions.&amp;lt;br&amp;gt;&lt;br /&gt;
That made no sense for many functions, so now many are always allowed wasting no time on useless checks.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For details about these permissions, please read file OpenSimDefaults.ini&lt;br /&gt;
&lt;br /&gt;
= osslDefaultEnable.ini =&lt;br /&gt;
This file contains the defaults for OSSL execution permissions set by OpenSimulator dev team.&amp;lt;br&amp;gt;&lt;br /&gt;
Instead of changing defaults defined in code, the OpenSimulator dev team may decide to just make changes in this file.&amp;lt;br&amp;gt;&lt;br /&gt;
This file was not present on older OpenSimulator versions.&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to change permissions, copy the respective entry to osslEnable.ini and modify there.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= osslEnable.ini =&lt;br /&gt;
This file contains the local overrides for OSSL permissions.&amp;lt;br&amp;gt;&lt;br /&gt;
It is read after osslDefaultEnable.ini, and any entry on it replaces the old one.&amp;lt;br&amp;gt;&lt;br /&gt;
This file is not provided on code packages, an osslEnable.ini.example is.&amp;lt;br&amp;gt;&lt;br /&gt;
At first time setup, you will need to copy the example file to osslEnable.ini and then edit it for your needs, using osslDefaults.ini as reference.&amp;lt;br&amp;gt;&lt;br /&gt;
This was the only file used on older OpenSimulator versions.&lt;br /&gt;
&lt;br /&gt;
== Current OSSL Functions Implemented  ==&lt;br /&gt;
&lt;br /&gt;
=== Avatars ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
&lt;br /&gt;
* [[osAgentSaveAppearance]]&lt;br /&gt;
* [[osAvatarName2Key]]&lt;br /&gt;
* [[osAvatarPlayAnimation]] &lt;br /&gt;
* [[osAvatarStopAnimation]] &lt;br /&gt;
* [[osAvatarType]]&lt;br /&gt;
* [[osCauseDamage]] &lt;br /&gt;
* [[osCauseHealing]]&lt;br /&gt;
* [[osDetectedCountry]]&lt;br /&gt;
* [[osDropAttachment]]&lt;br /&gt;
* [[osDropAttachmentAt]]&lt;br /&gt;
* [[osEjectFromGroup]]&lt;br /&gt;
* [[osForceAttachToAvatar]]&lt;br /&gt;
* [[osForceAttachToAvatarFromInventory]]&lt;br /&gt;
* [[osForceAttachToOtherAvatarFromInventory]]&lt;br /&gt;
* [[osForceDetachFromAvatar]]&lt;br /&gt;
* [[osForceDropAttachment]]&lt;br /&gt;
* [[osForceDropAttachmentAt]]&lt;br /&gt;
* [[osForceOtherSit]]&lt;br /&gt;
* [[osGetAgentIP]] &lt;br /&gt;
* [[osGetAgents]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osGetAgentCountry]]&lt;br /&gt;
* [[osGetAvatarHomeURI]]&lt;br /&gt;
* [[osGetAvatarList]] &lt;br /&gt;
* [[osGetGender]]&lt;br /&gt;
* [[osGetHealRate]]&lt;br /&gt;
* [[osGetHealth]]&lt;br /&gt;
* [[osGetNumberOfAttachments]]&lt;br /&gt;
* [[osInviteToGroup]]&lt;br /&gt;
* [[osKickAvatar]]&lt;br /&gt;
* [[osOwnerSaveAppearance]]&lt;br /&gt;
* [[osSetHealRate]]&lt;br /&gt;
* [[osSetHealth]]&lt;br /&gt;
* [[osSetOwnerSpeed]]&lt;br /&gt;
* [[osSetSpeed]]&lt;br /&gt;
* [[osLocalTeleportAgent]]&lt;br /&gt;
* [[osTeleportAgent]] &lt;br /&gt;
* [[osTeleportOwner]] &lt;br /&gt;
* [[osReplaceAgentEnvironment]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== NPCs ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[osIsNpc]]&lt;br /&gt;
* [[osNpcCreate]]&lt;br /&gt;
* [[osGetNpcList]]&lt;br /&gt;
* [[osNpcGetPos]]&lt;br /&gt;
* [[osNpcGetRot]]&lt;br /&gt;
* [[osNpcGetOwner]]&lt;br /&gt;
* [[osNpcLookAt]] {{E}}&lt;br /&gt;
* [[osNpcLoadAppearance]]&lt;br /&gt;
* [[osNpcMoveTo]]&lt;br /&gt;
* [[osNpcMoveToTarget]]&lt;br /&gt;
* [[osNpcPlayAnimation]]&lt;br /&gt;
* [[osNpcRemove]]&lt;br /&gt;
* [[osNpcSaveAppearance]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osNpcSay]]&lt;br /&gt;
* [[osNpcSayTo]]&lt;br /&gt;
* [[osNpcSetProfileAbout]]&lt;br /&gt;
* [[osNpcSetProfileImage]]&lt;br /&gt;
* [[osNpcSetRot]]&lt;br /&gt;
* [[osNpcShout]]&lt;br /&gt;
* [[osNpcSit]]&lt;br /&gt;
* [[osNpcStand]]&lt;br /&gt;
* [[osNpcStopMoveToTarget]]&lt;br /&gt;
* [[osNpcStopAnimation]]&lt;br /&gt;
* [[osNpcTouch]]&lt;br /&gt;
* [[osNpcWhisper]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Prim ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[osClearInertia]]&lt;br /&gt;
* [[osClearObjectAnimations]]&lt;br /&gt;
* [[osDie]]&lt;br /&gt;
* [[osForceBreakAllLinks]]&lt;br /&gt;
* [[osForceBreakLink]] &lt;br /&gt;
* [[osForceCreateLink]]&lt;br /&gt;
* [[osGetInertiaData]]&lt;br /&gt;
* [[osGetInventoryItemKey]]&lt;br /&gt;
* [[osGetInventoryName]]&lt;br /&gt;
* [[osGetInventoryNames]] {{new}}&lt;br /&gt;
* [[osGetInventoryItemKeys]] {{new}}&lt;br /&gt;
* [[osGetInventoryDesc]]&lt;br /&gt;
* [[osGetInventoryLastOwner]]&lt;br /&gt;
* [[osGetLinkInventoryName]] {{new}}&lt;br /&gt;
* [[osGetLinkInventoryNames]] {{new}}&lt;br /&gt;
* [[osGetInventoryItemKey| osGetLinkInventoryItemKey]] {{new}}&lt;br /&gt;
* [[osGetInventoryItemKeys | osGetLinkInventoryItemKeys]] {{new}}&lt;br /&gt;
* [[osGetLinkInventoryItemKey]]&lt;br /&gt;
* [[osGetLinkInventoryItemKeys]]&lt;br /&gt;
* [[osGetLinkInventoryKey]] {{new}}&lt;br /&gt;
* [[osGetLinkInventoryKeys]]&lt;br /&gt;
* [[osGetLinkInventoryDesc]] {{new}}&lt;br /&gt;
* [[osGiveLinkInventory]] {{new}}&lt;br /&gt;
* [[osGiveLinkInventoryList]] {{new}}&lt;br /&gt;
* [[osRemoveLinkInventory]] {{new}}&lt;br /&gt;
* [[osGetLastChangedEventKey]]&lt;br /&gt;
* [[osGetLinkNumber]]&lt;br /&gt;
* [[osGetLinkColor]]&lt;br /&gt;
* [[osGetLinkPrimitiveParams]] &lt;br /&gt;
* [[osGetPrimitiveParams]] &lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osGetRezzingObject]]&lt;br /&gt;
* [[osGetSitActiveRange]]&lt;br /&gt;
* [[osGetLinkSitActiveRange]]&lt;br /&gt;
* [[osGetSitTargetPos]] {{new}}&lt;br /&gt;
* [[osGetSitTargetRot]] {{new}}&lt;br /&gt;
* [[osGetStandTarget]]&lt;br /&gt;
* [[osGetLinkStandTarget]]&lt;br /&gt;
* [[osLinkParticleSystem]] {{new}}&lt;br /&gt;
* [[osMessageAttachments]]&lt;br /&gt;
* [[osMessageObject]]&lt;br /&gt;
* [[osParticleSystem]] {{new}}&lt;br /&gt;
* [[osSetInertia]]&lt;br /&gt;
* [[osSetInertiaAsBox]]&lt;br /&gt;
* [[osSetInertiaAsCylinder]]&lt;br /&gt;
* [[osSetInertiaAsSphere]]&lt;br /&gt;
* [[osSetPrimitiveParams]] &lt;br /&gt;
* [[osSetProjectionParams]]&lt;br /&gt;
* [[osSetSitActiveRange]]&lt;br /&gt;
* [[osSetLinkSitActiveRange]]&lt;br /&gt;
* [[osSetStandTarget]]&lt;br /&gt;
* [[osSetLinkStandTarget]]&lt;br /&gt;
* [[osTeleportObject]]&lt;br /&gt;
* [[osVolumeDetect]]&lt;br /&gt;
* [[osGetPrimCount]] {{new}}&lt;br /&gt;
* [[osGetSittingAvatarsCount]] {{new}}&lt;br /&gt;
&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Prim Drawing / Dynamic Texture ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[osDrawEllipse]]&lt;br /&gt;
* [[osDrawFilledEllipse]]&lt;br /&gt;
* [[osDrawFilledPolygon]]&lt;br /&gt;
* [[osDrawFilledRectangle]]&lt;br /&gt;
* [[osDrawImage]]&lt;br /&gt;
* [[osDrawLine]]&lt;br /&gt;
* [[osDrawPolygon]]&lt;br /&gt;
* [[osDrawRectangle]]&lt;br /&gt;
* [[osDrawResetTransform]]&lt;br /&gt;
* [[osDrawRotationTransform]]&lt;br /&gt;
* [[osDrawScaleTransform]]&lt;br /&gt;
* [[osDrawText]]&lt;br /&gt;
* [[osDrawTextText]]&lt;br /&gt;
* [[osDrawTranslationTransform]]&lt;br /&gt;
* [[osGetDrawStringSize]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osMovePen]]&lt;br /&gt;
* [[osSetFontName]]&lt;br /&gt;
* [[osSetFontSize]]&lt;br /&gt;
* [[osSetPenCap]]&lt;br /&gt;
* [[osSetPenColor]]&lt;br /&gt;
* [[osSetPenSize]]&lt;br /&gt;
* [[osSetDynamicTextureData]]&lt;br /&gt;
* [[osSetDynamicTextureDataFace]]&lt;br /&gt;
* [[osSetDynamicTextureDataBlend]]&lt;br /&gt;
* [[osSetDynamicTextureDataBlendFace]] &lt;br /&gt;
* [[osSetDynamicTextureURL]]&lt;br /&gt;
* [[osSetDynamicTextureURLBlend]]&lt;br /&gt;
* [[osSetDynamicTextureURLBlendFace]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Notecard ===&lt;br /&gt;
* [[osGetNotecard]] &lt;br /&gt;
* [[osGetNotecardLine]] &lt;br /&gt;
* [[osGetNumberOfNotecardLines]]&lt;br /&gt;
* [[osMakeNotecard]]&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[osAdjustSoundVolume]]&lt;br /&gt;
* [[osCollisionSound]]&lt;br /&gt;
* [[osLoopSound]]&lt;br /&gt;
* [[osLoopSoundMaster]]&lt;br /&gt;
* [[osLoopSoundSlave]]&lt;br /&gt;
* [[osPlaySound]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osPlaySoundSlave]]&lt;br /&gt;
* [[osPreloadSound]]&lt;br /&gt;
* [[osSetSoundRadius]]&lt;br /&gt;
* [[osStopSound]]&lt;br /&gt;
* [[osTriggerSound]]&lt;br /&gt;
* [[osTriggerSoundLimited]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== HTTP ===&lt;br /&gt;
* [[osRequestSecureURL]]&lt;br /&gt;
* [[osRequestURL]]&lt;br /&gt;
* [[osSetContentType]]&lt;br /&gt;
&lt;br /&gt;
=== Parcel ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[osParcelJoin]] &lt;br /&gt;
* [[osParcelSubdivide]] &lt;br /&gt;
* [[osGetParcelDwell]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osSetParcelDetails]]&lt;br /&gt;
* [[osGetParcelDetails]]&lt;br /&gt;
* [[osGetParcelIDs]]&lt;br /&gt;
* [[osGetParcelID]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Terrain ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[osGetTerrainHeight]] &lt;br /&gt;
* [[osSetTerrainHeight]] &lt;br /&gt;
* [[osSetTerrainTexture]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osSetTerrainTextures]] {{new}}&lt;br /&gt;
* [[osSetTerrainTextureHeight]]&lt;br /&gt;
* [[osTerrainFlush]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Region / Parcel Environment ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[osGetCurrentSunHour]] &lt;br /&gt;
* [[osGetApparentTime]]&lt;br /&gt;
* [[osGetApparentTimeString]]&lt;br /&gt;
* [[osGetApparentRegionTime]]&lt;br /&gt;
* [[osGetApparentRegionTimeString]]&lt;br /&gt;
* [[osGetWindParam]] &lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osSetRegionWaterHeight]] &lt;br /&gt;
* [[osSetWindParam]]&lt;br /&gt;
* [[osWindActiveModelPluginName]]&lt;br /&gt;
* [[osReplaceParcelEnvironment]]&lt;br /&gt;
* [[osReplaceRegionEnvironment]]&lt;br /&gt;
* [[osResetEnvironment]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Grid / Region Information ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[osCheckODE]]&lt;br /&gt;
* [[osGetGridCustom]]&lt;br /&gt;
* [[osGetGridGatekeeperURI]]&lt;br /&gt;
* [[osGetGridHomeURI]]&lt;br /&gt;
* [[osGetGridLoginURI]]&lt;br /&gt;
* [[osGetGridName]] &lt;br /&gt;
* [[osGetGridNick]] &lt;br /&gt;
* [[osGetMapTexture]] &lt;br /&gt;
* [[osGetPhysicsEngineName]]&lt;br /&gt;
* [[osGetPhysicsEngineType]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osGetRegionMapTexture]] &lt;br /&gt;
* [[osGetRegionSize]]&lt;br /&gt;
* [[osGetRegionStats]] &lt;br /&gt;
* [[osGetScriptEngineName]] &lt;br /&gt;
* [[osGetSimulatorMemory]] &lt;br /&gt;
* [[osGetSimulatorMemoryKB]]&lt;br /&gt;
* [[osGetSimulatorVersion]] &lt;br /&gt;
* [[osLoadedCreationDate]] &lt;br /&gt;
* [[osLoadedCreationID]] &lt;br /&gt;
* [[osLoadedCreationTime]] &lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
* [[osConsoleCommand]] &lt;br /&gt;
* [[osRegionNotice]]&lt;br /&gt;
* [[osRegionRestart]] &lt;br /&gt;
* [[osSetParcelMediaURL]] &lt;br /&gt;
* [[osSetParcelMusicURL]]&lt;br /&gt;
* [[osSetParcelSIPAddress]]&lt;br /&gt;
&lt;br /&gt;
=== Script ===&lt;br /&gt;
*[[osResetAllScripts]]&lt;br /&gt;
&lt;br /&gt;
=== String Manipulation ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[osFormatString]]&lt;br /&gt;
* [[osListenRegex]]&lt;br /&gt;
* [[osMatchString]]&lt;br /&gt;
* [[osRegexIsMatch]]&lt;br /&gt;
* [[osReplaceString]]&lt;br /&gt;
* [[osStringSubString]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osStringStartsWith]]&lt;br /&gt;
* [[osStringEndsWith]]&lt;br /&gt;
* [[osStringIndexOf]]&lt;br /&gt;
* [[osStringLastIndexOf]]&lt;br /&gt;
* [[osStringRemove]]&lt;br /&gt;
* [[osStringReplace]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[osAESEncrypt]] {{new}}&lt;br /&gt;
* [[osAESDecrypt]] {{new}}&lt;br /&gt;
* [[osAESEncryptTo]] {{new}}&lt;br /&gt;
* [[osAESDecryptFrom]] {{new}}&lt;br /&gt;
* [[osAngleBetween]]&lt;br /&gt;
* [[osApproxEquals]]&lt;br /&gt;
* [[osGetPSTWallclock]]&lt;br /&gt;
* [[osListAs*]] {{new}}&lt;br /&gt;
* [[osListAsFloat]]&lt;br /&gt;
* [[osListAsInteger]]&lt;br /&gt;
* [[osListAsRotation]]&lt;br /&gt;
* [[osListAsString]]&lt;br /&gt;
* [[osListAsVector]]&lt;br /&gt;
* [[osListFindListNext]]&lt;br /&gt;
* [[osOldList2ListStrided]]&lt;br /&gt;
* [[osListSortInPlace]]&lt;br /&gt;
* [[osListSortInPlaceStrided]] {{new}}&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
* [[osIsUUID]]&lt;br /&gt;
* [[osIsNotValidNumber]]&lt;br /&gt;
* [[osKey2Name]]&lt;br /&gt;
* [[osMax]]&lt;br /&gt;
* [[osMin]]&lt;br /&gt;
* [[osRound]]&lt;br /&gt;
* [[osSHA256]]&lt;br /&gt;
* [[osSlerp]]&lt;br /&gt;
* [[osTemperature2sRGB]]&lt;br /&gt;
* [[osUnixTimeToTimestamp]] &lt;br /&gt;
* [[osVecDistSquare]]&lt;br /&gt;
* [[osVecMagSquare]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Deprecated ===&lt;br /&gt;
* [[osParcelSetDetails|&amp;lt;strike&amp;gt;osParcelSetDetails&amp;lt;/strike&amp;gt;]] - Use [[osSetParcelDetails]] &lt;br /&gt;
* [[osSetPenColour|&amp;lt;strike&amp;gt;osSetPenColour&amp;lt;/strike&amp;gt;]] - Use [[osSetPenColor]] &lt;br /&gt;
* [[osSunGetParam|&amp;lt;strike&amp;gt;osSunGetParam&amp;lt;/strike&amp;gt;]] - Use [[osGetSunParam]] &lt;br /&gt;
* [[osSunSetParam|&amp;lt;strike&amp;gt;osSunSetParam&amp;lt;/strike&amp;gt;]] - Use [[osSetSunParam]] &lt;br /&gt;
* [[osTerrainGetHeight|&amp;lt;strike&amp;gt;osTerrainGetHeight&amp;lt;/strike&amp;gt;]] - Use [[osGetTerrainHeight]] &lt;br /&gt;
* [[osTerrainSetHeight|&amp;lt;strike&amp;gt;osTerrainSetHeight&amp;lt;/strike&amp;gt;]] - Use [[osSetTerrainHeight]]&lt;br /&gt;
*&amp;lt;strike&amp;gt;osWindParamGet&amp;lt;/strike&amp;gt; - Use [[osGetWindParam]]&lt;br /&gt;
*&amp;lt;strike&amp;gt;osWindParamSet&amp;lt;/strike&amp;gt; - Use [[osSetWindParam]]&lt;br /&gt;
* [[osList2Double|&amp;lt;strike&amp;gt;osList2Double&amp;lt;/strike&amp;gt;]] - Use llList2Float&lt;br /&gt;
* [[osListAs|&amp;lt;strike&amp;gt;osListAs&amp;lt;/strike&amp;gt;]] - Use explicit variants [[osListAsFloat]], [[osListAsInteger]], [[osListAsRotation]], [[osListAsString]], [[osListAsVector]]&lt;br /&gt;
* [[osGrantScriptPermissions|&amp;lt;strike&amp;gt;osGrantScriptPermissions&amp;lt;/strike&amp;gt;]] - Not in current ''IOSSL_Api.cs'' interface&lt;br /&gt;
* [[osRevokeScriptPermissions|&amp;lt;strike&amp;gt;osRevokeScriptPermissions&amp;lt;/strike&amp;gt;]] - Not in current ''IOSSL_Api.cs'' interface&lt;br /&gt;
* [[osGetSunParam]]&lt;br /&gt;
* [[osSetEstateSunSettings]]&lt;br /&gt;
* [[osSetRegionSunSettings]]&lt;br /&gt;
* [[osSetSunParam]]&lt;br /&gt;
* [[osSetPrimFloatOnWater]]&lt;br /&gt;
&lt;br /&gt;
== See Also  ==&lt;br /&gt;
&lt;br /&gt;
* [[OSSL_vs_LSL|LSL&amp;amp;OSSL : Neighbour functions, similarities and differences]] &lt;br /&gt;
* [[Accessing_Prim_Properties|LSL&amp;amp;OSSL : Guide to prims addressing (by linknum, by uuid)]]&lt;br /&gt;
* [[LSL Status|LSL/OSSL Status Page]] &lt;br /&gt;
*OSSL &lt;br /&gt;
** [[OSSL_Implemented|OSSL Implemented Functions]] &lt;br /&gt;
** [[OSSL Constants|OSSL Constants]] &lt;br /&gt;
** [[OSSL Status/Types|OSSL Types Status Page]] &lt;br /&gt;
** [[OSSL Status/Events|OSSL Events Status Page]] &lt;br /&gt;
&lt;br /&gt;
** [[Dynamic_textures|OSSL osDynamicTextures Functions Index Page]]&lt;br /&gt;
** [[OSSL TextureDrawing|OSSL TextureDrawing Extended Information]]&lt;br /&gt;
** [[OSSLNPC|OSSL functions for working with NPCs]]&lt;br /&gt;
&lt;br /&gt;
** [[OSSL Proposals|OSSL Proposed Functions]] &lt;br /&gt;
** [[OSSL Enabling Functions]] &lt;br /&gt;
** [[OSSL Standards|OSSL Standards]]&lt;br /&gt;
&lt;br /&gt;
* LS&lt;br /&gt;
** [[LightShare#LightShare Scripting|LightShare Functions]]&lt;br /&gt;
&lt;br /&gt;
* MOD&lt;br /&gt;
** [[OSSL Script Library/ModSendCommand|modSendCommand()]]&lt;br /&gt;
** [[OSSL Script Library/ModInvoke|Custom functions using modInvoke()]]&lt;br /&gt;
&lt;br /&gt;
* NPC&lt;br /&gt;
** [[Appearance_Formats|Appearance Notecard Format]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;br /&gt;
[[Category:Scripts]]&lt;br /&gt;
[[Category:OSSL]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/LSL_Status</id>
		<title>LSL Status</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/LSL_Status"/>
				<updated>2026-04-30T06:39:13Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
{{content}}&lt;br /&gt;
&lt;br /&gt;
= What is the current LSL/OSSL Status? =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#FFA500; padding:10px; padding-bottom:5px; border: 1px #FF544F solid&amp;quot;&amp;gt;&lt;br /&gt;
This overview is intentionally brief. Source of truth for available script functions is the OpenSim source code interfaces:&amp;lt;br&amp;gt;&lt;br /&gt;
''OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs'' and ''OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs''.&amp;lt;br&amp;gt;&lt;br /&gt;
Source check on 2026-04-30: ''475'' ll* signatures and ''296'' os* signatures in those interfaces.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
'''This page is always WRONG'''&amp;lt;br&amp;gt;&lt;br /&gt;
''If you find a feature that works that is not listed as &amp;quot;working&amp;quot; here,''&lt;br /&gt;
''Please fully test it out and update it here or make a note that it is working and ready to be tested, if you can't test it.''&lt;br /&gt;
&lt;br /&gt;
== LSL/OSSL Status | Quick Progress Guide ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Script tests'''&lt;br /&gt;
{| style=&amp;quot;border: 1px solid black;&amp;quot; cellspacing=1 width=50% height=15x align=left&lt;br /&gt;
|align=center width=48.0% style=&amp;quot;background:#00E000; padding: 1px 0;&amp;quot;|&lt;br /&gt;
|align=center width=52.0% style=&amp;quot;background:#E00000; padding: 1px 0;&amp;quot;|&lt;br /&gt;
&amp;lt;!-- |align=center width=50.0% style=background:#E00000| --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[[LSL Status/Types|LSL-Types Status]]'''&lt;br /&gt;
{| style=&amp;quot;border: 1px solid black;&amp;quot; cellspacing=1 width=50% height=15x align=left&lt;br /&gt;
|align=center width=100% style=&amp;quot;background:#00E000; padding: 1px 0;&amp;quot;|&lt;br /&gt;
|align=center width=0% style=&amp;quot;background:#E00000; padding: 1px 0;&amp;quot;|&lt;br /&gt;
&amp;lt;!-- |align=center width=40% style=background:#E00000| --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[[LSL Status/Events|LSL-Events Status]]'''&lt;br /&gt;
{| style=&amp;quot;border: 1px solid black;&amp;quot; cellspacing=1 width=50% height=15x align=left&lt;br /&gt;
|align=center width=94.0% style=&amp;quot;background:#00E000; padding: 1px 0;&amp;quot;|&lt;br /&gt;
|align=center width=6.0% style=&amp;quot;background:#E00000; padding: 1px 0;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[[LSL Status/Functions|LSL-Functions Status]]'''&lt;br /&gt;
{| style=&amp;quot;border: 1px solid black;&amp;quot; cellspacing=1 width=50% height=15x align=left&lt;br /&gt;
|align=center width=85.0% style=&amp;quot;background:#00E000; padding: 1px 0;&amp;quot;|&lt;br /&gt;
|align=center width=15.0% style=&amp;quot;background:#E00000; padding: 1px 0;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source Delta (2026-04-30) ==&lt;br /&gt;
&lt;br /&gt;
* Full local report file: ''LSL-OSSL-Source-Delta.txt''&lt;br /&gt;
* LSL categorization report: ''LSL-Delta-Categories.txt''&lt;br /&gt;
* Compared sources: ''ILSL_Api.cs'' and ''IOSSL_Api.cs'' vs ''LSL-OSSL-Status.wiki.txt'' + ''OSSL_Functions.wiki.txt'' + ''LSL_Status_Functions.wiki.txt''&lt;br /&gt;
* OSSL unique signatures in source: 266&lt;br /&gt;
* OSSL unique names in compared wiki files: 270&lt;br /&gt;
* OSSL missing in wiki: 0&lt;br /&gt;
* OSSL wiki-only (not found in source): 4&lt;br /&gt;
* LSL unique signatures in source: 473&lt;br /&gt;
* LSL unique names in compared wiki files: 501&lt;br /&gt;
* LSL missing in wiki: 0&lt;br /&gt;
* LSL wiki-only (not found in source): 28&lt;br /&gt;
&lt;br /&gt;
'''OSSL missing in wiki (source present):'''&lt;br /&gt;
* &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''OSSL wiki-only (source missing):'''&lt;br /&gt;
* (legacy/deprecated names in wiki)&lt;br /&gt;
* osGrantScriptPermissions&lt;br /&gt;
* osList2Double&lt;br /&gt;
* osListAs&lt;br /&gt;
* osRevokeScriptPermissions&lt;br /&gt;
&lt;br /&gt;
'''LSL delta note:'''&lt;br /&gt;
* Source-signature coverage is now complete in the compared wiki files; remaining deltas are LL-only/legacy wiki entries not present in current OpenSim ''ILSL_Api.cs''.&lt;br /&gt;
&lt;br /&gt;
== Latest LSL News ==&lt;br /&gt;
&lt;br /&gt;
* Legacy summary counts can be outdated. Verify exact LSL coverage against ''ILSL_Api.cs'' and current script event handling in source.&lt;br /&gt;
* Some notes on converting [[LSL:PrimitiveParams]] to OpenSimulator PrimitiveBaseShape&lt;br /&gt;
&lt;br /&gt;
== Latest OSSL News ==&lt;br /&gt;
&lt;br /&gt;
* For help enabling OSSL, [[OSSL Enabling Functions|click here]].&lt;br /&gt;
* OSSL permissions are controlled by ''bin/config-include/osslDefaultEnable.ini'' and local overrides in ''bin/config-include/osslEnable.ini.example''.&lt;br /&gt;
* ''bin/OpenSim.ini.example'' enables OSSL by including ''config-include/osslDefaultEnable.ini'' in the ''[OSSL]'' section.&lt;br /&gt;
* [[OSSL TextureDrawing|OSSL texture drawing functions]]&lt;br /&gt;
* [[OS Scripting Tutorial]]&lt;br /&gt;
* The current OpenSim tree includes newer OSSL helpers for inventory/link inventory access, region and parcel environment replacement, inertia handling, encryption and list utilities.&lt;br /&gt;
* For exact currently compiled signatures, always verify against ''IOSSL_Api.cs'' in source.&lt;br /&gt;
&lt;br /&gt;
*OSSL Reference&lt;br /&gt;
**[[OSSL_Implemented|OSSL Implemented Functions]] &lt;br /&gt;
**[[OSSL Constants|OSSL Constants]] &lt;br /&gt;
**[[OSSL Status/Types|OSSL Types Status Page]] &lt;br /&gt;
**[[OSSL Status/Events|OSSL Events Status Page]]&lt;br /&gt;
**[[OSSL TextureDrawing|OSSL TextureDrawing Extended Information]]&lt;br /&gt;
**[[OSSLNPC|OSSL functions for working with NPCs]]&lt;br /&gt;
**[[OSSL Proposals|OSSL Proposed Functions]]&lt;br /&gt;
**[[OSSL Enabling Functions]]&lt;br /&gt;
**[[OSSL Standards|OSSL Standards]]&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
* [[LSL_OSSL_Standards|Proposed LSL OSSL coding standards]]&lt;br /&gt;
* LSL&lt;br /&gt;
** [[LSL Status/Types|LSL Types Status Page]]&lt;br /&gt;
** [[LSL Status/Events|LSL Events Status Page]]&lt;br /&gt;
** [[LSL Status/Functions|LSL Functions Status Page]]&lt;br /&gt;
** [[LSL_Status/Constants|LSL Constants]]&lt;br /&gt;
** [[LSL Status/Kan-ed|Kan-Ed Tests]]&lt;br /&gt;
&lt;br /&gt;
* OSSL&lt;br /&gt;
** [[OSSL_Implemented|OSSL Implemented Functions]]&lt;br /&gt;
** [[OSSL Constants|OSSL Constants]]&lt;br /&gt;
** [[OSSL Status/Types|OSSL Types Status Page]]&lt;br /&gt;
** [[OSSL Status/Events|OSSL Events Status Page]]&lt;br /&gt;
** [[Dynamic_textures|OSSL osDynamicTextures Functions Index Page]]&lt;br /&gt;
** [[OSSL TextureDrawing|OSSL TextureDrawing Extended Information]]&lt;br /&gt;
** [[OSSLNPC|OSSL functions for working with NPCs]]&lt;br /&gt;
** [[OSSL Proposals|OSSL Proposed Functions]]&lt;br /&gt;
** [[OSSL Enabling Functions]]&lt;br /&gt;
** [[OSSL Standards|OSSL Standards]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Support]]&lt;br /&gt;
[[Category:Tech Reference]]&lt;br /&gt;
[[Category:Help]]&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
[[Category:Getting Started]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Todo]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OSSL]]&lt;br /&gt;
[[Category:OSSL_Functions]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/LSL_Status/Functions</id>
		<title>LSL Status/Functions</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/LSL_Status/Functions"/>
				<updated>2026-04-30T06:28:21Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
= What is the current LSL Function Status? =&lt;br /&gt;
&lt;br /&gt;
Back to [[LSL Status]]&lt;br /&gt;
&lt;br /&gt;
== LSL Functions Status ==&lt;br /&gt;
&lt;br /&gt;
'''Updated: October 28, 2014 using OpenSim-1a24b7f/r25290 (0.8-post-fixes)'''&lt;br /&gt;
   added EEP function tested with Y and X Engine using OpenSim 0.9.2.0 Yeti Dev night build 2020-09-09&lt;br /&gt;
&lt;br /&gt;
The update will reflect ALL current LL-LSL Functions including those which are not supported in OpenSimulator.&amp;lt;br /&amp;gt;&lt;br /&gt;
These unsupported functions (notably Pathfinding etc) are there to show what is implemented &amp;amp; not.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is a total of 415 LL Functions as of the date of the update.&amp;lt;br /&amp;gt;&lt;br /&gt;
    Deprecated Functions:  12 indicated&amp;lt;br /&amp;gt;&lt;br /&gt;
    God Mode Functions:     3 indicated&amp;lt;br /&amp;gt;&lt;br /&gt;
    Pathfinding Functions: 12 indicated. (Path Finding is '''not''' supported by OpenSimulator)&amp;lt;br /&amp;gt;&lt;br /&gt;
    Total remaining functions: 389&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;llXorBase64Strings&lt;br /&gt;
Function List Reference at SL. [http://wiki.secondlife.com/wiki/Template:LSL_All_Functions/Name Reference]&lt;br /&gt;
&lt;br /&gt;
== Source Delta (2026-04-30) ==&lt;br /&gt;
&lt;br /&gt;
This page was cross-checked against ''OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs''.&lt;br /&gt;
Detailed local categorization: ''LSL-Delta-Categories.txt''&lt;br /&gt;
&lt;br /&gt;
* LSL source unique signatures: 473&lt;br /&gt;
* LSL unique names in compared wiki files: 501&lt;br /&gt;
* LSL missing in wiki: 0&lt;br /&gt;
* LSL wiki-only (not found in current interface): 28&lt;br /&gt;
&lt;br /&gt;
'''LSL missing in wiki (source present) categories'''&lt;br /&gt;
* &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''LSL wiki-only (source missing) categories'''&lt;br /&gt;
* LL-only Environment APIs (2)&lt;br /&gt;
* LL-only Experience/KeyValue (11)&lt;br /&gt;
* LL-only Pathfinding/Characters (12)&lt;br /&gt;
* Wiki legacy/other not in interface (3)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' If the Implemented field is blank, the function requires testing and verification.  Possibly incomplete or stub within the OpenSimulator Source code.&amp;lt;br /&amp;gt;&lt;br /&gt;
{{LSL Key Table}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click on a letter to see the implementation information or click on the function to see an example how the function was tested in-world.&lt;br /&gt;
&lt;br /&gt;
{{ABC}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;width: 100%;&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#57C604;font-size:10pt;font-weight:bold;border-bottom:1px solid;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;bottom&amp;quot;&lt;br /&gt;
| width=&amp;quot;5%&amp;quot; scope=&amp;quot;col&amp;quot; | Function &lt;br /&gt;
| width=&amp;quot;2%&amp;quot; scope=&amp;quot;col&amp;quot; | Implemented&lt;br /&gt;
| width=&amp;quot;2%&amp;quot; scope=&amp;quot;col&amp;quot; | Developer&lt;br /&gt;
| width=&amp;quot;2%&amp;quot; scope=&amp;quot;col&amp;quot; | Tester &lt;br /&gt;
| width=&amp;quot;10%&amp;quot; scope=&amp;quot;col&amp;quot; | Comments&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAbs&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=See also [[LlAbs|llAbs]]&lt;br /&gt;
|anc=A&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAcos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=F&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAddToLandBanList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAddToLandPassList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAdjustSoundVolume&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAgentInExperience&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAllowInventoryDrop&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Patnad&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAngleBetween&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=NUnit&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llApplyImpulse&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llApplyRotationalImpulse&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAsin&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAtan2&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAttachToAvatar&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAttachToAvatarTemp&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev &lt;br /&gt;
&lt;br /&gt;
with an error message in Singularity&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAvatarOnLinkSitTarget&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAvatarOnSitTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Teravus&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAxes2Rot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Patnad&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llAxisAngle2Rot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llBase64ToInteger&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=B&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llBase64ToString&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llBreakAllLinks&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llBreakLink&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCastRay&lt;br /&gt;
|status= full&lt;br /&gt;
|impl= Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=C&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCeil&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llChar&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llClearCameraParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llClearLinkMedia&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llClearPrimMedia&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCloseRemoteDataChannel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCloud&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCollisionFilter&lt;br /&gt;
|status=&lt;br /&gt;
|impl= yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test= acryline&lt;br /&gt;
|comment= Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCollisionSound&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCollisionSprite&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llComputeHash&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCreateCharacter&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCreateKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCreateLink&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llCSV2List&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDataSizeKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDeleteCharacter&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
|anc=D&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDeleteKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDeleteSubList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDeleteSubString&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDerezObject&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetachFromAvatar&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedGrab&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedGroup&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedLinkNumber&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=tested at 2011.01.25 on 0.7.1 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedOwner&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchBinormal&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchFace&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchNormal&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchST&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Azwaldo Villota&lt;br /&gt;
|comment=* Tested in OpenSim 0.8.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedTouchUV&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=acryline&lt;br /&gt;
|comment=Works in OpenSim 0.9.1.0 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedType&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDetectedVel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDialog&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDie&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Krtaylor&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llDumpList2String&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEdgeOfWorld&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes*&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Garmin Kawaguichi&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=E&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEjectFromLand&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEmail&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEscapeURL&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEuler2Rot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llEvade&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llExecCharacterCmd&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llFabs&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
|anc=F&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llFleeFrom&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llFloor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llForceMouselook&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llFrand&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGenerateKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=G&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAccel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAgentInfo&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAgentLanguage&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=cinderblocks&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=Working as of 0.8.2.0 for local avatar only &lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAgentList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAgentSize&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAlpha&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=ALLSIDES returns default texture, not sum, specific faces display correctly&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAndResetTime&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2750)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAnimation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=StrawberryFride&lt;br /&gt;
|test=StrawberryFride&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAnimationList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAnimationOverride&lt;br /&gt;
|status=&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=works in 0901&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAttached&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetAttachedList&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetBoundingBox&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCameraAspect&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCameraFOV&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCameraPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Phrearch&lt;br /&gt;
|test=Phrearch&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCameraRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCenterOfMass&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetClosestNavPoint&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetColor&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=ALLSIDES returns default texture, not average, anything trying to grab more than 3 sides fails per example 2&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetCreator&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetDate&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetDayLength&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetDayOffset&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetDisplayName&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= returns usernames&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetEnergy&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Always returns 1.0f&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetEnv&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetEnvironment&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Environment API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetExperienceDetails&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetExperienceErrorMessage&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetForce&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetFreeMemory&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetFreeURLs&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetGeometricCenter&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetGMTclock&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetHealth&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetHTTPHeader&lt;br /&gt;
|status=&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Tokeiito&lt;br /&gt;
|comment=tested at 2011.01.25 on 0.7.1 Dev with XEngine&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryAcquireTime&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryCreator&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryDesc&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryNumber&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryPermMask&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetInventoryType&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLandOwnerAt&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkMedia&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkNumber&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2754)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkNumberOfSides&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Azwaldo Villota&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkPrimitiveParams&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLinkSitFlags&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetListEntryType&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetListLength&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2750)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLocalPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetLocalRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMass&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMassMKS&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMaxScaleFactor&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMemoryLimit&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMinScaleFactor&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMoonDirection&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetMoonRotation&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNextEmail&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNotecardLine&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Krtaylor&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNotecardLineSync&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNumberOfNotecardLines&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Krtaylor&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNumberOfPrims&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetNumberOfSides&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectAnimationNames&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectDesc&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectDetails&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectLinkKey&lt;br /&gt;
|status=&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= 0.9.2.2&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectMass&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=Sitting avatars are phanton, don't count for the mass.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectPermMask&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetObjectPrimCount&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetOmega&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetOwner&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetOwnerKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelDetails&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelFlags&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelMaxPrims&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelMusicURL&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelPrimCount&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetParcelPrimOwners&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=See also [[LlGetParcelPrimOwners|llGetParcelPrimOwners]]&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPermissions&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPermissionsKey&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPhysicsMaterial&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPrimitiveParams&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetPrimMediaParams&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionAgentCount&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionCorner&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionDayLength&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionDayOffset&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionFlags&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionFPS&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Always returns 10.0f&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionMoonDirection&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionMoonRotation&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionSunDirection&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionSunRotation&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRegionTimeDilation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRenderMaterial&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRootPosition&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRootRotation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetScale&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetScriptName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetScriptState&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSimStats&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSimulatorHostname&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSPMaxMemory&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetStartParameter&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Returns always 0!   Same limitations as llSetStatus&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetStartString&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetStaticPath&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetStatus&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=dev&lt;br /&gt;
|test=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSubString&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSunDirection&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Krtaylor&lt;br /&gt;
|test=FredoChaplin&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetSunRotation&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTextureOffset&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTextureRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTextureScale&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTime&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTimeOfDay&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Vytek&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTimestamp&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetTorque&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetUnixTime&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetUsedMemory&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetUsername&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetVel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetVisualParams&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGetWallclock&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGiveInventory&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGiveInventoryList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Patnad&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGiveMoney&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGodLikeRezObject&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGround&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGroundContour&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGroundNormal&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGroundRepel&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llGroundSlope&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llHash&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llHMAC&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llHTTPRequest&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=H&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llHTTPResponse&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Tokeiito&lt;br /&gt;
|comment=Tested on 2011.01.25 with 0.7.1 Dev OS and xEngine&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llInsertString&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= Unlike SL, negative indexes are relative to end of string, so not compatible in this case&lt;br /&gt;
|anc=I&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llInstantMessage&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=100%&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llIntegerToBase64&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llIsFriend&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llIsLinkGLTFMaterial&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llJson2List&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llJsonGetValue&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llJsonSetValue&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llJsonValueType&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llKey2Name&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=K&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llKeyCountKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llKeysKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinear2sRGB&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=0.9.3.0&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkAdjustSoundVolume&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkParticleSystem&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=L&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkPlaySound&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=L&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataAvailable&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataCountFound&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataCountKeys&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataDelete&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataDeleteFound&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataDeleteProtected&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataFindKeys&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataListKeys&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataRead&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataReadProtected&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataReset&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataWrite&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinksetDataWriteProtected&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkSetSoundQueueing&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkSetSoundRadius&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkSitTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLinkStopSound&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2CSV&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Float&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Integer&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Json&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Key&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2List&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2ListSlice&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2ListStrided&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Rot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2754)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2String&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llList2Vector&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListen&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListenControl&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListenRemove&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListFindList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Needed for Kan-ed#11&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListFindListNext&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListFindStrided&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListInsertList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListRandomize&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListReplaceList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListSort&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListSortStrided&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llListStatistics&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLoadURL&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLog&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLog10&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLookAt&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLoopSound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLoopSoundMaster&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llLoopSoundSlave&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMakeExplosion&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
|anc=M&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMakeFire&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMakeFountain&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMakeSmoke&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llManageEstateAccess&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMapBeacon&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMapDestination&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMD5String&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMessageLinked&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMinEventDelay&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llModifyLand&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llModPow&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llMoveToTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llName2Key&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llNavigateTo&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
|anc=N&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llOffsetTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
|anc=O&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llOpenRemoteDataChannel&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llOrd&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llOverMyLand&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llOwnerSay&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llParcelMediaCommandList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=P&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llParcelMediaQuery&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llParseString2List&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Spacers are not parsed if separator list is empty&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llParseStringKeepNulls&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llParticleSystem&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Teravus&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPassCollisions&lt;br /&gt;
|status=&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= True/False argument only, as SL was until 2015&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPassTouches&lt;br /&gt;
|status=&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= True/False argument only, as SL was until 2015&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPatrolPoints&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPlaySound&lt;br /&gt;
|status=&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Azwaldo Villota&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPlaySoundSlave&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPointAt&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPow&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPreloadSound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPursue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llPushObject&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReadKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRefreshPrimURL&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=R&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRegionSay&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRegionSayTo&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=BlueWall&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReleaseCamera&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReleaseControls&lt;br /&gt;
|status=&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReleaseURL&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoteDataReply&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoteDataSetRegion&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoteLoadScript&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated (from LSL Wiki)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoteLoadScriptPin&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoveFromLandBanList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoveFromLandPassList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoveInventory&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRemoveVehicleFlags&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReplaceSubString&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestAgentData&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yyes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestDisplayName&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestExperiencePermissions&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestInventoryData&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestPermissions&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestSecureURL&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestSimulatorData&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= Will only report status as up, if the region is registered to grid service, otherwise unknown. Does not test actual connection or any status of a region. Does not return specific version string.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestURL&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Tokeiito&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestUserKey&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRequestUsername&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetAnimationOverride&lt;br /&gt;
|status=&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetLandBanList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetLandPassList&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReturnObjectsByID&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Legacy wiki entry. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llReturnObjectsByOwner&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Legacy wiki entry. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetOtherScript&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetScript&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=This function is ignored in the state_entry() function of the default state&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llResetTime&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2750)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRezAtRoot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRezObject&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRezObjectWithParams&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Angle&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Axis&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Euler&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Fwd&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Left&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRot2Up&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRotateTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRotBetween&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRotLookAt&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Kayaker Magic&lt;br /&gt;
|comment=Works different than SL (better?)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRotTarget&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRotTargetRemove&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llRound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSameGroup&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=S&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSay&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)(limited to 1023 chars)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llScaleByFactor&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llScaleTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2683)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llScriptDanger&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llScriptProfiler&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSendRemoteData&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=jimbo21&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSensor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works beyond 96m :) tested past 1000m&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSensorRemove&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSensorRepeat&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works beyond 96m :) tested past 1000m&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetAgentEnvironment&lt;br /&gt;
|status=&lt;br /&gt;
|impl=no&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Environment API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetAlpha&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetAngularVelocity&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetAnimationOverride&lt;br /&gt;
|status=&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=works in 0901&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetBuoyancy&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Mlorrey&lt;br /&gt;
|comment=Works on free objects, does not make avatars buoyant with scripted attachments&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetCameraAtOffset&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetCameraEyeOffset&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetCameraParams&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetClickAction&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetColor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetContentType&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetDamage&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetForce&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment= Does not work with current avatar motors physics&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetForceAndTorque&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetHoverHeight&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes/No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Gimisa &lt;br /&gt;
|comment= 0901 works with ubode physic ONLY &lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetInventoryPermMask&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetKeyframedMotion&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Kayaker Magic&lt;br /&gt;
|comment=Worked well since OpenSim 0.7.6&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkAlpha&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Charlie Omega&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2760)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkCamera&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkColor&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Charlie Omega&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2760)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkMedia&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkPrimitiveParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkPrimitiveParamsFast&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkSitFlags&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLinkTextureAnim&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Jeff Kelley&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetLocalRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetMemoryLimit&lt;br /&gt;
|status=&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetObjectDesc&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=100% implemented&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetObjectName&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=100% implemented&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetObjectPermMask&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetParcelMusicURL&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPayPrice&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPhysicsMaterial&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688) (now with limitation of 10m as in sl)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPrimitiveParams&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPrimMediaParams&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=* Requires testing and Verification (update here plz)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetPrimURL&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetRegionPos&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=MrFrans/Frans Charming&lt;br /&gt;
|comment=Tested on the Kitely and Avacon grids.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetRemoteScriptAccessPin&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Tokeiito&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetRenderMaterial&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetRot&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetScale&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetScriptState&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetSitText&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Teravus&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetSoundQueueing&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetSoundRadius&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetStatus&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetText&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2760)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetTexture&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetTextureAnim&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetTimerEvent&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688) (uses Timer plugin!)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetTorque&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetTouchText&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVehicleFlags&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVehicleFloatParam&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVehicleRotationParam&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVehicleType&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVehicleVectorParam&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSetVelocity&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires Implementation (Mar.01.2012)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSHA1String&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSHA256String&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llShout&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688) (limits 1023 chars)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSin&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSitOnLink&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Legacy wiki entry. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}{{FunctionStatusRow&lt;br /&gt;
|name=llSitTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSleep&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=This function CAN lock script threads on XEngine, do not use with XEngine&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSound&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSoundPreload&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSqrt&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llsRGB2Linear&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStartAnimation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStartObjectAnimation&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopAnimation&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopHover&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopLookAt&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopMoveToTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopObjectAnimation&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopPointAt&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStopSound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStringLength&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStringToBase64&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llStringTrim&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Hashbox&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llSubStringIndex&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTakeCamera&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
|anc=T&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTakeControls&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Patnad&lt;br /&gt;
|comment=Needed for Kan-ed#12&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTan&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTarget&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTargetedEmail&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTargetOmega&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTargetRemove&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTeleportAgent&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTeleportAgentGlobalCoords&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTeleportAgentHome&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTextBox&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Melanie_T&lt;br /&gt;
|test=Fritigern&lt;br /&gt;
|comment=Operational with Viewers that support it.  V3 and above all do.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llToLower&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llToUpper&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTransferLindenDollars&lt;br /&gt;
|status=part&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Requires External money Module&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTriggerSound&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llTriggerSoundLimited&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llUnescapeURL&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
|anc=U&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llUnSit&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Aran&lt;br /&gt;
|comment=Works.&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llUpdateCharacter&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llUpdateKeyValue&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Experience/KeyValue only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llVecDist&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Azwaldo Villota&lt;br /&gt;
|comment=Tested in OpenSim 0.7.6 Dev&lt;br /&gt;
|anc=V&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llVecMag&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Azwaldo Villota&lt;br /&gt;
|comment=Tested in OpenSim 0.7.6 Dev&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llVecNorm&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llVolumeDetect&lt;br /&gt;
|status=&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Gerhard&lt;br /&gt;
|test=Gimisa&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llWanderWithin&lt;br /&gt;
|status=unsupported&lt;br /&gt;
|impl=No&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=LL Pathfinding/Character API only. Not in current OpenSim ILSL_Api.cs&lt;br /&gt;
|anc=W&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llWater&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=Alondria&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llWhisper&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=Charlie Omega&lt;br /&gt;
|comment=(2688) (but limited to 1023 chars)&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llWind&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llWorldPosToHUD&lt;br /&gt;
|status=&lt;br /&gt;
|impl=&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Present in ILSL_Api.cs; requires in-world verification&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llXorBase64&lt;br /&gt;
|status=&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}{{FunctionStatusRow&lt;br /&gt;
|name=llXorBase64Strings&lt;br /&gt;
|status=deprecated&lt;br /&gt;
|impl=yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=Deprecated&lt;br /&gt;
|anc=X&lt;br /&gt;
}}&lt;br /&gt;
{{FunctionStatusRow&lt;br /&gt;
|name=llXorBase64StringsCorrect&lt;br /&gt;
|status=full&lt;br /&gt;
|impl=Yes&lt;br /&gt;
|dev=&lt;br /&gt;
|test=&lt;br /&gt;
|comment=&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Back to [[LSL Status]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Support]]&lt;br /&gt;
[[Category:Tech Reference]]&lt;br /&gt;
[[Category:Help]]&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
[[Category:Getting Started]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Todo]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/FSAssets_Service/de</id>
		<title>FSAssets Service/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/FSAssets_Service/de"/>
				<updated>2026-04-09T14:38:44Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|FSAssets_Service}}&lt;br /&gt;
=FS Assets=&lt;br /&gt;
FSAssets ist fuer Grids gedacht, bei denen die Groesse der Datenbank voraussichtlich 50 GB uebersteigt. Diese Option speichert Assets im Dateisystem anstatt im Standarddienst als BLOBs in der Datenbank. Diese Option bietet ausserdem Deduplizierung: Jedes Asset wird beim Speichern gehasht. Existiert ein Asset bereits, verknuepft der Asset-Service auf die vorhandene Datei, statt zwei Kopien abzulegen.&lt;br /&gt;
&lt;br /&gt;
==Performance-Warnung==&lt;br /&gt;
FSAssets speichert Daten als sehr viele kleine Dateien. Abhaengig von Lastprofil und Hardware kann das zu hoher zufaelliger I/O-Last und vielen Metadaten-Operationen fuehren und langsamere Datentraeger leicht ueberlasten (z. B. aeltere HDDs, schwache NAS-Speicher oder stark geteilte virtuelle Datentraeger). Verwende schnellen Speicher fuer BaseDirectory/SpoolDirectory, ueberwache Latenz und Queue-Depth des Datentraegers und plane genug Reserve fuer stark steigende Datei-/Inode-Anzahlen ein.&lt;br /&gt;
&lt;br /&gt;
Das hash-basierte Verzeichnislayout verteilt Dateien auf Unterordner, beseitigt aber die Skalierungsgrenzen von Dateisystem-Metadaten und Verzeichnisindizes nicht. Bei sehr hohen Datei-Anzahlen (Millionen Dateien) koennen Vorgaenge wie Backup, Restore, Replikation, Virenscan, Snapshots und Konsistenzpruefungen zum dominanten Flaschenhals werden.&lt;br /&gt;
&lt;br /&gt;
Praxisbeispiel (kleines Grid):&lt;br /&gt;
* Asset-Dateien: 833659&lt;br /&gt;
* Asset-Groesse: 125 GB&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsoptionen==&lt;br /&gt;
Um FSAssets zu aktivieren, oeffne je nach Setup Robust.ini oder Robust.HG.ini und suche den Abschnitt AssetService. Aendere LocalServiceModule von der aktuellen Option auf:&lt;br /&gt;
&lt;br /&gt;
 LocalServiceModule = &amp;quot;OpenSim.Services.FSAssetService.dll:FSAssetConnector&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Aktiviere ausserdem die folgenden erforderlichen Einstellungen (auskommentieren), diese sind FSAssets-spezifisch:&lt;br /&gt;
&lt;br /&gt;
 BaseDirectory = &amp;quot;./fsassets/data&amp;quot;&lt;br /&gt;
 SpoolDirectory = &amp;quot;./fsassets/tmp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die folgenden FSAssets-Konfigurationsoptionen sind optional:&lt;br /&gt;
&lt;br /&gt;
 ;FallbackService = &amp;quot;OpenSim.Services.AssetService.dll:AssetService&amp;quot;&lt;br /&gt;
 ;DaysBetweenAccessTimeUpdates = 30&lt;br /&gt;
 ;SecondaryInstance = false&lt;br /&gt;
 ;ShowConsoleStats = true&lt;br /&gt;
&lt;br /&gt;
 ;StorageProvider = &amp;quot;&amp;quot;&lt;br /&gt;
 ;ConnectionString = &amp;quot;&amp;quot;&lt;br /&gt;
 ;Realm = &amp;quot;fsassets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ;UseOsgridFormat = false&lt;br /&gt;
 ;DefaultAssetLoader = &amp;quot;&amp;quot;&lt;br /&gt;
 ;AssetLoaderArgs = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* '''BaseDirectory'''&lt;br /&gt;
::Dieses Verzeichnis enthaelt die gespeicherten Asset-Daten.&lt;br /&gt;
* '''SpoolDirectory'''&lt;br /&gt;
::Das Spool-Verzeichnis dient als temporaerer Speicher waehrend ein Asset gehasht und komprimiert wird, bevor es nach BaseDirectory verschoben wird. Dieses Verzeichnis muss auf demselben Dateisystem liegen wie BaseDirectory.&lt;br /&gt;
* '''FallbackService'''&lt;br /&gt;
::Wenn du vom Standard-Asset-Service migrierst, aktiviere diese Option und setze den Standard-Asset-Connector. Damit kann FSAssets vorhandene Assets aus dem alten Service laden und in BaseDirectory speichern. Der Fallback-Service wird geprueft, wenn ein Asset in FSAssets nicht gefunden wird.&lt;br /&gt;
* '''DaysBetweenAccessTimeUpdates'''&lt;br /&gt;
::Standardmaessig wird die Zugriffszeit bei jeder Asset-Anfrage aktualisiert. Mit dieser Option kann die Aktualisierung fuer kuerzlich verwendete Assets uebersprungen und die Anzahl der Datenbankzugriffe reduziert werden.&lt;br /&gt;
* '''SecondaryInstance'''&lt;br /&gt;
::Wenn true, arbeitet diese Instanz nicht als Hauptinstanz von FSAssets im Prozess. Nuetzlich, wenn mehrere FSAssetConnector-Instanzen im selben Prozess erzeugt werden.&lt;br /&gt;
* '''ShowConsoleStats'''&lt;br /&gt;
::Aktiviert periodische FSAssets-Statistikausgaben zu Lesezugriffen/Fehlzugriffen.&lt;br /&gt;
* '''StorageProvider'''&lt;br /&gt;
::Um den Speicherort der Metadaten zu aendern, kann ein eigener StorageProvider inklusive ConnectionString gesetzt werden. Ist diese Option nicht gesetzt, wird der Standard-StorageProvider aus dem Datenbank-Abschnitt fuer die Metadaten genutzt.&lt;br /&gt;
* '''ConnectionString'''&lt;br /&gt;
::Datenbank-Connection-String fuer den optionalen oben genannten StorageProvider.&lt;br /&gt;
* '''Realm'''&lt;br /&gt;
::Tabellenname fuer die Metadaten in der Datenbank. Standard ist 'fsassets'.&lt;br /&gt;
* '''UseOsgridFormat'''&lt;br /&gt;
::Aendert die Ordnerstruktur aus Kompatibilitaetsgruenden von 00/00/00 auf 000/000. False bedeutet 00/00/00 und wird empfohlen.&lt;br /&gt;
* '''DefaultAssetLoader'''&lt;br /&gt;
::Optionales Default-Asset-Loader-Plugin, das beim Start ausgefuehrt wird.&lt;br /&gt;
* '''AssetLoaderArgs'''&lt;br /&gt;
::Optionale Argumentzeichenfolge, die an DefaultAssetLoader uebergeben wird.&lt;br /&gt;
&lt;br /&gt;
==Migration==&lt;br /&gt;
Wenn FallbackService gesetzt ist, kann FSAssets bereits vorhandene Assets beim Zugriff nachtraeglich uebernehmen, falls sie lokal nicht gefunden werden. Dadurch werden jedoch nicht automatisch alle alten Assets umgestellt. Um alle Assets aus dem Standardservice zu konvertieren, steht ein Konsolenbefehl zur Verfuegung:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 import &amp;lt;conn&amp;gt; &amp;lt;table&amp;gt; [&amp;lt;start&amp;gt; &amp;lt;count&amp;gt;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Import-Befehl erwartet als Parameter einen Datenbank-Connection-String und den Namen der alten Asset-Tabelle. Das folgende Beispiel zeigt den Start des Imports fuer MySQL. Passe die Verbindungsdaten an Schema, Benutzer und Passwort an:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 import &amp;quot;Data Source=localhost;Database=SCHEMA;User ID=USER;Password=PASS;Old Guids=true;&amp;quot; assets&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Je nach Groesse der vorhandenen Asset-Tabelle kann der Import laenger dauern. Mit den optionalen Parametern start und count kannst du Startposition und Anzahl der zu konvertierenden Zeilen steuern.&lt;br /&gt;
&lt;br /&gt;
Es gibt ausserdem einen force-import-Modus, der vorhandene Inhalte bei passenden Asset-IDs ueberschreibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 force import &amp;lt;conn&amp;gt; &amp;lt;table&amp;gt; [&amp;lt;start&amp;gt; &amp;lt;count&amp;gt;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Verwende diesen Modus nur, wenn Altdaten bewusst den aktuellen FSAssets-Inhalt ersetzen sollen.&lt;br /&gt;
&lt;br /&gt;
Falls der Import mit einem Timeout-Fehler abbricht, fuege &amp;quot;Command Timeout=300;&amp;quot; zum Connection-String hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import &amp;quot;Data Source=localhost;Port=3306;Database=Robust;User ID=SomeRobustuser;Password=Somerobustpassword;Old Guids=true;Command Timeout=300;&amp;quot; assets&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Timeout-Einheiten und Standardwerte haengen vom verwendeten Datenbank-Provider bzw. Treiber ab. In vielen Setups wird dieser Wert als Sekunden interpretiert.&lt;br /&gt;
&lt;br /&gt;
==Hinweise zu Import und Export==&lt;br /&gt;
* '''Import'''&lt;br /&gt;
::Wird ueber den FS-Befehlssatz mit import und force import unterstuetzt.&lt;br /&gt;
* '''Export'''&lt;br /&gt;
::Es gibt im FS-Befehlssatz keinen dedizierten Bulk-Export-Befehl. Fuer vollstaendige Exporte/Backups sollten immer beide Bestandteile gesichert werden:&lt;br /&gt;
::# die Asset-Dateien unter BaseDirectory&lt;br /&gt;
::# die FSAssets-Metadatentabelle (Realm, Standard &amp;quot;fsassets&amp;quot;) aus der konfigurierten Datenbank&lt;br /&gt;
::Fuer einzelne Assets kann je nach aktivierten Asset-Service-Handlern/Modulen der Befehl dump asset &amp;lt;ID&amp;gt; verfuegbar sein.&lt;br /&gt;
&lt;br /&gt;
==Hypergrid Assets==&lt;br /&gt;
Wenn dein Grid Hypergrid aktiviert hat, ist haeufig HGAssetService fuer den Asset-Austausch mit anderen Grids konfiguriert. In diesem Fall muss im HGAssetService-Abschnitt der Robust.ini auf die FSAssets-Variante HGFSAssetService umgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Um HGFSAssetService zu aktivieren, aendere im HGAssetService-Abschnitt von Robust.ini den LocalServiceModule-Eintrag zu:&lt;br /&gt;
&lt;br /&gt;
	LocalServiceModule = &amp;quot;OpenSim.Services.HypergridService.dll:HGFSAssetService&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die folgenden HGAssetService-Optionen werden von HGFSAssetService ebenfalls verwendet:&lt;br /&gt;
&lt;br /&gt;
 UserAccountsService = &amp;quot;...&amp;quot;&lt;br /&gt;
 ;DisallowExport = &amp;quot;...&amp;quot;&lt;br /&gt;
 ;DisallowImport = &amp;quot;...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HomeURI ist fuer den Hypergrid-Betrieb ebenfalls erforderlich und wird ueblicherweise aus den Abschnitten Startup/Hypergrid/HGAssetService gelesen.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/FSAssets_Service</id>
		<title>FSAssets Service</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/FSAssets_Service"/>
				<updated>2026-04-09T14:37:52Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|FSAssets_Service}}&lt;br /&gt;
=FS Assets=&lt;br /&gt;
FSAssets is intended for grids where the size of the database is expected to exceed 50GB. This option will save the assets to the file system as opposed to the default service which stores assets as blobs in the database. This option also provides deduplication abilities, each asset is hashed when it is received for storage and if the asset already exists, the asset service will link to the existing file rather than store two copies.&lt;br /&gt;
&lt;br /&gt;
==Performance Warning==&lt;br /&gt;
FSAssets stores data as many small files. Depending on your workload and hardware, this can produce high random I/O and metadata activity and may overload slower disks (for example older HDDs, weak NAS storage, or heavily shared virtual disks). Use fast storage for BaseDirectory/SpoolDirectory, monitor disk latency and queue depth, and plan capacity for inode/file-count growth.&lt;br /&gt;
&lt;br /&gt;
The hash-based directory layout helps distribute files across subfolders, but it does not remove scaling limits of filesystem metadata/index structures. At very large file counts (millions of files), operations like backup, restore, replication, antivirus scans, snapshots, and consistency checks can become a major bottleneck.&lt;br /&gt;
&lt;br /&gt;
Real-world example (small grid):&lt;br /&gt;
* Asset files: 833659&lt;br /&gt;
* Asset size: 125 GB&lt;br /&gt;
&lt;br /&gt;
==Config Options==&lt;br /&gt;
To enable FSAssets, open Robust.ini or Robust.HG.ini depending on whether you are running a standard or hypergrid enabled grid and find the AssetService section. Change the LocalServiceModule from the current option to:&lt;br /&gt;
&lt;br /&gt;
 LocalServiceModule = &amp;quot;OpenSim.Services.FSAssetService.dll:FSAssetConnector&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also uncomment the following required settings, these are specific to FSAssets:&lt;br /&gt;
&lt;br /&gt;
 BaseDirectory = &amp;quot;./fsassets/data&amp;quot;&lt;br /&gt;
 SpoolDirectory = &amp;quot;./fsassets/tmp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following are optional FSAsset config options:&lt;br /&gt;
&lt;br /&gt;
 ;FallbackService = &amp;quot;OpenSim.Services.AssetService.dll:AssetService&amp;quot;&lt;br /&gt;
 ;DaysBetweenAccessTimeUpdates = 30&lt;br /&gt;
 ;SecondaryInstance = false&lt;br /&gt;
 ;ShowConsoleStats = true&lt;br /&gt;
&lt;br /&gt;
 ;StorageProvider = &amp;quot;&amp;quot;&lt;br /&gt;
 ;ConnectionString = &amp;quot;&amp;quot;&lt;br /&gt;
 ;Realm = &amp;quot;fsassets&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ;UseOsgridFormat = false&lt;br /&gt;
 ;DefaultAssetLoader = &amp;quot;&amp;quot;&lt;br /&gt;
 ;AssetLoaderArgs = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* '''BaseDirectory'''&lt;br /&gt;
::This is the folder in which the asset data will be saved.&lt;br /&gt;
* '''SpoolDirectory'''&lt;br /&gt;
::The spool directory is a folder used for temporary storage while the asset is hashed and compressed before it gets moved to the BaseDirectory. This must be on the same file system as the base directory.&lt;br /&gt;
* '''FallbackService'''&lt;br /&gt;
::If you are upgrading from the default asset service, uncomment this and set the default asset connector. This will allow FSAssets to retrieve an existing asset from the old service and add it to the BaseDirectory. The fallback service is checked when an asset is requested but not found by FSAssets.&lt;br /&gt;
* '''DaysBetweenAccessTimeUpdates'''&lt;br /&gt;
::By default, the access time is updated each time an asset is requested. This option can be used to skip this update for assets that already have a recent access time and reduce calls to the database.&lt;br /&gt;
* '''SecondaryInstance'''&lt;br /&gt;
::When true, this instance does not act as the main FSAssets instance in the process. Useful if multiple FSAssetConnector instances are created in one process.&lt;br /&gt;
* '''ShowConsoleStats'''&lt;br /&gt;
::Enables periodic FSAssets read/miss statistics output.&lt;br /&gt;
* '''StorageProvider'''&lt;br /&gt;
::To change where the metadata is saved you can set a specific storage provider and connection string. If this is disabled, the default storage provider given in the database section will be used to save metadata.&lt;br /&gt;
* '''ConnectionString'''&lt;br /&gt;
::DB connection string for the optional StorageProvider mentioned above.&lt;br /&gt;
* '''Realm'''&lt;br /&gt;
::The table name to save metadata in the database. Default is 'fsassets'&lt;br /&gt;
* '''UseOsgridFormat'''&lt;br /&gt;
::Changes the folder structure from 00/00/00 to 000/000 for compatibility reasons. False means 00/00/00 which is encouraged.&lt;br /&gt;
* '''DefaultAssetLoader'''&lt;br /&gt;
::Optional default asset loader plugin used at startup.&lt;br /&gt;
* '''AssetLoaderArgs'''&lt;br /&gt;
::Optional argument string passed to DefaultAssetLoader.&lt;br /&gt;
&lt;br /&gt;
==Migration==&lt;br /&gt;
While FSAssets will use the FallbackService if set, to convert any existing assets when they are requested and not found, this will not automatically convert all the old assets to the new service. To convert all assets from the default service there is a console command provided:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 import &amp;lt;conn&amp;gt; &amp;lt;table&amp;gt; [&amp;lt;start&amp;gt; &amp;lt;count&amp;gt;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The import command expects a database connection string and the name of the legacy asset table to be passed as parameters. The following example shows how to start the import process for a MySQL database, just change the connection details to match your database schema, username and password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 import &amp;quot;Data Source=localhost;Database=SCHEMA;User ID=USER;Password=PASS;Old Guids=true;&amp;quot; assets&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Depending on the size of your existing assets table, the import process will take some time to complete. The optional parameters, start and count allow you to specify the position and number of rows to convert.&lt;br /&gt;
&lt;br /&gt;
There is also a force import mode that overwrites existing content for matching asset IDs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 force import &amp;lt;conn&amp;gt; &amp;lt;table&amp;gt; [&amp;lt;start&amp;gt; &amp;lt;count&amp;gt;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use this only when you explicitly want legacy data to replace current FSAssets content.&lt;br /&gt;
&lt;br /&gt;
If the import command fails with a timeout error, add &amp;quot;Command Timeout=300;&amp;quot; to the connection string:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import &amp;quot;Data Source=localhost;Port=3306;Database=Robust;User ID=SomeRobustuser;Password=Somerobustpassword;Old Guids=true;Command Timeout=300;&amp;quot; assets&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Timeout units and defaults depend on the database provider/driver. In most setups this value is interpreted as seconds.&lt;br /&gt;
&lt;br /&gt;
==Import and Export Notes==&lt;br /&gt;
* '''Import'''&lt;br /&gt;
::Supported by the FS command set via import and force import.&lt;br /&gt;
* '''Export'''&lt;br /&gt;
::There is no dedicated bulk export command in the FS command set. For full exports/backups, include both:&lt;br /&gt;
::# the asset files under BaseDirectory&lt;br /&gt;
::# the FSAssets metadata table (Realm, default &amp;quot;fsassets&amp;quot;) from the configured database&lt;br /&gt;
::For single assets, dump asset &amp;lt;ID&amp;gt; may be available depending on enabled asset service handlers/modules.&lt;br /&gt;
&lt;br /&gt;
==Hypergrid Assets==&lt;br /&gt;
If your grid has hypergrid enabled, you probably have it setup to use the HGAssetService for sharing assets with other grids. In this situation you will need to change the HGAssetService section of your Robust.ini to point to the FSAssets version of the HGAssetService known as HGFSAssetService.&lt;br /&gt;
&lt;br /&gt;
To enable the HGFSAssetService, find the HGAssetService section of your Robust.ini, the LocalServiceModule should be changed to:&lt;br /&gt;
&lt;br /&gt;
  LocalServiceModule = &amp;quot;OpenSim.Services.HypergridService.dll:HGFSAssetService&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following HGAssetService options are also used by HGFSAssetService:&lt;br /&gt;
&lt;br /&gt;
 UserAccountsService = &amp;quot;...&amp;quot;&lt;br /&gt;
 ;DisallowExport = &amp;quot;...&amp;quot;&lt;br /&gt;
 ;DisallowImport = &amp;quot;...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
HomeURI is also required for Hypergrid operation and is usually provided from Startup/Hypergrid/HGAssetService sections.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/InterestManagement</id>
		<title>InterestManagement</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/InterestManagement"/>
				<updated>2026-01-24T09:18:27Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|InterestManagement}}&lt;br /&gt;
&lt;br /&gt;
'''InterestManagement''' is a subsystem in [[OpenSimulator]] (OpenSim) that manages the prioritization and control of updates for [[Avatar]]s and objects between the server and client. It is primarily configured via the &amp;lt;code&amp;gt;[InterestManagement]&amp;lt;/code&amp;gt; section and serves to efficiently distribute [[bandwidth]] and [[CPU]] load.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
InterestManagement settings are located in the &amp;lt;code&amp;gt;OpenSim.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;OpenSimDefaults.ini&amp;lt;/code&amp;gt; file. The following parameters are available in the &amp;lt;code&amp;gt;[InterestManagement]&amp;lt;/code&amp;gt; section:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values / Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;UpdatePrioritizationScheme&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets the scheme for prioritizing updates.&lt;br /&gt;
| Possible values:&lt;br /&gt;
* &amp;lt;code&amp;gt;BestAvatarResponsiveness&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SimpleAngularDistance&amp;lt;/code&amp;gt; (more CPU intensive)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ReprioritizationEnabled&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables regular re-prioritization of update priorities.&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ReprioritizationInterval&amp;lt;/code&amp;gt;&lt;br /&gt;
| Time interval (in milliseconds) between re-prioritization runs.&lt;br /&gt;
| Number (in ms)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RootReprioritizationDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
| Distance threshold for re-prioritizing root (main) avatars.&lt;br /&gt;
| Number (distance)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ObjectsCullingByDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
| If enabled, object updates outside the view distance are not sent to the client.&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; – Saves bandwidth but increases CPU load.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RootTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
| Only every nth compact (&amp;quot;terse&amp;quot;) update is sent for avatars within the same region.&lt;br /&gt;
| Number (0 = always send)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ChildTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
| Only every nth compact (&amp;quot;terse&amp;quot;) update is sent for avatars in other regions (e.g., neighboring regions).&lt;br /&gt;
| Number (0 = always send)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These options allow fine-tuning of how often and under what conditions clients are informed about state changes of objects and avatars.&lt;br /&gt;
&lt;br /&gt;
== Implementation in Scene.cs ==&lt;br /&gt;
The core code for InterestManagement is located in the &amp;lt;code&amp;gt;Scene.cs&amp;lt;/code&amp;gt; file. However, it does not evaluate the complete list of parameters documented in the INI file.&lt;br /&gt;
&lt;br /&gt;
The following settings are actually read and used in &amp;lt;code&amp;gt;Scene.cs&amp;lt;/code&amp;gt;:&lt;br /&gt;
* &amp;lt;code&amp;gt;UpdatePrioritizationScheme&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ReprioritizationEnabled&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ReprioritizationInterval&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;RootReprioritizationDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ObjectsCullingByDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following parameters, documented in the configuration file, are '''not''' evaluated in &amp;lt;code&amp;gt;Scene.cs&amp;lt;/code&amp;gt; and have no direct effect there:&lt;br /&gt;
* &amp;lt;code&amp;gt;ChildReprioritizationDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;RootTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ChildTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Their influence on the system only exists if they are processed elsewhere in the OpenSimulator source code.&lt;br /&gt;
&lt;br /&gt;
== Purpose and Function ==&lt;br /&gt;
The InterestManagement system filters and prioritizes data sent to clients. Its goal is to minimize network load and optimize server performance without significantly degrading the subjective user experience (e.g., avatar responsiveness). For example, &amp;lt;code&amp;gt;ObjectsCullingByDistance&amp;lt;/code&amp;gt; ensures that invisible objects do not generate updates, while prioritization schemes determine which objects or avatars are updated first.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[OpenSimulator]]&lt;br /&gt;
* [[Configuration file]]&lt;br /&gt;
* [[Scene Graph]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenSimulator]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Server technology]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/InterestManagement/de</id>
		<title>InterestManagement/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/InterestManagement/de"/>
				<updated>2026-01-24T09:17:26Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;{{Quicklinks|InterestManagement}}  '''InterestManagement''' ist ein Subsystem in OpenSimulator (OpenSim), das die Priorisierung und Steuerung von Aktualisierungen (Updates...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|InterestManagement}}&lt;br /&gt;
&lt;br /&gt;
'''InterestManagement''' ist ein Subsystem in [[OpenSimulator]] (OpenSim), das die Priorisierung und Steuerung von Aktualisierungen (Updates) für [[Avatar]]e und Objekte zwischen Server und Client übernimmt. Es wird hauptsächlich über den Konfigurationsabschnitt &amp;lt;code&amp;gt;[InterestManagement]&amp;lt;/code&amp;gt; gesteuert und dient dazu, [[Bandbreite]] und [[CPU]]-Last effizient zu verteilen.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
Die Einstellungen für das InterestManagement erfolgen in der &amp;lt;code&amp;gt;OpenSim.ini&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;OpenSimDefaults.ini&amp;lt;/code&amp;gt;. Die folgenden Parameter sind im Abschnitt &amp;lt;code&amp;gt;[InterestManagement]&amp;lt;/code&amp;gt; verfügbar:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Beschreibung&lt;br /&gt;
! Werte / Bemerkung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;UpdatePrioritizationScheme&amp;lt;/code&amp;gt;&lt;br /&gt;
| Legt das Schema zur Priorisierung von Updates fest.&lt;br /&gt;
| Mögliche Werte:&lt;br /&gt;
* &amp;lt;code&amp;gt;BestAvatarResponsiveness&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SimpleAngularDistance&amp;lt;/code&amp;gt; (intensiver für die CPU)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ReprioritizationEnabled&amp;lt;/code&amp;gt;&lt;br /&gt;
| Aktiviert die regelmäßige Neusortierung (Repriorisierung) der Update-Prioritäten.&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ReprioritizationInterval&amp;lt;/code&amp;gt;&lt;br /&gt;
| Das Zeitintervall (in Millisekunden) zwischen den Neusortierungen.&lt;br /&gt;
| Zahl (in ms)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RootReprioritizationDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
| Die Distanzschwelle, ab der die Priorität von Root-Avataren (Hauptavataren) neu berechnet wird.&lt;br /&gt;
| Zahl (Entfernung)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ObjectsCullingByDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
| Wenn aktiviert, werden Objekt-Updates außerhalb der Sichtweite nicht an den Client gesendet.&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; – Spart Bandbreite, erhöht aber die CPU-Last.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RootTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sendet nur jedes n-te kompakte (&amp;quot;Terse&amp;quot;) Update für Avatare innerhalb derselben Region.&lt;br /&gt;
| Zahl (0 = immer senden)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ChildTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sendet nur jedes n-te kompakte (&amp;quot;Terse&amp;quot;) Update für Avatare in anderen Regionen (z.B. Nachbarregionen).&lt;br /&gt;
| Zahl (0 = immer senden)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Diese Optionen ermöglichen eine Feinabstimmung, wie häufig und unter welchen Bedingungen Clients über Zustandsänderungen von Objekten und Avataren informiert werden.&lt;br /&gt;
&lt;br /&gt;
== Implementierung in Scene.cs ==&lt;br /&gt;
Der zentrale Code für das InterestManagement befindet sich in der Datei &amp;lt;code&amp;gt;Scene.cs&amp;lt;/code&amp;gt;. Dabei wird jedoch nicht die vollständige in der INI-Datei dokumentierte Parameterliste ausgewertet.&lt;br /&gt;
&lt;br /&gt;
Folgende Einstellungen werden in &amp;lt;code&amp;gt;Scene.cs&amp;lt;/code&amp;gt; tatsächlich gelesen und verwendet:&lt;br /&gt;
* &amp;lt;code&amp;gt;UpdatePrioritizationScheme&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ReprioritizationEnabled&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ReprioritizationInterval&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;RootReprioritizationDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ObjectsCullingByDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die folgenden, in der Konfigurationsdatei dokumentierten Parameter werden in &amp;lt;code&amp;gt;Scene.cs&amp;lt;/code&amp;gt; '''nicht''' ausgewertet und haben dort keine direkte Wirkung:&lt;br /&gt;
* &amp;lt;code&amp;gt;ChildReprioritizationDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;RootTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ChildTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr Einfluss auf das System ist nur gegeben, wenn sie an anderer Stelle im OpenSimulator-Quellcode verarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Zweck und Funktionsweise ==&lt;br /&gt;
Das InterestManagement-System filtert und priorisiert die an die Clients zu sendenden Daten. Ziel ist es, die Netzwerklast zu minimieren und die Serverperformance zu optimieren, ohne die subjektive Benutzererfahrung (z.B. Reaktionsfähigkeit der Avatare) wesentlich zu beeinträchtigen. Beispielsweise sorgt &amp;lt;code&amp;gt;ObjectsCullingByDistance&amp;lt;/code&amp;gt; dafür, dass unsichtbare Objekte keine Updates generieren, während die Priorisierungsschemata bestimmen, welche Objekte oder Avatare zuerst aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[OpenSimulator]]&lt;br /&gt;
* [[Konfigurationsdatei]]&lt;br /&gt;
* [[Scene Graph]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:OpenSimulator]]&lt;br /&gt;
[[Kategorie:Netzwerk]]&lt;br /&gt;
[[Kategorie:Server-Technik]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/InterestManagement</id>
		<title>InterestManagement</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/InterestManagement"/>
				<updated>2026-01-24T09:15:26Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;{{Quicklinks|InterestManagement}}   '''InterestManagement''' is a subsystem in OpenSimulator (OpenSim) that manages the prioritization and control of updates for [[Avatar]...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|InterestManagement}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''InterestManagement''' is a subsystem in [[OpenSimulator]] (OpenSim) that manages the prioritization and control of updates for [[Avatar]]s and objects between the server and client. It is primarily configured via the &amp;lt;code&amp;gt;[InterestManagement]&amp;lt;/code&amp;gt; section and serves to efficiently distribute [[bandwidth]] and [[CPU]] load.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
InterestManagement settings are located in the &amp;lt;code&amp;gt;OpenSim.ini&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;OpenSimDefaults.ini&amp;lt;/code&amp;gt; file. The following parameters are available in the &amp;lt;code&amp;gt;[InterestManagement]&amp;lt;/code&amp;gt; section:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values / Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;UpdatePrioritizationScheme&amp;lt;/code&amp;gt;&lt;br /&gt;
| Sets the scheme for prioritizing updates.&lt;br /&gt;
| Possible values:&lt;br /&gt;
* &amp;lt;code&amp;gt;BestAvatarResponsiveness&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SimpleAngularDistance&amp;lt;/code&amp;gt; (more CPU intensive)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ReprioritizationEnabled&amp;lt;/code&amp;gt;&lt;br /&gt;
| Enables regular re-prioritization of update priorities.&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ReprioritizationInterval&amp;lt;/code&amp;gt;&lt;br /&gt;
| Time interval (in milliseconds) between re-prioritization runs.&lt;br /&gt;
| Number (in ms)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RootReprioritizationDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
| Distance threshold for re-prioritizing root (main) avatars.&lt;br /&gt;
| Number (distance)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ObjectsCullingByDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
| If enabled, object updates outside the view distance are not sent to the client.&lt;br /&gt;
| &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; – Saves bandwidth but increases CPU load.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RootTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
| Only every nth compact (&amp;quot;terse&amp;quot;) update is sent for avatars within the same region.&lt;br /&gt;
| Number (0 = always send)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ChildTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
| Only every nth compact (&amp;quot;terse&amp;quot;) update is sent for avatars in other regions (e.g., neighboring regions).&lt;br /&gt;
| Number (0 = always send)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These options allow fine-tuning of how often and under what conditions clients are informed about state changes of objects and avatars.&lt;br /&gt;
&lt;br /&gt;
== Implementation in Scene.cs ==&lt;br /&gt;
The core code for InterestManagement is located in the &amp;lt;code&amp;gt;Scene.cs&amp;lt;/code&amp;gt; file. However, it does not evaluate the complete list of parameters documented in the INI file.&lt;br /&gt;
&lt;br /&gt;
The following settings are actually read and used in &amp;lt;code&amp;gt;Scene.cs&amp;lt;/code&amp;gt;:&lt;br /&gt;
* &amp;lt;code&amp;gt;UpdatePrioritizationScheme&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ReprioritizationEnabled&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ReprioritizationInterval&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;RootReprioritizationDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ObjectsCullingByDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following parameters, documented in the configuration file, are '''not''' evaluated in &amp;lt;code&amp;gt;Scene.cs&amp;lt;/code&amp;gt; and have no direct effect there:&lt;br /&gt;
* &amp;lt;code&amp;gt;ChildReprioritizationDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;RootTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ChildTerseUpdatePeriod&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Their influence on the system only exists if they are processed elsewhere in the OpenSimulator source code.&lt;br /&gt;
&lt;br /&gt;
== Purpose and Function ==&lt;br /&gt;
The InterestManagement system filters and prioritizes data sent to clients. Its goal is to minimize network load and optimize server performance without significantly degrading the subjective user experience (e.g., avatar responsiveness). For example, &amp;lt;code&amp;gt;ObjectsCullingByDistance&amp;lt;/code&amp;gt; ensures that invisible objects do not generate updates, while prioritization schemes determine which objects or avatars are updated first.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[OpenSimulator]]&lt;br /&gt;
* [[Configuration file]]&lt;br /&gt;
* [[Scene Graph]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenSimulator]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Server technology]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/0.9.3.1/de</id>
		<title>0.9.3.1/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/0.9.3.1/de"/>
				<updated>2025-12-16T10:20:25Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ReleaseInfo}}&lt;br /&gt;
{{Quicklinks|0.9.3.1}}&lt;br /&gt;
&lt;br /&gt;
= Allgemeines =&lt;br /&gt;
''' VERSION IN ENTWICKLUNG'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Diese Version erfordert dotnet 8. Wenn Sie nur Mono oder .Net4x verwenden können, verwenden Sie bitte Version [[0.9.2.2]] ( http://opensimulator.org/dist )&amp;lt;br&amp;gt;&lt;br /&gt;
Siehe auch [http://opensimulator.org/wiki/0.9.3.0_Release 0.9.3.0 Release Notes]&lt;br /&gt;
&lt;br /&gt;
= Anforderungen =&lt;br /&gt;
&lt;br /&gt;
OpenSimulator 0.9.3.1 erfordert:&lt;br /&gt;
&lt;br /&gt;
* [https://dotnet.microsoft.com/en-us/download/dotnet/8.0 dotnet8] Runtime für Ihre Plattform (sowie das SDK, wenn Sie kompilieren möchten) &lt;br /&gt;
* Unter Windows müssen Sie möglicherweise die [https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 Runtime-Dateien für vc++] installieren&lt;br /&gt;
* Unter Windows müssen Sie möglicherweise die Installation des älteren .NetFramework 3.5 autorisieren&lt;br /&gt;
* Unter Linux benötigen Sie libgdiplus&lt;br /&gt;
**Wenn Sie mono 6.x vollständig haben, haben Sie bereits libgdiplus, andernfalls müssen Sie es installieren, zum Beispiel unter Debian:&lt;br /&gt;
**apt-get update &amp;amp;&amp;amp; apt-get install -y apt-utils libgdiplus libc6-dev&lt;br /&gt;
&lt;br /&gt;
* Um die Unterstützung für aktuelle und ältere Viewer aufrechtzuerhalten, müssen neue Viewer PBR-Materialien oder Texturen für Terrain anfordern, indem sie eine Anfrage für eine Fake-Capability namens &amp;quot;VETPBR&amp;quot; (ViewerExtendedTerrainPBR) senden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aufgrund der Datenbank-Migrationsnummerierung, die bei Release 0.9.0.0 erfolgte, MÜSSEN Sie, wenn Sie von einer OpenSimulator-Version vor 0.8.2.1 aktualisieren, zuerst auf *0.8.2.1* aktualisieren und dann direkt auf 0.9.3.0 upgraden. Siehe [[0.9.0.0_Release#Pivot_Release:_0.8.2.1]] für weitere Hinweise.&lt;br /&gt;
&lt;br /&gt;
= Breaking Changes =&lt;br /&gt;
&lt;br /&gt;
* Skripte, die mit älteren Versionen kompiliert wurden, werden neu kompiliert und setzen ihren Status zurück, entweder beim ersten Regionstart nach dem Update oder bei Teleport.&lt;br /&gt;
&lt;br /&gt;
= Bekannte Probleme mit Asset-Speicherung =&lt;br /&gt;
&lt;br /&gt;
== MySQL Asset Storage ==&lt;br /&gt;
&lt;br /&gt;
Die aktuelle MySQL-Asset-Speicherimplementierung hat ein erhebliches Skalierbarkeitsproblem:&lt;br /&gt;
&lt;br /&gt;
* '''Monolithische Asset-Tabelle:''' Alle Assets (Texturen, Skripte, Sounds, Animationen, etc.) werden in einer einzigen großen Tabelle gespeichert, was mit wachsender Asset-Anzahl zu einem Performance-Engpass wird&lt;br /&gt;
* '''Wartungsschwierigkeiten:''' Eine einzige massive Tabelle macht Datenbankwartungsoperationen (Optimierung, Reparatur, Indexierung) extrem zeitaufwendig und ressourcenintensiv&lt;br /&gt;
* '''Empfohlene Lösung:''' Aufteilung der Asset-Tabelle nach Asset-Typen (z.B. separate Tabellen für Texturen, Skripte, Sounds, Animationen, Notecards), um Abfrageleistung und Verwaltbarkeit zu verbessern&lt;br /&gt;
* '''Auswirkung:''' Große Grids mit Millionen von Assets erfahren langsamen Asset-Abruf und Datenbankabfragen, was die Gesamtleistung des Grids beeinträchtigt&lt;br /&gt;
&lt;br /&gt;
== FSAssets Storage ==&lt;br /&gt;
&lt;br /&gt;
Die FSAssets (File System Assets) Speichermethode hat ebenfalls architektonische Probleme:&lt;br /&gt;
&lt;br /&gt;
* '''Dateisystem-Fragmentierung:''' Die Speicherung jedes Assets als einzelne Datei erzeugt Millionen von kleinen Dateien, die die Dateisystem-Performance stark beeinträchtigen&lt;br /&gt;
* '''Verzeichnis-Limitierungen:''' Die meisten Dateisysteme verschlechtern sich erheblich, wenn Verzeichnisse Hunderttausende von Einträgen enthalten&lt;br /&gt;
* '''I/O-Overhead:''' Jeder Asset-Zugriff erfordert separate Datei-Öffnen/Schließen-Operationen, was zu übermäßigem Disk-I/O führt&lt;br /&gt;
* '''Wartungs-Alptraum:''' Dateisystem-Checks, Defragmentierung und Routine-Wartung werden mit Millionen von kleinen Dateien nahezu unmöglich&lt;br /&gt;
* '''Backup-Herausforderungen:''' Das Sichern von Millionen kleiner Dateien ist deutlich langsamer als das Sichern von Datenbanktabellen&lt;br /&gt;
* '''Ähnlich wie SQLite-Probleme:''' Wie SQLite's Limitierungen skaliert fsassets' Datei-pro-Asset-Ansatz nicht gut für Produktions-Grids&lt;br /&gt;
&lt;br /&gt;
'''Auswirkung auf die OpenSimulator-Akzeptanz:'''&lt;br /&gt;
&lt;br /&gt;
Diese Speicherlimitierungen schaffen Barrieren für:&lt;br /&gt;
* Neue Benutzer, die schlechte Performance mit Standard-Speicherkonfigurationen erleben&lt;br /&gt;
* Grid-Betreiber, die mit Skalierbarkeitsproblemen konfrontiert werden, während ihr Grid wächst&lt;br /&gt;
* Hosting-Provider, die mit Dateisystem- und Datenbank-Performance-Problemen kämpfen&lt;br /&gt;
* Die breitere Akzeptanz von OpenSimulator aufgrund wahrgenommener Instabilität und Performance-Probleme&lt;br /&gt;
&lt;br /&gt;
'''Empfohlene Workarounds:'''&lt;br /&gt;
* Für kleine bis mittlere Grids: Verwenden Sie MySQL mit regelmäßiger Datenbankoptimierung und -wartung&lt;br /&gt;
* Für größere Grids: Erwägen Sie die Implementierung von Asset-Typ-Partitionierung oder alternativen Storage-Backends&lt;br /&gt;
* Überwachen Sie regelmäßig die Asset-Tabellengröße und Dateisystem-Statistiken&lt;br /&gt;
* Implementieren Sie Asset-Cleanup-Richtlinien, um verwaiste oder ungenutzte Assets zu entfernen&lt;br /&gt;
&lt;br /&gt;
= Änderungen und Fehlerbehebungen =&lt;br /&gt;
&lt;br /&gt;
* Neue OSSL-Funktionen [[osSetTerrainTextures]]. Mit dieser Funktion kann man den Satz von Terrain-Texturen für alte Viewer und Karten-Generatoren oder den Satz von Texturen oder Materialien für neue Viewer ändern, ohne für jeden Fall einen anderen Viewer verwenden zu müssen, Satz von Funktionen [[osListAs*]]&lt;br /&gt;
&lt;br /&gt;
* Neue LSL-Funktionen wie llGetStartString, llRezObjectWithParams, llGetLinkSitFlags, llSetLinkSitFlags, osListFindListNext, llGetInventoryDesc, llGetSimStats, llGetHealth, llHMAC, llListFindListNext, llGetVisualParams, llMapBeacon, llGetRenderMaterial, llIsLinkGLTFMaterial, llWorldPosToHUD&lt;br /&gt;
&lt;br /&gt;
= Danksagungen =&lt;br /&gt;
&lt;br /&gt;
Vielen Dank an alle Entwickler (und ihre Katzen), Tester und Community-Mitglieder, die zu diesem Release beigetragen haben und die allgemein bei OpenSimulator helfen. Ihre harte Arbeit macht dies alles möglich.&lt;br /&gt;
&lt;br /&gt;
[[Category:Release Notes]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/New_Region_Modules/de</id>
		<title>New Region Modules/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/New_Region_Modules/de"/>
				<updated>2025-12-16T09:53:09Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|New_Region_Modules}}&lt;br /&gt;
&lt;br /&gt;
= New Region Modules =&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Diese Dokumentation ist für OpenSimulator Version 0.9.3.x aktualisiert, das auf .NET 8.0 Runtime läuft.&lt;br /&gt;
&lt;br /&gt;
= Übersicht =&lt;br /&gt;
&lt;br /&gt;
Diese Seite beschreibt das OpenSimulator Region-Modul-System, das eine flexible, erweiterbare Architektur zum Hinzufügen von Funktionalität zu Regionen bereitstellt. Region-Module ermöglichen es Entwicklern, OpenSim zu erweitern, ohne die Kern-Codebasis zu ändern, und unterstützen dynamisches Laden, Region-Neustarts und Hot-Swapping von Funktionalität.&lt;br /&gt;
&lt;br /&gt;
= Warum neue Region-Module? =&lt;br /&gt;
&lt;br /&gt;
Das vorherige RegionModule-System hatte mehrere Einschränkungen:&lt;br /&gt;
&lt;br /&gt;
* '''Inkonsistente API:''' Der Initialisierungs-Lebenszyklus unterstützte dynamisches Region-Management nicht richtig&lt;br /&gt;
* '''Region-Neustart-Probleme:''' Das Hinzufügen oder Entfernen von Regionen zur Laufzeit war problematisch&lt;br /&gt;
* '''Unklare Semantik:''' Die Beziehung zwischen ''Initialise'' und ''PostInitialise'' war mehrdeutig&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel, wenn eine neue Region hinzugefügt wurde:&lt;br /&gt;
* '''Initialise nicht aufrufen:''' Modul ist für diese Region nicht initialisiert → fehlende Funktionalität&lt;br /&gt;
* '''Initialise aufrufen:''' ''PostInitialise'' wurde bereits aufgerufen → inkonsistenter Zustand&lt;br /&gt;
&lt;br /&gt;
Das neue System behebt diese Probleme mit einem gut definierten Lebenszyklus und klarer Semantik für geteilte vs. nicht-geteilte Module.&lt;br /&gt;
&lt;br /&gt;
= Modultypen =&lt;br /&gt;
&lt;br /&gt;
Das neue Region-Modul-System basiert auf drei Interfaces:&lt;br /&gt;
&lt;br /&gt;
== IRegionModuleBase ==&lt;br /&gt;
&lt;br /&gt;
Das Basis-Interface, das alle Region-Module implementieren:&lt;br /&gt;
&lt;br /&gt;
  public interface IRegionModuleBase&lt;br /&gt;
  {&lt;br /&gt;
      string Name { get; }&lt;br /&gt;
      Type ReplaceableInterface { get; }&lt;br /&gt;
      void Initialise(IConfigSource source);&lt;br /&gt;
      void Close();&lt;br /&gt;
      void AddRegion(Scene scene);&lt;br /&gt;
      void RegionLoaded(Scene scene);&lt;br /&gt;
      void RemoveRegion(Scene scene);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Interface-Mitglieder ===&lt;br /&gt;
&lt;br /&gt;
* '''Name:''' Gibt den Namen des Moduls zurück (wird für Identifikation und Logging verwendet)&lt;br /&gt;
* '''ReplaceableInterface:''' Gibt den Typ des Interfaces zurück, das dieses Modul bereitstellt (für Modul-Ersetzung)&lt;br /&gt;
* '''Initialise:''' Wird einmal aufgerufen, wenn das Modul geladen wird&lt;br /&gt;
* '''Close:''' Wird aufgerufen, wenn das Modul heruntergefahren wird&lt;br /&gt;
* '''AddRegion:''' Wird aufgerufen, wenn eine Region zu diesem Modul hinzugefügt wird&lt;br /&gt;
* '''RegionLoaded:''' Wird aufgerufen, nachdem alle Module zu einer Region hinzugefügt wurden&lt;br /&gt;
* '''RemoveRegion:''' Wird aufgerufen, wenn eine Region von diesem Modul entfernt wird&lt;br /&gt;
&lt;br /&gt;
== ISharedRegionModule ==&lt;br /&gt;
&lt;br /&gt;
Für Module, die einmal instanziiert werden und über alle Regionen hinweg geteilt werden:&lt;br /&gt;
&lt;br /&gt;
  public interface ISharedRegionModule : IRegionModuleBase&lt;br /&gt;
  {&lt;br /&gt;
      void PostInitialise();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Anwendungsfälle:'''&lt;br /&gt;
* Zentrale Dienste (Benutzerverwaltung, Asset-Dienste, etc.)&lt;br /&gt;
* Regions-übergreifende Funktionalität&lt;br /&gt;
* Singleton-Pattern-Anforderungen&lt;br /&gt;
* Ressourcenintensive Module, die nur einmal existieren sollten&lt;br /&gt;
&lt;br /&gt;
'''Lebenszyklus:'''&lt;br /&gt;
* Eine Instanz wird beim Serverstart erstellt&lt;br /&gt;
* ''Initialise'' wird einmal aufgerufen&lt;br /&gt;
* ''PostInitialise'' wird aufgerufen, nachdem alle geteilten Module initialisiert sind&lt;br /&gt;
* ''AddRegion'' wird für jede Region aufgerufen&lt;br /&gt;
* ''RegionLoaded'' wird für jede Region aufgerufen, nachdem alle Module hinzugefügt wurden&lt;br /&gt;
* ''RemoveRegion'' wird aufgerufen, wenn Regionen entfernt werden&lt;br /&gt;
* ''Close'' wird beim Server-Herunterfahren aufgerufen&lt;br /&gt;
&lt;br /&gt;
== INonSharedRegionModule ==&lt;br /&gt;
&lt;br /&gt;
Für Module, die separat für jede Region instanziiert werden:&lt;br /&gt;
&lt;br /&gt;
  public interface INonSharedRegionModule : IRegionModuleBase&lt;br /&gt;
  {&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Anwendungsfälle:'''&lt;br /&gt;
* Regions-spezifische Funktionalität&lt;br /&gt;
* Module, die regionsspezifischen Status verwalten&lt;br /&gt;
* Module, die Isolation zwischen Regionen benötigen&lt;br /&gt;
* Leistungskritische Module, die von Parallelisierung profitieren&lt;br /&gt;
&lt;br /&gt;
'''Lebenszyklus:'''&lt;br /&gt;
* Neue Instanz wird für jede Region erstellt&lt;br /&gt;
* ''Initialise'' wird aufgerufen, wenn die Modul-Instanz erstellt wird&lt;br /&gt;
* ''AddRegion'' wird unmittelbar nach der Initialisierung aufgerufen&lt;br /&gt;
* ''RegionLoaded'' wird aufgerufen, nachdem alle Module zur Region hinzugefügt wurden&lt;br /&gt;
* ''RemoveRegion'' wird aufgerufen, wenn die Region entfernt wird&lt;br /&gt;
* ''Close'' wird nach dem Entfernen der Region aufgerufen&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' ''PostInitialise'' existiert nicht für nicht-geteilte Module, weil es keinen garantierten Punkt gibt, an dem alle Instanzen erstellt wurden (neue Regionen können jederzeit hinzugefügt werden).&lt;br /&gt;
&lt;br /&gt;
= Ein Region-Modul erstellen =&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Erforderliche Referenzen hinzufügen ===&lt;br /&gt;
&lt;br /&gt;
Fügen Sie die notwendigen Namespaces in Ihren Code ein:&lt;br /&gt;
&lt;br /&gt;
  using System;&lt;br /&gt;
  using Mono.Addins;&lt;br /&gt;
  using Nini.Config;&lt;br /&gt;
  using OpenSim.Region.Framework.Interfaces;&lt;br /&gt;
  using OpenSim.Region.Framework.Scenes;&lt;br /&gt;
&lt;br /&gt;
Ihr Projekt benötigt Referenzen zu:&lt;br /&gt;
* Mono.Addins.dll&lt;br /&gt;
* Nini.dll&lt;br /&gt;
* OpenSim.Region.Framework.dll&lt;br /&gt;
* OpenSim.Framework.dll&lt;br /&gt;
&lt;br /&gt;
=== 2. Assembly-Attribute ===&lt;br /&gt;
&lt;br /&gt;
Fügen Sie diese Attribute zu Ihrer Assembly hinzu (typischerweise in Properties/AssemblyInfo.cs oder am Anfang Ihrer Haupt-Moduldatei):&lt;br /&gt;
&lt;br /&gt;
  [assembly: Addin(&amp;quot;MyModule&amp;quot;, OpenSim.VersionInfo.VersionNumber + &amp;quot;.1&amp;quot;)]&lt;br /&gt;
  [assembly: AddinDependency(&amp;quot;OpenSim.Region.Framework&amp;quot;, OpenSim.VersionInfo.VersionNumber)]&lt;br /&gt;
&lt;br /&gt;
'''Parameter:'''&lt;br /&gt;
* '''Erster Parameter:''' Der eindeutige Name Ihres Moduls&lt;br /&gt;
* '''Version:''' An OpenSim-Version gebunden für Kompatibilitätsverfolgung&lt;br /&gt;
* '''AddinDependency:''' Deklariert Abhängigkeit von OpenSim.Region.Framework&lt;br /&gt;
&lt;br /&gt;
=== 3. Modul-Klassen-Attribut ===&lt;br /&gt;
&lt;br /&gt;
Markieren Sie Ihre Modul-Klasse mit dem Extension-Attribut:&lt;br /&gt;
&lt;br /&gt;
  [Extension(Path = &amp;quot;/OpenSim/RegionModules&amp;quot;, NodeName = &amp;quot;RegionModule&amp;quot;, Id = &amp;quot;MyModuleId&amp;quot;)]&lt;br /&gt;
  public class MyModule : ISharedRegionModule&lt;br /&gt;
  {&lt;br /&gt;
      // Implementierung&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Wichtig:''' Der Path und NodeName müssen genau wie gezeigt sein. Die Id sollte für Ihr Modul eindeutig sein.&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Geteiltes Region-Modul ==&lt;br /&gt;
&lt;br /&gt;
  using System;&lt;br /&gt;
  using System.Reflection;&lt;br /&gt;
  using log4net;&lt;br /&gt;
  using Mono.Addins;&lt;br /&gt;
  using Nini.Config;&lt;br /&gt;
  using OpenSim.Region.Framework.Interfaces;&lt;br /&gt;
  using OpenSim.Region.Framework.Scenes;&lt;br /&gt;
  &lt;br /&gt;
  [assembly: Addin(&amp;quot;ExampleSharedModule&amp;quot;, OpenSim.VersionInfo.VersionNumber + &amp;quot;.1&amp;quot;)]&lt;br /&gt;
  [assembly: AddinDependency(&amp;quot;OpenSim.Region.Framework&amp;quot;, OpenSim.VersionInfo.VersionNumber)]&lt;br /&gt;
  &lt;br /&gt;
  namespace MyNamespace&lt;br /&gt;
  {&lt;br /&gt;
      [Extension(Path = &amp;quot;/OpenSim/RegionModules&amp;quot;, NodeName = &amp;quot;RegionModule&amp;quot;, Id = &amp;quot;ExampleSharedModule&amp;quot;)]&lt;br /&gt;
      public class ExampleSharedModule : ISharedRegionModule&lt;br /&gt;
      {&lt;br /&gt;
          private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);&lt;br /&gt;
          private bool m_enabled = false;&lt;br /&gt;
          private List&amp;lt;Scene&amp;gt; m_scenes = new List&amp;lt;Scene&amp;gt;();&lt;br /&gt;
          &lt;br /&gt;
          public string Name &lt;br /&gt;
          { &lt;br /&gt;
              get { return &amp;quot;ExampleSharedModule&amp;quot;; } &lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public Type ReplaceableInterface &lt;br /&gt;
          { &lt;br /&gt;
              get { return null; } &lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void Initialise(IConfigSource config)&lt;br /&gt;
          {&lt;br /&gt;
              IConfig moduleConfig = config.Configs[&amp;quot;ExampleModule&amp;quot;];&lt;br /&gt;
              if (moduleConfig != null)&lt;br /&gt;
              {&lt;br /&gt;
                  m_enabled = moduleConfig.GetBoolean(&amp;quot;Enabled&amp;quot;, false);&lt;br /&gt;
                  m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Enabled = {0}&amp;quot;, m_enabled);&lt;br /&gt;
              }&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void PostInitialise()&lt;br /&gt;
          {&lt;br /&gt;
              if (!m_enabled)&lt;br /&gt;
                  return;&lt;br /&gt;
                  &lt;br /&gt;
              m_log.Info(&amp;quot;[EXAMPLE MODULE]: PostInitialise aufgerufen&amp;quot;);&lt;br /&gt;
              // Geteilte Ressourcen hier initialisieren&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void AddRegion(Scene scene)&lt;br /&gt;
          {&lt;br /&gt;
              if (!m_enabled)&lt;br /&gt;
                  return;&lt;br /&gt;
                  &lt;br /&gt;
              m_scenes.Add(scene);&lt;br /&gt;
              m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Region {0} hinzugefügt&amp;quot;, scene.RegionInfo.RegionName);&lt;br /&gt;
              &lt;br /&gt;
              // Interfaces registrieren&lt;br /&gt;
              scene.RegisterModuleInterface&amp;lt;IExampleModule&amp;gt;(this);&lt;br /&gt;
              &lt;br /&gt;
              // Events anhängen&lt;br /&gt;
              scene.EventManager.OnNewClient += OnNewClient;&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void RegionLoaded(Scene scene)&lt;br /&gt;
          {&lt;br /&gt;
              if (!m_enabled)&lt;br /&gt;
                  return;&lt;br /&gt;
                  &lt;br /&gt;
              m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Region {0} geladen&amp;quot;, scene.RegionInfo.RegionName);&lt;br /&gt;
              &lt;br /&gt;
              // Andere Module hier zugreifen&lt;br /&gt;
              // var otherModule = scene.RequestModuleInterface&amp;lt;IOtherModule&amp;gt;();&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void RemoveRegion(Scene scene)&lt;br /&gt;
          {&lt;br /&gt;
              if (!m_enabled)&lt;br /&gt;
                  return;&lt;br /&gt;
                  &lt;br /&gt;
              m_scenes.Remove(scene);&lt;br /&gt;
              &lt;br /&gt;
              // Events abhängen&lt;br /&gt;
              scene.EventManager.OnNewClient -= OnNewClient;&lt;br /&gt;
              &lt;br /&gt;
              // Interfaces abmelden&lt;br /&gt;
              scene.UnregisterModuleInterface&amp;lt;IExampleModule&amp;gt;(this);&lt;br /&gt;
              &lt;br /&gt;
              m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Region {0} entfernt&amp;quot;, scene.RegionInfo.RegionName);&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void Close()&lt;br /&gt;
          {&lt;br /&gt;
              m_log.Info(&amp;quot;[EXAMPLE MODULE]: Wird heruntergefahren&amp;quot;);&lt;br /&gt;
              // Geteilte Ressourcen aufräumen&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          private void OnNewClient(IClientAPI client)&lt;br /&gt;
          {&lt;br /&gt;
              // Neuen Client behandeln&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Nicht-geteiltes Region-Modul ==&lt;br /&gt;
&lt;br /&gt;
  [Extension(Path = &amp;quot;/OpenSim/RegionModules&amp;quot;, NodeName = &amp;quot;RegionModule&amp;quot;, Id = &amp;quot;ExampleNonSharedModule&amp;quot;)]&lt;br /&gt;
  public class ExampleNonSharedModule : INonSharedRegionModule&lt;br /&gt;
  {&lt;br /&gt;
      private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);&lt;br /&gt;
      private bool m_enabled = false;&lt;br /&gt;
      private Scene m_scene;&lt;br /&gt;
      &lt;br /&gt;
      public string Name &lt;br /&gt;
      { &lt;br /&gt;
          get { return &amp;quot;ExampleNonSharedModule&amp;quot;; } &lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public Type ReplaceableInterface &lt;br /&gt;
      { &lt;br /&gt;
          get { return null; } &lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void Initialise(IConfigSource config)&lt;br /&gt;
      {&lt;br /&gt;
          IConfig moduleConfig = config.Configs[&amp;quot;ExampleModule&amp;quot;];&lt;br /&gt;
          if (moduleConfig != null)&lt;br /&gt;
          {&lt;br /&gt;
              m_enabled = moduleConfig.GetBoolean(&amp;quot;Enabled&amp;quot;, false);&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void AddRegion(Scene scene)&lt;br /&gt;
      {&lt;br /&gt;
          if (!m_enabled)&lt;br /&gt;
              return;&lt;br /&gt;
              &lt;br /&gt;
          m_scene = scene;&lt;br /&gt;
          m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Zur Region {0} hinzugefügt&amp;quot;, scene.RegionInfo.RegionName);&lt;br /&gt;
          &lt;br /&gt;
          scene.RegisterModuleInterface&amp;lt;IExampleModule&amp;gt;(this);&lt;br /&gt;
          scene.EventManager.OnFrame += OnFrame;&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void RegionLoaded(Scene scene)&lt;br /&gt;
      {&lt;br /&gt;
          if (!m_enabled)&lt;br /&gt;
              return;&lt;br /&gt;
              &lt;br /&gt;
          // Andere Module zugreifen&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void RemoveRegion(Scene scene)&lt;br /&gt;
      {&lt;br /&gt;
          if (!m_enabled)&lt;br /&gt;
              return;&lt;br /&gt;
              &lt;br /&gt;
          scene.EventManager.OnFrame -= OnFrame;&lt;br /&gt;
          scene.UnregisterModuleInterface&amp;lt;IExampleModule&amp;gt;(this);&lt;br /&gt;
          &lt;br /&gt;
          m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Von Region {0} entfernt&amp;quot;, scene.RegionInfo.RegionName);&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void Close()&lt;br /&gt;
      {&lt;br /&gt;
          // Regionsspezifische Ressourcen aufräumen&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      private void OnFrame()&lt;br /&gt;
      {&lt;br /&gt;
          // Regionsspezifische Frame-Verarbeitung&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
= Modul-Lebenszyklus =&lt;br /&gt;
&lt;br /&gt;
== Server-Start ==&lt;br /&gt;
&lt;br /&gt;
'''1. Modul-Laden'''&lt;br /&gt;
* Region-Server startet&lt;br /&gt;
* Alle Modul-Klassen werden über Mono.Addins geladen (keine bestimmte Reihenfolge)&lt;br /&gt;
&lt;br /&gt;
'''2. Geteilte Modul-Initialisierung'''&lt;br /&gt;
* Für jedes ''ISharedRegionModule'': Eine Instanz wird erstellt, ''Initialise'' wird aufgerufen&lt;br /&gt;
* Für jedes ''ISharedRegionModule'': ''PostInitialise'' wird aufgerufen&lt;br /&gt;
&lt;br /&gt;
'''3. Scene-Erstellung (für jede Scene)'''&lt;br /&gt;
* Für jedes ''INonSharedRegionModule'': Neue Instanz wird erstellt, ''Initialise'' wird aufgerufen&lt;br /&gt;
* Für alle Module (geteilt und nicht-geteilt): ''AddRegion(scene)'' wird aufgerufen&lt;br /&gt;
* Module werden mit der Scene verknüpft&lt;br /&gt;
* Für alle Module: ''RegionLoaded(scene)'' wird aufgerufen&lt;br /&gt;
* An diesem Punkt können Module auf andere Module über ''scene.RequestModuleInterface&amp;lt;T&amp;gt;()'' zugreifen&lt;br /&gt;
&lt;br /&gt;
== Eine Region hinzufügen (Laufzeit) ==&lt;br /&gt;
&lt;br /&gt;
* Für jedes ''INonSharedRegionModule'': Neue Instanz wird erstellt, ''Initialise'' wird aufgerufen&lt;br /&gt;
* Für alle Module (geteilt und nicht-geteilt): ''AddRegion(scene)'' wird aufgerufen&lt;br /&gt;
* Für alle Module: ''RegionLoaded(scene)'' wird aufgerufen&lt;br /&gt;
&lt;br /&gt;
== Eine Region entfernen ==&lt;br /&gt;
&lt;br /&gt;
* Für alle Module (geteilt und nicht-geteilt): ''RemoveRegion(scene)'' wird aufgerufen&lt;br /&gt;
* Nur für ''INonSharedRegionModule''s: ''Close'' wird aufgerufen&lt;br /&gt;
* Modul-Referenzen werden aus der Scene entfernt&lt;br /&gt;
* ''INonSharedRegionModule''-Instanzen können vom Garbage Collector erfasst werden&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Aufgrund des Verhaltens der .NET/Mono-Laufzeitumgebung werden einige Ressourcen möglicherweise nicht sofort freigegeben, selbst bei ordnungsgemäßer Bereinigung.&lt;br /&gt;
&lt;br /&gt;
== Eine Region neu starten ==&lt;br /&gt;
&lt;br /&gt;
Ein Region-Neustart wird implementiert als:&lt;br /&gt;
1. [[#Eine_Region_entfernen|Region entfernen]]&lt;br /&gt;
2. [[#Eine_Region_hinzuf.C3.BCgen_.28Laufzeit.29|Region hinzufügen]]&lt;br /&gt;
&lt;br /&gt;
Avatare in der Region werden während des Neustarts getrennt.&lt;br /&gt;
&lt;br /&gt;
'''Wichtig:''' Aufgrund von .NET/Mono-Laufzeitbeschränkungen erfolgt möglicherweise kein echtes Entladen von Modulen. Einige Ressourcen können über Neustarts hinweg im Speicher verbleiben.&lt;br /&gt;
&lt;br /&gt;
== Server-Herunterfahren ==&lt;br /&gt;
&lt;br /&gt;
* Für jede Scene: [[#Eine_Region_entfernen|Region entfernen]]-Schritte werden durchgeführt&lt;br /&gt;
** ''RemoveRegion'' wird für alle Module aufgerufen&lt;br /&gt;
** ''Close'' wird für alle ''INonSharedRegionModule''s aufgerufen&lt;br /&gt;
* ''Close'' wird für alle ''ISharedRegionModule''s aufgerufen&lt;br /&gt;
* Module können vom Garbage Collector erfasst werden&lt;br /&gt;
&lt;br /&gt;
= Best Practices =&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie das ''enabled''-Muster für Module, die optional sein sollten:&lt;br /&gt;
&lt;br /&gt;
  [ExampleModule]&lt;br /&gt;
      Enabled = true&lt;br /&gt;
      ; Weitere Einstellungen...&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie dies in ''Initialise'' und kehren Sie früh zurück, wenn deaktiviert:&lt;br /&gt;
&lt;br /&gt;
  public void Initialise(IConfigSource config)&lt;br /&gt;
  {&lt;br /&gt;
      IConfig cfg = config.Configs[&amp;quot;ExampleModule&amp;quot;];&lt;br /&gt;
      if (cfg == null || !cfg.GetBoolean(&amp;quot;Enabled&amp;quot;, false))&lt;br /&gt;
          return;&lt;br /&gt;
          &lt;br /&gt;
      m_enabled = true;&lt;br /&gt;
      // Initialisierung fortsetzen...&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Ressourcenverwaltung ==&lt;br /&gt;
&lt;br /&gt;
* '''In RemoveRegion aufräumen:''' Event-Handler abmelden, Interfaces abmelden&lt;br /&gt;
* '''In Close aufräumen:''' Ressourcen freigeben, Verbindungen schließen&lt;br /&gt;
* '''Operationen abgleichen:''' Was Sie in ''AddRegion'' hinzufügen, entfernen Sie in ''RemoveRegion''&lt;br /&gt;
* '''Memory Leaks vermeiden:''' Immer Event-Handler abhängen, um Referenzen zu vermeiden&lt;br /&gt;
&lt;br /&gt;
== Modul-Abhängigkeiten ==&lt;br /&gt;
&lt;br /&gt;
Greifen Sie auf andere Module in ''RegionLoaded'' zu, nicht in ''AddRegion'':&lt;br /&gt;
&lt;br /&gt;
  public void RegionLoaded(Scene scene)&lt;br /&gt;
  {&lt;br /&gt;
      // Sicher - alle Module wurden hinzugefügt&lt;br /&gt;
      IOtherModule other = scene.RequestModuleInterface&amp;lt;IOtherModule&amp;gt;();&lt;br /&gt;
      if (other != null)&lt;br /&gt;
      {&lt;br /&gt;
          // Modul verwenden&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Modultyp wählen ==&lt;br /&gt;
&lt;br /&gt;
'''Verwenden Sie ISharedRegionModule wenn:'''&lt;br /&gt;
* Modul Singleton-Dienste bereitstellt&lt;br /&gt;
* Modul regionsübergreifende Funktionalität verwaltet&lt;br /&gt;
* Modul ressourcenintensiv ist und nur einmal existieren sollte&lt;br /&gt;
* Beispiel: Asset-Service, Benutzerverwaltung&lt;br /&gt;
&lt;br /&gt;
'''Verwenden Sie INonSharedRegionModule wenn:'''&lt;br /&gt;
* Modul regionsspezifischen Status verwaltet&lt;br /&gt;
* Modul-Funktionalität regionsspezifisch ist&lt;br /&gt;
* Modul von Isolation zwischen Regionen profitiert&lt;br /&gt;
* Beispiel: Terrain-Modul, Vegetations-Modul&lt;br /&gt;
&lt;br /&gt;
== ReplaceableInterface ==&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie ''ReplaceableInterface'', um die Ersetzung Ihres Moduls zu ermöglichen:&lt;br /&gt;
&lt;br /&gt;
  public Type ReplaceableInterface &lt;br /&gt;
  { &lt;br /&gt;
      get { return typeof(IMyModuleInterface); } &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Dies ermöglicht es Drittanbieter-Modulen, Ihre Standard-Implementierung zu ersetzen.&lt;br /&gt;
&lt;br /&gt;
= Bereitstellung =&lt;br /&gt;
&lt;br /&gt;
== Manuelle Bereitstellung ==&lt;br /&gt;
&lt;br /&gt;
1. Bauen Sie Ihre Modul-Assembly&lt;br /&gt;
2. Kopieren Sie die .dll in den bin-Ordner von OpenSim&lt;br /&gt;
3. Starten Sie OpenSim neu&lt;br /&gt;
4. Modul wird automatisch über Mono.Addins entdeckt und geladen&lt;br /&gt;
&lt;br /&gt;
== Verwendung von Prebuild ==&lt;br /&gt;
&lt;br /&gt;
Für die Integration in das Build-System von OpenSim erstellen Sie einen prebuild.xml-Eintrag:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Project name=&amp;quot;OpenSim.Region.Modules.Example&amp;quot; path=&amp;quot;addon-modules/ExampleModule&amp;quot; type=&amp;quot;Library&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration name=&amp;quot;Debug&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Options&amp;gt;&lt;br /&gt;
        &amp;lt;OutputPath&amp;gt;../../bin/&amp;lt;/OutputPath&amp;gt;&lt;br /&gt;
      &amp;lt;/Options&amp;gt;&lt;br /&gt;
    &amp;lt;/Configuration&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;ReferencePath&amp;gt;../../bin/&amp;lt;/ReferencePath&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;Mono.Addins&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;Nini&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;log4net&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;OpenSim.Region.Framework&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;OpenSim.Framework&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Files&amp;gt;&lt;br /&gt;
      &amp;lt;Match pattern=&amp;quot;*.cs&amp;quot; recurse=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/Files&amp;gt;&lt;br /&gt;
  &amp;lt;/Project&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verwendung von .NET SDK-Projekten ==&lt;br /&gt;
&lt;br /&gt;
Moderne .NET 8.0-Projekte können SDK-Style .csproj verwenden:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Project Sdk=&amp;quot;Microsoft.NET.Sdk&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;PropertyGroup&amp;gt;&lt;br /&gt;
      &amp;lt;TargetFramework&amp;gt;net8.0&amp;lt;/TargetFramework&amp;gt;&lt;br /&gt;
      &amp;lt;OutputPath&amp;gt;../../bin/&amp;lt;/OutputPath&amp;gt;&lt;br /&gt;
      &amp;lt;GenerateAssemblyInfo&amp;gt;false&amp;lt;/GenerateAssemblyInfo&amp;gt;&lt;br /&gt;
    &amp;lt;/PropertyGroup&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;
      &amp;lt;Reference Include=&amp;quot;Mono.Addins&amp;quot; HintPath=&amp;quot;../../bin/Mono.Addins.dll&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;ProjectReference Include=&amp;quot;../../OpenSim/Region/Framework/OpenSim.Region.Framework.csproj&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;
  &amp;lt;/Project&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Fehlerbehebung =&lt;br /&gt;
&lt;br /&gt;
== Modul wird nicht geladen ==&lt;br /&gt;
&lt;br /&gt;
* Überprüfen Sie, ob das Extension-Attribut korrekt ist&lt;br /&gt;
* Prüfen Sie, ob Assembly-Attribute vorhanden sind&lt;br /&gt;
* Stellen Sie sicher, dass die Mono.Addins.dll-Referenz korrekt ist&lt;br /&gt;
* Überprüfen Sie das OpenSim-Log auf Addin-Ladefehler&lt;br /&gt;
* Überprüfen Sie, ob die .dll im bin-Verzeichnis liegt&lt;br /&gt;
&lt;br /&gt;
== Modul nicht gefunden ==&lt;br /&gt;
&lt;br /&gt;
* Überprüfen Sie, ob die Name-Eigenschaft des Moduls mit der Konfiguration übereinstimmt&lt;br /&gt;
* Überprüfen Sie, ob das Modul in der Konfiguration aktiviert ist&lt;br /&gt;
* Prüfen Sie auf Tippfehler im Extension-Id-Attribut&lt;br /&gt;
&lt;br /&gt;
== Methoden werden nicht aufgerufen ==&lt;br /&gt;
&lt;br /&gt;
* Überprüfen Sie, ob die Interface-Implementierung vollständig ist&lt;br /&gt;
* Prüfen Sie, ob m_enabled oder ähnliche Flags die Ausführung nicht verhindern&lt;br /&gt;
* Stellen Sie sicher, dass das Modul die Konfigurationsprüfungen in Initialise bestanden hat&lt;br /&gt;
&lt;br /&gt;
== Memory Leaks ==&lt;br /&gt;
&lt;br /&gt;
* Hängen Sie alle Event-Handler in RemoveRegion ab&lt;br /&gt;
* Melden Sie alle Modul-Interfaces ab&lt;br /&gt;
* Leeren Sie Collections und Referenzen in Close&lt;br /&gt;
* Verwenden Sie WeakReference für langlebige Referenzen, wenn angemessen&lt;br /&gt;
&lt;br /&gt;
== .NET 8.0 spezifische Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Stellen Sie sicher, dass alle referenzierten Assemblies .NET 8.0-kompatibel sind&lt;br /&gt;
* Prüfen Sie auf veraltete API-Verwendung&lt;br /&gt;
* Überprüfen Sie, ob async/await-Muster korrekt verwendet werden&lt;br /&gt;
&lt;br /&gt;
= Erweiterte Themen =&lt;br /&gt;
&lt;br /&gt;
== Modul-Ersetzung ==&lt;br /&gt;
&lt;br /&gt;
Implementieren Sie ''ReplaceableInterface'', um Modul-Ersetzung zu ermöglichen:&lt;br /&gt;
&lt;br /&gt;
  public Type ReplaceableInterface &lt;br /&gt;
  { &lt;br /&gt;
      get { return typeof(IMyService); } &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Der Loader wird:&lt;br /&gt;
1. Alle Module laden&lt;br /&gt;
2. Für Module mit ReplaceableInterface die Aktivierung aufschieben&lt;br /&gt;
3. Nur aktivieren, wenn kein anderes Modul dieses Interface registriert hat&lt;br /&gt;
&lt;br /&gt;
== Modul-übergreifende Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie Modul-Interfaces für die Kommunikation:&lt;br /&gt;
&lt;br /&gt;
  // Interface definieren&lt;br /&gt;
  public interface IMyModule&lt;br /&gt;
  {&lt;br /&gt;
      void DoSomething();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // Im Modul implementieren&lt;br /&gt;
  public class MyModule : ISharedRegionModule, IMyModule&lt;br /&gt;
  {&lt;br /&gt;
      public void AddRegion(Scene scene)&lt;br /&gt;
      {&lt;br /&gt;
          scene.RegisterModuleInterface&amp;lt;IMyModule&amp;gt;(this);&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void DoSomething()&lt;br /&gt;
      {&lt;br /&gt;
          // Implementierung&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // Von einem anderen Modul aus verwenden&lt;br /&gt;
  public void RegionLoaded(Scene scene)&lt;br /&gt;
  {&lt;br /&gt;
      IMyModule myMod = scene.RequestModuleInterface&amp;lt;IMyModule&amp;gt;();&lt;br /&gt;
      if (myMod != null)&lt;br /&gt;
          myMod.DoSomething();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Leistungsüberlegungen ==&lt;br /&gt;
&lt;br /&gt;
* '''Geteilte Module:''' Geringerer Speicher-Overhead, potenzielle Engpässe&lt;br /&gt;
* '''Nicht-geteilte Module:''' Höhere Speichernutzung, bessere Parallelisierung&lt;br /&gt;
* '''Event-Handler:''' Seien Sie effizient, vermeiden Sie blockierende Operationen&lt;br /&gt;
* '''Asynchrone Operationen:''' Verwenden Sie Task-basierte async für langläufige Operationen&lt;br /&gt;
&lt;br /&gt;
= Siehe auch =&lt;br /&gt;
&lt;br /&gt;
* [[Developing OpenSim Addins]] - Erstellen von Addon-Paketen&lt;br /&gt;
* [[Installing 3rd party addins]] - Installation von Addons&lt;br /&gt;
* [http://opensimulator.org/wiki/ OpenSimulator Wiki] - Hauptdokumentation&lt;br /&gt;
&lt;br /&gt;
= Referenzen =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/opensim/opensim OpenSimulator GitHub Repository]&lt;br /&gt;
* [https://github.com/mono/mono-addins Mono.Addins Dokumentation]&lt;br /&gt;
* [http://opensimulator.org/ OpenSimulator Website]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/New_Region_Modules/de</id>
		<title>New Region Modules/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/New_Region_Modules/de"/>
				<updated>2025-12-16T09:52:35Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;{{Quicklinks|New_Region_Modules}}  '''Hinweis:''' Diese Dokumentation ist für OpenSimulator Version 0.9.3.x aktualisiert, das auf .NET 8.0 Runtime läuft.  = Übersicht =  Di...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|New_Region_Modules}}&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Diese Dokumentation ist für OpenSimulator Version 0.9.3.x aktualisiert, das auf .NET 8.0 Runtime läuft.&lt;br /&gt;
&lt;br /&gt;
= Übersicht =&lt;br /&gt;
&lt;br /&gt;
Diese Seite beschreibt das OpenSimulator Region-Modul-System, das eine flexible, erweiterbare Architektur zum Hinzufügen von Funktionalität zu Regionen bereitstellt. Region-Module ermöglichen es Entwicklern, OpenSim zu erweitern, ohne die Kern-Codebasis zu ändern, und unterstützen dynamisches Laden, Region-Neustarts und Hot-Swapping von Funktionalität.&lt;br /&gt;
&lt;br /&gt;
= Warum neue Region-Module? =&lt;br /&gt;
&lt;br /&gt;
Das vorherige RegionModule-System hatte mehrere Einschränkungen:&lt;br /&gt;
&lt;br /&gt;
* '''Inkonsistente API:''' Der Initialisierungs-Lebenszyklus unterstützte dynamisches Region-Management nicht richtig&lt;br /&gt;
* '''Region-Neustart-Probleme:''' Das Hinzufügen oder Entfernen von Regionen zur Laufzeit war problematisch&lt;br /&gt;
* '''Unklare Semantik:''' Die Beziehung zwischen ''Initialise'' und ''PostInitialise'' war mehrdeutig&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel, wenn eine neue Region hinzugefügt wurde:&lt;br /&gt;
* '''Initialise nicht aufrufen:''' Modul ist für diese Region nicht initialisiert → fehlende Funktionalität&lt;br /&gt;
* '''Initialise aufrufen:''' ''PostInitialise'' wurde bereits aufgerufen → inkonsistenter Zustand&lt;br /&gt;
&lt;br /&gt;
Das neue System behebt diese Probleme mit einem gut definierten Lebenszyklus und klarer Semantik für geteilte vs. nicht-geteilte Module.&lt;br /&gt;
&lt;br /&gt;
= Modultypen =&lt;br /&gt;
&lt;br /&gt;
Das neue Region-Modul-System basiert auf drei Interfaces:&lt;br /&gt;
&lt;br /&gt;
== IRegionModuleBase ==&lt;br /&gt;
&lt;br /&gt;
Das Basis-Interface, das alle Region-Module implementieren:&lt;br /&gt;
&lt;br /&gt;
  public interface IRegionModuleBase&lt;br /&gt;
  {&lt;br /&gt;
      string Name { get; }&lt;br /&gt;
      Type ReplaceableInterface { get; }&lt;br /&gt;
      void Initialise(IConfigSource source);&lt;br /&gt;
      void Close();&lt;br /&gt;
      void AddRegion(Scene scene);&lt;br /&gt;
      void RegionLoaded(Scene scene);&lt;br /&gt;
      void RemoveRegion(Scene scene);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Interface-Mitglieder ===&lt;br /&gt;
&lt;br /&gt;
* '''Name:''' Gibt den Namen des Moduls zurück (wird für Identifikation und Logging verwendet)&lt;br /&gt;
* '''ReplaceableInterface:''' Gibt den Typ des Interfaces zurück, das dieses Modul bereitstellt (für Modul-Ersetzung)&lt;br /&gt;
* '''Initialise:''' Wird einmal aufgerufen, wenn das Modul geladen wird&lt;br /&gt;
* '''Close:''' Wird aufgerufen, wenn das Modul heruntergefahren wird&lt;br /&gt;
* '''AddRegion:''' Wird aufgerufen, wenn eine Region zu diesem Modul hinzugefügt wird&lt;br /&gt;
* '''RegionLoaded:''' Wird aufgerufen, nachdem alle Module zu einer Region hinzugefügt wurden&lt;br /&gt;
* '''RemoveRegion:''' Wird aufgerufen, wenn eine Region von diesem Modul entfernt wird&lt;br /&gt;
&lt;br /&gt;
== ISharedRegionModule ==&lt;br /&gt;
&lt;br /&gt;
Für Module, die einmal instanziiert werden und über alle Regionen hinweg geteilt werden:&lt;br /&gt;
&lt;br /&gt;
  public interface ISharedRegionModule : IRegionModuleBase&lt;br /&gt;
  {&lt;br /&gt;
      void PostInitialise();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Anwendungsfälle:'''&lt;br /&gt;
* Zentrale Dienste (Benutzerverwaltung, Asset-Dienste, etc.)&lt;br /&gt;
* Regions-übergreifende Funktionalität&lt;br /&gt;
* Singleton-Pattern-Anforderungen&lt;br /&gt;
* Ressourcenintensive Module, die nur einmal existieren sollten&lt;br /&gt;
&lt;br /&gt;
'''Lebenszyklus:'''&lt;br /&gt;
* Eine Instanz wird beim Serverstart erstellt&lt;br /&gt;
* ''Initialise'' wird einmal aufgerufen&lt;br /&gt;
* ''PostInitialise'' wird aufgerufen, nachdem alle geteilten Module initialisiert sind&lt;br /&gt;
* ''AddRegion'' wird für jede Region aufgerufen&lt;br /&gt;
* ''RegionLoaded'' wird für jede Region aufgerufen, nachdem alle Module hinzugefügt wurden&lt;br /&gt;
* ''RemoveRegion'' wird aufgerufen, wenn Regionen entfernt werden&lt;br /&gt;
* ''Close'' wird beim Server-Herunterfahren aufgerufen&lt;br /&gt;
&lt;br /&gt;
== INonSharedRegionModule ==&lt;br /&gt;
&lt;br /&gt;
Für Module, die separat für jede Region instanziiert werden:&lt;br /&gt;
&lt;br /&gt;
  public interface INonSharedRegionModule : IRegionModuleBase&lt;br /&gt;
  {&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Anwendungsfälle:'''&lt;br /&gt;
* Regions-spezifische Funktionalität&lt;br /&gt;
* Module, die regionsspezifischen Status verwalten&lt;br /&gt;
* Module, die Isolation zwischen Regionen benötigen&lt;br /&gt;
* Leistungskritische Module, die von Parallelisierung profitieren&lt;br /&gt;
&lt;br /&gt;
'''Lebenszyklus:'''&lt;br /&gt;
* Neue Instanz wird für jede Region erstellt&lt;br /&gt;
* ''Initialise'' wird aufgerufen, wenn die Modul-Instanz erstellt wird&lt;br /&gt;
* ''AddRegion'' wird unmittelbar nach der Initialisierung aufgerufen&lt;br /&gt;
* ''RegionLoaded'' wird aufgerufen, nachdem alle Module zur Region hinzugefügt wurden&lt;br /&gt;
* ''RemoveRegion'' wird aufgerufen, wenn die Region entfernt wird&lt;br /&gt;
* ''Close'' wird nach dem Entfernen der Region aufgerufen&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' ''PostInitialise'' existiert nicht für nicht-geteilte Module, weil es keinen garantierten Punkt gibt, an dem alle Instanzen erstellt wurden (neue Regionen können jederzeit hinzugefügt werden).&lt;br /&gt;
&lt;br /&gt;
= Ein Region-Modul erstellen =&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Einrichtung ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Erforderliche Referenzen hinzufügen ===&lt;br /&gt;
&lt;br /&gt;
Fügen Sie die notwendigen Namespaces in Ihren Code ein:&lt;br /&gt;
&lt;br /&gt;
  using System;&lt;br /&gt;
  using Mono.Addins;&lt;br /&gt;
  using Nini.Config;&lt;br /&gt;
  using OpenSim.Region.Framework.Interfaces;&lt;br /&gt;
  using OpenSim.Region.Framework.Scenes;&lt;br /&gt;
&lt;br /&gt;
Ihr Projekt benötigt Referenzen zu:&lt;br /&gt;
* Mono.Addins.dll&lt;br /&gt;
* Nini.dll&lt;br /&gt;
* OpenSim.Region.Framework.dll&lt;br /&gt;
* OpenSim.Framework.dll&lt;br /&gt;
&lt;br /&gt;
=== 2. Assembly-Attribute ===&lt;br /&gt;
&lt;br /&gt;
Fügen Sie diese Attribute zu Ihrer Assembly hinzu (typischerweise in Properties/AssemblyInfo.cs oder am Anfang Ihrer Haupt-Moduldatei):&lt;br /&gt;
&lt;br /&gt;
  [assembly: Addin(&amp;quot;MyModule&amp;quot;, OpenSim.VersionInfo.VersionNumber + &amp;quot;.1&amp;quot;)]&lt;br /&gt;
  [assembly: AddinDependency(&amp;quot;OpenSim.Region.Framework&amp;quot;, OpenSim.VersionInfo.VersionNumber)]&lt;br /&gt;
&lt;br /&gt;
'''Parameter:'''&lt;br /&gt;
* '''Erster Parameter:''' Der eindeutige Name Ihres Moduls&lt;br /&gt;
* '''Version:''' An OpenSim-Version gebunden für Kompatibilitätsverfolgung&lt;br /&gt;
* '''AddinDependency:''' Deklariert Abhängigkeit von OpenSim.Region.Framework&lt;br /&gt;
&lt;br /&gt;
=== 3. Modul-Klassen-Attribut ===&lt;br /&gt;
&lt;br /&gt;
Markieren Sie Ihre Modul-Klasse mit dem Extension-Attribut:&lt;br /&gt;
&lt;br /&gt;
  [Extension(Path = &amp;quot;/OpenSim/RegionModules&amp;quot;, NodeName = &amp;quot;RegionModule&amp;quot;, Id = &amp;quot;MyModuleId&amp;quot;)]&lt;br /&gt;
  public class MyModule : ISharedRegionModule&lt;br /&gt;
  {&lt;br /&gt;
      // Implementierung&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Wichtig:''' Der Path und NodeName müssen genau wie gezeigt sein. Die Id sollte für Ihr Modul eindeutig sein.&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Geteiltes Region-Modul ==&lt;br /&gt;
&lt;br /&gt;
  using System;&lt;br /&gt;
  using System.Reflection;&lt;br /&gt;
  using log4net;&lt;br /&gt;
  using Mono.Addins;&lt;br /&gt;
  using Nini.Config;&lt;br /&gt;
  using OpenSim.Region.Framework.Interfaces;&lt;br /&gt;
  using OpenSim.Region.Framework.Scenes;&lt;br /&gt;
  &lt;br /&gt;
  [assembly: Addin(&amp;quot;ExampleSharedModule&amp;quot;, OpenSim.VersionInfo.VersionNumber + &amp;quot;.1&amp;quot;)]&lt;br /&gt;
  [assembly: AddinDependency(&amp;quot;OpenSim.Region.Framework&amp;quot;, OpenSim.VersionInfo.VersionNumber)]&lt;br /&gt;
  &lt;br /&gt;
  namespace MyNamespace&lt;br /&gt;
  {&lt;br /&gt;
      [Extension(Path = &amp;quot;/OpenSim/RegionModules&amp;quot;, NodeName = &amp;quot;RegionModule&amp;quot;, Id = &amp;quot;ExampleSharedModule&amp;quot;)]&lt;br /&gt;
      public class ExampleSharedModule : ISharedRegionModule&lt;br /&gt;
      {&lt;br /&gt;
          private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);&lt;br /&gt;
          private bool m_enabled = false;&lt;br /&gt;
          private List&amp;lt;Scene&amp;gt; m_scenes = new List&amp;lt;Scene&amp;gt;();&lt;br /&gt;
          &lt;br /&gt;
          public string Name &lt;br /&gt;
          { &lt;br /&gt;
              get { return &amp;quot;ExampleSharedModule&amp;quot;; } &lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public Type ReplaceableInterface &lt;br /&gt;
          { &lt;br /&gt;
              get { return null; } &lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void Initialise(IConfigSource config)&lt;br /&gt;
          {&lt;br /&gt;
              IConfig moduleConfig = config.Configs[&amp;quot;ExampleModule&amp;quot;];&lt;br /&gt;
              if (moduleConfig != null)&lt;br /&gt;
              {&lt;br /&gt;
                  m_enabled = moduleConfig.GetBoolean(&amp;quot;Enabled&amp;quot;, false);&lt;br /&gt;
                  m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Enabled = {0}&amp;quot;, m_enabled);&lt;br /&gt;
              }&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void PostInitialise()&lt;br /&gt;
          {&lt;br /&gt;
              if (!m_enabled)&lt;br /&gt;
                  return;&lt;br /&gt;
                  &lt;br /&gt;
              m_log.Info(&amp;quot;[EXAMPLE MODULE]: PostInitialise aufgerufen&amp;quot;);&lt;br /&gt;
              // Geteilte Ressourcen hier initialisieren&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void AddRegion(Scene scene)&lt;br /&gt;
          {&lt;br /&gt;
              if (!m_enabled)&lt;br /&gt;
                  return;&lt;br /&gt;
                  &lt;br /&gt;
              m_scenes.Add(scene);&lt;br /&gt;
              m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Region {0} hinzugefügt&amp;quot;, scene.RegionInfo.RegionName);&lt;br /&gt;
              &lt;br /&gt;
              // Interfaces registrieren&lt;br /&gt;
              scene.RegisterModuleInterface&amp;lt;IExampleModule&amp;gt;(this);&lt;br /&gt;
              &lt;br /&gt;
              // Events anhängen&lt;br /&gt;
              scene.EventManager.OnNewClient += OnNewClient;&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void RegionLoaded(Scene scene)&lt;br /&gt;
          {&lt;br /&gt;
              if (!m_enabled)&lt;br /&gt;
                  return;&lt;br /&gt;
                  &lt;br /&gt;
              m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Region {0} geladen&amp;quot;, scene.RegionInfo.RegionName);&lt;br /&gt;
              &lt;br /&gt;
              // Andere Module hier zugreifen&lt;br /&gt;
              // var otherModule = scene.RequestModuleInterface&amp;lt;IOtherModule&amp;gt;();&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void RemoveRegion(Scene scene)&lt;br /&gt;
          {&lt;br /&gt;
              if (!m_enabled)&lt;br /&gt;
                  return;&lt;br /&gt;
                  &lt;br /&gt;
              m_scenes.Remove(scene);&lt;br /&gt;
              &lt;br /&gt;
              // Events abhängen&lt;br /&gt;
              scene.EventManager.OnNewClient -= OnNewClient;&lt;br /&gt;
              &lt;br /&gt;
              // Interfaces abmelden&lt;br /&gt;
              scene.UnregisterModuleInterface&amp;lt;IExampleModule&amp;gt;(this);&lt;br /&gt;
              &lt;br /&gt;
              m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Region {0} entfernt&amp;quot;, scene.RegionInfo.RegionName);&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          public void Close()&lt;br /&gt;
          {&lt;br /&gt;
              m_log.Info(&amp;quot;[EXAMPLE MODULE]: Wird heruntergefahren&amp;quot;);&lt;br /&gt;
              // Geteilte Ressourcen aufräumen&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          private void OnNewClient(IClientAPI client)&lt;br /&gt;
          {&lt;br /&gt;
              // Neuen Client behandeln&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Nicht-geteiltes Region-Modul ==&lt;br /&gt;
&lt;br /&gt;
  [Extension(Path = &amp;quot;/OpenSim/RegionModules&amp;quot;, NodeName = &amp;quot;RegionModule&amp;quot;, Id = &amp;quot;ExampleNonSharedModule&amp;quot;)]&lt;br /&gt;
  public class ExampleNonSharedModule : INonSharedRegionModule&lt;br /&gt;
  {&lt;br /&gt;
      private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);&lt;br /&gt;
      private bool m_enabled = false;&lt;br /&gt;
      private Scene m_scene;&lt;br /&gt;
      &lt;br /&gt;
      public string Name &lt;br /&gt;
      { &lt;br /&gt;
          get { return &amp;quot;ExampleNonSharedModule&amp;quot;; } &lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public Type ReplaceableInterface &lt;br /&gt;
      { &lt;br /&gt;
          get { return null; } &lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void Initialise(IConfigSource config)&lt;br /&gt;
      {&lt;br /&gt;
          IConfig moduleConfig = config.Configs[&amp;quot;ExampleModule&amp;quot;];&lt;br /&gt;
          if (moduleConfig != null)&lt;br /&gt;
          {&lt;br /&gt;
              m_enabled = moduleConfig.GetBoolean(&amp;quot;Enabled&amp;quot;, false);&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void AddRegion(Scene scene)&lt;br /&gt;
      {&lt;br /&gt;
          if (!m_enabled)&lt;br /&gt;
              return;&lt;br /&gt;
              &lt;br /&gt;
          m_scene = scene;&lt;br /&gt;
          m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Zur Region {0} hinzugefügt&amp;quot;, scene.RegionInfo.RegionName);&lt;br /&gt;
          &lt;br /&gt;
          scene.RegisterModuleInterface&amp;lt;IExampleModule&amp;gt;(this);&lt;br /&gt;
          scene.EventManager.OnFrame += OnFrame;&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void RegionLoaded(Scene scene)&lt;br /&gt;
      {&lt;br /&gt;
          if (!m_enabled)&lt;br /&gt;
              return;&lt;br /&gt;
              &lt;br /&gt;
          // Andere Module zugreifen&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void RemoveRegion(Scene scene)&lt;br /&gt;
      {&lt;br /&gt;
          if (!m_enabled)&lt;br /&gt;
              return;&lt;br /&gt;
              &lt;br /&gt;
          scene.EventManager.OnFrame -= OnFrame;&lt;br /&gt;
          scene.UnregisterModuleInterface&amp;lt;IExampleModule&amp;gt;(this);&lt;br /&gt;
          &lt;br /&gt;
          m_log.InfoFormat(&amp;quot;[EXAMPLE MODULE]: Von Region {0} entfernt&amp;quot;, scene.RegionInfo.RegionName);&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void Close()&lt;br /&gt;
      {&lt;br /&gt;
          // Regionsspezifische Ressourcen aufräumen&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      private void OnFrame()&lt;br /&gt;
      {&lt;br /&gt;
          // Regionsspezifische Frame-Verarbeitung&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
= Modul-Lebenszyklus =&lt;br /&gt;
&lt;br /&gt;
== Server-Start ==&lt;br /&gt;
&lt;br /&gt;
'''1. Modul-Laden'''&lt;br /&gt;
* Region-Server startet&lt;br /&gt;
* Alle Modul-Klassen werden über Mono.Addins geladen (keine bestimmte Reihenfolge)&lt;br /&gt;
&lt;br /&gt;
'''2. Geteilte Modul-Initialisierung'''&lt;br /&gt;
* Für jedes ''ISharedRegionModule'': Eine Instanz wird erstellt, ''Initialise'' wird aufgerufen&lt;br /&gt;
* Für jedes ''ISharedRegionModule'': ''PostInitialise'' wird aufgerufen&lt;br /&gt;
&lt;br /&gt;
'''3. Scene-Erstellung (für jede Scene)'''&lt;br /&gt;
* Für jedes ''INonSharedRegionModule'': Neue Instanz wird erstellt, ''Initialise'' wird aufgerufen&lt;br /&gt;
* Für alle Module (geteilt und nicht-geteilt): ''AddRegion(scene)'' wird aufgerufen&lt;br /&gt;
* Module werden mit der Scene verknüpft&lt;br /&gt;
* Für alle Module: ''RegionLoaded(scene)'' wird aufgerufen&lt;br /&gt;
* An diesem Punkt können Module auf andere Module über ''scene.RequestModuleInterface&amp;lt;T&amp;gt;()'' zugreifen&lt;br /&gt;
&lt;br /&gt;
== Eine Region hinzufügen (Laufzeit) ==&lt;br /&gt;
&lt;br /&gt;
* Für jedes ''INonSharedRegionModule'': Neue Instanz wird erstellt, ''Initialise'' wird aufgerufen&lt;br /&gt;
* Für alle Module (geteilt und nicht-geteilt): ''AddRegion(scene)'' wird aufgerufen&lt;br /&gt;
* Für alle Module: ''RegionLoaded(scene)'' wird aufgerufen&lt;br /&gt;
&lt;br /&gt;
== Eine Region entfernen ==&lt;br /&gt;
&lt;br /&gt;
* Für alle Module (geteilt und nicht-geteilt): ''RemoveRegion(scene)'' wird aufgerufen&lt;br /&gt;
* Nur für ''INonSharedRegionModule''s: ''Close'' wird aufgerufen&lt;br /&gt;
* Modul-Referenzen werden aus der Scene entfernt&lt;br /&gt;
* ''INonSharedRegionModule''-Instanzen können vom Garbage Collector erfasst werden&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Aufgrund des Verhaltens der .NET/Mono-Laufzeitumgebung werden einige Ressourcen möglicherweise nicht sofort freigegeben, selbst bei ordnungsgemäßer Bereinigung.&lt;br /&gt;
&lt;br /&gt;
== Eine Region neu starten ==&lt;br /&gt;
&lt;br /&gt;
Ein Region-Neustart wird implementiert als:&lt;br /&gt;
1. [[#Eine_Region_entfernen|Region entfernen]]&lt;br /&gt;
2. [[#Eine_Region_hinzuf.C3.BCgen_.28Laufzeit.29|Region hinzufügen]]&lt;br /&gt;
&lt;br /&gt;
Avatare in der Region werden während des Neustarts getrennt.&lt;br /&gt;
&lt;br /&gt;
'''Wichtig:''' Aufgrund von .NET/Mono-Laufzeitbeschränkungen erfolgt möglicherweise kein echtes Entladen von Modulen. Einige Ressourcen können über Neustarts hinweg im Speicher verbleiben.&lt;br /&gt;
&lt;br /&gt;
== Server-Herunterfahren ==&lt;br /&gt;
&lt;br /&gt;
* Für jede Scene: [[#Eine_Region_entfernen|Region entfernen]]-Schritte werden durchgeführt&lt;br /&gt;
** ''RemoveRegion'' wird für alle Module aufgerufen&lt;br /&gt;
** ''Close'' wird für alle ''INonSharedRegionModule''s aufgerufen&lt;br /&gt;
* ''Close'' wird für alle ''ISharedRegionModule''s aufgerufen&lt;br /&gt;
* Module können vom Garbage Collector erfasst werden&lt;br /&gt;
&lt;br /&gt;
= Best Practices =&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie das ''enabled''-Muster für Module, die optional sein sollten:&lt;br /&gt;
&lt;br /&gt;
  [ExampleModule]&lt;br /&gt;
      Enabled = true&lt;br /&gt;
      ; Weitere Einstellungen...&lt;br /&gt;
&lt;br /&gt;
Überprüfen Sie dies in ''Initialise'' und kehren Sie früh zurück, wenn deaktiviert:&lt;br /&gt;
&lt;br /&gt;
  public void Initialise(IConfigSource config)&lt;br /&gt;
  {&lt;br /&gt;
      IConfig cfg = config.Configs[&amp;quot;ExampleModule&amp;quot;];&lt;br /&gt;
      if (cfg == null || !cfg.GetBoolean(&amp;quot;Enabled&amp;quot;, false))&lt;br /&gt;
          return;&lt;br /&gt;
          &lt;br /&gt;
      m_enabled = true;&lt;br /&gt;
      // Initialisierung fortsetzen...&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Ressourcenverwaltung ==&lt;br /&gt;
&lt;br /&gt;
* '''In RemoveRegion aufräumen:''' Event-Handler abmelden, Interfaces abmelden&lt;br /&gt;
* '''In Close aufräumen:''' Ressourcen freigeben, Verbindungen schließen&lt;br /&gt;
* '''Operationen abgleichen:''' Was Sie in ''AddRegion'' hinzufügen, entfernen Sie in ''RemoveRegion''&lt;br /&gt;
* '''Memory Leaks vermeiden:''' Immer Event-Handler abhängen, um Referenzen zu vermeiden&lt;br /&gt;
&lt;br /&gt;
== Modul-Abhängigkeiten ==&lt;br /&gt;
&lt;br /&gt;
Greifen Sie auf andere Module in ''RegionLoaded'' zu, nicht in ''AddRegion'':&lt;br /&gt;
&lt;br /&gt;
  public void RegionLoaded(Scene scene)&lt;br /&gt;
  {&lt;br /&gt;
      // Sicher - alle Module wurden hinzugefügt&lt;br /&gt;
      IOtherModule other = scene.RequestModuleInterface&amp;lt;IOtherModule&amp;gt;();&lt;br /&gt;
      if (other != null)&lt;br /&gt;
      {&lt;br /&gt;
          // Modul verwenden&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Modultyp wählen ==&lt;br /&gt;
&lt;br /&gt;
'''Verwenden Sie ISharedRegionModule wenn:'''&lt;br /&gt;
* Modul Singleton-Dienste bereitstellt&lt;br /&gt;
* Modul regionsübergreifende Funktionalität verwaltet&lt;br /&gt;
* Modul ressourcenintensiv ist und nur einmal existieren sollte&lt;br /&gt;
* Beispiel: Asset-Service, Benutzerverwaltung&lt;br /&gt;
&lt;br /&gt;
'''Verwenden Sie INonSharedRegionModule wenn:'''&lt;br /&gt;
* Modul regionsspezifischen Status verwaltet&lt;br /&gt;
* Modul-Funktionalität regionsspezifisch ist&lt;br /&gt;
* Modul von Isolation zwischen Regionen profitiert&lt;br /&gt;
* Beispiel: Terrain-Modul, Vegetations-Modul&lt;br /&gt;
&lt;br /&gt;
== ReplaceableInterface ==&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie ''ReplaceableInterface'', um die Ersetzung Ihres Moduls zu ermöglichen:&lt;br /&gt;
&lt;br /&gt;
  public Type ReplaceableInterface &lt;br /&gt;
  { &lt;br /&gt;
      get { return typeof(IMyModuleInterface); } &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Dies ermöglicht es Drittanbieter-Modulen, Ihre Standard-Implementierung zu ersetzen.&lt;br /&gt;
&lt;br /&gt;
= Bereitstellung =&lt;br /&gt;
&lt;br /&gt;
== Manuelle Bereitstellung ==&lt;br /&gt;
&lt;br /&gt;
1. Bauen Sie Ihre Modul-Assembly&lt;br /&gt;
2. Kopieren Sie die .dll in den bin-Ordner von OpenSim&lt;br /&gt;
3. Starten Sie OpenSim neu&lt;br /&gt;
4. Modul wird automatisch über Mono.Addins entdeckt und geladen&lt;br /&gt;
&lt;br /&gt;
== Verwendung von Prebuild ==&lt;br /&gt;
&lt;br /&gt;
Für die Integration in das Build-System von OpenSim erstellen Sie einen prebuild.xml-Eintrag:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Project name=&amp;quot;OpenSim.Region.Modules.Example&amp;quot; path=&amp;quot;addon-modules/ExampleModule&amp;quot; type=&amp;quot;Library&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration name=&amp;quot;Debug&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Options&amp;gt;&lt;br /&gt;
        &amp;lt;OutputPath&amp;gt;../../bin/&amp;lt;/OutputPath&amp;gt;&lt;br /&gt;
      &amp;lt;/Options&amp;gt;&lt;br /&gt;
    &amp;lt;/Configuration&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;ReferencePath&amp;gt;../../bin/&amp;lt;/ReferencePath&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;Mono.Addins&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;Nini&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;log4net&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;OpenSim.Region.Framework&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;OpenSim.Framework&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Files&amp;gt;&lt;br /&gt;
      &amp;lt;Match pattern=&amp;quot;*.cs&amp;quot; recurse=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/Files&amp;gt;&lt;br /&gt;
  &amp;lt;/Project&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verwendung von .NET SDK-Projekten ==&lt;br /&gt;
&lt;br /&gt;
Moderne .NET 8.0-Projekte können SDK-Style .csproj verwenden:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Project Sdk=&amp;quot;Microsoft.NET.Sdk&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;PropertyGroup&amp;gt;&lt;br /&gt;
      &amp;lt;TargetFramework&amp;gt;net8.0&amp;lt;/TargetFramework&amp;gt;&lt;br /&gt;
      &amp;lt;OutputPath&amp;gt;../../bin/&amp;lt;/OutputPath&amp;gt;&lt;br /&gt;
      &amp;lt;GenerateAssemblyInfo&amp;gt;false&amp;lt;/GenerateAssemblyInfo&amp;gt;&lt;br /&gt;
    &amp;lt;/PropertyGroup&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;
      &amp;lt;Reference Include=&amp;quot;Mono.Addins&amp;quot; HintPath=&amp;quot;../../bin/Mono.Addins.dll&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;ProjectReference Include=&amp;quot;../../OpenSim/Region/Framework/OpenSim.Region.Framework.csproj&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;
  &amp;lt;/Project&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Fehlerbehebung =&lt;br /&gt;
&lt;br /&gt;
== Modul wird nicht geladen ==&lt;br /&gt;
&lt;br /&gt;
* Überprüfen Sie, ob das Extension-Attribut korrekt ist&lt;br /&gt;
* Prüfen Sie, ob Assembly-Attribute vorhanden sind&lt;br /&gt;
* Stellen Sie sicher, dass die Mono.Addins.dll-Referenz korrekt ist&lt;br /&gt;
* Überprüfen Sie das OpenSim-Log auf Addin-Ladefehler&lt;br /&gt;
* Überprüfen Sie, ob die .dll im bin-Verzeichnis liegt&lt;br /&gt;
&lt;br /&gt;
== Modul nicht gefunden ==&lt;br /&gt;
&lt;br /&gt;
* Überprüfen Sie, ob die Name-Eigenschaft des Moduls mit der Konfiguration übereinstimmt&lt;br /&gt;
* Überprüfen Sie, ob das Modul in der Konfiguration aktiviert ist&lt;br /&gt;
* Prüfen Sie auf Tippfehler im Extension-Id-Attribut&lt;br /&gt;
&lt;br /&gt;
== Methoden werden nicht aufgerufen ==&lt;br /&gt;
&lt;br /&gt;
* Überprüfen Sie, ob die Interface-Implementierung vollständig ist&lt;br /&gt;
* Prüfen Sie, ob m_enabled oder ähnliche Flags die Ausführung nicht verhindern&lt;br /&gt;
* Stellen Sie sicher, dass das Modul die Konfigurationsprüfungen in Initialise bestanden hat&lt;br /&gt;
&lt;br /&gt;
== Memory Leaks ==&lt;br /&gt;
&lt;br /&gt;
* Hängen Sie alle Event-Handler in RemoveRegion ab&lt;br /&gt;
* Melden Sie alle Modul-Interfaces ab&lt;br /&gt;
* Leeren Sie Collections und Referenzen in Close&lt;br /&gt;
* Verwenden Sie WeakReference für langlebige Referenzen, wenn angemessen&lt;br /&gt;
&lt;br /&gt;
== .NET 8.0 spezifische Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Stellen Sie sicher, dass alle referenzierten Assemblies .NET 8.0-kompatibel sind&lt;br /&gt;
* Prüfen Sie auf veraltete API-Verwendung&lt;br /&gt;
* Überprüfen Sie, ob async/await-Muster korrekt verwendet werden&lt;br /&gt;
&lt;br /&gt;
= Erweiterte Themen =&lt;br /&gt;
&lt;br /&gt;
== Modul-Ersetzung ==&lt;br /&gt;
&lt;br /&gt;
Implementieren Sie ''ReplaceableInterface'', um Modul-Ersetzung zu ermöglichen:&lt;br /&gt;
&lt;br /&gt;
  public Type ReplaceableInterface &lt;br /&gt;
  { &lt;br /&gt;
      get { return typeof(IMyService); } &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Der Loader wird:&lt;br /&gt;
1. Alle Module laden&lt;br /&gt;
2. Für Module mit ReplaceableInterface die Aktivierung aufschieben&lt;br /&gt;
3. Nur aktivieren, wenn kein anderes Modul dieses Interface registriert hat&lt;br /&gt;
&lt;br /&gt;
== Modul-übergreifende Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie Modul-Interfaces für die Kommunikation:&lt;br /&gt;
&lt;br /&gt;
  // Interface definieren&lt;br /&gt;
  public interface IMyModule&lt;br /&gt;
  {&lt;br /&gt;
      void DoSomething();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // Im Modul implementieren&lt;br /&gt;
  public class MyModule : ISharedRegionModule, IMyModule&lt;br /&gt;
  {&lt;br /&gt;
      public void AddRegion(Scene scene)&lt;br /&gt;
      {&lt;br /&gt;
          scene.RegisterModuleInterface&amp;lt;IMyModule&amp;gt;(this);&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      public void DoSomething()&lt;br /&gt;
      {&lt;br /&gt;
          // Implementierung&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // Von einem anderen Modul aus verwenden&lt;br /&gt;
  public void RegionLoaded(Scene scene)&lt;br /&gt;
  {&lt;br /&gt;
      IMyModule myMod = scene.RequestModuleInterface&amp;lt;IMyModule&amp;gt;();&lt;br /&gt;
      if (myMod != null)&lt;br /&gt;
          myMod.DoSomething();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Leistungsüberlegungen ==&lt;br /&gt;
&lt;br /&gt;
* '''Geteilte Module:''' Geringerer Speicher-Overhead, potenzielle Engpässe&lt;br /&gt;
* '''Nicht-geteilte Module:''' Höhere Speichernutzung, bessere Parallelisierung&lt;br /&gt;
* '''Event-Handler:''' Seien Sie effizient, vermeiden Sie blockierende Operationen&lt;br /&gt;
* '''Asynchrone Operationen:''' Verwenden Sie Task-basierte async für langläufige Operationen&lt;br /&gt;
&lt;br /&gt;
= Siehe auch =&lt;br /&gt;
&lt;br /&gt;
* [[Developing OpenSim Addins]] - Erstellen von Addon-Paketen&lt;br /&gt;
* [[Installing 3rd party addins]] - Installation von Addons&lt;br /&gt;
* [http://opensimulator.org/wiki/ OpenSimulator Wiki] - Hauptdokumentation&lt;br /&gt;
&lt;br /&gt;
= Referenzen =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/opensim/opensim OpenSimulator GitHub Repository]&lt;br /&gt;
* [https://github.com/mono/mono-addins Mono.Addins Dokumentation]&lt;br /&gt;
* [http://opensimulator.org/ OpenSimulator Website]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Installing_3rd_party_addins</id>
		<title>Installing 3rd party addins</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Installing_3rd_party_addins"/>
				<updated>2025-12-16T09:40:21Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|Installing_3rd_party_addins}}&lt;br /&gt;
This page explains how to install, update and uninstall 3rd-party addins for the simulator server in a systematic way. 3rd-party addins are packages created around binary distributions of region modules, possibly with additional external libraries and resources, that extend the simulator with additional functionality. Note that 3rd-party addins here refers to '''binary packages''' of OpenSim extensions; this is different from extensions available as source code, which you may already be familiar with, and for which you may already have a process in place for building and deploying into your grid. 3rd-party addins give the providers the option to keep the source code proprietary, and give you a relatively simple process for integrating those extensions into your installation of OpenSim and to evolve them in relative independence from updates to OpenSim core.&lt;br /&gt;
&lt;br /&gt;
If you are a developer looking for information about how to develop and distribute addins, please see [[Developing OpenSim Addins|this other page]].&lt;br /&gt;
&lt;br /&gt;
== Registry Location ==&lt;br /&gt;
&lt;br /&gt;
Before you start using managed addins, it is important that you think carefully about where you want to keep these addins. Internally, OpenSim uses its own addins, and it installs the addin database under its '''bin''' folder. If you don't change anything, 3rd-party addins will be placed there too. Depending on what process you have in place for updating OpenSim, this may cause you trouble: if your process includes deleting the entire bin folder and replacing with a new one, that process will also delete your 3rd-party addins, and you will have to reinstall them again every time you update OpenSim core.&lt;br /&gt;
&lt;br /&gt;
The location of the addin registry is given by a configuration variable in OpenSim.ini:&lt;br /&gt;
  [Startup]&lt;br /&gt;
      ...&lt;br /&gt;
      ;RegistryLocation = &amp;quot;.&amp;quot;&lt;br /&gt;
      RegistryLocation = &amp;quot;/path/to/my/registry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can change it to point to another path in your file system. This location will be important for addin installation.&lt;br /&gt;
&lt;br /&gt;
From here on, all the steps described next use the Mono Addins command line tool [https://monoaddins.codeplex.com/wikipage?title=Creating%20and%20Managing%20Add-in%20Packages mautil]. mautil allows us to package, distribute, install and uninstall mono addins for .NET applications in general.&lt;br /&gt;
&lt;br /&gt;
== Configuration Location ==&lt;br /&gt;
&lt;br /&gt;
Another issue you need to think about is where to store the addins' own configuration files. This is important because as you update OpenSim or the addins, you don't want to have to reconstruct these configuration files over and over again.&lt;br /&gt;
&lt;br /&gt;
The location of the addin configuration files is given by a configuration variable in OpenSim.ini:&lt;br /&gt;
  [Startup]&lt;br /&gt;
      ...&lt;br /&gt;
      ;ConfigDirectory = &amp;quot;.&amp;quot;&lt;br /&gt;
      ConfigDirectory = &amp;quot;/path/to/my/addin/configs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can change it to point to another path in your file system. This location will be important for addin installation.&lt;br /&gt;
&lt;br /&gt;
== Initial Registry Update ==&lt;br /&gt;
&lt;br /&gt;
Also before installing any 3rd party addins, you need to populate the registry with OpenSim's own addins, which are required for the installation of 3rd-party's. Do that by running this command in OpenSim's '''bin''' folder: (note: if you are in Linux, precede the command with '''mono''') &lt;br /&gt;
&lt;br /&gt;
  $ mautil.exe -reg ''/path/to/my/registry'' reg-update&lt;br /&gt;
For example:&lt;br /&gt;
  $ mautil.exe -reg C:/addins-registry reg-update&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: you need to issue these commands from the bin folder. Otherwise you need to add the -p parameter and set it to the directory where OpenSim.exe resides. So if you run mautil.exe from somewhere else, make sure to adjust that argument's value. For example, if you run it from the OpenSim root folder, the command above should be:&lt;br /&gt;
  $ bin/mautil.exe '''-p bin''' -reg C:/addins-registry reg-update&lt;br /&gt;
You can also use absolute paths, if that makes it easier.&lt;br /&gt;
&lt;br /&gt;
From here on we will assume that mautil.exe is ran from OpenSim's bin folder, so we omit -p.&lt;br /&gt;
&lt;br /&gt;
== 3rd Party Repositories ==&lt;br /&gt;
&lt;br /&gt;
The next step is to add remote repositories of addins to your OpenSim installation. There is no central repository of addins for OpenSim. Remote repositories are provided and maintained by 3rd parties, and you will have to find out about them [[List of 3rd Party Addin Repositories|by some means]]. You can add as many repositories as needed. To add a repository, run these commands in OpenSim's '''bin''' folder: (note: if you are in Linux, precede the command with '''mono''') &lt;br /&gt;
  $ mautil.exe -reg ''/path/to/my/registry'' rep-add ''repo_url''&lt;br /&gt;
  $ mautil.exe -reg ''/path/to/my/registry'' rep-update&lt;br /&gt;
For example:&lt;br /&gt;
  $ mautil.exe -reg C:/addins-registry rep-add http://metaverseink.com/repo&lt;br /&gt;
  $ mautil.exe -reg C:/addins-registry rep-update&lt;br /&gt;
Or if you decided to use the default OpenSim's '''bin''' folder as the registry location:&lt;br /&gt;
  $ mautil.exe -reg . rep-add http://metaverseink.com/repo&lt;br /&gt;
  $ mautil.exe -reg . rep-update&lt;br /&gt;
&lt;br /&gt;
Again, if you run mautil.exe from somewhere else, make sure to use -p properly.&lt;br /&gt;
&lt;br /&gt;
From here on you can check what addins are available by typing&lt;br /&gt;
  $ mautil.exe -reg ''/path/to/my/registry'' list-av&lt;br /&gt;
&lt;br /&gt;
== Installing Addins ==&lt;br /&gt;
&lt;br /&gt;
Finally, you can install an available addin with the following command:&lt;br /&gt;
  $ mautil.exe -reg ''/path/to/my/registry'' install ''addin''&lt;br /&gt;
For example, to install the most recent version of Diva.AddinExample:&lt;br /&gt;
  $ mautil.exe -reg C:/addins-registry install Diva.AddinExample&lt;br /&gt;
To install a specific version:&lt;br /&gt;
  $ mautil.exe -reg C:/addins-registry install Diva.AddinExample,0.8.1.0.1&lt;br /&gt;
&lt;br /&gt;
The installed addins are placed under ''/path/to/my/registry''/addins/''addin''. Often, these addins will bring a configuration (.ini) file that you may need to change. Depending on how the addins are coded, they may or may not copy their own configuration file to the folder specified above, ConfigDirectory. Even if they do, they can only do it when OpenSim runs the addins the first time. So, the best practice is for you to go to the directory where your addin was installed and copy the ini file from there to your own ConfigDirectory.&lt;br /&gt;
&lt;br /&gt;
For example, for this particular AddinExample, you would be able to find its configuration file in&lt;br /&gt;
  C:/addins-registry/addins/Diva.AddinExample.0.8.1.0.1/AddinExample.ini&lt;br /&gt;
You would then copy it to ''/path/to/my/addin/configs'' and edit it there.&lt;br /&gt;
&lt;br /&gt;
== Checking for, and Installing, Updates ==&lt;br /&gt;
&lt;br /&gt;
To check:&lt;br /&gt;
  $ mautil.exe -reg ''/path/to/my/registry'' list-update&lt;br /&gt;
&lt;br /&gt;
To update:&lt;br /&gt;
  $ mautil.exe -reg ''/path/to/my/registry'' update ''addin''&lt;br /&gt;
&lt;br /&gt;
== Uninstalling Addins ==&lt;br /&gt;
&lt;br /&gt;
  $ mautil.exe -reg ''/path/to/my/registry'' uninstall ''addin''&lt;br /&gt;
For example:&lt;br /&gt;
  $ mautil.exe -reg C:/addins-registry uninstall Diva.AddinExample&lt;br /&gt;
&lt;br /&gt;
== Versioning ==&lt;br /&gt;
&lt;br /&gt;
One important aspect of installing and managing 3rd-party binary components is the issue of versioning. .NET, in particular, is quite strict about interface compatibility between libraries, and it will complain (by raising exceptions or by crashing) if an executable tries to link an incompatible library. In the case of 3rd-party addins, incompatibilities may happen when those addins have been compiled against a version of OpenSim that is different from the one you have. Some of those incompatibilities will be caught at the time of addin installation, but some will not -- these latter ones may show up when you run OpenSim.&lt;br /&gt;
&lt;br /&gt;
For example, suppose that the latest MISearchModules addin was compiled against OpenSim 0.8.1.0 and you have OpenSim 0.7.6.2. When you try to install that addin, the addin installation will fail, because MISearchModules,0.8.1.0.1 has an explicit dependency on OpenSim 0.8.1.0. Since your OpenSim version is older than the addin, the incompatibility will be detected, and the installation will fail. In this case, you would need to find and install the older MISearchModules addin for OpenSim 0.7.6.2.&lt;br /&gt;
&lt;br /&gt;
The most problematic situation is the one in reverse. Suppose that you have installed MISearchModules,0.7.6.2.1 (which had been compiled against OpenSim 0.7.6.2), and that you update your OpenSim installation to OpenSim 0.8.1.0. The mono addins framework will deem this addin compatible with the new version of OpenSim (because the new OpenSim version is higher than the addin's). But in reality, the new OpenSim dlls may have different .NET interfaces than those against which the MISearchModules addin was compiled. When the addin uses parts of core OpenSim that have changed between versions, a failure may happen when you run OpenSim -- it may be just an exception in the log or a complete crash of the simulator. In this case, you would need to find the newer version of the MISearchModules addin for 0.8.1.0 (see check for updates above). If it doesn't exist yet, you need to uninstall the MISearchModules addin (see uninstalling addins above) until the newer version becomes available by the provider of that addin.&lt;br /&gt;
&lt;br /&gt;
'''Version numbers of all kinds are mainly annotations for people. The ground truth is always in the binary signature of dlls.'''&lt;br /&gt;
&lt;br /&gt;
Here are some concrete examples:&lt;br /&gt;
* Addin Foo requires OpenSim 0.8.1, and is being installed in OpenSim 0.8.1 ==&amp;gt; Addin compatibility ok. Binary compatibility ''likely'' ok.&lt;br /&gt;
* Addin Foo requires OpenSim 0.7 and is being installed in OpenSim 0.8.1 ==&amp;gt; Addin compatibility ok. Binary compatibility ''likely'' will fail, depending on a number of things. If Foo has been compiled against OpenSim 0.7, then it will surely fail, because the OpenSim APIs tend to change substantially between releases. But if Foo was compiled against 0.8.1, but the developers of Foo forgot to update the declared dependency, then binary compatibility will be ok, and the plugin will be successfully installed.&lt;br /&gt;
* Addin Foo requires OpenSim 0.9.0 and is being installed in OpenSim 0.8.1 ==&amp;gt; Addin compatibility will fail. Foo won't even get to run to check binary compatibility.&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Installing_3rd_party_addins/de</id>
		<title>Installing 3rd party addins/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Installing_3rd_party_addins/de"/>
				<updated>2025-12-16T09:35:55Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;{{Quicklinks|Installing_3rd_party_addins}} = Installing 3rd party addins = Diese Seite erklärt, wie man Drittanbieter-Addins für den Simulator-Server systematisch installier...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|Installing_3rd_party_addins}}&lt;br /&gt;
= Installing 3rd party addins =&lt;br /&gt;
Diese Seite erklärt, wie man Drittanbieter-Addins für den Simulator-Server systematisch installiert, aktualisiert und deinstalliert. Drittanbieter-Addins sind Pakete, die um binäre Distributionen von Region Modulen herum erstellt wurden, möglicherweise mit zusätzlichen externen Bibliotheken und Ressourcen, die den Simulator mit zusätzlicher Funktionalität erweitern. Beachten Sie, dass Drittanbieter-Addins hier '''binäre Pakete''' von OpenSim-Erweiterungen bezeichnet; dies unterscheidet sich von als Quellcode verfügbaren Erweiterungen, mit denen Sie möglicherweise bereits vertraut sind und für die Sie möglicherweise bereits einen Prozess zum Erstellen und Bereitstellen in Ihrem Grid eingerichtet haben. Drittanbieter-Addins geben den Anbietern die Möglichkeit, den Quellcode proprietär zu halten, und bieten Ihnen einen relativ einfachen Prozess zur Integration dieser Erweiterungen in Ihre OpenSim-Installation und zur Weiterentwicklung relativ unabhängig von Aktualisierungen des OpenSim-Kerns.&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Diese Dokumentation wurde für OpenSimulator Version 0.9.3.x mit .NET 8.0 Runtime aktualisiert.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie ein Entwickler sind, der nach Informationen zur Entwicklung und Verteilung von Addins sucht, lesen Sie bitte [[Developing OpenSim Addins|diese andere Seite]].&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
&lt;br /&gt;
Bevor Sie Drittanbieter-Addins installieren, stellen Sie sicher, dass Sie Folgendes haben:&lt;br /&gt;
* OpenSimulator 0.9.3.x installiert und laufend&lt;br /&gt;
* .NET 8.0 Runtime (https://dotnet.microsoft.com/en-us/download/dotnet/8.0)&lt;br /&gt;
* Zugriff auf das OpenSim bin-Verzeichnis&lt;br /&gt;
* Administrative/Schreibberechtigungen für das OpenSim-Installationsverzeichnis&lt;br /&gt;
&lt;br /&gt;
== Registry-Speicherort ==&lt;br /&gt;
&lt;br /&gt;
Bevor Sie mit der Verwendung verwalteter Addins beginnen, ist es wichtig, dass Sie sorgfältig darüber nachdenken, wo Sie diese Addins aufbewahren möchten. Intern verwendet OpenSim seine eigenen Addins und installiert die Addin-Datenbank unter seinem '''bin'''-Ordner. Wenn Sie nichts ändern, werden auch Drittanbieter-Addins dort platziert. Abhängig davon, welchen Prozess Sie für die Aktualisierung von OpenSim eingerichtet haben, kann dies zu Problemen führen: Wenn Ihr Prozess das Löschen des gesamten bin-Ordners und das Ersetzen durch einen neuen umfasst, werden bei diesem Prozess auch Ihre Drittanbieter-Addins gelöscht, und Sie müssen sie jedes Mal neu installieren, wenn Sie den OpenSim-Kern aktualisieren.&lt;br /&gt;
&lt;br /&gt;
Der Speicherort der Addin-Registry wird durch eine Konfigurationsvariable in OpenSim.ini angegeben:&lt;br /&gt;
&lt;br /&gt;
  [Startup]&lt;br /&gt;
      ...&lt;br /&gt;
      ;# {RegistryLocation} {} {Addins Registry Location} {}&lt;br /&gt;
      ; Legen Sie den Pfad zu einem Verzeichnis für die Addin-Registry fest, wenn Sie sie nicht im OpenSim bin-Verzeichnis haben möchten.&lt;br /&gt;
      ; RegistryLocation = &amp;quot;.&amp;quot;&lt;br /&gt;
      RegistryLocation = &amp;quot;/pfad/zu/meiner/registry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sie können dies so ändern, dass es auf einen anderen Pfad in Ihrem Dateisystem verweist. Dieser Speicherort ist für die Addin-Installation wichtig.&lt;br /&gt;
&lt;br /&gt;
'''Empfehlung:''' Verwenden Sie ein separates Verzeichnis außerhalb des OpenSim bin-Ordners, um Ihre Addins bei OpenSim-Updates zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Von hier an verwenden alle im Folgenden beschriebenen Schritte das Mono Addins Kommandozeilen-Tool '''mautil'''. mautil ermöglicht es uns, Mono-Addins für .NET-Anwendungen im Allgemeinen zu paketieren, zu verteilen, zu installieren und zu deinstallieren. Dieses Tool ist im bin-Verzeichnis von OpenSim als '''mautil.exe''' enthalten.&lt;br /&gt;
&lt;br /&gt;
== Konfigurations-Speicherort ==&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Problem, über das Sie nachdenken müssen, ist, wo die eigenen Konfigurationsdateien der Addins gespeichert werden sollen. Dies ist wichtig, da Sie beim Aktualisieren von OpenSim oder den Addins diese Konfigurationsdateien nicht immer wieder neu erstellen möchten.&lt;br /&gt;
&lt;br /&gt;
Der Speicherort der Addin-Konfigurationsdateien wird durch eine Konfigurationsvariable in OpenSim.ini angegeben:&lt;br /&gt;
&lt;br /&gt;
  [Startup]&lt;br /&gt;
      ...&lt;br /&gt;
      ;# {ConfigDirectory} {} {Set path to directory for modular ini files} {}&lt;br /&gt;
      ; Wird von Region Modulen verwendet, um optional Konfigurationsdateien aus einem separaten Verzeichnis zu laden&lt;br /&gt;
      ; ConfigDirectory = &amp;quot;.&amp;quot;&lt;br /&gt;
      ConfigDirectory = &amp;quot;/pfad/zu/meinen/addin/configs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sie können dies so ändern, dass es auf einen anderen Pfad in Ihrem Dateisystem verweist. Dieser Speicherort ist für die Addin-Installation wichtig.&lt;br /&gt;
&lt;br /&gt;
'''Empfehlung:''' Verwenden Sie ein separates Verzeichnis, um Konfigurationsdateien über Updates hinweg persistent zu halten. Häufige Optionen sind:&lt;br /&gt;
* Windows: C:\OpenSim\configs&lt;br /&gt;
* Linux: /etc/opensim/configs oder ~/opensim/configs&lt;br /&gt;
&lt;br /&gt;
== Initiale Registry-Aktualisierung ==&lt;br /&gt;
&lt;br /&gt;
Bevor Sie Drittanbieter-Addins installieren, müssen Sie die Registry mit OpenSims eigenen Addins füllen, die für die Installation von Drittanbieter-Addins erforderlich sind. Führen Sie dazu diesen Befehl im '''bin'''-Ordner von OpenSim aus:&lt;br /&gt;
&lt;br /&gt;
'''Windows:'''&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\pfad\zu\meiner\registry&amp;quot; reg-update&lt;br /&gt;
&lt;br /&gt;
'''Linux/Mac:'''&lt;br /&gt;
  $ mono mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; reg-update&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\addins-registry&amp;quot; reg-update&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Sie müssen diese Befehle aus dem bin-Ordner heraus ausführen. Andernfalls müssen Sie den '''-p''' Parameter hinzufügen und ihn auf das Verzeichnis setzen, in dem sich OpenSim.exe befindet. Wenn Sie also mautil.exe von woanders ausführen, stellen Sie sicher, dass Sie den Wert dieses Arguments anpassen. Wenn Sie es beispielsweise aus dem OpenSim-Stammordner ausführen, sollte der obige Befehl lauten:&lt;br /&gt;
&lt;br /&gt;
  $ bin\mautil.exe -p bin -reg &amp;quot;C:\addins-registry&amp;quot; reg-update&lt;br /&gt;
&lt;br /&gt;
Sie können auch absolute Pfade verwenden, wenn das einfacher ist.&lt;br /&gt;
&lt;br /&gt;
Von hier an gehen wir davon aus, dass mautil.exe aus dem bin-Ordner von OpenSim ausgeführt wird, daher lassen wir -p weg.&lt;br /&gt;
&lt;br /&gt;
== Drittanbieter-Repositories ==&lt;br /&gt;
&lt;br /&gt;
Der nächste Schritt besteht darin, Remote-Repositories von Addins zu Ihrer OpenSim-Installation hinzuzufügen. Es gibt kein zentrales Repository für OpenSim-Addins. Remote-Repositories werden von Drittanbietern bereitgestellt und gepflegt, und Sie müssen [[List of 3rd Party Addin Repositories|auf irgendeine Weise]] davon erfahren. Sie können so viele Repositories hinzufügen, wie Sie benötigen.&lt;br /&gt;
&lt;br /&gt;
Um ein Repository hinzuzufügen, führen Sie diese Befehle im '''bin'''-Ordner von OpenSim aus:&lt;br /&gt;
&lt;br /&gt;
'''Windows:'''&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\pfad\zu\meiner\registry&amp;quot; rep-add http://repository-url&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\pfad\zu\meiner\registry&amp;quot; rep-update&lt;br /&gt;
&lt;br /&gt;
'''Linux/Mac:'''&lt;br /&gt;
  $ mono mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; rep-add http://repository-url&lt;br /&gt;
  $ mono mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; rep-update&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\addins-registry&amp;quot; rep-add http://example.com/opensim-addins&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\addins-registry&amp;quot; rep-update&lt;br /&gt;
&lt;br /&gt;
Oder wenn Sie sich entschieden haben, den Standard-'''bin'''-Ordner von OpenSim als Registry-Speicherort zu verwenden:&lt;br /&gt;
  $ mautil.exe -reg . rep-add http://example.com/opensim-addins&lt;br /&gt;
  $ mautil.exe -reg . rep-update&lt;br /&gt;
&lt;br /&gt;
Nochmals: Wenn Sie mautil.exe von woanders ausführen, stellen Sie sicher, dass Sie -p richtig verwenden.&lt;br /&gt;
&lt;br /&gt;
Von hier an können Sie prüfen, welche Addins verfügbar sind, indem Sie Folgendes eingeben:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; list-av&lt;br /&gt;
&lt;br /&gt;
Dies zeigt alle verfügbaren Addins aus allen hinzugefügten Repositories an.&lt;br /&gt;
&lt;br /&gt;
== Addins installieren ==&lt;br /&gt;
&lt;br /&gt;
Schließlich können Sie ein verfügbares Addin mit folgendem Befehl installieren:&lt;br /&gt;
&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; install addin-name&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel, um die neueste Version eines Addins zu installieren:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\addins-registry&amp;quot; install IhrAddin.Name&lt;br /&gt;
&lt;br /&gt;
Um eine bestimmte Version zu installieren:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\addins-registry&amp;quot; install IhrAddin.Name,0.9.3.1.1&lt;br /&gt;
&lt;br /&gt;
Die installierten Addins werden unter '''/pfad/zu/meiner/registry/addins/addin-name''' platziert. Häufig bringen diese Addins eine Konfigurationsdatei (.ini) mit, die Sie möglicherweise ändern müssen. Abhängig davon, wie die Addins codiert sind, kopieren sie möglicherweise ihre eigene Konfigurationsdatei in den oben angegebenen Ordner ConfigDirectory oder auch nicht. Selbst wenn sie es tun, können sie es nur tun, wenn OpenSim die Addins zum ersten Mal ausführt.&lt;br /&gt;
&lt;br /&gt;
'''Best Practice:''' Gehen Sie nach der Installation eines Addins zu dem Verzeichnis, in dem Ihr Addin installiert wurde, und prüfen Sie auf Konfigurationsdateien. Kopieren Sie alle .ini-Dateien von dort in Ihr ConfigDirectory und bearbeiten Sie sie entsprechend Ihren Anforderungen, bevor Sie OpenSim starten.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel könnten Sie Konfigurationsdateien finden unter:&lt;br /&gt;
  C:\addins-registry\addins\IhrAddin.Name.0.9.3.1.1\&lt;br /&gt;
&lt;br /&gt;
Sie würden dann alle .ini-Dateien in Ihr ConfigDirectory (z.B. C:\OpenSim\configs) kopieren und dort bearbeiten.&lt;br /&gt;
&lt;br /&gt;
== Installation überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Nach der Installation können Sie überprüfen, ob das Addin korrekt installiert wurde:&lt;br /&gt;
&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; list&lt;br /&gt;
&lt;br /&gt;
Dies listet alle installierten Addins mit ihren Versionen auf.&lt;br /&gt;
&lt;br /&gt;
Um detaillierte Informationen über ein bestimmtes Addin zu sehen:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; info addin-name&lt;br /&gt;
&lt;br /&gt;
== Auf Updates prüfen und Updates installieren ==&lt;br /&gt;
&lt;br /&gt;
Um nach verfügbaren Updates zu suchen:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; list-update&lt;br /&gt;
&lt;br /&gt;
Dies zeigt Ihnen, für welche installierten Addins neuere Versionen verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
Um ein bestimmtes Addin zu aktualisieren:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; update addin-name&lt;br /&gt;
&lt;br /&gt;
Um alle Addins zu aktualisieren:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; update&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Vor dem Aktualisieren wird empfohlen, Ihre Konfigurationsdateien zu sichern und das Update zuerst in einer Entwicklungsumgebung zu testen.&lt;br /&gt;
&lt;br /&gt;
== Addins deinstallieren ==&lt;br /&gt;
&lt;br /&gt;
Um ein Addin zu deinstallieren:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;/pfad/zu/meiner/registry&amp;quot; uninstall addin-name&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel:&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\addins-registry&amp;quot; uninstall IhrAddin.Name&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die Deinstallation eines Addins entfernt nicht automatisch seine Konfigurationsdateien aus Ihrem ConfigDirectory. Möglicherweise möchten Sie diese manuell entfernen oder archivieren.&lt;br /&gt;
&lt;br /&gt;
== Versionierung und Kompatibilität ==&lt;br /&gt;
&lt;br /&gt;
Ein wichtiger Aspekt bei der Installation und Verwaltung von binären Drittanbieter-Komponenten ist die Frage der Versionierung. .NET ist besonders streng, was die Schnittstellenkompatibilität zwischen Bibliotheken betrifft, und beschwert sich (durch Auslösen von Ausnahmen oder Abstürzen), wenn eine ausführbare Datei versucht, eine inkompatible Bibliothek zu verknüpfen. Im Fall von Drittanbieter-Addins können Inkompatibilitäten auftreten, wenn diese Addins gegen eine OpenSim-Version kompiliert wurden, die sich von der unterscheidet, die Sie haben. Einige dieser Inkompatibilitäten werden zum Zeitpunkt der Addin-Installation abgefangen, andere jedoch nicht -- diese können auftreten, wenn Sie OpenSim ausführen.&lt;br /&gt;
&lt;br /&gt;
=== Versionsnummern verstehen ===&lt;br /&gt;
&lt;br /&gt;
OpenSim-Addins verwenden typischerweise Versionsnummern im Format: '''X.Y.Z.W.A''' wobei:&lt;br /&gt;
* '''X.Y.Z.W''' der OpenSim-Version entspricht (z.B. 0.9.3.1)&lt;br /&gt;
* '''A''' die eigene Versionsnummer des Addins ist&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel: '''IhrAddin.Name,0.9.3.1.2''' bedeutet:&lt;br /&gt;
* Kompatibel mit OpenSim 0.9.3.1&lt;br /&gt;
* Dies ist Version 2 des Addins&lt;br /&gt;
&lt;br /&gt;
=== Kompatibilitäts-Szenarien ===&lt;br /&gt;
&lt;br /&gt;
'''Szenario 1: Addin älter als OpenSim'''&lt;br /&gt;
&lt;br /&gt;
Angenommen, das neueste MISearchModules-Addin wurde gegen OpenSim 0.9.3.1 kompiliert und Sie haben OpenSim 0.9.2.0. Wenn Sie versuchen, dieses Addin zu installieren, schlägt die Addin-Installation fehl, da MISearchModules,0.9.3.1.1 eine explizite Abhängigkeit von OpenSim 0.9.3.1 hat. Da Ihre OpenSim-Version älter als das Addin ist, wird die Inkompatibilität erkannt und die Installation schlägt fehl. In diesem Fall müssten Sie:&lt;br /&gt;
* Ihr OpenSim auf 0.9.3.1 oder höher aktualisieren, ODER&lt;br /&gt;
* Das ältere MISearchModules-Addin für OpenSim 0.9.2.0 finden und installieren&lt;br /&gt;
&lt;br /&gt;
'''Szenario 2: OpenSim neuer als Addin (Am problematischsten)'''&lt;br /&gt;
&lt;br /&gt;
Angenommen, Sie haben MISearchModules,0.9.2.0.1 installiert (das gegen OpenSim 0.9.2.0 kompiliert wurde) und aktualisieren Ihre OpenSim-Installation auf OpenSim 0.9.3.1. Das Mono-Addins-Framework wird dieses Addin als kompatibel mit der neuen OpenSim-Version betrachten (weil die neue OpenSim-Version höher ist als die des Addins). In Wirklichkeit können die neuen OpenSim-DLLs jedoch andere .NET-Schnittstellen haben als die, gegen die das MISearchModules-Addin kompiliert wurde. Wenn das Addin Teile des Kern-OpenSim verwendet, die sich zwischen den Versionen geändert haben, kann ein Fehler auftreten, wenn Sie OpenSim ausführen -- es kann sich nur um eine Ausnahme im Log oder einen vollständigen Absturz des Simulators handeln. In diesem Fall müssten Sie:&lt;br /&gt;
* Nach Updates suchen: '''mautil.exe -reg &amp;quot;pfad&amp;quot; list-update'''&lt;br /&gt;
* Das Addin aktualisieren: '''mautil.exe -reg &amp;quot;pfad&amp;quot; update MISearchModules'''&lt;br /&gt;
* Wenn noch kein Update existiert, deinstallieren Sie das Addin, bis die neuere Version verfügbar wird&lt;br /&gt;
&lt;br /&gt;
'''Versionsnummern aller Art sind hauptsächlich Anmerkungen für Menschen. Die Wahrheit liegt immer in der binären Signatur der DLLs.'''&lt;br /&gt;
&lt;br /&gt;
=== Konkrete Beispiele ===&lt;br /&gt;
&lt;br /&gt;
* '''Addin Foo benötigt OpenSim 0.9.3.1 und wird in OpenSim 0.9.3.1 installiert''' ==&amp;gt; Addin-Kompatibilität ok. Binäre Kompatibilität ''wahrscheinlich'' ok.&lt;br /&gt;
&lt;br /&gt;
* '''Addin Foo benötigt OpenSim 0.9.2.0 und wird in OpenSim 0.9.3.1 installiert''' ==&amp;gt; Addin-Kompatibilität ok. Binäre Kompatibilität ''kann'' fehlschlagen, abhängig von API-Änderungen. Wenn Foo gegen OpenSim 0.9.2.0 kompiliert wurde, kann es fehlschlagen, da sich OpenSim-APIs zwischen Releases ändern können. Aber wenn Foo gegen 0.9.3.1 kompiliert wurde, die Entwickler von Foo aber vergessen haben, die deklarierte Abhängigkeit zu aktualisieren, ist die binäre Kompatibilität ok.&lt;br /&gt;
&lt;br /&gt;
* '''Addin Foo benötigt OpenSim 0.9.4.0 und wird in OpenSim 0.9.3.1 installiert''' ==&amp;gt; Addin-Kompatibilität wird fehlschlagen. Foo wird nicht einmal laufen, um die binäre Kompatibilität zu prüfen. Die Installation wird blockiert.&lt;br /&gt;
&lt;br /&gt;
== Fehlerbehebung ==&lt;br /&gt;
&lt;br /&gt;
=== Häufige Probleme ===&lt;br /&gt;
&lt;br /&gt;
'''Addin lädt nicht'''&lt;br /&gt;
* Überprüfen Sie das OpenSim-Log auf Fehlermeldungen&lt;br /&gt;
* Überprüfen Sie, ob die Addin-Version mit Ihrer OpenSim-Version übereinstimmt&lt;br /&gt;
* Stellen Sie sicher, dass alle Abhängigkeiten installiert sind&lt;br /&gt;
* Prüfen Sie, ob Konfigurationsdateien vorhanden und korrekt bearbeitet sind&lt;br /&gt;
&lt;br /&gt;
'''Versions-Mismatch-Fehler'''&lt;br /&gt;
* Aktualisieren Sie das Addin auf eine mit Ihrem OpenSim kompatible Version&lt;br /&gt;
* Oder downgraden/upgraden Sie Ihr OpenSim, um mit dem Addin übereinzustimmen&lt;br /&gt;
* Fragen Sie beim Addin-Anbieter nach kompatiblen Versionen&lt;br /&gt;
&lt;br /&gt;
'''Konfigurations-Probleme'''&lt;br /&gt;
* Überprüfen Sie, ob .ini-Dateien im richtigen ConfigDirectory sind&lt;br /&gt;
* Prüfen Sie, ob ConfigDirectory in OpenSim.ini richtig gesetzt ist&lt;br /&gt;
* Überprüfen Sie Log-Dateien auf konfigurationsbezogene Fehler&lt;br /&gt;
&lt;br /&gt;
'''Registry-Beschädigung'''&lt;br /&gt;
* Wenn die Registry beschädigt wird, müssen Sie sie möglicherweise löschen und neu erstellen:&lt;br /&gt;
  1. Löschen Sie das Registry-Verzeichnis&lt;br /&gt;
  2. Führen Sie '''mautil.exe -reg &amp;quot;pfad&amp;quot; reg-update''' erneut aus&lt;br /&gt;
  3. Fügen Sie Repositories wieder hinzu&lt;br /&gt;
  4. Installieren Sie Addins neu&lt;br /&gt;
&lt;br /&gt;
=== .NET 8.0 spezifische Probleme ===&lt;br /&gt;
&lt;br /&gt;
* Stellen Sie sicher, dass .NET 8.0 Runtime auf Ihrem System installiert ist&lt;br /&gt;
* Einige ältere Addins, die für .NET Framework kompiliert wurden, funktionieren möglicherweise nicht mit .NET 8.0&lt;br /&gt;
* Fragen Sie bei Addin-Anbietern nach .NET 8.0-Kompatibilität&lt;br /&gt;
&lt;br /&gt;
=== Hilfe erhalten ===&lt;br /&gt;
&lt;br /&gt;
Wenn Sie auf Probleme stoßen:&lt;br /&gt;
* Überprüfen Sie die OpenSim-Log-Dateien im bin-Verzeichnis&lt;br /&gt;
* Konsultieren Sie die Dokumentation des Addin-Anbieters&lt;br /&gt;
* Besuchen Sie die OpenSimulator-Foren oder Discord&lt;br /&gt;
* Prüfen Sie die [[List of 3rd Party Addin Repositories]] für Kontaktinformationen&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* '''Separate Registry:''' Verwenden Sie immer ein separates Verzeichnis für die Addin-Registry außerhalb des bin-Ordners&lt;br /&gt;
* '''Separate Konfiguration:''' Speichern Sie Addin-Konfigurationen in einem dedizierten ConfigDirectory&lt;br /&gt;
* '''Zuerst testen:''' Testen Sie Addins in einer Entwicklungsumgebung, bevor Sie sie in der Produktion einsetzen&lt;br /&gt;
* '''Backup:''' Sichern Sie Ihre Konfigurationen vor dem Aktualisieren von Addins oder OpenSim&lt;br /&gt;
* '''Kompatibilität prüfen:''' Überprüfen Sie immer die Versionskompatibilität vor der Installation oder Aktualisierung&lt;br /&gt;
* '''Dokumentation lesen:''' Lesen Sie die Dokumentation des Addin-Anbieters für spezifische Installationsanweisungen&lt;br /&gt;
* '''Aktuell bleiben:''' Prüfen Sie regelmäßig auf Addin-Updates, um die Kompatibilität mit Ihrer OpenSim-Version sicherzustellen&lt;br /&gt;
* '''Logs überwachen:''' Beobachten Sie OpenSim-Logs nach der Installation neuer Addins auf Fehler oder Warnungen&lt;br /&gt;
&lt;br /&gt;
== Erweiterte Nutzung ==&lt;br /&gt;
&lt;br /&gt;
=== Verwendung mehrerer Registries ===&lt;br /&gt;
&lt;br /&gt;
In einigen Fällen möchten Sie möglicherweise separate Registries für verschiedene Zwecke pflegen (Testing, Produktion, etc.). Sie können dies tun, indem Sie verschiedene Registry-Pfade angeben:&lt;br /&gt;
&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\addins-registry-test&amp;quot; rep-add http://example.com/repo&lt;br /&gt;
  $ mautil.exe -reg &amp;quot;C:\addins-registry-prod&amp;quot; rep-add http://example.com/repo&lt;br /&gt;
&lt;br /&gt;
Konfigurieren Sie dann OpenSim.ini entsprechend für jede Umgebung.&lt;br /&gt;
&lt;br /&gt;
=== Scripting für Addin-Verwaltung ===&lt;br /&gt;
&lt;br /&gt;
Sie können Skripte erstellen, um die Addin-Verwaltung zu automatisieren:&lt;br /&gt;
&lt;br /&gt;
'''Windows (PowerShell):'''&lt;br /&gt;
  $registry = &amp;quot;C:\addins-registry&amp;quot;&lt;br /&gt;
  &amp;amp; .\mautil.exe -reg $registry list-update&lt;br /&gt;
  &amp;amp; .\mautil.exe -reg $registry update&lt;br /&gt;
&lt;br /&gt;
'''Linux (Bash):'''&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
  REGISTRY=&amp;quot;/pfad/zu/registry&amp;quot;&lt;br /&gt;
  mono mautil.exe -reg &amp;quot;$REGISTRY&amp;quot; list-update&lt;br /&gt;
  mono mautil.exe -reg &amp;quot;$REGISTRY&amp;quot; update&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Developing OpenSim Addins]] - Informationen für Addin-Entwickler&lt;br /&gt;
* [[List of 3rd Party Addin Repositories]] - Community-Repositories&lt;br /&gt;
* [[New Region Modules]] - Entwicklung von Kern-Region-Modulen&lt;br /&gt;
&lt;br /&gt;
== Externe Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/opensim/opensim OpenSimulator GitHub Repository]&lt;br /&gt;
* [https://dotnet.microsoft.com/en-us/download/dotnet/8.0 .NET 8.0 Download]&lt;br /&gt;
* [http://opensimulator.org/ OpenSimulator Webseite]&lt;br /&gt;
* [http://opensimulator.org/wiki/ OpenSimulator Wiki]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Developing_OpenSim_Addins/de</id>
		<title>Developing OpenSim Addins/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Developing_OpenSim_Addins/de"/>
				<updated>2025-12-16T09:18:49Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;{{Quicklinks|Developing_OpenSim_Addins}} = Developing OpenSim Addins = Diese Seite erklärt, wie man OpenSimulator Region Module Addins entwickelt, paketiert und verteilt. Sie...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|Developing_OpenSim_Addins}}&lt;br /&gt;
= Developing OpenSim Addins =&lt;br /&gt;
Diese Seite erklärt, wie man OpenSimulator Region Module Addins entwickelt, paketiert und verteilt. Sie richtet sich an Entwickler, die zusätzliche Funktionalität bereitstellen möchten, die über die Kernverteilung von OpenSim hinausgeht, und die diese in binärer Form an andere weitergeben möchten. Diese Anleitung bezieht sich auf [[New Region Modules|Region Module]], die auf den Simulatoren laufen. Es wird vorausgesetzt, dass Sie bereits mit den Grundlagen der Entwicklung von Region Modulen vertraut sind.&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Diese Dokumentation wurde für OpenSimulator Version 0.9.3.x mit .NET 8.0 Runtime aktualisiert.&lt;br /&gt;
&lt;br /&gt;
Wenn Sie nach der Installation von Drittanbieter-Addins suchen, lesen Sie bitte [[Installing 3rd party addins|diese andere Seite]].&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
&lt;br /&gt;
Bevor Sie OpenSim Addins entwickeln, stellen Sie sicher, dass Sie Folgendes haben:&lt;br /&gt;
* .NET 8.0 SDK installiert (https://dotnet.microsoft.com/en-us/download/dotnet/8.0)&lt;br /&gt;
* OpenSimulator 0.9.3.x Quellcode oder Entwicklungsumgebung&lt;br /&gt;
* Grundlegendes Verständnis von C# und OpenSim Region Module Entwicklung&lt;br /&gt;
&lt;br /&gt;
== Das finale Paket ==&lt;br /&gt;
&lt;br /&gt;
OpenSim enthält mehrere eingebaute Addins, die als Beispiele dienen. Zwei gute Referenzen sind:&lt;br /&gt;
* '''OpenSim.Addons.OfflineIM''' - Verarbeitet Offline-Sofortnachrichten&lt;br /&gt;
* '''OpenSim.Addons.Groups''' - Stellt Gruppenfunktionalität bereit&lt;br /&gt;
&lt;br /&gt;
Ein typisches Addin-Paket enthält:&lt;br /&gt;
* Die Region Module DLL&lt;br /&gt;
* Alle externen Abhängigkeiten (zusätzliche DLLs)&lt;br /&gt;
* Konfigurationsdateien (.ini)&lt;br /&gt;
* Zusätzliche Ressourcen (HTML-Dateien, Bilder, etc.)&lt;br /&gt;
&lt;br /&gt;
Dies sind alle Dateien, die OpenSim-Benutzer benötigen, um das Addin in ihren Installationen auszuführen.&lt;br /&gt;
&lt;br /&gt;
== Addin-Direktiven ==&lt;br /&gt;
&lt;br /&gt;
Wie üblich sollte das Region Module mit dem Extension-Attribut als OpenSim Region Module annotiert werden:&lt;br /&gt;
&lt;br /&gt;
     ['''Extension'''(Path = &amp;quot;/OpenSim/RegionModules&amp;quot;, NodeName = &amp;quot;RegionModule&amp;quot;, Id = &amp;quot;IhrModulId&amp;quot;)]&lt;br /&gt;
     public class IhrModul : ISharedRegionModule&lt;br /&gt;
     {&lt;br /&gt;
       ...&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
Für nicht-geteilte Region Module verwenden Sie stattdessen '''INonSharedRegionModule'''.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich sollte das Assembly, das das Region Module enthält, die folgenden Direktiven in Properties/AssemblyInfo.cs enthalten:&lt;br /&gt;
&lt;br /&gt;
 // Diese Zeilen sind für die Addin-Paketierung erforderlich&lt;br /&gt;
 [assembly: '''Addin'''(&amp;quot;IhrAddin.Name&amp;quot;, OpenSim.VersionInfo.VersionNumber + &amp;quot;.1&amp;quot;)]&lt;br /&gt;
 [assembly: '''AddinDependency'''(&amp;quot;OpenSim.Region.Framework&amp;quot;, OpenSim.VersionInfo.VersionNumber)]&lt;br /&gt;
 [assembly: '''AddinDescription'''(&amp;quot;Beschreibung Ihres Addins&amp;quot;)]&lt;br /&gt;
 [assembly: '''AddinAuthor'''(&amp;quot;Ihr Name&amp;quot;)]&lt;br /&gt;
 &lt;br /&gt;
 // Die nächsten Zeilen sind optional - externe Abhängigkeiten einbinden&lt;br /&gt;
 [assembly: '''ImportAddinAssembly'''(&amp;quot;ExterneBibliothek.dll&amp;quot;)]&lt;br /&gt;
 [assembly: '''ImportAddinFile'''(&amp;quot;IhreKonfig.ini&amp;quot;)]&lt;br /&gt;
 [assembly: '''ImportAddinFile'''(&amp;quot;ressource.html&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Addin-Direktiven verstehen ===&lt;br /&gt;
&lt;br /&gt;
Die erste Direktive [assembly: '''Addin'''(&amp;quot;IhrAddin.Name&amp;quot;, OpenSim.VersionInfo.VersionNumber + &amp;quot;.1&amp;quot;)] legt den öffentlichen Namen Ihres Addins fest: Dies ist, was die Benutzer sehen werden. Achten Sie besonders auf die Versionsnummer. Während Sie jede beliebige Versionsnummer verwenden können, wird dringend empfohlen, die Versionsnummer Ihres Addins mit der OpenSim-Version zu verknüpfen, gegen die Sie Ihren Code kompilieren.&lt;br /&gt;
&lt;br /&gt;
Mit .NET 8.0 ist die Binärkompatibilität weiterhin wichtig, daher sollten Sie Ihre Benutzer darüber informieren, mit welcher OpenSim-Version dieses Addin kompatibel ist. Der direkteste Weg, diese Information weiterzugeben, besteht darin, sie zur Versionsnummer Ihres Addins hinzuzufügen. In diesem Fall verwenden wir die ersten Ziffern, um die OpenSim-Versionsnummer (z.B. 0.9.3.1) anzugeben, und die letzte Ziffer, um die eigene Version dieses Addins anzugeben. Wenn wir dieses Addin zwischen OpenSim-Releases weiterentwickeln würden, würde diese letzte Ziffer auf 2 erhöht, während die ersten Ziffern gleich blieben.&lt;br /&gt;
&lt;br /&gt;
Die zweite Direktive [assembly: '''AddinDependency'''(&amp;quot;OpenSim.Region.Framework&amp;quot;, OpenSim.VersionInfo.VersionNumber)] legt die Abhängigkeit mit der konkreten OpenSim-DLL fest, die dieses Addin erweitert. Alle Region Module Addins erweitern OpenSim.Region.Framework. Auch hier sollte die Versionsnummer die aktuelle OpenSim-Versionsnummer sein, da dies die DLL ist, gegen die Sie Ihren Code kompilieren. Für eine Erklärung, wie die Versionierung funktioniert, siehe [[Installing_3rd_party_addins#Versioning]]&lt;br /&gt;
&lt;br /&gt;
Die dritte und vierte Direktive geben eine Beschreibung und Autorenschaft-Informationen für Ihr Addin.&lt;br /&gt;
&lt;br /&gt;
Die letzten Direktiven (ImportAddinAssembly, ImportAddinFile) binden zusätzliche Dateien in das Paket ein, die notwendig sind, damit die Addins in den Umgebungen Ihrer Benutzer funktionieren. Die Direktive [assembly: '''ImportAddinAssembly'''(&amp;quot;ExterneBibliothek.dll&amp;quot;)] hat zwei Zwecke: (1) sie bindet diese DLL in das Paket ein und (2) sie informiert die Laufzeitumgebung des Benutzers, dass diese DLL ebenfalls geladen werden sollte, wenn unser Addin in den Speicher geladen wird.&lt;br /&gt;
&lt;br /&gt;
== Beispiel: OfflineIM Addon ==&lt;br /&gt;
&lt;br /&gt;
Das OfflineIM-Addon, das mit OpenSim ausgeliefert wird, demonstriert Best Practices:&lt;br /&gt;
&lt;br /&gt;
'''Modul-Deklaration:'''&lt;br /&gt;
 [Extension(Path = &amp;quot;/OpenSim/RegionModules&amp;quot;, NodeName = &amp;quot;RegionModule&amp;quot;, Id = &amp;quot;OfflineIMConnectorModule&amp;quot;)]&lt;br /&gt;
 public class OfflineIMRegionModule : ISharedRegionModule, IOfflineIMService&lt;br /&gt;
 {&lt;br /&gt;
     public void Initialise(IConfigSource config)&lt;br /&gt;
     {&lt;br /&gt;
         IConfig cnf = config.Configs[&amp;quot;Messaging&amp;quot;];&lt;br /&gt;
         if (cnf == null)&lt;br /&gt;
             return;&lt;br /&gt;
         if (cnf != null &amp;amp;&amp;amp; cnf.GetString(&amp;quot;OfflineMessageModule&amp;quot;, string.Empty) != Name)&lt;br /&gt;
             return;&lt;br /&gt;
         &lt;br /&gt;
         m_Enabled = true;&lt;br /&gt;
         // ... Initialisierungscode&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     public void AddRegion(Scene scene)&lt;br /&gt;
     {&lt;br /&gt;
         if (!m_Enabled)&lt;br /&gt;
             return;&lt;br /&gt;
         &lt;br /&gt;
         scene.RegisterModuleInterface&amp;lt;IOfflineIMService&amp;gt;(this);&lt;br /&gt;
         // ... Region-Setup&lt;br /&gt;
     }&lt;br /&gt;
     // ... andere Interface-Methoden&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''AssemblyInfo.cs:'''&lt;br /&gt;
 [assembly: Addin(&amp;quot;OpenSim.OfflineIM&amp;quot;, OpenSim.VersionInfo.VersionNumber)]&lt;br /&gt;
 [assembly: AddinDependency(&amp;quot;OpenSim.Region.Framework&amp;quot;, OpenSim.VersionInfo.VersionNumber)]&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Ein sehr wichtiger Teil des Prozesses hat mit der Konfiguration Ihres Addins zu tun. Anstatt Benutzer zu zwingen, ihre OpenSim.ini-Dateien manuell zu bearbeiten und den zu Ihrem Addin gehörenden Konfigurationsabschnitt hinzuzufügen, empfehlen wir die Verwendung modularer Konfigurationen. In modularen Konfigurationen sind Ihre Komponenten dafür verantwortlich, ihre eigenen Konfigurationsdateien zu lesen.&lt;br /&gt;
&lt;br /&gt;
Hier ist das empfohlene Muster zum Laden der Konfiguration:&lt;br /&gt;
&lt;br /&gt;
        public void Initialise(IConfigSource config)&lt;br /&gt;
        {&lt;br /&gt;
            // Wir laden die Konfigurationsdatei nur, wenn die Hauptkonfiguration noch nichts über dieses Modul weiß&lt;br /&gt;
            IConfig cnf = config.Configs[&amp;quot;IhrModulName&amp;quot;];&lt;br /&gt;
            if (cnf == null)&lt;br /&gt;
            {&lt;br /&gt;
                LoadConfiguration(config);&lt;br /&gt;
                cnf = config.Configs[&amp;quot;IhrModulName&amp;quot;];&lt;br /&gt;
                if (cnf == null)&lt;br /&gt;
                {&lt;br /&gt;
                    m_log.WarnFormat(&amp;quot;[IHR MODUL]: Konfigurationsabschnitt nicht gefunden. Kann nicht fortfahren.&amp;quot;);&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            // Konfigurationswerte lesen&lt;br /&gt;
            m_Enabled = cnf.GetBoolean(&amp;quot;Enabled&amp;quot;, false);&lt;br /&gt;
            // ... weitere Konfiguration&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
LoadConfiguration sollte wie folgt deklariert werden:&lt;br /&gt;
&lt;br /&gt;
        private void LoadConfiguration(IConfigSource config)&lt;br /&gt;
        {&lt;br /&gt;
            string configPath = string.Empty;&lt;br /&gt;
            bool created;&lt;br /&gt;
            if (!Util.MergeConfigurationFile(config, &amp;quot;IhrModul.ini&amp;quot;, &lt;br /&gt;
                Path.Combine(AssemblyDirectory, &amp;quot;IhrModul.ini&amp;quot;), &lt;br /&gt;
                out configPath, out created))&lt;br /&gt;
            {&lt;br /&gt;
                m_log.WarnFormat(&amp;quot;[IHR MODUL]: Konfigurationsdatei nicht zusammengeführt&amp;quot;);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            if (created)&lt;br /&gt;
            {&lt;br /&gt;
                m_log.ErrorFormat(&amp;quot;[IHR MODUL]: BITTE BEARBEITEN SIE {0} VOR DEM AUSFÜHREN DIESES ADDINS&amp;quot;, configPath);&lt;br /&gt;
                throw new Exception(&amp;quot;Addin muss vor dem Ausführen konfiguriert werden&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        private static string AssemblyDirectory&lt;br /&gt;
        {&lt;br /&gt;
            get&lt;br /&gt;
            {&lt;br /&gt;
                string location = Assembly.GetExecutingAssembly().Location;&lt;br /&gt;
                return Path.GetDirectoryName(location);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
Diese Methode verwendet '''OpenSim.Framework.Util.MergeConfigurationFile''', die die ConfigDirectory-Variable aus der OpenSim-Konfiguration liest und prüft, ob die Konfigurationsdatei dieses Moduls bereits vorhanden ist. Wenn ja, wird sie einfach mit den OpenSim-Konfigurationen zusammengeführt. Wenn nicht, kopiert sie die Konfigurationsdatei, die sie im Paket mitgebracht hat, in das ConfigDirectory und warnt den Operator, dass er sie nach seinen Bedürfnissen bearbeiten sollte.&lt;br /&gt;
&lt;br /&gt;
== Projektstruktur ==&lt;br /&gt;
&lt;br /&gt;
OpenSim 0.9.3.x verwendet entweder traditionelle prebuild.xml oder moderne .NET SDK-Style .csproj-Dateien.&lt;br /&gt;
&lt;br /&gt;
=== Verwendung von Prebuild (Traditionell) ===&lt;br /&gt;
&lt;br /&gt;
Wenn Sie prebuild.xml verwenden, stellen Sie sicher, dass alle notwendigen Dateien in das Ausgabeverzeichnis kopiert werden:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Project name=&amp;quot;OpenSim.Addon.IhrModul&amp;quot; path=&amp;quot;addon-modules/IhrModul&amp;quot; type=&amp;quot;Library&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration name=&amp;quot;Debug&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Options&amp;gt;&lt;br /&gt;
        &amp;lt;OutputPath&amp;gt;../../bin/&amp;lt;/OutputPath&amp;gt;&lt;br /&gt;
        &amp;lt;AllowUnsafe&amp;gt;true&amp;lt;/AllowUnsafe&amp;gt;&lt;br /&gt;
      &amp;lt;/Options&amp;gt;&lt;br /&gt;
    &amp;lt;/Configuration&amp;gt;&lt;br /&gt;
    &amp;lt;Configuration name=&amp;quot;Release&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Options&amp;gt;&lt;br /&gt;
        &amp;lt;OutputPath&amp;gt;../../bin/&amp;lt;/OutputPath&amp;gt;&lt;br /&gt;
        &amp;lt;AllowUnsafe&amp;gt;true&amp;lt;/AllowUnsafe&amp;gt;&lt;br /&gt;
      &amp;lt;/Options&amp;gt;&lt;br /&gt;
    &amp;lt;/Configuration&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;ReferencePath&amp;gt;../../bin/&amp;lt;/ReferencePath&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;Nini&amp;quot; path=&amp;quot;../../bin/&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;log4net&amp;quot; path=&amp;quot;../../bin/&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;Mono.Addins&amp;quot; path=&amp;quot;../../bin/&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Weitere OpenSim-Referenzen hinzufügen --&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;OpenSim.Region.Framework&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Reference name=&amp;quot;OpenSim.Framework&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Files&amp;gt;&lt;br /&gt;
      &amp;lt;Match pattern=&amp;quot;*.cs&amp;quot; recurse=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Exclude name=&amp;quot;obj&amp;quot; pattern=&amp;quot;obj&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;Exclude name=&amp;quot;Tests&amp;quot; pattern=&amp;quot;Tests&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/Match&amp;gt;&lt;br /&gt;
      &amp;lt;Match pattern=&amp;quot;*.ini&amp;quot; buildAction=&amp;quot;Copy&amp;quot; destination=&amp;quot;../../bin/&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Match pattern=&amp;quot;*.html&amp;quot; buildAction=&amp;quot;Copy&amp;quot; destination=&amp;quot;../../bin/&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Files&amp;gt;&lt;br /&gt;
  &amp;lt;/Project&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Erstellen/Ändern von prebuild.xml ausführen:&lt;br /&gt;
  $ runprebuild.bat       (Windows)&lt;br /&gt;
  $ ./runprebuild.sh      (Linux/Mac)&lt;br /&gt;
&lt;br /&gt;
=== Verwendung von .NET SDK-Style Projekten (Modern) ===&lt;br /&gt;
&lt;br /&gt;
Moderne .NET 8.0-Projekte können SDK-Style .csproj-Dateien direkt verwenden:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Project Sdk=&amp;quot;Microsoft.NET.Sdk&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;PropertyGroup&amp;gt;&lt;br /&gt;
      &amp;lt;TargetFramework&amp;gt;net8.0&amp;lt;/TargetFramework&amp;gt;&lt;br /&gt;
      &amp;lt;OutputPath&amp;gt;../../bin/&amp;lt;/OutputPath&amp;gt;&lt;br /&gt;
      &amp;lt;GenerateAssemblyInfo&amp;gt;false&amp;lt;/GenerateAssemblyInfo&amp;gt;&lt;br /&gt;
      &amp;lt;AllowUnsafeBlocks&amp;gt;true&amp;lt;/AllowUnsafeBlocks&amp;gt;&lt;br /&gt;
    &amp;lt;/PropertyGroup&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;
      &amp;lt;Reference Include=&amp;quot;Mono.Addins&amp;quot; HintPath=&amp;quot;../../bin/Mono.Addins.dll&amp;quot; Private=&amp;quot;False&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;ProjectReference Include=&amp;quot;../../OpenSim/Region/Framework/OpenSim.Region.Framework.csproj&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;ProjectReference Include=&amp;quot;../../OpenSim/Framework/OpenSim.Framework.csproj&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;
      &amp;lt;None Update=&amp;quot;*.ini&amp;quot; CopyToOutputDirectory=&amp;quot;PreserveNewest&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;
  &amp;lt;/Project&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ihr Addon bauen ==&lt;br /&gt;
&lt;br /&gt;
=== Mit Prebuild ===&lt;br /&gt;
  1. Führen Sie Prebuild aus, um Projektdateien zu generieren&lt;br /&gt;
  2. Bauen Sie mit dotnet oder Visual Studio:&lt;br /&gt;
     $ dotnet build IhrAddon.csproj -c Release&lt;br /&gt;
&lt;br /&gt;
=== Mit direkter .csproj ===&lt;br /&gt;
  $ dotnet build IhrAddon.csproj -c Release&lt;br /&gt;
&lt;br /&gt;
Alle Ausgabedateien sollten im bin/-Verzeichnis neben anderen OpenSim-Assemblies landen.&lt;br /&gt;
&lt;br /&gt;
== Das Addin paketieren ==&lt;br /&gt;
&lt;br /&gt;
Um die Dateien für die Verteilung zu paketieren, verwenden Sie das '''mautil''' Kommandozeilen-Tool, das im OpenSim bin-Verzeichnis enthalten ist.&lt;br /&gt;
&lt;br /&gt;
  $ /pfad/zu/mautil.exe pack bin/IhrAddon.dll&lt;br /&gt;
&lt;br /&gt;
Dies erstellt eine Datei namens '''IhrAddon_0.9.3.1.1.mpack''' (Version kann variieren). Dies ist das Addin-Paket, das an den Standorten der Benutzer verteilt und installiert wird.&lt;br /&gt;
&lt;br /&gt;
Beachten Sie, dass .mpack-Dateien komprimierte (zip) Archive sind. Sie können sie öffnen und ihren Inhalt mit Tools zur Inspektion von Zip-Dateien überprüfen.&lt;br /&gt;
&lt;br /&gt;
=== mautil-Befehle ===&lt;br /&gt;
&lt;br /&gt;
Das mautil-Tool (Mono.Addins Manager) unterstützt mehrere Befehle:&lt;br /&gt;
&lt;br /&gt;
* '''pack''' - Erstellt ein .mpack-Paket aus einer DLL&lt;br /&gt;
* '''rep-build''' - Baut ein Addin-Repository&lt;br /&gt;
* '''install''' - Installiert ein Addin aus einem Repository&lt;br /&gt;
* '''uninstall''' - Deinstalliert ein Addin&lt;br /&gt;
* '''list''' - Listet installierte Addins auf&lt;br /&gt;
&lt;br /&gt;
Für weitere Informationen:&lt;br /&gt;
  $ /pfad/zu/mautil.exe --help&lt;br /&gt;
&lt;br /&gt;
== Ihre Addins verteilen ==&lt;br /&gt;
&lt;br /&gt;
Um Ihre Addins anderen zur Verfügung zu stellen, müssen Sie Ihr eigenes Addin-Repository erstellen und es auf einem Webserver hosten.&lt;br /&gt;
&lt;br /&gt;
Um das Repository zu erstellen, erstellen Sie irgendwo einen Ordner und platzieren Sie alle Ihre Addin-Pakete (.mpack) darin. Dann:&lt;br /&gt;
&lt;br /&gt;
  $ /pfad/zu/mautil.exe rep-build /pfad/zu/repo/ordner&lt;br /&gt;
&lt;br /&gt;
Dies erstellt zusätzliche Indexdateien (main.mrep, root.mrep) mit den richtigen Einträgen. Alles, was Sie als Nächstes tun müssen, ist den gesamten Inhalt dieses Ordners auf einen Webserver hochzuladen.&lt;br /&gt;
&lt;br /&gt;
Schließlich müssen Sie Ihre Benutzer über die URL Ihres Repositorys informieren, damit sie es zu ihren Registern hinzufügen und Addins aus Ihrem Repository installieren können. Sie können Ihr Repo [[List of 3rd Party Addin Repositories|hier]] hinzufügen.&lt;br /&gt;
&lt;br /&gt;
== Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* '''Versionskompatibilität:''' Kompilieren Sie immer gegen die spezifische OpenSim-Version, die Ihr Addon anvisiert&lt;br /&gt;
* '''Konfiguration:''' Verwenden Sie modulare Konfigurationsdateien, anstatt manuelle OpenSim.ini-Bearbeitungen zu erfordern&lt;br /&gt;
* '''Abhängigkeiten:''' Dokumentieren Sie alle externen Abhängigkeiten klar&lt;br /&gt;
* '''Testen:''' Testen Sie Ihr Addon sowohl mit Standalone- als auch mit Grid-Konfigurationen&lt;br /&gt;
* '''Dokumentation:''' Stellen Sie klare Installations- und Konfigurationsanweisungen bereit&lt;br /&gt;
* '''Protokollierung:''' Verwenden Sie geeignete Log-Level (Debug, Info, Warn, Error)&lt;br /&gt;
* '''.NET 8.0:''' Stellen Sie Kompatibilität mit .NET 8.0 Runtime sicher&lt;br /&gt;
* '''Fehlerbehandlung:''' Implementieren Sie ordnungsgemäße Fehlerbehandlung und geben Sie aussagekräftige Fehlermeldungen&lt;br /&gt;
&lt;br /&gt;
== Fehlerbehebung ==&lt;br /&gt;
&lt;br /&gt;
=== Häufige Probleme ===&lt;br /&gt;
&lt;br /&gt;
* '''Assembly nicht gefunden:''' Stellen Sie sicher, dass alle referenzierten Assemblies im bin-Verzeichnis sind&lt;br /&gt;
* '''Versions-Missmatch:''' Überprüfen Sie, dass OpenSim.VersionInfo.VersionNumber mit Ihrer OpenSim-Installation übereinstimmt&lt;br /&gt;
* '''Modul lädt nicht:''' Prüfen Sie, dass das Extension-Attribut korrekt ist und das Modul das richtige Interface implementiert&lt;br /&gt;
* '''Konfiguration nicht gefunden:''' Überprüfen Sie, dass die .ini-Datei ins bin-Verzeichnis kopiert wurde und MergeConfigurationFile aufgerufen wird&lt;br /&gt;
* '''.NET Runtime-Probleme:''' Stellen Sie sicher, dass .NET 8.0 Runtime installiert ist&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[New Region Modules]] - Dokumentation zur Region Module Entwicklung&lt;br /&gt;
* [[Installing 3rd party addins]] - Anleitung für Benutzer zur Installation von Addins&lt;br /&gt;
* [[List of 3rd Party Addin Repositories]] - Community-Addon-Repositories&lt;br /&gt;
&lt;br /&gt;
== Externe Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/opensim/opensim OpenSimulator GitHub Repository]&lt;br /&gt;
* [https://dotnet.microsoft.com/en-us/download/dotnet/8.0 .NET 8.0 Download]&lt;br /&gt;
* [http://opensimulator.org/ OpenSimulator Webseite]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/GridInfo/de</id>
		<title>GridInfo/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/GridInfo/de"/>
				<updated>2025-11-07T21:52:27Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;{{Quicklinks|GridInfo}} Das '''GridInfo-Protokoll''' wurde von [http://mjm.game-host.org/opensim:viewer:contents mana janus] vorgeschlagen, um die Autokonfiguration von Client...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|GridInfo}}&lt;br /&gt;
Das '''GridInfo-Protokoll''' wurde von [http://mjm.game-host.org/opensim:viewer:contents mana janus] vorgeschlagen, um die Autokonfiguration von Clients zu erleichtern. Mit dem GridInfo-Protokoll muss ein smarter Client nur die URI des User-Servers oder des Standalone-Servers haben und kann dann Parameter wie die Willkommensseite, die Helper-URI (für das Wirtschaftssubsystem), den Namen des Grids und andere Informationen automatisch abrufen.&lt;br /&gt;
&lt;br /&gt;
Das Abrufen der GridInfo ist lediglich ein einfacher HTTP-GET-Aufruf an /get_grid_info, entweder auf die URL des Standalone-Servers oder auf den User-Server des Grids:&lt;br /&gt;
&amp;lt;pre&amp;gt;% GET http://127.0.0.1:9000/get_grid_info | xml_pp&lt;br /&gt;
&amp;amp;lt;gridinfo&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;login&amp;amp;gt;http://127.0.0.1:9000/&amp;amp;lt;/login&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;gridname&amp;amp;gt;the lost continent of hippo&amp;amp;lt;/gridname&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;mode&amp;amp;gt;standalone&amp;amp;lt;/mode&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;register&amp;amp;gt;http://127.0.0.1/register&amp;amp;lt;/register&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;platform&amp;amp;gt;OpenSim&amp;amp;lt;/platform&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;help&amp;amp;gt;http://127.0.0.1/help&amp;amp;lt;/help&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;about&amp;amp;gt;http://127.0.0.1/about/&amp;amp;lt;/about&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;welcome&amp;amp;gt;http://127.0.0.1/welcome&amp;amp;lt;/welcome&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;gridnick&amp;amp;gt;hippogrid&amp;amp;lt;/gridnick&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;password&amp;amp;gt;http://127.0.0.1/password&amp;amp;lt;/password&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;economy&amp;amp;gt;http://127.0.0.1:9000/&amp;amp;lt;/economy&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/gridinfo&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies wurde von dem folgenden [GridInfo]-Abschnitt &amp;quot;generiert&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;[GridInfo]&lt;br /&gt;
; login uri&lt;br /&gt;
login = http://127.0.0.1:9000/&lt;br /&gt;
; login page&lt;br /&gt;
welcome = http://127.0.0.1/welcome&lt;br /&gt;
; helper uri&lt;br /&gt;
economy = http://127.0.0.1:9000/&lt;br /&gt;
; web page of grid&lt;br /&gt;
about = http://127.0.0.1/about/&lt;br /&gt;
; account creation&lt;br /&gt;
register = http://127.0.0.1/register&lt;br /&gt;
; help&lt;br /&gt;
help = http://127.0.0.1/help&lt;br /&gt;
; password help&lt;br /&gt;
password = http://127.0.0.1/password&lt;br /&gt;
; long grid name&lt;br /&gt;
gridname = &amp;quot;the lost continent of hippo&amp;quot;&lt;br /&gt;
; short grid name&lt;br /&gt;
gridnick = &amp;quot;hippogrid&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Werfen Sie einen Blick in OpenSim.ini.example, um alle GridInfo-Optionen zu sehen --- beachten Sie, dass Sie dort zusätzliche Schlüssel hinzufügen können, sie werden automatisch in die Antwort aufgenommen.&lt;br /&gt;
&lt;br /&gt;
HINWEIS: Der Konfigurationsort für GridInfo hat sich geändert.&lt;br /&gt;
&lt;br /&gt;
* In den Versionen 0.6.9 und darunter findet es sich in OpenSim.ini&lt;br /&gt;
* In Version 0.7.0 fehlt GridInfo. Bitte aktualisieren Sie auf 0.7.0.1 oder neuer&lt;br /&gt;
* In Version 0.7.0.1 und neuer befindet es sich für Standalones in StandaloneCommon.ini und für Grids in Robust.ini&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Grid_List</id>
		<title>Grid List</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Grid_List"/>
				<updated>2025-10-23T14:59:41Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks|Grid_List}}&lt;br /&gt;
&lt;br /&gt;
== What is the Grid List? ==&lt;br /&gt;
There are hundreds (thousands?) of OpenSimulator-based virtual worlds out there. Many of them are free to use and welcome new users. This grid list is a community-generated list of such worlds. If you would like to experience an OpenSimulator-based virtual world before installing your own, try one of these. &lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT NOTE:''' The OpenSimulator project is not responsible for, nor in any way associated with, any grid listed on this page, nor for any grid's content or activities. Visit at your own risk. Also, there are no guarantees that these worlds are up and running.&lt;br /&gt;
&lt;br /&gt;
== Grid Lists ==&lt;br /&gt;
* Hypergrid Business Active OpenSim Grids: [https://www.hypergridbusiness.com/statistics/active-grids/ https://www.hypergridbusiness.com/statistics/active-grids/]&lt;br /&gt;
* Firestorm Grid List: [https://phoenixviewer.com/app/fsdata/fs_grid_builder.html https://phoenixviewer.com/app/fsdata/fs_grid_builder.html]&lt;br /&gt;
&lt;br /&gt;
'''Note:''' In the Firestorm Viewer, the grid list is directly accessible under &amp;quot;+ Click to add more grids&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Public grids  ==&lt;br /&gt;
&lt;br /&gt;
'''Grid List Policy:''' Please list your grid only if uses OpenSimulator as a component. Do not include advertising language. The entries in the main list should just contain the grid name and the plain numbers as defined by the column headers. '''Please use [[Grid List/Template|this template]] for the subpages to keep the information in a comparable manner.''' Grids are listed in the order of appearance, so please add your entry to the bottom of the list. Anyone found inserting a grid up higher in the list will have their entry moved or removed. &lt;br /&gt;
&lt;br /&gt;
You may want provide a link on your world's website back to the project by using the [[OpenSim Graphics|Powered by OpenSimulator logo]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This is only a partial listing of grids. Hypergrid Business maintains a list of active grids, updated monthly: [http://www.hypergridbusiness.com/statistics/active-grids/ Active OpenSimulator grids]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Grid Page last updated on Sep 13 2020&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#57C604;font-size:10pt;font-weight:bold;border-bottom:1px solid;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;bottom&amp;quot;&lt;br /&gt;
! Grid Name &lt;br /&gt;
! # Regions &lt;br /&gt;
! Approx # Users &lt;br /&gt;
! Unique last 30days&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/OSGrid|OSGrid]] &lt;br /&gt;
| 4665 &lt;br /&gt;
| 125000&lt;br /&gt;
| 4380&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Francogrid|FrancoGrid]] &lt;br /&gt;
| 298&lt;br /&gt;
| 5593&lt;br /&gt;
| 298&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/3rd Rock Grid|3rd Rock Grid]] &lt;br /&gt;
| 283&lt;br /&gt;
| 11765&lt;br /&gt;
| 347&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Metropolis|Metropolis Metaversum]] &lt;br /&gt;
| 1581&lt;br /&gt;
| 14706&lt;br /&gt;
| 3579&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Open-Neuland|OpenSimulator-Club - Open Neuland]] &lt;br /&gt;
| 216 &lt;br /&gt;
| 384 &lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Wilder-Westen|OpenSimulator-Club - Wilder Westen]] &lt;br /&gt;
| 41 &lt;br /&gt;
| 122 &lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Myopengrid.com|MyOpenGrid]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Your Alternative Life|Your Alternative Life]] &lt;br /&gt;
| 47 &lt;br /&gt;
| 2089 &lt;br /&gt;
| 1458&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Openvue|Openvue]] &lt;br /&gt;
| 16&lt;br /&gt;
| 24&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Logicamp|Logicamp - Outdoor Grid]] &lt;br /&gt;
| 179&lt;br /&gt;
| 3300 &lt;br /&gt;
| 577&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Jamgrid|Jamgrid]] &lt;br /&gt;
| 15 &lt;br /&gt;
| 55 &lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/JOGrid|Japan Open Grid]] &lt;br /&gt;
| 158&lt;br /&gt;
| 682&lt;br /&gt;
| 142&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Tlön|Tlön]] &lt;br /&gt;
| 11 &lt;br /&gt;
| 65 &lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/PMGrid|PMGrid]] &lt;br /&gt;
| 80 &lt;br /&gt;
| 100 &lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/jokaydiagrid|jokaydiaGRID]] &lt;br /&gt;
| 20 &lt;br /&gt;
| 253 &lt;br /&gt;
| 75&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Craft-World|Craft-World]] &lt;br /&gt;
| 207 &lt;br /&gt;
| 9429 &lt;br /&gt;
| 607&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Virtual RP|Virtual RP]] &lt;br /&gt;
| 17 &lt;br /&gt;
| 714 &lt;br /&gt;
| 55&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/GerGrid|GerGrid]] &lt;br /&gt;
| 98 &lt;br /&gt;
| 408&lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/AnSky|AnSky]] &lt;br /&gt;
| 14 &lt;br /&gt;
| 106&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Virtual Worlds Grid|Virtual Worlds Grid]] &lt;br /&gt;
| 527 &lt;br /&gt;
| 30 &lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/3DGrid World|3DGrid World (formerly The SecondLearning Grid)]]&lt;br /&gt;
| 4 &lt;br /&gt;
| 55 &lt;br /&gt;
| 46&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Sofitek|Sofitek]] &lt;br /&gt;
| 8 &lt;br /&gt;
| 21 &lt;br /&gt;
| 21&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Dorenas World|Dorenas World]] &lt;br /&gt;
| 143&lt;br /&gt;
| 448&lt;br /&gt;
| 300&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Speculoos|Speculoos]] &lt;br /&gt;
| 30&lt;br /&gt;
| 50 &lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Pathlandia|Pathlandia]] &lt;br /&gt;
| 4 &lt;br /&gt;
| 1 &lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Austria|Austria]] &lt;br /&gt;
| 11 &lt;br /&gt;
| 6 &lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Psychedelia|Psychedelia]] &lt;br /&gt;
| 7 &lt;br /&gt;
| 7 &lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/M001|M001]]&lt;br /&gt;
| 10&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/HyperGrid Plaza|HyperGrid Plaza]] &lt;br /&gt;
| 1&lt;br /&gt;
| 100&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [http://adreans-world.from-fl.com/home/ Adreans-World]&lt;br /&gt;
| 147&lt;br /&gt;
| 518 &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.jopensim.com jOpenSimWorld]&lt;br /&gt;
| 39&lt;br /&gt;
| 327&lt;br /&gt;
| 39&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/RevWorld|Rev World]]&lt;br /&gt;
| 56 &lt;br /&gt;
| 1461&lt;br /&gt;
| 256&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/Littlefield_Grid|Littlefield Grid]]&lt;br /&gt;
| 351&lt;br /&gt;
| 2078&lt;br /&gt;
| 383&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Alife Virtual|Alife Virtual]] &lt;br /&gt;
| 1000&lt;br /&gt;
| 10000&lt;br /&gt;
| 2000&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/Athabasca University|Athabasca University]]&lt;br /&gt;
| 16 &lt;br /&gt;
| 15 (in development stage)&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/IgnisFatuus|Ignis Fatuus]] &lt;br /&gt;
| 47 &lt;br /&gt;
| 14&lt;br /&gt;
| 72&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/DigiWorldz|DigiWorldz]]&lt;br /&gt;
| 3518&lt;br /&gt;
| 12821&lt;br /&gt;
| 2144&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/gimisaOS|gimisaOS]] &lt;br /&gt;
| 10 &lt;br /&gt;
| 1 &lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/DSGrid|DSGrid]]&lt;br /&gt;
| 17 &lt;br /&gt;
| 52 &lt;br /&gt;
| 71&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Regno di Camlaan|Regno di Camlaan]] &lt;br /&gt;
| 8&lt;br /&gt;
| 19&lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| [http://partydestinationgrid.com Party Destination Grid] &lt;br /&gt;
| 120 &lt;br /&gt;
| 1500 &lt;br /&gt;
| 1050&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/pathway_universe|pathway universe]]&lt;br /&gt;
| 26&lt;br /&gt;
| 62&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/Neverworld_Grid|Neverworld Grid ]]&lt;br /&gt;
| 328&lt;br /&gt;
| 1221&lt;br /&gt;
| 383&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/Zone Nations|Zone Nations®]]&lt;br /&gt;
| 31&lt;br /&gt;
| 6107&lt;br /&gt;
| 3678&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.vibel.eu Vibel]&lt;br /&gt;
| 15&lt;br /&gt;
| 839&lt;br /&gt;
| 839&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/openmanniland|openmanniland - OpenSim 0.9.3, PBR Terrain, DTL/NSL RPG MoneyServer, DotNet 8]]&lt;br /&gt;
| 37&lt;br /&gt;
| 5&lt;br /&gt;
| 83&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/ReactionGrid|ReactionGrid]]&lt;br /&gt;
| 76&lt;br /&gt;
| 9756&lt;br /&gt;
| 406&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/GorGrid|GorGrid]]&lt;br /&gt;
| 887&lt;br /&gt;
| 84&lt;br /&gt;
| 119&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Outworldz|www.Outworldz.com and DreamGrid Home]]&lt;br /&gt;
| 170&lt;br /&gt;
| 826&lt;br /&gt;
| 161&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/ZetaWorlds|ZetaWorlds]]&lt;br /&gt;
| 10000&lt;br /&gt;
| 2000&lt;br /&gt;
| 1300&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Bubble-Grid|Bubble-Grid]]&lt;br /&gt;
| 22&lt;br /&gt;
| 50&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Active Public grids  ==&lt;br /&gt;
&lt;br /&gt;
{{ambox&lt;br /&gt;
| type = inactive &lt;br /&gt;
| text = This is a list of Grids that been inactive for a few days and or have claimed to be inactive by the owner. &amp;lt;!-- MAJ le 30/12/2011 --&amp;gt;[[Category:Grid List]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#57C604;font-size:10pt;font-weight:bold;border-bottom:1px solid;&amp;quot; valign=&amp;quot;bottom&amp;quot;&lt;br /&gt;
! Grid Name &lt;br /&gt;
! # Regions &lt;br /&gt;
! Approx # Users &lt;br /&gt;
! Unique last 30days&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Cybergrid|Cybergrid]] &lt;br /&gt;
| 1 &lt;br /&gt;
| 44 &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/MOSES|MOSES: Military Open Simulator Enterprise Strategy]] &lt;br /&gt;
| 117 &lt;br /&gt;
| 227 &lt;br /&gt;
| 102&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/SirinHGpole-Grid|SirinHGpole-Grid]] (regions merged into OSGrid)&lt;br /&gt;
| 238&lt;br /&gt;
| 120&lt;br /&gt;
| 70&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/The New World Grid|The New World Grid]] &lt;br /&gt;
| 330 &lt;br /&gt;
| 5200 &lt;br /&gt;
| 590&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Uvatar|Uvatar]] &lt;br /&gt;
| &amp;amp;nbsp;??? &lt;br /&gt;
| &amp;amp;nbsp;??? &lt;br /&gt;
| 0 &amp;lt;!-- Logins are disabled. Last update to the website was in 2012, many unfixed errors to the site. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Cyberlandia|Cyberlandia]] &lt;br /&gt;
| 185 &lt;br /&gt;
| 1600 &lt;br /&gt;
| 269&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/CloneLife|Clone Life]]&lt;br /&gt;
| 31&lt;br /&gt;
| 6107&lt;br /&gt;
| 3678&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.goreanlifestyle.com/ Gorean Life Style]&lt;br /&gt;
|30&lt;br /&gt;
|50&lt;br /&gt;
|45&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/COSIE Grid|COSIE Grid]] &lt;br /&gt;
| 6 &lt;br /&gt;
| 3&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/H omeland3D|Homeland3D]] &lt;br /&gt;
| 40 &lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.meetinstantly.com/ MeetInstantly]&lt;br /&gt;
| 32&lt;br /&gt;
| 5&lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/Traduverse|Traduverse]]&lt;br /&gt;
| 49&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Regno di Camlaan|Regno di Camlaan]] &lt;br /&gt;
| 8&lt;br /&gt;
| 19&lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/AndromedaGrid|Andromeda Grid]] &lt;br /&gt;
| 10&lt;br /&gt;
| 4 &lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/EduGrid|EduGrid]] &lt;br /&gt;
| 15&lt;br /&gt;
| 2000&lt;br /&gt;
| 50&lt;br /&gt;
|-&lt;br /&gt;
|[https://web.archive.org/web/20110602161855/http://virtualhighway.us:80/ Virtual Highway]&lt;br /&gt;
| 706&lt;br /&gt;
| 6318&lt;br /&gt;
| 285&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Ice Grid|Ice Grid]] &lt;br /&gt;
| 40 &lt;br /&gt;
| 32 &lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/ART|ART]] &lt;br /&gt;
| 3(real) &lt;br /&gt;
| ? (real)&lt;br /&gt;
| 150(real)&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Stone Grid|Stone Grid]] &lt;br /&gt;
| 3&lt;br /&gt;
| 4 &lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/LifeStyle3D - ItalianGrid|LifeStyle3D - ItalianGrid]] &lt;br /&gt;
| 32&lt;br /&gt;
| 350 &lt;br /&gt;
| 108&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/My3dLife|My3DLife]] &lt;br /&gt;
| 10 &lt;br /&gt;
| 20 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/DaseinWorld|DaseinWorld]] &lt;br /&gt;
| 16 &lt;br /&gt;
| 3 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/OpenSim Creations Grid|OpenSim Creations Grid]] &lt;br /&gt;
| 15 &lt;br /&gt;
| 11&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/StarGates Matrix|StarGates Matrix]] &lt;br /&gt;
| 5 &lt;br /&gt;
| 7&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/You3D|You3D]] &lt;br /&gt;
| 11 &lt;br /&gt;
| 6 &lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Virtual Realms Grid|Virtual Realms Grid]] &lt;br /&gt;
| 8 &lt;br /&gt;
| 10 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Gor Grid|Gor Grid]] &lt;br /&gt;
| 8 &lt;br /&gt;
| 10 &lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Enakai|Enakai]] &lt;br /&gt;
| 16 &lt;br /&gt;
| 14 &lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Greeklife|GreekLife]] &lt;br /&gt;
| 30&lt;br /&gt;
| 50&lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/EverWorlds.com|EverWorlds: Bringing People Together (formerly Destiny Zero)]] &lt;br /&gt;
| 17 &lt;br /&gt;
| 2 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/IcaruSRealmS|=IcaruS= RealmS]] &lt;br /&gt;
| 26 &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/lpgrid.com|Lost Paradise]] &lt;br /&gt;
| 2847&lt;br /&gt;
| 820&lt;br /&gt;
| 670&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Valhalla Virtual|Valhalla Virtual]] &lt;br /&gt;
| 9 &lt;br /&gt;
| 25 &lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Cyber Wrld|Cyber Wrld]] &lt;br /&gt;
| 5 &lt;br /&gt;
| 8 &lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/FleepGrid|FleepGrid]] &lt;br /&gt;
| 11 &lt;br /&gt;
| 150 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Lisat|ArtGridOnLine]] &lt;br /&gt;
| 12 &lt;br /&gt;
| 48 &lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/EU-Grid|EU-Grid]] &lt;br /&gt;
| 10 &lt;br /&gt;
| 350 &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/GiantGrid|GiantGrid]] &lt;br /&gt;
| 169 &lt;br /&gt;
| 261 &lt;br /&gt;
| 157&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/pseudospace|Pseudospace]] &lt;br /&gt;
| 12 &lt;br /&gt;
| 46 &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Metapocalypse|Metapocalypse Grid]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/UFSGrid|UFSGrid]] &lt;br /&gt;
| 36 &lt;br /&gt;
| 897 &lt;br /&gt;
| +/-50&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Unica|Unica]] &lt;br /&gt;
| 16 &lt;br /&gt;
| 60 &lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/LISAT|Lost-in-Space-and-Time]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Rezzable Visions|Rezzable Visions]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/SimValley NL|SimValley NL]] &lt;br /&gt;
| 1087 &lt;br /&gt;
| 364 &lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Your2Live|Your2Live]] &lt;br /&gt;
| 3 &lt;br /&gt;
| 8 &lt;br /&gt;
| *&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/OPENSIM NL|OpenSim NL]] &lt;br /&gt;
| 9 &lt;br /&gt;
| 426 &lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/VirtualFrance3D|VirtualFrance3D]] &lt;br /&gt;
| 16 &lt;br /&gt;
| 143 &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Twisted Sky|Twisted Sky]] &lt;br /&gt;
| 60 &lt;br /&gt;
| 290 &lt;br /&gt;
| 68&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/REDISIS|redOasis (formerly RedIsis)]] &lt;br /&gt;
| 130 &lt;br /&gt;
| 60 &lt;br /&gt;
| 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/PearGrid|PearGrid]] &lt;br /&gt;
| 18 &lt;br /&gt;
| 34 &lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/HAVEN: Your World|HAVEN: Your World]] &lt;br /&gt;
| 13 &lt;br /&gt;
| 11 &lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Flatlandia.cc|Flatlandia]] &lt;br /&gt;
| 33 &lt;br /&gt;
| 177 &lt;br /&gt;
| 110&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/TertiaryGrid|Tertiary Grid]] &lt;br /&gt;
| 41 &lt;br /&gt;
| 379&lt;br /&gt;
| 42&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Annuna Grid|Annuna Grid]] &lt;br /&gt;
| 60 &lt;br /&gt;
| 60 &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/VeeSome|VeeSome]] &lt;br /&gt;
| 48 &lt;br /&gt;
| 106 &lt;br /&gt;
| 53&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/VirtuaLife|Virtualife]]&lt;br /&gt;
| 132 &lt;br /&gt;
| 1000 &lt;br /&gt;
| 500&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Avatar Hangout|Avatar Hangout (with OMC)]] &lt;br /&gt;
| 73 &lt;br /&gt;
| 8,626 &lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/DGP Grid|DGP Grid]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| [[Grid List/tescos.org.uk|tescos.org.uk (curency ƒ)]] &lt;br /&gt;
| 30 &lt;br /&gt;
| 20 &lt;br /&gt;
| 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Role Play Worlds|Role Play Worlds - Your Fantasy, your world]] &lt;br /&gt;
| 129 &lt;br /&gt;
| 2276 &lt;br /&gt;
| 298&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Avatrian|Avatrian]] &lt;br /&gt;
| 11 &lt;br /&gt;
| 25 &lt;br /&gt;
| 150&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/OSBEST|OSBEST]] &lt;br /&gt;
| 12 &lt;br /&gt;
| 8 &lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/MCM Realm|MCM Realm]] &lt;br /&gt;
| 22 &lt;br /&gt;
| 73 &lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Oasis Grid|Oasis Grid]] &lt;br /&gt;
| 89 &lt;br /&gt;
| 3068 &lt;br /&gt;
| 228&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/AtMeeting|AtMeeting Grid]] &lt;br /&gt;
| 20 &lt;br /&gt;
| 30 &lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/OpenUtopia|OpenUtopia Grid]] &lt;br /&gt;
| 1 &lt;br /&gt;
| 3 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Virtualgames3d|Virtualgames3d]] &lt;br /&gt;
| 140 &lt;br /&gt;
| 1350 &lt;br /&gt;
| 500&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Grid4Us|Grid4Us]] &lt;br /&gt;
| 22 &lt;br /&gt;
| 130 &lt;br /&gt;
| 50&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/K-grid|K-grid]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Le Monde de Darwin|Le Monde de Darwin]] &lt;br /&gt;
| 73 &lt;br /&gt;
| 83 &lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/NeXtLife|NeXtLife Grid]] &lt;br /&gt;
| 15 &lt;br /&gt;
| 7 &lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Sensation Games|Sensation Games]] &lt;br /&gt;
| 1 &lt;br /&gt;
| 2 &lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/SLI-Grid|SLI-Grid]] &lt;br /&gt;
| 5 &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| TGGrid &lt;br /&gt;
| 11 &lt;br /&gt;
| 9 &lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/4AllGrid|4AllGrid]] &lt;br /&gt;
| 68&lt;br /&gt;
| 6&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/AlphaTowne|Alpha Towne]] &lt;br /&gt;
| 308 &lt;br /&gt;
| 1172 &lt;br /&gt;
| 909&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/AstralGrid|AstralGrid]]&lt;br /&gt;
| 70&lt;br /&gt;
| 40&lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/Avination|Avination]]&lt;br /&gt;
| 110&lt;br /&gt;
| 300&lt;br /&gt;
| 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/EduverseGrid|EduverseGrid]]&lt;br /&gt;
| 147 &lt;br /&gt;
| 400&lt;br /&gt;
| Data Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/German Grid|German Grid]] &lt;br /&gt;
| 107 &lt;br /&gt;
| 2353 &lt;br /&gt;
| 385&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Heritage Key|Heritage Key]]&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/ccdbbs.com|LPgrid]]&lt;br /&gt;
| 345&lt;br /&gt;
| 331&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| [[NewtonGrid]]&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/RPGRID_NL|RPGRID NL]]&lt;br /&gt;
| 30&lt;br /&gt;
| 141&lt;br /&gt;
| 16&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/ScienceSim|ScienceSim]] &lt;br /&gt;
| 25 &lt;br /&gt;
| 30 &lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/SkyLifeGrid|SkyLifeGrid]]&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/slitalia|Slitalia]]&lt;br /&gt;
| 7&lt;br /&gt;
| 10&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/SunlightGrid|SunlightGrid]]&lt;br /&gt;
| 167&lt;br /&gt;
| 503&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/Taekwondoverse|Taekwondoverse]]&lt;br /&gt;
| 162 &lt;br /&gt;
| 400&lt;br /&gt;
| Data Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/Virtual_Life|Virtual Life]]&lt;br /&gt;
| 34&lt;br /&gt;
| 1004&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/VirtuLife|VirtuLife]]&lt;br /&gt;
| 21&lt;br /&gt;
| 10&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/virtyou|virtyou]] &lt;br /&gt;
| 110 &lt;br /&gt;
| 1676 &lt;br /&gt;
| 70&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/World4US|World4US]]&lt;br /&gt;
| 25&lt;br /&gt;
| 37&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/digsynth.com|World of the Free]] &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/YrGrid|YrGrid]]&lt;br /&gt;
| 33&lt;br /&gt;
| 2150&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Zairus Grid|Zairus Grid]] &lt;br /&gt;
| 72 &lt;br /&gt;
| 10&lt;br /&gt;
| 3&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
&lt;br /&gt;
* [[Grid Associations]]&lt;br /&gt;
* [[Public Hypergrid Nodes|HyperGrid Nodes]]&lt;br /&gt;
* [[Uncategorized Grid List|Uncategorized Grid List]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Grids]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Grid_List</id>
		<title>Grid List</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Grid_List"/>
				<updated>2025-10-23T14:53:56Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks|Grid_List}}&lt;br /&gt;
&lt;br /&gt;
== What is the Grid List? ==&lt;br /&gt;
There are hundreds (thousands?) of OpenSimulator-based virtual worlds out there. Many of them are free to use and welcome new users. This grid list is a community-generated list of such worlds. If you would like to experience an OpenSimulator-based virtual world before installing your own, try one of these. &lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT NOTE:''' The OpenSimulator project is not responsible for, nor in any way associated with, any grid listed on this page, nor for any grid's content or activities. Visit at your own risk. Also, there are no guarantees that these worlds are up and running.&lt;br /&gt;
&lt;br /&gt;
== Grid Lists ==&lt;br /&gt;
* Hypergrid Business Active OpenSim Grids: [https://www.hypergridbusiness.com/statistics/active-grids/ https://www.hypergridbusiness.com/statistics/active-grids/]&lt;br /&gt;
* Firestorm Grid List: [https://phoenixviewer.com/app/fsdata/fs_grid_builder.html https://phoenixviewer.com/app/fsdata/fs_grid_builder.html]&lt;br /&gt;
&lt;br /&gt;
== Public grids  ==&lt;br /&gt;
&lt;br /&gt;
'''Grid List Policy:''' Please list your grid only if uses OpenSimulator as a component. Do not include advertising language. The entries in the main list should just contain the grid name and the plain numbers as defined by the column headers. '''Please use [[Grid List/Template|this template]] for the subpages to keep the information in a comparable manner.''' Grids are listed in the order of appearance, so please add your entry to the bottom of the list. Anyone found inserting a grid up higher in the list will have their entry moved or removed. &lt;br /&gt;
&lt;br /&gt;
You may want provide a link on your world's website back to the project by using the [[OpenSim Graphics|Powered by OpenSimulator logo]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This is only a partial listing of grids. Hypergrid Business maintains a list of active grids, updated monthly: [http://www.hypergridbusiness.com/statistics/active-grids/ Active OpenSimulator grids]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Grid Page last updated on Sep 13 2020&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#57C604;font-size:10pt;font-weight:bold;border-bottom:1px solid;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;bottom&amp;quot;&lt;br /&gt;
! Grid Name &lt;br /&gt;
! # Regions &lt;br /&gt;
! Approx # Users &lt;br /&gt;
! Unique last 30days&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/OSGrid|OSGrid]] &lt;br /&gt;
| 4665 &lt;br /&gt;
| 125000&lt;br /&gt;
| 4380&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Francogrid|FrancoGrid]] &lt;br /&gt;
| 298&lt;br /&gt;
| 5593&lt;br /&gt;
| 298&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/3rd Rock Grid|3rd Rock Grid]] &lt;br /&gt;
| 283&lt;br /&gt;
| 11765&lt;br /&gt;
| 347&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Metropolis|Metropolis Metaversum]] &lt;br /&gt;
| 1581&lt;br /&gt;
| 14706&lt;br /&gt;
| 3579&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Open-Neuland|OpenSimulator-Club - Open Neuland]] &lt;br /&gt;
| 216 &lt;br /&gt;
| 384 &lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Wilder-Westen|OpenSimulator-Club - Wilder Westen]] &lt;br /&gt;
| 41 &lt;br /&gt;
| 122 &lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Myopengrid.com|MyOpenGrid]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Your Alternative Life|Your Alternative Life]] &lt;br /&gt;
| 47 &lt;br /&gt;
| 2089 &lt;br /&gt;
| 1458&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Openvue|Openvue]] &lt;br /&gt;
| 16&lt;br /&gt;
| 24&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Logicamp|Logicamp - Outdoor Grid]] &lt;br /&gt;
| 179&lt;br /&gt;
| 3300 &lt;br /&gt;
| 577&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Jamgrid|Jamgrid]] &lt;br /&gt;
| 15 &lt;br /&gt;
| 55 &lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/JOGrid|Japan Open Grid]] &lt;br /&gt;
| 158&lt;br /&gt;
| 682&lt;br /&gt;
| 142&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Tlön|Tlön]] &lt;br /&gt;
| 11 &lt;br /&gt;
| 65 &lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/PMGrid|PMGrid]] &lt;br /&gt;
| 80 &lt;br /&gt;
| 100 &lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/jokaydiagrid|jokaydiaGRID]] &lt;br /&gt;
| 20 &lt;br /&gt;
| 253 &lt;br /&gt;
| 75&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Craft-World|Craft-World]] &lt;br /&gt;
| 207 &lt;br /&gt;
| 9429 &lt;br /&gt;
| 607&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Virtual RP|Virtual RP]] &lt;br /&gt;
| 17 &lt;br /&gt;
| 714 &lt;br /&gt;
| 55&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/GerGrid|GerGrid]] &lt;br /&gt;
| 98 &lt;br /&gt;
| 408&lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/AnSky|AnSky]] &lt;br /&gt;
| 14 &lt;br /&gt;
| 106&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Virtual Worlds Grid|Virtual Worlds Grid]] &lt;br /&gt;
| 527 &lt;br /&gt;
| 30 &lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/3DGrid World|3DGrid World (formerly The SecondLearning Grid)]]&lt;br /&gt;
| 4 &lt;br /&gt;
| 55 &lt;br /&gt;
| 46&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Sofitek|Sofitek]] &lt;br /&gt;
| 8 &lt;br /&gt;
| 21 &lt;br /&gt;
| 21&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Dorenas World|Dorenas World]] &lt;br /&gt;
| 143&lt;br /&gt;
| 448&lt;br /&gt;
| 300&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Speculoos|Speculoos]] &lt;br /&gt;
| 30&lt;br /&gt;
| 50 &lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Pathlandia|Pathlandia]] &lt;br /&gt;
| 4 &lt;br /&gt;
| 1 &lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Austria|Austria]] &lt;br /&gt;
| 11 &lt;br /&gt;
| 6 &lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Psychedelia|Psychedelia]] &lt;br /&gt;
| 7 &lt;br /&gt;
| 7 &lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/M001|M001]]&lt;br /&gt;
| 10&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/HyperGrid Plaza|HyperGrid Plaza]] &lt;br /&gt;
| 1&lt;br /&gt;
| 100&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [http://adreans-world.from-fl.com/home/ Adreans-World]&lt;br /&gt;
| 147&lt;br /&gt;
| 518 &lt;br /&gt;
| 43&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.jopensim.com jOpenSimWorld]&lt;br /&gt;
| 39&lt;br /&gt;
| 327&lt;br /&gt;
| 39&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/RevWorld|Rev World]]&lt;br /&gt;
| 56 &lt;br /&gt;
| 1461&lt;br /&gt;
| 256&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/Littlefield_Grid|Littlefield Grid]]&lt;br /&gt;
| 351&lt;br /&gt;
| 2078&lt;br /&gt;
| 383&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Alife Virtual|Alife Virtual]] &lt;br /&gt;
| 1000&lt;br /&gt;
| 10000&lt;br /&gt;
| 2000&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/Athabasca University|Athabasca University]]&lt;br /&gt;
| 16 &lt;br /&gt;
| 15 (in development stage)&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/IgnisFatuus|Ignis Fatuus]] &lt;br /&gt;
| 47 &lt;br /&gt;
| 14&lt;br /&gt;
| 72&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/DigiWorldz|DigiWorldz]]&lt;br /&gt;
| 3518&lt;br /&gt;
| 12821&lt;br /&gt;
| 2144&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/gimisaOS|gimisaOS]] &lt;br /&gt;
| 10 &lt;br /&gt;
| 1 &lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/DSGrid|DSGrid]]&lt;br /&gt;
| 17 &lt;br /&gt;
| 52 &lt;br /&gt;
| 71&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Regno di Camlaan|Regno di Camlaan]] &lt;br /&gt;
| 8&lt;br /&gt;
| 19&lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| [http://partydestinationgrid.com Party Destination Grid] &lt;br /&gt;
| 120 &lt;br /&gt;
| 1500 &lt;br /&gt;
| 1050&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/pathway_universe|pathway universe]]&lt;br /&gt;
| 26&lt;br /&gt;
| 62&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/Neverworld_Grid|Neverworld Grid ]]&lt;br /&gt;
| 328&lt;br /&gt;
| 1221&lt;br /&gt;
| 383&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/Zone Nations|Zone Nations®]]&lt;br /&gt;
| 31&lt;br /&gt;
| 6107&lt;br /&gt;
| 3678&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.vibel.eu Vibel]&lt;br /&gt;
| 15&lt;br /&gt;
| 839&lt;br /&gt;
| 839&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/openmanniland|openmanniland - OpenSim 0.9.3, PBR Terrain, DTL/NSL RPG MoneyServer, DotNet 8]]&lt;br /&gt;
| 37&lt;br /&gt;
| 5&lt;br /&gt;
| 83&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/ReactionGrid|ReactionGrid]]&lt;br /&gt;
| 76&lt;br /&gt;
| 9756&lt;br /&gt;
| 406&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/GorGrid|GorGrid]]&lt;br /&gt;
| 887&lt;br /&gt;
| 84&lt;br /&gt;
| 119&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Outworldz|www.Outworldz.com and DreamGrid Home]]&lt;br /&gt;
| 170&lt;br /&gt;
| 826&lt;br /&gt;
| 161&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/ZetaWorlds|ZetaWorlds]]&lt;br /&gt;
| 10000&lt;br /&gt;
| 2000&lt;br /&gt;
| 1300&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Bubble-Grid|Bubble-Grid]]&lt;br /&gt;
| 22&lt;br /&gt;
| 50&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Active Public grids  ==&lt;br /&gt;
&lt;br /&gt;
{{ambox&lt;br /&gt;
| type = inactive &lt;br /&gt;
| text = This is a list of Grids that been inactive for a few days and or have claimed to be inactive by the owner. &amp;lt;!-- MAJ le 30/12/2011 --&amp;gt;[[Category:Grid List]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#57C604;font-size:10pt;font-weight:bold;border-bottom:1px solid;&amp;quot; valign=&amp;quot;bottom&amp;quot;&lt;br /&gt;
! Grid Name &lt;br /&gt;
! # Regions &lt;br /&gt;
! Approx # Users &lt;br /&gt;
! Unique last 30days&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Cybergrid|Cybergrid]] &lt;br /&gt;
| 1 &lt;br /&gt;
| 44 &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/MOSES|MOSES: Military Open Simulator Enterprise Strategy]] &lt;br /&gt;
| 117 &lt;br /&gt;
| 227 &lt;br /&gt;
| 102&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/SirinHGpole-Grid|SirinHGpole-Grid]] (regions merged into OSGrid)&lt;br /&gt;
| 238&lt;br /&gt;
| 120&lt;br /&gt;
| 70&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/The New World Grid|The New World Grid]] &lt;br /&gt;
| 330 &lt;br /&gt;
| 5200 &lt;br /&gt;
| 590&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Uvatar|Uvatar]] &lt;br /&gt;
| &amp;amp;nbsp;??? &lt;br /&gt;
| &amp;amp;nbsp;??? &lt;br /&gt;
| 0 &amp;lt;!-- Logins are disabled. Last update to the website was in 2012, many unfixed errors to the site. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Cyberlandia|Cyberlandia]] &lt;br /&gt;
| 185 &lt;br /&gt;
| 1600 &lt;br /&gt;
| 269&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/CloneLife|Clone Life]]&lt;br /&gt;
| 31&lt;br /&gt;
| 6107&lt;br /&gt;
| 3678&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.goreanlifestyle.com/ Gorean Life Style]&lt;br /&gt;
|30&lt;br /&gt;
|50&lt;br /&gt;
|45&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/COSIE Grid|COSIE Grid]] &lt;br /&gt;
| 6 &lt;br /&gt;
| 3&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/H omeland3D|Homeland3D]] &lt;br /&gt;
| 40 &lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.meetinstantly.com/ MeetInstantly]&lt;br /&gt;
| 32&lt;br /&gt;
| 5&lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
|[[Grid List/Traduverse|Traduverse]]&lt;br /&gt;
| 49&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Regno di Camlaan|Regno di Camlaan]] &lt;br /&gt;
| 8&lt;br /&gt;
| 19&lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/AndromedaGrid|Andromeda Grid]] &lt;br /&gt;
| 10&lt;br /&gt;
| 4 &lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/EduGrid|EduGrid]] &lt;br /&gt;
| 15&lt;br /&gt;
| 2000&lt;br /&gt;
| 50&lt;br /&gt;
|-&lt;br /&gt;
|[https://web.archive.org/web/20110602161855/http://virtualhighway.us:80/ Virtual Highway]&lt;br /&gt;
| 706&lt;br /&gt;
| 6318&lt;br /&gt;
| 285&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Ice Grid|Ice Grid]] &lt;br /&gt;
| 40 &lt;br /&gt;
| 32 &lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/ART|ART]] &lt;br /&gt;
| 3(real) &lt;br /&gt;
| ? (real)&lt;br /&gt;
| 150(real)&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Stone Grid|Stone Grid]] &lt;br /&gt;
| 3&lt;br /&gt;
| 4 &lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/LifeStyle3D - ItalianGrid|LifeStyle3D - ItalianGrid]] &lt;br /&gt;
| 32&lt;br /&gt;
| 350 &lt;br /&gt;
| 108&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/My3dLife|My3DLife]] &lt;br /&gt;
| 10 &lt;br /&gt;
| 20 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/DaseinWorld|DaseinWorld]] &lt;br /&gt;
| 16 &lt;br /&gt;
| 3 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/OpenSim Creations Grid|OpenSim Creations Grid]] &lt;br /&gt;
| 15 &lt;br /&gt;
| 11&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/StarGates Matrix|StarGates Matrix]] &lt;br /&gt;
| 5 &lt;br /&gt;
| 7&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/You3D|You3D]] &lt;br /&gt;
| 11 &lt;br /&gt;
| 6 &lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Virtual Realms Grid|Virtual Realms Grid]] &lt;br /&gt;
| 8 &lt;br /&gt;
| 10 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Gor Grid|Gor Grid]] &lt;br /&gt;
| 8 &lt;br /&gt;
| 10 &lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Enakai|Enakai]] &lt;br /&gt;
| 16 &lt;br /&gt;
| 14 &lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Greeklife|GreekLife]] &lt;br /&gt;
| 30&lt;br /&gt;
| 50&lt;br /&gt;
| 35&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/EverWorlds.com|EverWorlds: Bringing People Together (formerly Destiny Zero)]] &lt;br /&gt;
| 17 &lt;br /&gt;
| 2 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/IcaruSRealmS|=IcaruS= RealmS]] &lt;br /&gt;
| 26 &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/lpgrid.com|Lost Paradise]] &lt;br /&gt;
| 2847&lt;br /&gt;
| 820&lt;br /&gt;
| 670&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Valhalla Virtual|Valhalla Virtual]] &lt;br /&gt;
| 9 &lt;br /&gt;
| 25 &lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Cyber Wrld|Cyber Wrld]] &lt;br /&gt;
| 5 &lt;br /&gt;
| 8 &lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/FleepGrid|FleepGrid]] &lt;br /&gt;
| 11 &lt;br /&gt;
| 150 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Lisat|ArtGridOnLine]] &lt;br /&gt;
| 12 &lt;br /&gt;
| 48 &lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/EU-Grid|EU-Grid]] &lt;br /&gt;
| 10 &lt;br /&gt;
| 350 &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/GiantGrid|GiantGrid]] &lt;br /&gt;
| 169 &lt;br /&gt;
| 261 &lt;br /&gt;
| 157&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/pseudospace|Pseudospace]] &lt;br /&gt;
| 12 &lt;br /&gt;
| 46 &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Metapocalypse|Metapocalypse Grid]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/UFSGrid|UFSGrid]] &lt;br /&gt;
| 36 &lt;br /&gt;
| 897 &lt;br /&gt;
| +/-50&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Unica|Unica]] &lt;br /&gt;
| 16 &lt;br /&gt;
| 60 &lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/LISAT|Lost-in-Space-and-Time]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Rezzable Visions|Rezzable Visions]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/SimValley NL|SimValley NL]] &lt;br /&gt;
| 1087 &lt;br /&gt;
| 364 &lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Your2Live|Your2Live]] &lt;br /&gt;
| 3 &lt;br /&gt;
| 8 &lt;br /&gt;
| *&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/OPENSIM NL|OpenSim NL]] &lt;br /&gt;
| 9 &lt;br /&gt;
| 426 &lt;br /&gt;
| 34&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/VirtualFrance3D|VirtualFrance3D]] &lt;br /&gt;
| 16 &lt;br /&gt;
| 143 &lt;br /&gt;
| 31&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Twisted Sky|Twisted Sky]] &lt;br /&gt;
| 60 &lt;br /&gt;
| 290 &lt;br /&gt;
| 68&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/REDISIS|redOasis (formerly RedIsis)]] &lt;br /&gt;
| 130 &lt;br /&gt;
| 60 &lt;br /&gt;
| 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/PearGrid|PearGrid]] &lt;br /&gt;
| 18 &lt;br /&gt;
| 34 &lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/HAVEN: Your World|HAVEN: Your World]] &lt;br /&gt;
| 13 &lt;br /&gt;
| 11 &lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Flatlandia.cc|Flatlandia]] &lt;br /&gt;
| 33 &lt;br /&gt;
| 177 &lt;br /&gt;
| 110&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/TertiaryGrid|Tertiary Grid]] &lt;br /&gt;
| 41 &lt;br /&gt;
| 379&lt;br /&gt;
| 42&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Annuna Grid|Annuna Grid]] &lt;br /&gt;
| 60 &lt;br /&gt;
| 60 &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/VeeSome|VeeSome]] &lt;br /&gt;
| 48 &lt;br /&gt;
| 106 &lt;br /&gt;
| 53&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/VirtuaLife|Virtualife]]&lt;br /&gt;
| 132 &lt;br /&gt;
| 1000 &lt;br /&gt;
| 500&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Avatar Hangout|Avatar Hangout (with OMC)]] &lt;br /&gt;
| 73 &lt;br /&gt;
| 8,626 &lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/DGP Grid|DGP Grid]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| [[Grid List/tescos.org.uk|tescos.org.uk (curency ƒ)]] &lt;br /&gt;
| 30 &lt;br /&gt;
| 20 &lt;br /&gt;
| 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Role Play Worlds|Role Play Worlds - Your Fantasy, your world]] &lt;br /&gt;
| 129 &lt;br /&gt;
| 2276 &lt;br /&gt;
| 298&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Avatrian|Avatrian]] &lt;br /&gt;
| 11 &lt;br /&gt;
| 25 &lt;br /&gt;
| 150&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/OSBEST|OSBEST]] &lt;br /&gt;
| 12 &lt;br /&gt;
| 8 &lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/MCM Realm|MCM Realm]] &lt;br /&gt;
| 22 &lt;br /&gt;
| 73 &lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Oasis Grid|Oasis Grid]] &lt;br /&gt;
| 89 &lt;br /&gt;
| 3068 &lt;br /&gt;
| 228&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/AtMeeting|AtMeeting Grid]] &lt;br /&gt;
| 20 &lt;br /&gt;
| 30 &lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/OpenUtopia|OpenUtopia Grid]] &lt;br /&gt;
| 1 &lt;br /&gt;
| 3 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Virtualgames3d|Virtualgames3d]] &lt;br /&gt;
| 140 &lt;br /&gt;
| 1350 &lt;br /&gt;
| 500&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Grid4Us|Grid4Us]] &lt;br /&gt;
| 22 &lt;br /&gt;
| 130 &lt;br /&gt;
| 50&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/K-grid|K-grid]] &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Le Monde de Darwin|Le Monde de Darwin]] &lt;br /&gt;
| 73 &lt;br /&gt;
| 83 &lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/NeXtLife|NeXtLife Grid]] &lt;br /&gt;
| 15 &lt;br /&gt;
| 7 &lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Sensation Games|Sensation Games]] &lt;br /&gt;
| 1 &lt;br /&gt;
| 2 &lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/SLI-Grid|SLI-Grid]] &lt;br /&gt;
| 5 &lt;br /&gt;
| &amp;amp;nbsp; &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| TGGrid &lt;br /&gt;
| 11 &lt;br /&gt;
| 9 &lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/4AllGrid|4AllGrid]] &lt;br /&gt;
| 68&lt;br /&gt;
| 6&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/AlphaTowne|Alpha Towne]] &lt;br /&gt;
| 308 &lt;br /&gt;
| 1172 &lt;br /&gt;
| 909&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/AstralGrid|AstralGrid]]&lt;br /&gt;
| 70&lt;br /&gt;
| 40&lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/Avination|Avination]]&lt;br /&gt;
| 110&lt;br /&gt;
| 300&lt;br /&gt;
| 20&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/EduverseGrid|EduverseGrid]]&lt;br /&gt;
| 147 &lt;br /&gt;
| 400&lt;br /&gt;
| Data Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/German Grid|German Grid]] &lt;br /&gt;
| 107 &lt;br /&gt;
| 2353 &lt;br /&gt;
| 385&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Heritage Key|Heritage Key]]&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/ccdbbs.com|LPgrid]]&lt;br /&gt;
| 345&lt;br /&gt;
| 331&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| [[NewtonGrid]]&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/RPGRID_NL|RPGRID NL]]&lt;br /&gt;
| 30&lt;br /&gt;
| 141&lt;br /&gt;
| 16&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/ScienceSim|ScienceSim]] &lt;br /&gt;
| 25 &lt;br /&gt;
| 30 &lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/SkyLifeGrid|SkyLifeGrid]]&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/slitalia|Slitalia]]&lt;br /&gt;
| 7&lt;br /&gt;
| 10&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/SunlightGrid|SunlightGrid]]&lt;br /&gt;
| 167&lt;br /&gt;
| 503&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/Taekwondoverse|Taekwondoverse]]&lt;br /&gt;
| 162 &lt;br /&gt;
| 400&lt;br /&gt;
| Data Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/Virtual_Life|Virtual Life]]&lt;br /&gt;
| 34&lt;br /&gt;
| 1004&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/VirtuLife|VirtuLife]]&lt;br /&gt;
| 21&lt;br /&gt;
| 10&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/virtyou|virtyou]] &lt;br /&gt;
| 110 &lt;br /&gt;
| 1676 &lt;br /&gt;
| 70&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/World4US|World4US]]&lt;br /&gt;
| 25&lt;br /&gt;
| 37&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/digsynth.com|World of the Free]] &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid_List/YrGrid|YrGrid]]&lt;br /&gt;
| 33&lt;br /&gt;
| 2150&lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| [[Grid List/Zairus Grid|Zairus Grid]] &lt;br /&gt;
| 72 &lt;br /&gt;
| 10&lt;br /&gt;
| 3&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
&lt;br /&gt;
* [[Grid Associations]]&lt;br /&gt;
* [[Public Hypergrid Nodes|HyperGrid Nodes]]&lt;br /&gt;
* [[Uncategorized Grid List|Uncategorized Grid List]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Grids]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Community/de</id>
		<title>Community/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Community/de"/>
				<updated>2025-08-31T07:40:12Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Deutsche OpenSimulator Community =&lt;br /&gt;
&lt;br /&gt;
Hier findest du eine Liste mit deutschen Community Seiten.&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt ohne zweifel noch viel mehr. Wenn du noch weitere kennst, fühle dich frei neue Seiten hinzuzufügen.&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn du merkst das eine Community nicht mehr existiert so entferne sie doch bitte aus der Liste.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;width: 250px&amp;quot;|'''Name'''&lt;br /&gt;
|'''Beschreibung'''&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.gridtalk.de/ GridTalk]&lt;br /&gt;
|Deutsches OpenSim Forum.&lt;br /&gt;
|-&lt;br /&gt;
|[https://hyperweb.eu/ Hyperweb]&lt;br /&gt;
|Deutsches Wiki rund um OpenSimulator und Linux.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.ralf-haifisch.biz/ Ralf Haifisch Wiki]&lt;br /&gt;
|Deutsche Anleitungen für OpenSimulator.&lt;br /&gt;
|-&lt;br /&gt;
|[http://opensimworld.com/ OpenSimWorld]&lt;br /&gt;
|Verzeichnis mit vielen Regionen&lt;br /&gt;
|-&lt;br /&gt;
|[https://accounts.osgrid.org/?q=forum Forums Osgrid]&lt;br /&gt;
|Deutscher Forum Bereich verfügbar&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.slinfo.de/ SLinfo]&lt;br /&gt;
|OpenSim Bereich verfügbar&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Community/de</id>
		<title>Community/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Community/de"/>
				<updated>2025-08-31T07:28:33Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Deutsche OpenSimulator Community =&lt;br /&gt;
&lt;br /&gt;
Hier findest du eine Liste mit deutschen Community Seiten.&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt ohne zweifel noch viel mehr. Wenn du noch weitere kennst, fühle dich frei neue Seiten hinzuzufügen.&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn du merkst das eine Community nicht mehr existiert so entferne sie doch bitte aus der Liste.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;width: 250px&amp;quot;|'''Name'''&lt;br /&gt;
|'''Beschreibung'''&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.gridtalk.de/ GridTalk]&lt;br /&gt;
|Deutsches OpenSim Forum.&lt;br /&gt;
|-&lt;br /&gt;
|[https://hyperweb.eu/ Hyperweb]&lt;br /&gt;
|Deutsches Wiki rund um OpenSimulator und Linux.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.ralf-haifisch.biz/ Ralf Haifisch Wiki]&lt;br /&gt;
|Deutsche Anleitungen für OpenSimulator.&lt;br /&gt;
|-&lt;br /&gt;
|[http://opensimworld.com/ OpenSimWorld]&lt;br /&gt;
|Verzeichnis mit vielen Regionen&lt;br /&gt;
|-&lt;br /&gt;
|[https://accounts.osgrid.org/?q=forum Forums Osgrid]&lt;br /&gt;
|Deutscher Forum Bereich verfügbar&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Monitoring_Module/fr</id>
		<title>Monitoring Module/fr</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Monitoring_Module/fr"/>
				<updated>2025-08-04T00:41:02Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|Monitoring_Module}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Cette faculté fournit une façon de récupérer des données par région.&lt;br /&gt;
&lt;br /&gt;
= Activation =&lt;br /&gt;
&lt;br /&gt;
Dans OpenSimulator 0.7.2 elle est tout le temps active. Dans les développements actuels, elle est active par défaut mais peut être désactivée par le réglage&lt;br /&gt;
&lt;br /&gt;
 [Monitoring]&lt;br /&gt;
 Enabled = false&lt;br /&gt;
&lt;br /&gt;
= Récupérer les données =&lt;br /&gt;
== OpenSimulator 0.7.2 et précédents ==&lt;br /&gt;
Dans OpenSimulator 0.7.2 et précédents, chaque région fournit une URL par le serveur HTTP intégré à OpenSimulator sous le format&lt;br /&gt;
&lt;br /&gt;
 /monitorstats/&amp;lt;region-uuid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous tapez &lt;br /&gt;
&lt;br /&gt;
 show http-handlers&lt;br /&gt;
&lt;br /&gt;
dans la console de région vous verrez quelque chose comme cela dans la section HTTP&lt;br /&gt;
&lt;br /&gt;
 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c81 &lt;br /&gt;
 /SStats/ &lt;br /&gt;
 /CAPS/VS/ &lt;br /&gt;
 regionImagedd5b77f8bf8845acaace35bd76426c81 &lt;br /&gt;
 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c82 &lt;br /&gt;
 regionImagedd5b77f8bf8845acaace35bd76426c82&lt;br /&gt;
&lt;br /&gt;
où l'UUID suivant monitorstats correspond à l'ID de région.&lt;br /&gt;
&lt;br /&gt;
== Code en développement de OpenSimulator ==&lt;br /&gt;
Dans le code en développement de OpenSimulator, les données de région peuvent aussi être accessibles par le nom de région. Par conséquent, taper&lt;br /&gt;
&lt;br /&gt;
 show http-handlers&lt;br /&gt;
&lt;br /&gt;
retournera quelque chose comme&lt;br /&gt;
&lt;br /&gt;
 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c81 &lt;br /&gt;
 /monitorstats/test &lt;br /&gt;
 /SStats/ &lt;br /&gt;
 /CAPS/VS/ &lt;br /&gt;
 regionImagedd5b77f8bf8845acaace35bd76426c81 &lt;br /&gt;
 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c82 &lt;br /&gt;
 /monitorstats/test2 &lt;br /&gt;
 regionImagedd5b77f8bf8845acaace35bd76426c82 &lt;br /&gt;
&lt;br /&gt;
où les données peuvent aussi être récupérées par le nom de région (test and test2).&lt;br /&gt;
&lt;br /&gt;
= Récupérer les données =&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 ! Nom de la donnée       !! Descriptoin&lt;br /&gt;
 |-&lt;br /&gt;
 | AgentCountMonitor      || Nombre d'avatars sur la région.&lt;br /&gt;
 |-&lt;br /&gt;
 | ChildAgentCountMonitor || Nombre d'agents enfants dans la région. Ils sont utilisés par les viewers avec les avatars dans les régions voisines afin de voir l'impact sur les régions voisines.&lt;br /&gt;
 |-&lt;br /&gt;
 | GCMemoryMonitor        || Quantité de mémoire actuellement allouée au garbage collector de la machine virtuelle.&lt;br /&gt;
 |-&lt;br /&gt;
 | ObjectCountMonitor     || Quantité de primitives sur la région.&lt;br /&gt;
 |-&lt;br /&gt;
 | PWSMemoryMonitor       || Mémoire Virtual Machine Private Working Set&lt;br /&gt;
 |-&lt;br /&gt;
 | ThreadCountMonitor     || Quantité de threads utilisés par le processus en cours. Peut être non implémenté (d'où le fait que ce soit toujours à zero) avec Mono.&lt;br /&gt;
 |-&lt;br /&gt;
 | TotalFrameMonitor      || Temps pris en millisecondes pour la dernière frame. Dans OpenSimulator 0.7.3.1 et précédents ceci n'inclut pas le temps de réserve. Dans les versions suivantes de OpenSimulator ceci inclut le temps de réserve.&lt;br /&gt;
 |-&lt;br /&gt;
 | EventFrameMonitor      || Temps de calcul en millisecondes de l'incidence pour la dernière frame.&lt;br /&gt;
 |-&lt;br /&gt;
 | LandFrameMonitor       || Temps de calcul en millisecondes relatif au Land pour la dernière frame.&lt;br /&gt;
 |-&lt;br /&gt;
 | LastFrameTimeMonitor   || Nombre de millisecondes depuis que la dernière frame de région a été complétée.&lt;br /&gt;
 |-&lt;br /&gt;
 | TimeDilationMonitor    || Temps de dilatation du calcul de la physique comparé au calcul de la scène principale.&lt;br /&gt;
 |-&lt;br /&gt;
 | SimFPSMonitor          || Frames par seconde calculé par la scène.&lt;br /&gt;
 |-&lt;br /&gt;
 | AgentUpdatesPerSecondMonitor || Mises à jour par seconde envoyées au viewer.&lt;br /&gt;
 |- &lt;br /&gt;
 | ActiveObjectCountMonitor || Objets sujets à la physique.&lt;br /&gt;
 |-&lt;br /&gt;
 | ActiveScriptsMonitor   || Scripts actifs sur la région&lt;br /&gt;
 |-&lt;br /&gt;
 | ScriptEventsPerSecondMonitor || Evenements de scripts calculés par seconde.&lt;br /&gt;
 |-&lt;br /&gt;
 | InPacketsPerSecondMonitor || Paquets UDP reçus depuis le viewer par seconde.&lt;br /&gt;
 |-&lt;br /&gt;
 | OutPacketsPerSecondMonitor || Paquets UDP envoyés au viewer par seconde.&lt;br /&gt;
 |-&lt;br /&gt;
 | UnackedBytesMonitor    || Octets qui n'ont pas encore été acceptés par les viewers. Une valeur haute persistante indique une mauvaise connexion entre les viewers et le simulateur.&lt;br /&gt;
 |-&lt;br /&gt;
 | PendingDownloadsMonitor || Downloads en attente depuis le simulateur vers les viewers. Pas encore implémenté, sera toujours zéro.&lt;br /&gt;
 |- &lt;br /&gt;
 | PendingUploadsMonitor   || Uploads en attente depuis les viewers vers le simulateur. Pas encore implémenté, sera toujours zéro.&lt;br /&gt;
 |-&lt;br /&gt;
 | TotalFrameTimeMonitor      || Temps moyen pris en millisecondes pour les frames dans les 3 dernières secondes. Dans OpenSimulator 0.7.3.1 et précédents, ceci n'incluait pas le temps de réserve et se réferait par erreur au montant total d'une seconde qui constituait le temps de non-reserve. Dans les versions supérieures de OpenSimulator ceci se refere correctement au temps de frame en incluant le temps de réserve.&lt;br /&gt;
 |-&lt;br /&gt;
 | NetFrameTimeMonitor        || Temps moyen en millisecondes pour les activités de réseau dans les frames pour les 3 dernières secondes. Non utilisé actuellement.&lt;br /&gt;
 |-&lt;br /&gt;
 | SimulationFrameTimeMonitor || Temps moyen en millisecondes pour les activités liées aux frames dans les 3 dernières secondes. Dans OpenSimulator 0.7.3.1 et précédents, ceci se réfère par erreur à la quantité total dans une seconde qui constituait le temps de la simulation.&lt;br /&gt;
 |-&lt;br /&gt;
 | AgentFrameTimeMonitor      || Temps moyen pris en millisecondes pour les activités relatives aux agents dans les 3 dernières secondes. Dans OpenSimulator 0.7.3.1 et précédents, ceci se réfère par erreur au montant total dans une seconde qui constituait le temps d'agent.&lt;br /&gt;
 |-&lt;br /&gt;
 | ImagesFrameTimeMonitor     || Non utilisé par OpenSimulator&lt;br /&gt;
 |-&lt;br /&gt;
 | LastReportedObjectUpdates  || Actuellement inutilisé.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== Physique ==&lt;br /&gt;
&lt;br /&gt;
Tous les temps de frames içi correspondent à une moyenne prise pendant la période des 3 dernières secondes.&lt;br /&gt;
&lt;br /&gt;
Les données suivantes sont toujours présentes.&lt;br /&gt;
&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 | PhysicsFPSMonitor       || Frames par seconde calculés par le code de physique.&lt;br /&gt;
 |-&lt;br /&gt;
 | PhysicsFrameMonitor     || Obsolète. Identique à PhysicsFrameTimeMonitor&lt;br /&gt;
 |-&lt;br /&gt;
 | PhysicsFrameTimeMonitor || Temps moyen pris par le calcul de la physique.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Les données suivantes sont seulement présentes si collect_stats = true dans la section [ODEPhysicsSettings] de OpenSim.ini depuis le master gita 6375db1 (post OpenSimulator 0.7.3.1 development code). Ces données sont expérimentales et peuvent changer.&lt;br /&gt;
&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 | ODETotalFrameMS         || Calcul de la physique ODE. Cela devrait correspondre à PhysicsFrameTimeMonitor.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEAvatarTaintFrameMS   || Calcul de l'avatar.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEPrimTaintFrameMS     || Calcul des primitives.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEAvatarForcesFrameMS  || Calcul des forces de l'avatar.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEPrimForcesFrameMS    || Calcul des forces des primitives.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODERaycastingFrameMS    || Raycasting.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODENativeStepFrameMS    || Temps pris pour effectuer un pas de physique dans le code natif de ODE.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODENativeSpaceCollisionFrameMS || Calcul des collisions possibles par les espaces dans le code natif de ODE.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODENativeGeomCollisionFrameMS  || Résolution des collisions actuelles entre les géométries dans le code natif de ODE.&lt;br /&gt;
 |- &lt;br /&gt;
 | ODEOtherCollisionFrameMS       || Calcul des collisions non couvertes par les autres mesures 'Native'. Ceci couvre principalement les opérations effectuées dans le plugin du simulateur lui même, bien que quelques appels au code natif de ODE soient toujours effectués.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODECollisionNotificationFrameMS || Notification d'autres parties de OpenSimulator qui sont efectuées en dehors du code du plugin ODE.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEAvatarUpdateFrameMS          || Temps pris pour calculer les mises à jour d'avatar depuis le code de physique.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEPrimUpdateFrameMS            || Temps pris pour calculer les mises à jour des primitives depuis le code de physique.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEAvatarContacts               || Nombre de contacts causés par l'avatar dans la période des 3 dernières secondes. Ceci peut être supérieur à un contact par collision.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEPrimContacts                 || Nombre de contacts causés par les prims dans la période des 3 dernières secondes. Ceci peut être supérieur à un contact par collision.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODETotalAvatars                 || Quantités d'avatars modelés par la physique. Ceci devrait correspondre à AgentCountMonitor. &lt;br /&gt;
 |-&lt;br /&gt;
 | ODETotalPrims                   || Nombre de prims non fantôme. Ceci couvre autant les prims physiques que les prims qui ne sont pas sujettes à la physique mais sont heurtables. Ceci ne couvre pas les prims fantômes car ils n'ont pas de représentation dans la scêne physique.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEActivePrims                  || Nombre de prims sujettes à la physique. Ceci doit corresponre à ActiveObjectCountMonitor.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== Exemples ==&lt;br /&gt;
=== OpenSimulator 0.7.2 et précédents ===&lt;br /&gt;
Dans OpenSimulator 0.7.2 et précédents, récupérer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://192.168.1.2:9000/dd5b77f8-bf88-45ac-aace-35bd76426c81&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
retournera quelque chose comme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;AgentCountMonitor&amp;gt;0&amp;lt;/AgentCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ChildAgentCountMonitor&amp;gt;0&amp;lt;/ChildAgentCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;GCMemoryMonitor&amp;gt;32358400&amp;lt;/GCMemoryMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ObjectCountMonitor&amp;gt;0&amp;lt;/ObjectCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsFrameMonitor&amp;gt;0&amp;lt;/PhysicsFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsUpdateFrameMonitor&amp;gt;0&amp;lt;/PhysicsUpdateFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PWSMemoryMonitor&amp;gt;354172928&amp;lt;/PWSMemoryMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ThreadCountMonitor&amp;gt;0&amp;lt;/ThreadCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;TotalFrameMonitor&amp;gt;1&amp;lt;/TotalFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;EventFrameMonitor&amp;gt;0&amp;lt;/EventFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;LandFrameMonitor&amp;gt;0&amp;lt;/LandFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;LastFrameTimeMonitor&amp;gt;87&amp;lt;/LastFrameTimeMonitor&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSimulator 0.7.3 et supérieurs ===&lt;br /&gt;
Dans le code actuellement en développement, plus de statistiques peuvent être ajoutées donc vous verrez quelque chose comme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;AgentCountMonitor&amp;gt;0&amp;lt;/AgentCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ChildAgentCountMonitor&amp;gt;0&amp;lt;/ChildAgentCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;GCMemoryMonitor&amp;gt;32358400&amp;lt;/GCMemoryMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ObjectCountMonitor&amp;gt;0&amp;lt;/ObjectCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsFrameMonitor&amp;gt;0&amp;lt;/PhysicsFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsUpdateFrameMonitor&amp;gt;0&amp;lt;/PhysicsUpdateFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PWSMemoryMonitor&amp;gt;354172928&amp;lt;/PWSMemoryMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ThreadCountMonitor&amp;gt;0&amp;lt;/ThreadCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;TotalFrameMonitor&amp;gt;1&amp;lt;/TotalFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;EventFrameMonitor&amp;gt;0&amp;lt;/EventFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;LandFrameMonitor&amp;gt;0&amp;lt;/LandFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;LastFrameTimeMonitor&amp;gt;87&amp;lt;/LastFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;TimeDilationMonitor&amp;gt;1&amp;lt;/TimeDilationMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;SimFPSMonitor&amp;gt;56.6666679382324&amp;lt;/SimFPSMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsFPSMonitor&amp;gt;46.9475212097168&amp;lt;/PhysicsFPSMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;AgentUpdatesPerSecondMonitor&amp;gt;0&amp;lt;/AgentUpdatesPerSecondMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ActiveObjectCountMonitor&amp;gt;0&amp;lt;/ActiveObjectCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ActiveScriptsMonitor&amp;gt;0&amp;lt;/ActiveScriptsMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ScriptEventsPerSecondMonitor&amp;gt;0&amp;lt;/ScriptEventsPerSecondMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;InPacketsPerSecondMonitor&amp;gt;0&amp;lt;/InPacketsPerSecondMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;OutPacketsPerSecondMonitor&amp;gt;0&amp;lt;/OutPacketsPerSecondMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;UnackedBytesMonitor&amp;gt;0&amp;lt;/UnackedBytesMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PendingDownloadsMonitor&amp;gt;0&amp;lt;/PendingDownloadsMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PendingUploadsMonitor&amp;gt;0&amp;lt;/PendingUploadsMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;TotalFrameTimeMonitor&amp;gt;0&amp;lt;/TotalFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;NetFrameTimeMonitor&amp;gt;0&amp;lt;/NetFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsFrameTimeMonitor&amp;gt;0&amp;lt;/PhysicsFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;SimulationFrameTimeMonitor&amp;gt;0&amp;lt;/SimulationFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;AgentFrameTimeMonitor&amp;gt;0&amp;lt;/AgentFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ImagesFrameTimeMonitor&amp;gt;0&amp;lt;/ImagesFrameTimeMonitor&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Monitoring_Module/de</id>
		<title>Monitoring Module/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Monitoring_Module/de"/>
				<updated>2025-08-04T00:40:05Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;{{Quicklinks|Monitoring_Module}}  =Einleitung=  Diese Funktion bietet eine Möglichkeit, Daten pro Region abzurufen.  HINWEIS: Diese Funktion ist veraltet und könnte in zukü...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|Monitoring_Module}}&lt;br /&gt;
&lt;br /&gt;
=Einleitung=&lt;br /&gt;
&lt;br /&gt;
Diese Funktion bietet eine Möglichkeit, Daten pro Region abzurufen.&lt;br /&gt;
&lt;br /&gt;
HINWEIS: Diese Funktion ist veraltet und könnte in zukünftigen Versionen des Simulators entfernt werden. Siehe [[Monitoring]] für Informationen zu den aktuellen Monitoring-Schnittstellen.&lt;br /&gt;
&lt;br /&gt;
=Aktivierung=&lt;br /&gt;
&lt;br /&gt;
In OpenSimulator 0.7.2 ist sie immer aktiv. Im aktuellen Entwicklungscode ist sie standardmäßig aktiv, kann aber deaktiviert werden durch&lt;br /&gt;
&lt;br /&gt;
 [Monitoring]&lt;br /&gt;
 Enabled = false&lt;br /&gt;
&lt;br /&gt;
=Daten abrufen=&lt;br /&gt;
== OpenSimulator 0.7.2 und früher ==&lt;br /&gt;
In OpenSimulator 0.7.2 und früher registriert jede Region eine URL auf dem eingebauten HTTP-Server von OpenSimulator im Format&lt;br /&gt;
&lt;br /&gt;
 /monitorstats/&amp;lt;region-uuid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn du&lt;br /&gt;
&lt;br /&gt;
 show http-handlers&lt;br /&gt;
&lt;br /&gt;
in der Region-Konsole eingibst, siehst du im HTTP-Abschnitt etwa Folgendes:&lt;br /&gt;
&lt;br /&gt;
 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c81 &lt;br /&gt;
 /SStats/ &lt;br /&gt;
 /CAPS/VS/ &lt;br /&gt;
 regionImagedd5b77f8bf8845acaace35bd76426c81 &lt;br /&gt;
 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c82 &lt;br /&gt;
 regionImagedd5b77f8bf8845acaace35bd76426c82&lt;br /&gt;
&lt;br /&gt;
wobei die UUID nach monitorstats der Regions-ID entspricht.&lt;br /&gt;
&lt;br /&gt;
== OpenSimulator Entwicklungscode ==&lt;br /&gt;
Im Entwicklungscode von OpenSimulator können Regionsdaten auch über den Regionsnamen abgerufen werden. Daher ergibt die Eingabe von&lt;br /&gt;
&lt;br /&gt;
 show http-handlers&lt;br /&gt;
&lt;br /&gt;
etwa Folgendes:&lt;br /&gt;
&lt;br /&gt;
 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c81 &lt;br /&gt;
 /monitorstats/test &lt;br /&gt;
 /SStats/ &lt;br /&gt;
 /CAPS/VS/ &lt;br /&gt;
 regionImagedd5b77f8bf8845acaace35bd76426c81 &lt;br /&gt;
 /monitorstats/dd5b77f8-bf88-45ac-aace-35bd76426c82 &lt;br /&gt;
 /monitorstats/test2 &lt;br /&gt;
 regionImagedd5b77f8bf8845acaace35bd76426c82 &lt;br /&gt;
&lt;br /&gt;
wobei die Daten auch über den Regionsnamen (test und test2) abgerufen werden können.&lt;br /&gt;
&lt;br /&gt;
=Abgerufene Daten=&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 ! Stat name              !! Beschreibung&lt;br /&gt;
 |-&lt;br /&gt;
 | AgentCountMonitor      || Anzahl der Avatare in der Region.&lt;br /&gt;
 |-&lt;br /&gt;
 | ChildAgentCountMonitor || Anzahl der Child Agents in der Region. Diese werden von Viewern mit Avataren in benachbarten Regionen verwendet, um in die Nachbarregion zu sehen und sie zu beeinflussen.&lt;br /&gt;
 |-&lt;br /&gt;
 | GCMemoryMonitor        || Menge des aktuell vom Garbage Collector der virtuellen Maschine belegten Speichers.&lt;br /&gt;
 |-&lt;br /&gt;
 | ObjectCountMonitor     || Anzahl der Prims in der Region.&lt;br /&gt;
 |-&lt;br /&gt;
 | PWSMemoryMonitor       || Private Working Set Speicher der virtuellen Maschine.&lt;br /&gt;
 |-&lt;br /&gt;
 | ThreadCountMonitor     || Anzahl der vom aktuellen Prozess verwendeten Threads. Unter Mono möglicherweise nicht implementiert (daher immer null).&lt;br /&gt;
 |-&lt;br /&gt;
 | TotalFrameMonitor      || Zeit in Millisekunden für das letzte Frame. In OpenSimulator 0.7.3.1 und früher war die Reserve-Frame-Zeit nicht enthalten. In späteren Versionen ist sie enthalten.&lt;br /&gt;
 |-&lt;br /&gt;
 | EventFrameMonitor      || Zeit für die Ereignisverarbeitung im letzten Frame in Millisekunden.&lt;br /&gt;
 |-&lt;br /&gt;
 | LandFrameMonitor       || Zeit für landbezogene Verarbeitung im letzten Frame in Millisekunden.&lt;br /&gt;
 |-&lt;br /&gt;
 | LastFrameTimeMonitor   || Anzahl der Millisekunden seit Abschluss des letzten Region-Frames.&lt;br /&gt;
 |-&lt;br /&gt;
 | TimeDilationMonitor    || Zeitdilatation der Physikverarbeitung im Vergleich zur Hauptszenenverarbeitung.&lt;br /&gt;
 |-&lt;br /&gt;
 | SimFPSMonitor          || Frames pro Sekunde, die von der Szene verarbeitet werden.&lt;br /&gt;
 |-&lt;br /&gt;
 | AgentUpdatesPerSecondMonitor || Updates pro Sekunde, die an Viewer gesendet werden.&lt;br /&gt;
 |- &lt;br /&gt;
 | ActiveObjectCountMonitor || Objekte, die der Physik unterliegen.&lt;br /&gt;
 |-&lt;br /&gt;
 | ActiveScriptsMonitor   || Skripte, die in der Region ausgeführt werden.&lt;br /&gt;
 |-&lt;br /&gt;
 | ScriptEventsPerSecondMonitor || Skript-Ereignisse pro Sekunde.&lt;br /&gt;
 |-&lt;br /&gt;
 | InPacketsPerSecondMonitor || UDP-Pakete von Viewern, die pro Sekunde verarbeitet werden.&lt;br /&gt;
 |-&lt;br /&gt;
 | OutPacketsPerSecondMonitor || UDP-Pakete, die pro Sekunde an Viewer gesendet werden.&lt;br /&gt;
 |-&lt;br /&gt;
 | UnackedBytesMonitor    || Bytes, die noch nicht von Viewern bestätigt wurden. Eine dauerhaft hohe Zahl weist auf schlechte Netzwerkverbindungen zwischen Viewern und Simulator hin.&lt;br /&gt;
 |-&lt;br /&gt;
 | PendingDownloadsMonitor || Ausstehende Downloads vom Simulator zu Viewern. Derzeit nicht implementiert, daher immer null.&lt;br /&gt;
 |- &lt;br /&gt;
 | PendingUploadsMonitor   || Ausstehende Uploads von Viewern zum Simulator. Derzeit nicht implementiert, daher immer null.&lt;br /&gt;
 |-&lt;br /&gt;
 | TotalFrameTimeMonitor      || Durchschnittliche Zeit in Millisekunden für Frames in den letzten 3 Sekunden. In OpenSimulator 0.7.3.1 und früher wurde die Reserve-Frame-Zeit nicht berücksichtigt und fälschlich als Gesamtzeit eines Frames ohne Reservezeit angegeben. In späteren Versionen wird die Frame-Zeit korrekt angegeben und enthält die Reservezeit.&lt;br /&gt;
 |-&lt;br /&gt;
 | NetFrameTimeMonitor        || Durchschnittliche Zeit in Millisekunden für Netzwerkaktivitäten in Frames der letzten 3 Sekunden. Derzeit nicht verwendet.&lt;br /&gt;
 |-&lt;br /&gt;
 | SimulationFrameTimeMonitor || Durchschnittliche Zeit in Millisekunden für simulationsbezogene Aktivitäten in Frames der letzten 3 Sekunden. In OpenSimulator 0.7.3.1 und früher fälschlich als Gesamtzeit eines Frames für Simulation angegeben.&lt;br /&gt;
 |-&lt;br /&gt;
 | AgentFrameTimeMonitor      || Durchschnittliche Zeit in Millisekunden für agentenbezogene Aktivitäten in den letzten 3 Sekunden. In OpenSimulator 0.7.3.1 und früher fälschlich als Gesamtzeit eines Frames für Agenten angegeben.&lt;br /&gt;
 |-&lt;br /&gt;
 | ImagesFrameTimeMonitor     || Wird von OpenSimulator nicht verwendet.&lt;br /&gt;
 |-&lt;br /&gt;
 | LastReportedObjectUpdates  || Derzeit nicht verwendet.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Physik==&lt;br /&gt;
&lt;br /&gt;
Alle Zeiten pro Frame beziehen sich hier auf einen Durchschnitt über die letzten 3 Sekunden.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Statistiken sind immer vorhanden:&lt;br /&gt;
&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 | PhysicsFPSMonitor       || Frames pro Sekunde, die vom Physik-Code verarbeitet werden.&lt;br /&gt;
 |-&lt;br /&gt;
 | PhysicsFrameMonitor     || Veraltet. Entspricht PhysicsFrameTimeMonitor.&lt;br /&gt;
 |-&lt;br /&gt;
 | PhysicsFrameTimeMonitor || Durchschnittliche Zeit für die Physikverarbeitung.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Die folgenden Statistiken sind nur vorhanden, wenn collect_stats = true im Abschnitt [ODEPhysicsSettings] der OpenSim.ini gesetzt ist (ab git master 6375db1, nach OpenSimulator 0.7.3.1 Entwicklungscode). Diese Statistiken sind experimentell und können sich ändern.&lt;br /&gt;
&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 | ODETotalFrameMS         || ODE Physikverarbeitung. Sollte mit PhysicsFrameTimeMonitor übereinstimmen.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEAvatarTaintFrameMS   || Verarbeitung von Avatar-Taint.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEPrimTaintFrameMS     || Verarbeitung von Prim-Taint.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEAvatarForcesFrameMS  || Berechnung von Avatar-Kräften.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEPrimForcesFrameMS    || Berechnung von Prim-Kräften.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODERaycastingFrameMS    || Raycasting.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODENativeStepFrameMS    || Zeit für einen Physikschritt durch nativen ODE-Code.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODENativeSpaceCollisionFrameMS || Berechnung möglicher Kollisionen über Räume im nativen ODE-Code.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODENativeGeomCollisionFrameMS  || Auflösung tatsächlicher Kollisionen zwischen Geometrien im nativen ODE-Code.&lt;br /&gt;
 |- &lt;br /&gt;
 | ODEOtherCollisionFrameMS       || Verarbeitung von Kollisionen, die nicht durch andere „Native“-Maßnahmen abgedeckt sind. Dies betrifft hauptsächlich Operationen im OpenSimulator-Plugin selbst, obwohl einige native ODE-Funktionen weiterhin aufgerufen werden.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODECollisionNotificationFrameMS || Benachrichtigung anderer Teile von OpenSimulator über Kollisionen außerhalb des ODE-Plugins.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEAvatarUpdateFrameMS          || Zeit zur Verarbeitung von Avatar-Updates aus dem Physik-Code.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEPrimUpdateFrameMS            || Zeit zur Verarbeitung von Prim-Updates aus dem Physik-Code.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEAvatarContacts               || Anzahl der durch Avatare verursachten Kollisionskontakte im letzten 3-Sekunden-Zeitraum. Es kann mehr als einen Kontakt pro Kollision geben.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEPrimContacts                 || Anzahl der durch Prims verursachten Kollisionskontakte im letzten 3-Sekunden-Zeitraum. Es kann mehr als einen Kontakt pro Kollision geben.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODETotalAvatars                 || Anzahl der von der Physik modellierten Avatare. Sollte mit AgentCountMonitor übereinstimmen.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODETotalPrims                   || Anzahl der nicht-phantomhaften Prims. Beinhaltet sowohl Physik-Prims als auch kollidierbare Prims ohne Physik. Phantom-Prims sind nicht enthalten, da sie keine Repräsentation in der Physikszene haben.&lt;br /&gt;
 |-&lt;br /&gt;
 | ODEActivePrims                  || Anzahl der Prims, die der Physik unterliegen. Sollte mit ActiveObjectCountMonitor übereinstimmen.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== OpenSimulator 0.7.2 und früher ===&lt;br /&gt;
Unter OpenSimulator 0.7.2 und früher liefert der Abruf von&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://192.168.1.2:9000/dd5b77f8-bf88-45ac-aace-35bd76426c81&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
etwa Folgendes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;AgentCountMonitor&amp;gt;0&amp;lt;/AgentCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ChildAgentCountMonitor&amp;gt;0&amp;lt;/ChildAgentCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;GCMemoryMonitor&amp;gt;32358400&amp;lt;/GCMemoryMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ObjectCountMonitor&amp;gt;0&amp;lt;/ObjectCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsFrameMonitor&amp;gt;0&amp;lt;/PhysicsFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsUpdateFrameMonitor&amp;gt;0&amp;lt;/PhysicsUpdateFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PWSMemoryMonitor&amp;gt;354172928&amp;lt;/PWSMemoryMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ThreadCountMonitor&amp;gt;0&amp;lt;/ThreadCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;TotalFrameMonitor&amp;gt;1&amp;lt;/TotalFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;EventFrameMonitor&amp;gt;0&amp;lt;/EventFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;LandFrameMonitor&amp;gt;0&amp;lt;/LandFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;LastFrameTimeMonitor&amp;gt;87&amp;lt;/LastFrameTimeMonitor&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSimulator 0.7.3 und höher ===&lt;br /&gt;
Im aktuellen Entwicklungscode wurden weitere Statistiken hinzugefügt, sodass Sie stattdessen etwas wie&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;AgentCountMonitor&amp;gt;0&amp;lt;/AgentCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ChildAgentCountMonitor&amp;gt;0&amp;lt;/ChildAgentCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;GCMemoryMonitor&amp;gt;32358400&amp;lt;/GCMemoryMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ObjectCountMonitor&amp;gt;0&amp;lt;/ObjectCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsFrameMonitor&amp;gt;0&amp;lt;/PhysicsFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsUpdateFrameMonitor&amp;gt;0&amp;lt;/PhysicsUpdateFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PWSMemoryMonitor&amp;gt;354172928&amp;lt;/PWSMemoryMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ThreadCountMonitor&amp;gt;0&amp;lt;/ThreadCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;TotalFrameMonitor&amp;gt;1&amp;lt;/TotalFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;EventFrameMonitor&amp;gt;0&amp;lt;/EventFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;LandFrameMonitor&amp;gt;0&amp;lt;/LandFrameMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;LastFrameTimeMonitor&amp;gt;87&amp;lt;/LastFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;TimeDilationMonitor&amp;gt;1&amp;lt;/TimeDilationMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;SimFPSMonitor&amp;gt;56.6666679382324&amp;lt;/SimFPSMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsFPSMonitor&amp;gt;46.9475212097168&amp;lt;/PhysicsFPSMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;AgentUpdatesPerSecondMonitor&amp;gt;0&amp;lt;/AgentUpdatesPerSecondMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ActiveObjectCountMonitor&amp;gt;0&amp;lt;/ActiveObjectCountMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ActiveScriptsMonitor&amp;gt;0&amp;lt;/ActiveScriptsMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ScriptEventsPerSecondMonitor&amp;gt;0&amp;lt;/ScriptEventsPerSecondMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;InPacketsPerSecondMonitor&amp;gt;0&amp;lt;/InPacketsPerSecondMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;OutPacketsPerSecondMonitor&amp;gt;0&amp;lt;/OutPacketsPerSecondMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;UnackedBytesMonitor&amp;gt;0&amp;lt;/UnackedBytesMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PendingDownloadsMonitor&amp;gt;0&amp;lt;/PendingDownloadsMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PendingUploadsMonitor&amp;gt;0&amp;lt;/PendingUploadsMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;TotalFrameTimeMonitor&amp;gt;0&amp;lt;/TotalFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;NetFrameTimeMonitor&amp;gt;0&amp;lt;/NetFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;PhysicsFrameTimeMonitor&amp;gt;0&amp;lt;/PhysicsFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;SimulationFrameTimeMonitor&amp;gt;0&amp;lt;/SimulationFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;AgentFrameTimeMonitor&amp;gt;0&amp;lt;/AgentFrameTimeMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;ImagesFrameTimeMonitor&amp;gt;0&amp;lt;/ImagesFrameTimeMonitor&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Estate_Support/de</id>
		<title>Estate Support/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Estate_Support/de"/>
				<updated>2025-04-24T08:28:14Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;{{Quicklinks|Estate_Support}} &amp;lt;br /&amp;gt;  = Einführung =  Grundstücke (Estates) in OpenSimulator werden entweder lokal für jeden Simulator oder zentral über den Estate-Connect...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|Estate_Support}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Einführung =&lt;br /&gt;
&lt;br /&gt;
Grundstücke (Estates) in OpenSimulator werden entweder lokal für jeden Simulator oder zentral über den Estate-Connector unterstützt. Die EstateData-Verbindung kann separat von der normalen Datenbankkonfiguration eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
Grundstücke werden in der Regionskonsole unterstützt oder beim Einrichten eines neuen Grundstücks während der Regionserstellung. Befehle zum Löschen von Grundstücken sind derzeit nicht möglich. Derzeit kann dies nur durch direkte Manipulation der Regionsdatenbank erfolgen.&lt;br /&gt;
&lt;br /&gt;
Ab Version 9.2.0 können Grundstücke über die Estate.ini im Estates-Ordner eines Simulators vorkonfiguriert werden, was eine vollständige Konfiguration ohne Konsoleneingabe ermöglicht. Siehe [http://opensimulator.org/viewgit/?a=commit&amp;amp;p=opensim&amp;amp;h=ce9f8804b6730a96429f8574642c33eb45357037 relevanten Commit] und [http://opensimulator.org/viewgit/?a=commit&amp;amp;p=opensim&amp;amp;h=a9697975123d8eab10cbd54569411c438ddbba98 diesen hier]. Einmal gesetzt, haben die Datenbankinformationen Vorrang.&lt;br /&gt;
&lt;br /&gt;
=== Estate-Befehle ===&lt;br /&gt;
* reload estate - Lädt Estate-Daten neu&lt;br /&gt;
* estate link region &amp;lt;estate ID&amp;gt; &amp;lt;region ID&amp;gt; - Fügt die angegebene Region zum angegebenen Grundstück hinzu.&lt;br /&gt;
* estate show - Zeigt den Estate-Namen, die ID und den Besitzer für aktuell laufende Regionen im Simulator. Diese Liste enthält nicht unbedingt alle Grundstücke, die in der Datenbank vorhanden sind.&lt;br /&gt;
* estate set name &amp;lt;estate ID&amp;gt; &amp;lt;neuer Name&amp;gt; - Benennt ein Grundstück um&lt;br /&gt;
* estate set owner &amp;lt;estate ID&amp;gt; &amp;lt;Vorname&amp;gt; &amp;lt;Nachname&amp;gt; - Ändert den Besitzer eines Grundstücks. Dieser Befehl unterstützt zwei Formen; diese verwendet den Namen des Besitzers.&lt;br /&gt;
* estate set owner &amp;lt;estate ID&amp;gt; &amp;lt;Besitzer-UUID&amp;gt; - Ändert den Besitzer eines Grundstücks. Dieser Befehl unterstützt zwei Formen; diese verwendet die UUID des Besitzers.&lt;br /&gt;
* estate create &amp;lt;Besitzer-UUID&amp;gt; &amp;lt;Estatename&amp;gt; - Muss eine Benutzer-UUID sein, die Sie mit 'show names' erhalten können&lt;br /&gt;
&lt;br /&gt;
== Beispiel zur Änderung einer Region zu einem anderen Grundstück ==&lt;br /&gt;
&lt;br /&gt;
 # estate show&lt;br /&gt;
 Estate-Informationen für Region TestRegion&lt;br /&gt;
 Estate-Name ID Besitzer&lt;br /&gt;
 Mein Grundstück 103 Testbenutzer&lt;br /&gt;
 # show names&lt;br /&gt;
 UUID Name HomeURL&lt;br /&gt;
 00000000-0000-0000-0000-000000000000 Unbekannter Benutzer&lt;br /&gt;
 461efe20-c098-4685-ab41-ef761538d3bc Testbenutzer&lt;br /&gt;
 # estate create 461efe20-c098-4685-ab41-ef761538d3bc Neues Grundstück&lt;br /&gt;
 Grundstück 105 erstellt als &amp;quot;Neues Grundstück&amp;quot;&lt;br /&gt;
 # estate link region 105 8c5fdd1b-d25a-4852-97b2-2369d5b99adf&lt;br /&gt;
 Region 8c5fdd1b-d25a-4852-97b2-2369d5b99adf ist jetzt mit Grundstück 105 verbunden&lt;br /&gt;
 # estate show&lt;br /&gt;
 Estate-Informationen für Region TestRegion&lt;br /&gt;
 Estate-Name ID Besitzer&lt;br /&gt;
 Neues Grundstück 105 Testbenutzer&lt;br /&gt;
&lt;br /&gt;
== Umbenennung eines Grundstücks ==&lt;br /&gt;
&lt;br /&gt;
Ein Grundstück kann über den Befehl &amp;quot;estate set name&amp;quot; umbenannt werden.&lt;br /&gt;
 # estate set name &amp;lt;estate ID&amp;gt; &amp;lt;neuer Name&amp;gt;&lt;br /&gt;
== Besitzeränderung eines Grundstücks ==&lt;br /&gt;
Einem Grundstück kann ein neuer Besitzer über den Befehl &amp;quot;estate set owner&amp;quot; zugewiesen werden.&lt;br /&gt;
Dieser Befehl unterstützt zwei Formen, eine mit dem Namen des Besitzers und eine mit der UUID des Besitzers.&lt;br /&gt;
 # estate set owner &amp;lt;estate ID&amp;gt; &amp;lt;Vorname&amp;gt; &amp;lt;Nachname&amp;gt;&lt;br /&gt;
 # estate set owner &amp;lt;estate ID&amp;gt; &amp;lt;Besitzer-UUID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verwendung eines Viewers ==&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit ist, sich mit einem Viewer bei der OpenSimulator-Installation anzumelden und den &amp;quot;Covenant&amp;quot;-Tab im &amp;quot;Über Land&amp;quot;-Dialog zu betrachten.&lt;br /&gt;
&lt;br /&gt;
== Datenbank ==&lt;br /&gt;
&lt;br /&gt;
Alternativ kann folgender Datenbankbefehl ausgeführt werden, um die Besitzer aller vom Simulator referenzierten Grundstücke anzuzeigen:&lt;br /&gt;
&lt;br /&gt;
 select PrincipalID, FirstName, LastName, EstateID, EstateName from UserAccounts, estate_settings as es where PrincipalID=es.EstateOwner;&lt;br /&gt;
&lt;br /&gt;
= Aufgaben =&lt;br /&gt;
&lt;br /&gt;
'''TODO: Weitere Aufgaben nach Bedarf hinzufügen:&lt;br /&gt;
  * Grundstück löschen&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
= Datenbanktabellen =&lt;br /&gt;
&lt;br /&gt;
* estate_groups - im Grundstück erlaubte Gruppen.&lt;br /&gt;
* [[estate_managers]] - Manager des Grundstücks.&lt;br /&gt;
* estate_map - verknüpft Regions-IDs mit der Estate-ID.&lt;br /&gt;
* [[Estate_settings]] - enthält alle Estate-Eigenschaften (Estate-Besitzer, Estate-Name etc.).&lt;br /&gt;
* estate_users - im Grundstück erlaubte Bewohner.&lt;br /&gt;
* estateban - vom Grundstück gebannte Bewohner.&lt;br /&gt;
&lt;br /&gt;
= Alte Notizen =&lt;br /&gt;
&lt;br /&gt;
Dies ist der alte Seiteninhalt. Er könnte für historische Informationen nützlich sein.&lt;br /&gt;
&lt;br /&gt;
== SVN r5525 führte die Estate-Unterstützung in OpenSimulator ein. ==&lt;br /&gt;
&lt;br /&gt;
Ein Update auf diese oder eine spätere Version erstellt die Estate-Unterstützung in Ihrer Instanz. Es konvertiert die vorherige Konfigurationsdatei in eine Reihe von Datenbanktabellen.&lt;br /&gt;
&lt;br /&gt;
=== Folgende Tabellen werden erstellt ===&lt;br /&gt;
 &lt;br /&gt;
 regionsettings (wird gelöscht und neu erstellt, falls vorhanden)&lt;br /&gt;
 estate_settings&lt;br /&gt;
 estate_map&lt;br /&gt;
 estatebans&lt;br /&gt;
 estate_users&lt;br /&gt;
 estate_groups&lt;br /&gt;
 estate_managers&lt;br /&gt;
&lt;br /&gt;
Diese Tabellen werden standardmäßig im Regions-Datenspeicher erstellt.&lt;br /&gt;
&lt;br /&gt;
Bei der Konvertierung wird eine Umgebung eingerichtet, die möglichst nahe an der bisherigen liegt.&lt;br /&gt;
&lt;br /&gt;
Es erstellt automatisch ein Grundstück pro Region mit Standard-Estate-IDs ab 100. Alle neuen Grundstücke werden ebenfalls von Grundstück 100 übergeordnet.&lt;br /&gt;
Dann platziert es die Region darin, konvertiert alte Regionssperren in neue Estate-Sperren für dieses Grundstück und setzt die neuen Estate-Flags auf Standardwerte.&lt;br /&gt;
Alle Informationen werden in den neuen Tabellen der Datenbank gespeichert.&lt;br /&gt;
&lt;br /&gt;
Regionseinstellungen sind jetzt wirklich regionsspezifisch, nicht mehr pro Instanz.&lt;br /&gt;
&lt;br /&gt;
Dieser Patch bewirkt, dass alle Regionen zu den Einstellungen aus estate_settings.xml zurückkehren. Dies behebt den Verlust von Bodentexturen, über den einige Benutzer beim letzten Patch berichtet haben. Allerdings gehen regionsspezifische Einstellungen des letzten Patches verloren. Dies ist ein Kompromiss, um den häufigsten Migrationsfall robuster zu gestalten.&lt;br /&gt;
&lt;br /&gt;
== Estate-Besitzer ==&lt;br /&gt;
&lt;br /&gt;
Estate-Besitzer werden jetzt unterstützt, müssen aber manuell in die Datenbank eingetragen werden, da der Client dies nicht unterstützt. Setzen Sie das Feld EstateOwner in estate_settings auf die UUID des Benutzers, der Estate-Besitzer werden soll. Dies wird in jeder Region beim nächsten Neustart wirksam.&lt;br /&gt;
&lt;br /&gt;
== Verhinderung des Zugangs von Minderjährigen zu Erwachsenen-Grundstücken ==&lt;br /&gt;
&lt;br /&gt;
Wenn Sie Minderjährige vom Betreten eines Grundstücks ausschließen müssen, siehe [[Minors_in_your_Grid|Minderjährige in Ihrem Grid]].&lt;br /&gt;
&lt;br /&gt;
== Korrektur von Estate-IDs ==&lt;br /&gt;
&lt;br /&gt;
Frühere Versionen von OpenSimulator erstellten automatisch Grundstücke mit einer EstateID gleich 1, und diese ID wird in der OpenSimulator-Datenbank gespeichert. Leider funktionieren SL-basierte Viewer nicht richtig mit EstateID-Werten zwischen 1 und 5, da diese Nummern für die interne Nutzung durch Linden Labs reserviert sind.&lt;br /&gt;
&lt;br /&gt;
Im Estate-Tab des Estate-Managers sind die Listen der Estate-Manager sowie der erlaubten und gebannten Avatare für Grundstücke mit diesen reservierten EstateID-Werten ausgegraut. Um dieses Problem zu beheben, führen Sie die folgenden SQL-Anweisungen aus, um die EstateIDs wie folgt anzupassen:&lt;br /&gt;
&lt;br /&gt;
 Alt Neu&lt;br /&gt;
 ---------&lt;br /&gt;
 1 --&amp;gt; 100&lt;br /&gt;
 2 --&amp;gt; 101&lt;br /&gt;
 3 --&amp;gt; 102&lt;br /&gt;
 4 --&amp;gt; 103&lt;br /&gt;
 5 --&amp;gt; 104&lt;br /&gt;
&lt;br /&gt;
Führen Sie folgenden Befehl aus, während OpenSimulator nicht läuft:&lt;br /&gt;
 mysql -u&amp;lt;Benutzer&amp;gt; -p&amp;lt;Passwort&amp;gt; &amp;lt;Datenbank&amp;gt; &amp;lt; FixEstateID.sql&lt;br /&gt;
&lt;br /&gt;
SQL-Anweisungen in FixEstateID.sql:&lt;br /&gt;
 UPDATE estate_groups SET EstateID=100 WHERE EstateID=1;&lt;br /&gt;
 UPDATE estate_managers SET EstateID=100 WHERE EstateID=1;&lt;br /&gt;
 UPDATE estate_map SET EstateID=100 WHERE EstateID=1;&lt;br /&gt;
 UPDATE estate_settings SET EstateID=100 WHERE EstateID=1;&lt;br /&gt;
 UPDATE estate_users SET EstateID=100 WHERE EstateID=1;&lt;br /&gt;
 UPDATE estateban SET EstateID=100 WHERE EstateID=1;&lt;br /&gt;
 UPDATE estate_groups SET EstateID=101 WHERE EstateID=2;&lt;br /&gt;
 UPDATE estate_managers SET EstateID=101 WHERE EstateID=2;&lt;br /&gt;
 UPDATE estate_map SET EstateID=101 WHERE EstateID=2;&lt;br /&gt;
 UPDATE estate_settings SET EstateID=101 WHERE EstateID=2;&lt;br /&gt;
 UPDATE estate_users SET EstateID=101 WHERE EstateID=2;&lt;br /&gt;
 UPDATE estateban SET EstateID=101 WHERE EstateID=2;&lt;br /&gt;
 UPDATE estate_groups SET EstateID=102 WHERE EstateID=3;&lt;br /&gt;
 UPDATE estate_managers SET EstateID=102 WHERE EstateID=3;&lt;br /&gt;
 UPDATE estate_map SET EstateID=102 WHERE EstateID=3;&lt;br /&gt;
 UPDATE estate_settings SET EstateID=102 WHERE EstateID=3;&lt;br /&gt;
 UPDATE estate_users SET EstateID=102 WHERE EstateID=3;&lt;br /&gt;
 UPDATE estateban SET EstateID=102 WHERE EstateID=3;&lt;br /&gt;
 UPDATE estate_groups SET EstateID=103 WHERE EstateID=4;&lt;br /&gt;
 UPDATE estate_managers SET EstateID=103 WHERE EstateID=4;&lt;br /&gt;
 UPDATE estate_map SET EstateID=103 WHERE EstateID=4;&lt;br /&gt;
 UPDATE estate_settings SET EstateID=103 WHERE EstateID=4;&lt;br /&gt;
 UPDATE estate_users SET EstateID=103 WHERE EstateID=4;&lt;br /&gt;
 UPDATE estateban SET EstateID=103 WHERE EstateID=4;&lt;br /&gt;
 UPDATE estate_groups SET EstateID=104 WHERE EstateID=5;&lt;br /&gt;
 UPDATE estate_managers SET EstateID=104 WHERE EstateID=5;&lt;br /&gt;
 UPDATE estate_map SET EstateID=104 WHERE EstateID=5;&lt;br /&gt;
 UPDATE estate_settings SET EstateID=104 WHERE EstateID=5;&lt;br /&gt;
 UPDATE estate_users SET EstateID=104 WHERE EstateID=5;&lt;br /&gt;
 UPDATE estateban SET EstateID=104 WHERE EstateID=5;&lt;br /&gt;
&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
[[Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Free_Assets</id>
		<title>Free Assets</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Free_Assets"/>
				<updated>2025-04-15T13:09:25Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: /* PBR Textures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Textures==&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://texturebarn.headfirstdm.com/ The Texture Barn]&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;128px&amp;quot; heights=&amp;quot;128px&amp;quot; perrow=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
Image:Smoke.png | Smoke&lt;br /&gt;
Image:Brown_Eye.png | A Brown Eye&lt;br /&gt;
Image:Picketfence.png | A Picket fence.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vint Falken's Free Valentine Eyes:&lt;br /&gt;
[http://www.flickr.com/photos/vintfalken/2258351122/ Heart], &lt;br /&gt;
[http://www.flickr.com/photos/vintfalken/2258351306/ Flowers]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;strike&amp;gt;http://www.vintfalken.com/free-full-perm-female-skins-sezmras-splendor/&amp;lt;/strike&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;strike&amp;gt;http://www.vintfalken.com/free-full-perm-female-skin-textures/&amp;lt;/strike&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;strike&amp;gt;http://torley.com/torley-textures-available-for-download-in-a-single-zip-pack&amp;lt;/strike&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note that almost all the links above are broken (except for those on Flickr)''&lt;br /&gt;
&lt;br /&gt;
==OpenSim Exchange==&lt;br /&gt;
Free OpenSim content:&lt;br /&gt;
You can find free mesh, trees, avatar stuff, buidings and full regions&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://osxchange.org/ OpenSim Exchange]&amp;lt;/strike&amp;gt; ''also a broken link; you can extract a few files from the Wayback Machine: https://web.archive.org/web/20160110172438/http://osxchange.org/ (last update: January 2016)''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Heightmaps ==&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;A Simple Square Island&amp;quot; widths=&amp;quot;128px&amp;quot; heights=&amp;quot;128px&amp;quot; perrow=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
Image:Square_island_1x1.png | 1x1 region&lt;br /&gt;
Image:Square_island_2x2.png | 2x2 regions&lt;br /&gt;
Image:Square_island_4x4.png | 4x4 regions&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;A Complicated Maze&amp;quot; widths=&amp;quot;128px&amp;quot; heights=&amp;quot;128px&amp;quot; perrow=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
Image:Maze.png | 1x1 region&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Buildings ==&lt;br /&gt;
&lt;br /&gt;
== Full Sims ==&lt;br /&gt;
&lt;br /&gt;
== Opensim Archives - OAR Files ==&lt;br /&gt;
&lt;br /&gt;
=== What Are OAR Files? ===&lt;br /&gt;
OAR stands for '''O'''penSimulator '''AR'''chive. With them, you can make a full backup of your region(s), and restore them. Of course, you can also share them, so that other people can enjoy your work on their own servers and/or grid. For more information on how to use OAR files, please read [[OpenSim Archives]].&lt;br /&gt;
&lt;br /&gt;
=== OpenVCE 3D Assets OAR ===&lt;br /&gt;
&lt;br /&gt;
The [https://openvce.net OpenVCE.net] virtual worlds assets described at https://openvce.net/vwassets provided by Clever Zebra and the OpenVCE.net team at AIAI in the University of Edinburgh are available as an OAR (Opensim Archive) file at https://openvce.net/downloads/ ''(note that you will be redirected, since the AIAI has moved this page)''&lt;br /&gt;
&lt;br /&gt;
Get the file &amp;quot;opensim-openvce.oar&amp;quot; from there (right click on the file in the above directory in your browser, and select download is the easiest way to obtain the materials).&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;full&amp;quot; set of the buildings with a large 400 seat amphitheatre intended to be placed on the corner of 4 sims is also available via &amp;quot;opensim-openvce-full.oar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Images of the buildings in place in Opensim are at:&lt;br /&gt;
[https://openvce.net/resources/downloads/opensim-openvce-1.jpg Image 1],&lt;br /&gt;
[https://openvce.net/resources/downloads/opensim-openvce-2.jpg Image 2]&lt;br /&gt;
&lt;br /&gt;
=== KatiJack Studio OpenSimulator Archive Files ===&lt;br /&gt;
A free collection of original OAR files of empty terraformed islands ready to build on:&lt;br /&gt;
&amp;lt;strike&amp;gt;http://katijackstudio.com/&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Skin Examples (Head) ==&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Free Skin PSD files&amp;quot; widths=&amp;quot;128px&amp;quot; heights=&amp;quot;128px&amp;quot; perrow=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
File:Skins.jpg|Bald head (add hair separately)&lt;br /&gt;
File:Skin2.jpg|Head with pre-baked hair&lt;br /&gt;
File:Skin3.jpg|Example avatar with skin applied&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Note that the skins above are just 240x240px in size (it was the largest size uploaded to this wiki) and will '''not''' look great on an avatar; you'll need at least 512x512, preferably 1024x1024 skins.&lt;br /&gt;
&lt;br /&gt;
The links to the original Photoshop files that generated these skins was unfortunately lost...&lt;br /&gt;
&lt;br /&gt;
== Meshed Bento Avatars: Ruth2 (female) and Roth2 (male) ==&lt;br /&gt;
&lt;br /&gt;
This is an ongoing effort of designing a female and a male avatar mesh, respecting the new Bento guidelines (introduced ''circa'' 2016) while still remaining faithful to the original avatar UV map designed by Linden Lab back in 2002 or so. You can get access to all the required elements to build your own system (including a HUD!) at https://github.com/RuthAndRoth/&lt;br /&gt;
&lt;br /&gt;
This is a rather extensive project and includes ''everything'' — from Blender and DAE files, rigging weights, and the diverse components required to 'assemble' a full avatar mesh from scratch — which is not for the faint of heart. The project went already through different iterations and has some 'official splits' (where independent creators added their own tweaks, some of which are ported back to the 'main' Ruth/Roth mesh system. You can also get meshed clothes, hair and other rigged avatar components from the same project.&lt;br /&gt;
&lt;br /&gt;
Fortunately, some kind soul has already packed these into convenient [[IAR Format|IAR]] files, ready to be uploaded to OpenSimulator: &lt;br /&gt;
&lt;br /&gt;
* https://github.com/RuthAndRoth/Ruth2/tree/master/Artifacts/IAR (female)&lt;br /&gt;
* https://github.com/RuthAndRoth/Roth2/tree/master/Artifacts/IAR (male)&lt;br /&gt;
&lt;br /&gt;
Note, however, despite the claims to the contrary, these files do ''not'' contain the latest-of-the-latest release meshes; at the time of writing, these IAR files were assembled in 2020.&lt;br /&gt;
&lt;br /&gt;
Also note that, while these meshes (and all the content in the Ruth2/Roth2 project) are free to use in perpetuity, they are also released under the [https://opensource.org/license/agpl-v3/ GNU Affero General Public License version 3] (aka AGPL-3.0-or-later) license. This means that you're quite welcome to use the meshes, tweak them as you wish, even sell them, and so forth, so long as you publicly publish all the modifications you've made — in other words, a very strong copyleft license. You can read a bit more about [https://www.fsf.org/bulletin/2021/fall/the-fundamentals-of-the-agplv3 AGPL on the Free Software Foundation's website] to understand why this license exists, and how it is used in practice.&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Custom_Libraries/de</id>
		<title>Custom Libraries/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Custom_Libraries/de"/>
				<updated>2025-04-15T06:49:08Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|Custom_Libraries}}{{ReleaseInfo}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Bibliotheksübersicht =&lt;br /&gt;
&lt;br /&gt;
Die Bibliothek in OpenSimulator wird in der Datei &amp;lt;tt&amp;gt;bin/inventory/Libraries.xml&amp;lt;/tt&amp;gt; beschrieben. Diese Datei definiert eine Reihe weiterer Bibliotheken, von denen jede eine Datei für Ordner und eine Datei für Inhalte besitzt. Die in &amp;lt;tt&amp;gt;Libraries.xml&amp;lt;/tt&amp;gt; beschriebenen Dateien werden bei jedem Serverstart eingelesen. (Beachte jedoch, dass der Viewer Bibliotheksinformationen zwischenspeichert. Du musst also möglicherweise den Cache im Viewer löschen, um Änderungen zu sehen.)&lt;br /&gt;
&lt;br /&gt;
Wenn du Assets zur Bibliothek deines OpenSimulator-Servers hinzufügen möchtest, gibt es zwei grundlegende Schritte: Zuerst müssen die Assets erstellt, dann die entsprechenden Inventar-XML-Dateien erzeugt werden. Die Assets enthalten Informationen über die Objekte selbst – die Geometrie von Prims, das Bild von Texturen, den Text von Notecards usw. Die Inventarobjekte sind Einträge in Ordnern, die es Benutzern ermöglichen, auf die Assets zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
Wenn du sofort importierbare Bibliotheken möchtest, sieh dir den Abschnitt [[Free Assets]] an...&lt;br /&gt;
&lt;br /&gt;
= Assets erzeugen =&lt;br /&gt;
&lt;br /&gt;
Der Server kann auch Asset-Sätze im Bulk importieren. Diese Asset-Sätze sind in der Datei &amp;lt;tt&amp;gt;bin/assets/AssetSets.xml&amp;lt;/tt&amp;gt; beschrieben. Jeder Asset-Satz hat eine eigene XML-Datei, die die Assets beschreibt, zusammen mit einer weiteren Datei, die die eigentlichen Asset-Daten enthält (Bild- oder Textdaten). Du kannst neue Asset-Sätze definieren und deren XML-Dateien zu &amp;lt;tt&amp;gt;AssetSets.xml&amp;lt;/tt&amp;gt; hinzufügen. Wenn Robust (im Grid-Modus) oder OpenSimulator (im Standalone-Modus) startet, prüft es die &amp;lt;tt&amp;gt;AssetSets.xml&amp;lt;/tt&amp;gt; und importiert alle Assets, die noch nicht im Asset-Store vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
== Assets mit dem Viewer erzeugen ==&lt;br /&gt;
&lt;br /&gt;
Die einfachste Methode zur Asset-Erstellung besteht darin, sie direkt in-world zu erzeugen oder über den Viewer hochzuladen. In diesem Fall ist kein Asset-Set notwendig.&lt;br /&gt;
&lt;br /&gt;
== Im Bulk-Verfahren ==&lt;br /&gt;
&lt;br /&gt;
Wenn du Assets im Bulk erzeugen möchtest, musst du dein eigenes Asset-Set definieren. Schau dir bestehende Einträge in &amp;lt;tt&amp;gt;AssetSets.xml&amp;lt;/tt&amp;gt; an, um ein Gefühl für das Format zu bekommen.&lt;br /&gt;
&lt;br /&gt;
Praktisch betrachtet kannst du derzeit nur LSL-Skripte, Notecards und Texturen auf diese Weise importieren. Es gibt zwei Schritte: Zuerst müssen die Assets in das richtige Format gebracht werden. Zweitens müssen die XML-Dateien für die Assets erstellt werden.&lt;br /&gt;
&lt;br /&gt;
=== Assets in das richtige Format bringen ===&lt;br /&gt;
&lt;br /&gt;
Notecards und LSL-Dateien sind einfache Textdateien.&lt;br /&gt;
&lt;br /&gt;
Bilder müssen eine Seitenlänge haben, die eine Zweierpotenz ist, d.h. Breite und Höhe müssen eine der folgenden Größen sein: 16, 32, 64, 128, 256, 512 oder 1024. Sie müssen im JPEG2000-Format (.j2k) vorliegen. Mit den [http://www.openjpeg.org/ OpenJPEG]-Tools kannst du Bilder in das richtige Format konvertieren. Beachte, dass Version 1.3 der OpenJPEG-Bibliothek keine Graustufenbilder oder Transparenz unterstützt. Ab Revision 824 im OpenJPEG-SVN-Archiv werden Transparenz und PNG-Dateien unterstützt. Es lohnt sich also, eine neuere Version [http://code.google.com/p/openjpeg/source/checkout aus dem SVN-Archiv] zu kompilieren, bis eine offizielle Version diese Funktionen enthält.&lt;br /&gt;
&lt;br /&gt;
Um eine Bilddatei zu konvertieren:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;image_to_j2k -i ''inputfile'' -o ''outputbase''.j2k -r 100,30,10&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Hinweis zur Kompression: Die Werte nach „-r“ sind Kompressionsraten. Wenn du ein Bild über den Viewer hochlädst (z.B. mit Imprudence), werden in der Regel folgende Raten verwendet: 1920,480,120,30,10. Höhere Zahlen bedeuten stärkere Kompression und daher unschärfere Bilder. Der Vorteil mehrerer Kompressionsstufen ist, dass zunächst die niedrig aufgelösten Daten übertragen werden – was ein schnelles, wenn auch verschwommenes Vorschaubild ermöglicht. Eine Rate von 1 ist verlustfrei, verbraucht jedoch viel Speicherplatz und Bandbreite. Eine niedrigste Rate von 10 ist für die meisten Zwecke ausreichend. Für Sculpt Maps oder sehr präzise Texturen kann auch eine Rate von 1 sinnvoll sein.&lt;br /&gt;
&lt;br /&gt;
Es gibt zwei Skripte zur Massenkonvertierung – ein [[jp2 batch converter|Linux-Skript]] und ein [[Jp2 batch converter for windows|Windows-Skript]] in Perl. Diese verwenden ImageMagick und image_to_j2k zur Größenanpassung und Konvertierung in das j2k-Format (trotzdem mit der Endung .jp2, da der Viewer dies erwartet). Aber Vorsicht:&lt;br /&gt;
&lt;br /&gt;
* Das Skript ''löscht'' deine Originaldateien.&lt;br /&gt;
* Das Skript ''prüft nicht auf Fehler''. Wenn die Konvertierung fehlschlägt, wird das Bild trotzdem gelöscht. Das kann frustrierend sein, wenn du keine Sicherung gemacht hast.&lt;br /&gt;
* Das Skript nutzt die Kompressionsraten 20,10,1 – gut für Viewer-Bilder, schlecht für serverseitige Bilder, da die verlustfreie Kompression viel Speicher benötigt.&lt;br /&gt;
&lt;br /&gt;
Vielleicht gibt es irgendwann ein besseres Skript...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Python-Skript siehe Originaltext&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Asset-Set-XML-Dateien erstellen ===&lt;br /&gt;
&lt;br /&gt;
Wenn alle Assets im richtigen Format sind, musst du eine AssetSet-XML-Datei erstellen. Lege dazu ein Unterverzeichnis in &amp;lt;tt&amp;gt;bin/assets&amp;lt;/tt&amp;gt; an, z. B. &amp;lt;tt&amp;gt;MyAwesomeAssetSet&amp;lt;/tt&amp;gt;. In diesem Verzeichnis erstellst du die Datei &amp;lt;tt&amp;gt;MyAwesomeAssetSet.xml&amp;lt;/tt&amp;gt;. Du kannst das Python-Skript [[updatelibrary.py]] verwenden, um diese Datei sowie die benötigten Inventar-XML-Dateien zu erstellen. Weitere Infos dazu gibt es [[#Generating_Inventory_and_Asset_Files|unten]].&lt;br /&gt;
&lt;br /&gt;
== Terrains ==&lt;br /&gt;
=== Terrain-Höhenkarte erstellen ===&lt;br /&gt;
&lt;br /&gt;
* [[Using L3DT|Eigene Terrains mit L3DT erstellen]]&lt;br /&gt;
&lt;br /&gt;
= Inventarobjekte erzeugen =&lt;br /&gt;
&lt;br /&gt;
Die Ordner, die in der Bibliothek erscheinen, sind in &amp;lt;tt&amp;gt;bin/inventory/Libraries.xml&amp;lt;/tt&amp;gt; definiert. Jede Bibliothek besteht aus zwei XML-Dateien – eine für Ordnerstruktur, eine für die Inhalte. Was du vermutlich tun willst, ist eine neue Bibliothek zu erstellen. Erstelle dafür ein Unterverzeichnis, erzeuge die zwei XML-Dateien, und füge einen Eintrag in &amp;lt;tt&amp;gt;Libraries.xml&amp;lt;/tt&amp;gt; hinzu. Fertig! (Aber sehr aufwendig – UUIDs müssen manuell generiert und eingefügt werden.)&lt;br /&gt;
&lt;br /&gt;
== Inventar- und Asset-Dateien erzeugen ==&lt;br /&gt;
&lt;br /&gt;
Das Python-Skript &amp;lt;tt&amp;gt;[[updatelibrary.py]]&amp;lt;/tt&amp;gt; kann Asset- und Inventar-XML-Dateien gleichzeitig erzeugen. Du verwaltest eine Verzeichnisstruktur mit deinen Assets und führst das Skript aus, um die XML-Dateien zu synchronisieren. (Es werden nur neue Assets hinzugefügt – nicht entfernt.)&lt;br /&gt;
&lt;br /&gt;
Vorgehen:&lt;br /&gt;
* Lege ein Asset-Set-Verzeichnis an.&lt;br /&gt;
* Ordne deine Dateien (.txt für Notecards/Skripte, .j2k für Texturen) in Ordner ein, die später den Inventarordnern entsprechen.&lt;br /&gt;
* Wähle einen Namen für deine Bibliothek und eine Kurzform ohne Leerzeichen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Du willst eine Bibliothek „My Awesome Library“ erstellen. Nutze das Verzeichnis &amp;lt;tt&amp;gt;MyAwesomeAssetSet&amp;lt;/tt&amp;gt;, darunter z. B. &amp;lt;tt&amp;gt;Textures&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Clothing&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Objects&amp;lt;/tt&amp;gt;. Dort hinein kommen die passenden Dateien.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kannst du in jedem Verzeichnis eine Datei „addassets.lis“ anlegen. Dort können vorhandene Assets aus dem Grid gelistet werden. Das Format:&lt;br /&gt;
&lt;br /&gt;
  asset_uuid  asset_type  inventory_type  Name im Inventar&lt;br /&gt;
&lt;br /&gt;
Ein Viewer wie Imprudence zeigt dir die asset_uuid. Die Typen:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Objekttyp&lt;br /&gt;
!asset_type&lt;br /&gt;
!&lt;br /&gt;
!Objekttyp&lt;br /&gt;
!asset_type&lt;br /&gt;
|-&lt;br /&gt;
|Textur&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|Notecard&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|Sound&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|LSL-Text&lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|Visitenkarte&lt;br /&gt;
|2&lt;br /&gt;
|&lt;br /&gt;
|LSL-Bytecode&lt;br /&gt;
|11&lt;br /&gt;
|-&lt;br /&gt;
|Landmarke&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|Bodypart&lt;br /&gt;
|13&lt;br /&gt;
|-&lt;br /&gt;
|Kleidung&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|Animation&lt;br /&gt;
|20&lt;br /&gt;
|-&lt;br /&gt;
|Objekt (Prim)&lt;br /&gt;
|6&lt;br /&gt;
|&lt;br /&gt;
|Geste&lt;br /&gt;
|21&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Inventory_type unterscheidet sich ggf.:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Objekttyp&lt;br /&gt;
!inventory_type&lt;br /&gt;
!&lt;br /&gt;
!Objekttyp&lt;br /&gt;
!inventory_type&lt;br /&gt;
|-&lt;br /&gt;
|Textur&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|Root-Kategorie&lt;br /&gt;
|9&lt;br /&gt;
|-&lt;br /&gt;
|Sound&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|LSL-Skript&lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|Visitenkarte&lt;br /&gt;
|2&lt;br /&gt;
|&lt;br /&gt;
|Snapshot&lt;br /&gt;
|15&lt;br /&gt;
|-&lt;br /&gt;
|Landmarke&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|Attachment&lt;br /&gt;
|17&lt;br /&gt;
|-&lt;br /&gt;
|Objekt&lt;br /&gt;
|6&lt;br /&gt;
|&lt;br /&gt;
|Wearable&lt;br /&gt;
|18&lt;br /&gt;
|-&lt;br /&gt;
|Notecard&lt;br /&gt;
|7&lt;br /&gt;
|&lt;br /&gt;
|Animation&lt;br /&gt;
|19&lt;br /&gt;
|-&lt;br /&gt;
|Kategorie&lt;br /&gt;
|8&lt;br /&gt;
|&lt;br /&gt;
|Geste&lt;br /&gt;
|20&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(Es gibt auch „None“ mit -1. Bodyparts und Kleidung = Wearables.)&lt;br /&gt;
&lt;br /&gt;
Führe das Skript aus (mit &amp;lt;tt&amp;gt;--help&amp;lt;/tt&amp;gt; für Hilfe). Es durchsucht dein Verzeichnis und ergänzt die XML-Dateien. Danach musst du nur noch &amp;lt;tt&amp;gt;inventory/Libraries.xml&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;assets/AssetSets.xml&amp;lt;/tt&amp;gt; aktualisieren. Beim nächsten Start von OpenSimulator oder Robust werden Assets und Bibliothekseinträge übernommen. Denke daran: Viewer-Cache leeren!&lt;br /&gt;
&lt;br /&gt;
== Vorsicht ==&lt;br /&gt;
&lt;br /&gt;
Bibliotheksdaten werden derzeit von der Region selbst geladen, nicht vom Inventory-Service. Daher müssen die XML-Dateien auf jedem einzelnen Region-Server vorhanden sein – nicht nur auf dem Robust-Server.&lt;br /&gt;
&lt;br /&gt;
In Zukunft sollte der Inventory-Service zentral die Bibliotheksdaten laden und an Regionen verteilen. Das erhöht die Last dort, ermöglicht aber bessere zentrale Verwaltung.&lt;br /&gt;
&lt;br /&gt;
Fragen zu &amp;lt;tt&amp;gt;[[updatelibrary.py]]&amp;lt;/tt&amp;gt; bitte an Rob Knop (rknop auf freenode, meist in opensim-dev; In-World: Prospero Frobozz).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Webinterface</id>
		<title>Webinterface</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Webinterface"/>
				<updated>2025-04-07T12:43:51Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ {{Quicklinks}} {{thirdparty}} &lt;br /&gt;
&lt;br /&gt;
{{warning|&amp;lt;!--T:16--&amp;gt; MySQL This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include: mysqli_connect(), PDO::__construct()}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Addon Modules ==&lt;br /&gt;
&lt;br /&gt;
* [[Wifi]] - A Simple Account Management Front-end&lt;br /&gt;
&lt;br /&gt;
== PHP ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot; | Name/Link&lt;br /&gt;
! License&lt;br /&gt;
! Framework/CMS&lt;br /&gt;
! Description &lt;br /&gt;
! Last update&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/vortexsystem/VortexWeb VortexWeb]&lt;br /&gt;
| MIT&lt;br /&gt;
| [https://codeigniter.com/ CodeIgniter]&lt;br /&gt;
| Web Interface that will provide the same Features as Wifi and the Second Life Account Site, includes Integretion for Payments of Regions, and For Gloebits.&lt;br /&gt;
| 2019&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?Modlos%20%28E%29 Modlos]&lt;br /&gt;
| GPLv3&lt;br /&gt;
| [http://moodle.org/ Moodle]&lt;br /&gt;
| Web Interface for [http://moodle.org/ Moodle]. This software is sister application of XoopenSim. Modlos has same functions with XoopenSim and supports cooperation with [http://www.sloodle.org Sloodle]&lt;br /&gt;
| 2016&lt;br /&gt;
|-&lt;br /&gt;
| [http://code.google.com/p/openmetaverse/wiki/SimianGrid SimianGrid]&lt;br /&gt;
| BSD&lt;br /&gt;
| [https://codeigniter.com/ CodeIgniter]&lt;br /&gt;
| A scalable, extensible, light-weight, open source persistence layer for MMOs and virtual worlds, written in PHP. &amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Note: OpenSimulator support for SimianGrid was removed in February 2020&amp;lt;/span&amp;gt; (Commit [http://opensimulator.org/viewgit/?a=commit&amp;amp;p=opensim&amp;amp;h=941b65b44a1524d39e9fe2c4e1ad0f9a9aab3f23 #941b65])&lt;br /&gt;
| 2010&lt;br /&gt;
|-&lt;br /&gt;
| [https://sourceforge.net/projects/unga/ unga]&lt;br /&gt;
| MIT&lt;br /&gt;
| [https://codeigniter.com/ CodeIgniter]&lt;br /&gt;
|  Both an UGAIM (User, Grid, Assets, Inventory, Messaging) server system and a backend for configuring that servers. Also, its modular architecture allows to create (or plug) specialized modules created in standard PHP. Last Update: 2013-05-02 . &lt;br /&gt;
| 2010&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.jopensim.com/jopensim/downloads1/category/25-joomla-3-x-compatible.html jOpenSim]&lt;br /&gt;
| GPLv2&lt;br /&gt;
| [https://www.joomla.org/ Joomla!]&lt;br /&gt;
|  Joomla! front end for OpenSimulator server, 2 modules (grid status and friends online) and a plugin (jOpenSimRegister). The component is developed and designed with opensimulator starting from v0.7.3.1 running in grid or standalone mode with MySQL as storage engine. See also the [http://wiki.jopensim.com/index.php/Main_Page jOpenSim wiki]&lt;br /&gt;
| 2019&lt;br /&gt;
|-&lt;br /&gt;
| [https://fgagod.fr OSMW]&lt;br /&gt;
| GPLv3&lt;br /&gt;
| PHP 8&lt;br /&gt;
| OpenSim Web Manager is created in PHP source on [https://github.com/Nino85Whitman/OSMW-OpenSim-Manager-Web Github]&lt;br /&gt;
| 2024&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.drupal.org/project/d4os d4os]&lt;br /&gt;
| GPLv3&lt;br /&gt;
| [https://drupal.org Drupal]&lt;br /&gt;
| Integration to control an OpenSim grid from a Drupal website&lt;br /&gt;
| 2018&lt;br /&gt;
|-&lt;br /&gt;
| [https://wordpress.org/plugins/w4os-opensimulator-web-interface/ W4OS]&lt;br /&gt;
| AGPLv3&lt;br /&gt;
| [https://wordpress.org/ WordPress]&lt;br /&gt;
| WordPress interface for OpenSimulator. Provide web avatar registration, user profiles, grid info shortocdes, blocks and widgets, login page, web assets server, popular places, destination guide... [https://github.com/GuduleLapointe/w4os/ source on GiHub], includes [https://github.com/justincc/opensimulator-helper OpenSim Helpers] (currency, helpers, in-world search, land tools, offline messages...)&lt;br /&gt;
| 2025&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ManfredAabye/oswebinterface oswebinterface]&lt;br /&gt;
| MIT&lt;br /&gt;
| [https://github.com/ManfredAabye/oswebinterface Many frameworks]&lt;br /&gt;
| This web interface is exclusively designed to bridge the communication gap between OpenSimulator and the viewer, such as Firestorm. The whole thing is designed to work with various frameworks.&lt;br /&gt;
| 2025&lt;br /&gt;
|}&lt;br /&gt;
=== See Also ===&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/flotsam/wiki/XmlRpcGroups XmlRpcGroups] - An optional module for older version of OpenSimulator, update v0.7.5 that provides a set of xmlrpc methods to manage groups. See [[Groups]] for configure information.&lt;br /&gt;
&lt;br /&gt;
* [[V2_Groups|Groups Modules V2]] - The current Groups modules for OpenSimulator, supported since v0.7.6. &lt;br /&gt;
&lt;br /&gt;
* [[Wixtd]] - archived information about a web interface for OpenSimulator that is no longer available&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Hypergrid_Security/de</id>
		<title>Hypergrid Security/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Hypergrid_Security/de"/>
				<updated>2025-04-07T12:20:41Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|Hypergrid Security}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aufgaben =&lt;br /&gt;
&lt;br /&gt;
Dieser Aufgaben-Text befindet sich in Entwicklung und sollte derzeit nicht ohne direkte Tests als verlässlich angesehen werden.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass lokale Nutzer Hypergrid-URLs zu fremden Zielen auflösen ==&lt;br /&gt;
&lt;br /&gt;
Setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[GridService]&lt;br /&gt;
AllowHypergridMapSearch = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Standard ist ebenfalls `false`.  &lt;br /&gt;
&lt;br /&gt;
Sowohl die Hauptkartensuche als auch die Adressleiste nutzen diese Einstellung, um Regions-Adressen aufzulösen. Wenn `false` gesetzt ist, werden keine Versuche unternommen, Hypergrid-Adressen aufzulösen.&lt;br /&gt;
&lt;br /&gt;
Dies verhindert möglicherweise nicht, dass Nutzer über bestehende Hyperlink-Lesezeichen teleportieren, wenn Hypergrid zuvor aktiviert war.&lt;br /&gt;
&lt;br /&gt;
Diese Einstellung sollte theoretisch weiterhin externen Nutzern den Besuch der Installation erlauben.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass Nutzer eines bestimmten UserLevels zu fremden Zielen reisen ==&lt;br /&gt;
&lt;br /&gt;
Dies wird pro UserLevel konfiguriert. Um beispielsweise gewöhnlichen lokalen Nutzern (UserLevel 0) Auslandsreisen zu verbieten, setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[UserAgentService]&lt;br /&gt;
ForeignTripsAllowed_Level_0 = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kann auch bestimmte Ziele für Nutzer freischalten, die sonst nicht reisen dürfen, oder andere für Nutzer sperren, die normalerweise überall hinreisen können. Siehe [[Hypergrid_Parameters]] für Details.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass fremde Nutzer auf den Simulator zugreifen ==&lt;br /&gt;
&lt;br /&gt;
Setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[GatekeeperService]&lt;br /&gt;
ForeignAgentsAllowed = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte lokalen Nutzern weiterhin Teleporte ins Ausland erlauben.&lt;br /&gt;
&lt;br /&gt;
Man kann auch alle Agenten von bestimmten Quell-Simulatoren über AllowExcept/DisallowExcept auf Whitelist oder Blacklist setzen. Siehe [[Hypergrid_Parameters]] für Details.&lt;br /&gt;
&lt;br /&gt;
== Bestimmte fremde Nutzer sperren ==&lt;br /&gt;
&lt;br /&gt;
Siehe [[Banning Foreign Users in Hypergrid]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Diskussion =&lt;br /&gt;
&lt;br /&gt;
**Hinweis: Dies ist eine historische Diskussion über Inhalte im Hypergrid, nicht über Sicherheitsfragen an sich.**&lt;br /&gt;
&lt;br /&gt;
Es gibt eine weit verbreitete Annahme, dass offene Grids wie OSGrid und neue Grid-Formen wie der Hypergrid inhärent unsicher sind und dass es unmöglich sein wird, eine &amp;quot;warenbasierte&amp;quot; Wirtschaft auf ihnen aufzubauen; nur abgeschottete Systeme (&amp;quot;walled gardens&amp;quot;) können gesichert werden. Dies ist sowohl wahr als auch falsch. Während es im aktuellen Zustand zutrifft, können offene Grids – unabhängig von ihrer Form – so sicher gemacht werden wie das Web. Der erste Schritt dahin ist, die Sicherheitsbedrohungen genau zu definieren und zu klären, wie sie offene/geschlossene Grids (nicht) betreffen. Gehen wir sie konkret durch, um fundierte Lösungen zu entwickeln.&lt;br /&gt;
&lt;br /&gt;
== Bösartige Clients ==&lt;br /&gt;
&lt;br /&gt;
=== CopyBots ===&lt;br /&gt;
&lt;br /&gt;
Jeder kennt den berüchtigten [http://en.wikipedia.org/wiki/CopyBot CopyBot]. Mit Bibliotheken wie [http://www.libsecondlife.org/wiki/Main_Page LibSL] (jetzt OpenMetaverse) oder durch Modifikation bestehender Viewer kann man Clients für OpenSim-Server entwickeln, die unorthodoxe Dinge tun – z.B. das Permissions-System umgehen, um Assets zu kopieren. Bots von Griefers können noch viel Schlimmeres anrichten.&lt;br /&gt;
&lt;br /&gt;
Bösartige Bots sind ein Problem für alle OpenSim-Administratoren, auch in &amp;quot;walled gardens&amp;quot;. Sie können teilweise durch exotechnische Lösungen wie Nutzungsbedingungen oder reale Klagen verhindert werden. Technisch gesehen ist die einzige Möglichkeit, Eindringlinge fernzuhalten, OpenSim hinter einer Firewall zu betreiben – wie bei jeder anderen Client/Server-Software. Falls das für Ihren Fall akzeptabel ist, tun Sie es.&lt;br /&gt;
&lt;br /&gt;
Leider schließen Firewalls auch die Öffentlichkeit aus, und die meisten OpenSim-Betreiber (selbst in &amp;quot;walled gardens&amp;quot;) wollen öffentlich erreichbar sein. In diesem Fall können technische Hürden für Bots ähnlich wie im Web implementiert werden – z.B. Human-Captchas während Login/Teleport. (Dies stoppt nur Bots, keine modifizierten Viewer, die von Menschen bedient werden.)&lt;br /&gt;
&lt;br /&gt;
Jede Hürde verringert das Risiko von Angriffen. Aber bedenken Sie: Ein ausreichend qualifizierter Angreifer wird immer Wege finden, um öffentlich zugängliche OpenSim-Instanzen zu penetrieren – egal ob Hypergrid oder &amp;quot;walled garden&amp;quot;. Das betrifft **alle** mit dem Internet verbundenen Server (Web, OpenSim etc.). Glücklicherweise sind solche Angriffe selten – sonst gäbe es das Web längst nicht mehr.&lt;br /&gt;
&lt;br /&gt;
== Bösartige Hosts ==&lt;br /&gt;
&lt;br /&gt;
=== Aktive Schadhosts ===&lt;br /&gt;
&lt;br /&gt;
Die neue Sicherheitsbedrohung durch Offenheit (die in geschlossenen Grids nicht existiert) ist die Möglichkeit, dass Nutzer Regionen mit bösartigem Code besuchen. Aktuell kann ein Schadhost ernsthafte Schäden an Nutzer-Assets verursachen:&lt;br /&gt;
&lt;br /&gt;
- Der Host erhält Ihre Session-ID und kann Inventory-Items in Ihrem Namen anfordern/kopieren – oder sogar löschen.&lt;br /&gt;
- Selbst ohne direkten Zugriff werden genutzte Items im Regions-Cache gespeichert und können dort persistent gesichert werden.&lt;br /&gt;
&lt;br /&gt;
Es gibt einfache Lösungen nach dem Prinzip &amp;quot;Schutz vor sich selbst&amp;quot;, beschrieben unter [[Hypergrid Inventory Access|hier]].&lt;br /&gt;
&lt;br /&gt;
=== Piraterie ===&lt;br /&gt;
&lt;br /&gt;
Eine weitere Bedrohung betrifft den Handel mit virtuellen Gütern. Wenn Sie etwas in Ihrem Hypergrid-OpenSim verkaufen, erhält der Käufer eine Kopie der Assets auf seinem/ihrem Asset-Server – mit den von Ihnen definierten Permissions. Bei Backend-Zugriff kann der Nutzer diese Permissions jedoch ändern ('''Piraterie'''). (Das gleiche Problem besteht bei Client-Cache-Zugriff – allerdings können so keine Skripte kopiert werden, da diese nur serverseitig interpretiert werden.)&lt;br /&gt;
&lt;br /&gt;
Dies nährt den Glauben, offene Grids seien für virtuelle Wirtschaft ungeeignet. Doch ähnliche Bedenken gab es beim Musikverkauf im Web – und iTunes wurde trotz Piraterie erfolgreich. Wer wird das &amp;quot;iTunes für virtuelle Haare, Skins und Kleidung&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
[[Category:Hypergrid]]&lt;br /&gt;
[[Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Hypergrid_Security/de</id>
		<title>Hypergrid Security/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Hypergrid_Security/de"/>
				<updated>2025-04-07T12:20:18Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|Hypergrid Security}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aufgaben =&lt;br /&gt;
&lt;br /&gt;
Dieser Aufgaben-Text befindet sich in Entwicklung und sollte derzeit nicht ohne direkte Tests als verlässlich angesehen werden.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass lokale Nutzer Hypergrid-URLs zu fremden Zielen auflösen ==&lt;br /&gt;
&lt;br /&gt;
Setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[GridService]&lt;br /&gt;
AllowHypergridMapSearch = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Standard ist ebenfalls `false`.  &lt;br /&gt;
&lt;br /&gt;
Sowohl die Hauptkartensuche als auch die Adressleiste nutzen diese Einstellung, um Regions-Adressen aufzulösen. Wenn `false` gesetzt ist, werden keine Versuche unternommen, Hypergrid-Adressen aufzulösen.&lt;br /&gt;
&lt;br /&gt;
Dies verhindert möglicherweise nicht, dass Nutzer über bestehende Hyperlink-Lesezeichen teleportieren, wenn Hypergrid zuvor aktiviert war.&lt;br /&gt;
&lt;br /&gt;
Diese Einstellung sollte theoretisch weiterhin externen Nutzern den Besuch der Installation erlauben.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass Nutzer eines bestimmten UserLevels zu fremden Zielen reisen ==&lt;br /&gt;
&lt;br /&gt;
Dies wird pro UserLevel konfiguriert. Um beispielsweise gewöhnlichen lokalen Nutzern (UserLevel 0) Auslandsreisen zu verbieten, setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[UserAgentService]&lt;br /&gt;
ForeignTripsAllowed_Level_0 = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kann auch bestimmte Ziele für Nutzer freischalten, die sonst nicht reisen dürfen, oder andere für Nutzer sperren, die normalerweise überall hinreisen können. Siehe [[Hypergrid_Parameters]] für Details.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass fremde Nutzer auf den Simulator zugreifen ==&lt;br /&gt;
&lt;br /&gt;
Setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[GatekeeperService]&lt;br /&gt;
ForeignAgentsAllowed = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte lokalen Nutzern weiterhin Teleporte ins Ausland erlauben.&lt;br /&gt;
&lt;br /&gt;
Man kann auch alle Agenten von bestimmten Quell-Simulatoren über AllowExcept/DisallowExcept auf Whitelist oder Blacklist setzen. Siehe [[Hypergrid_Parameters]] für Details.&lt;br /&gt;
&lt;br /&gt;
== Bestimmte fremde Nutzer sperren ==&lt;br /&gt;
&lt;br /&gt;
Siehe [[Banning Foreign Users in Hypergrid]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Diskussion =&lt;br /&gt;
&lt;br /&gt;
**Hinweis: Dies ist eine historische Diskussion über Inhalte im Hypergrid, nicht über Sicherheitsfragen an sich.**&lt;br /&gt;
&lt;br /&gt;
Es gibt eine weit verbreitete Annahme, dass offene Grids wie OSGrid und neue Grid-Formen wie der Hypergrid inhärent unsicher sind und dass es unmöglich sein wird, eine &amp;quot;warenbasierte&amp;quot; Wirtschaft auf ihnen aufzubauen; nur abgeschottete Systeme (&amp;quot;walled gardens&amp;quot;) können gesichert werden. Dies ist sowohl wahr als auch falsch. Während es im aktuellen Zustand zutrifft, können offene Grids – unabhängig von ihrer Form – so sicher gemacht werden wie das Web. Der erste Schritt dahin ist, die Sicherheitsbedrohungen genau zu definieren und zu klären, wie sie offene/geschlossene Grids (nicht) betreffen. Gehen wir sie konkret durch, um fundierte Lösungen zu entwickeln.&lt;br /&gt;
&lt;br /&gt;
== Bösartige Clients ==&lt;br /&gt;
&lt;br /&gt;
=== CopyBots ===&lt;br /&gt;
&lt;br /&gt;
Jeder kennt den berüchtigten [http://en.wikipedia.org/wiki/CopyBot CopyBot]. Mit Bibliotheken wie [http://www.libsecondlife.org/wiki/Main_Page LibSL] (jetzt OpenMetaverse) oder durch Modifikation bestehender Viewer kann man Clients für OpenSim-Server entwickeln, die unorthodoxe Dinge tun – z.B. das Permissions-System umgehen, um Assets zu kopieren. Bots von Griefers können noch viel Schlimmeres anrichten.&lt;br /&gt;
&lt;br /&gt;
Bösartige Bots sind ein Problem für alle OpenSim-Administratoren, auch in &amp;quot;walled gardens&amp;quot;. Sie können teilweise durch exotechnische Lösungen wie Nutzungsbedingungen oder reale Klagen verhindert werden. Technisch gesehen ist die einzige Möglichkeit, Eindringlinge fernzuhalten, OpenSim hinter einer Firewall zu betreiben – wie bei jeder anderen Client/Server-Software. Falls das für Ihren Fall akzeptabel ist, tun Sie es.&lt;br /&gt;
&lt;br /&gt;
Leider schließen Firewalls auch die Öffentlichkeit aus, und die meisten OpenSim-Betreiber (selbst in &amp;quot;walled gardens&amp;quot;) wollen öffentlich erreichbar sein. In diesem Fall können technische Hürden für Bots ähnlich wie im Web implementiert werden – z.B. Human-Captchas während Login/Teleport. (Dies stoppt nur Bots, keine modifizierten Viewer, die von Menschen bedient werden.)&lt;br /&gt;
&lt;br /&gt;
Jede Hürde verringert das Risiko von Angriffen. Aber bedenken Sie: Ein ausreichend qualifizierter Angreifer wird immer Wege finden, um öffentlich zugängliche OpenSim-Instanzen zu penetrieren – egal ob Hypergrid oder &amp;quot;walled garden&amp;quot;. Das betrifft **alle** mit dem Internet verbundenen Server (Web, OpenSim etc.). Glücklicherweise sind solche Angriffe selten – sonst gäbe es das Web längst nicht mehr.&lt;br /&gt;
&lt;br /&gt;
== Bösartige Hosts ==&lt;br /&gt;
&lt;br /&gt;
=== Aktive Schadhosts ===&lt;br /&gt;
&lt;br /&gt;
Die neue Sicherheitsbedrohung durch Offenheit (die in geschlossenen Grids nicht existiert) ist die Möglichkeit, dass Nutzer Regionen mit bösartigem Code besuchen. Aktuell kann ein Schadhost ernsthafte Schäden an Nutzer-Assets verursachen:&lt;br /&gt;
&lt;br /&gt;
- Der Host erhält Ihre Session-ID und kann Inventory-Items in Ihrem Namen anfordern/kopieren – oder sogar löschen.&lt;br /&gt;
- Selbst ohne direkten Zugriff werden genutzte Items im Regions-Cache gespeichert und können dort persistent gesichert werden.&lt;br /&gt;
&lt;br /&gt;
Es gibt einfache Lösungen nach dem Prinzip &amp;quot;Schutz vor sich selbst&amp;quot;, beschrieben unter [[Hypergrid Inventory Access|hier]].&lt;br /&gt;
&lt;br /&gt;
=== Piraterie ===&lt;br /&gt;
&lt;br /&gt;
Eine weitere Bedrohung betrifft den Handel mit virtuellen Gütern. Wenn Sie etwas in Ihrem Hypergrid-OpenSim verkaufen, erhält der Käufer eine Kopie der Assets auf seinem/ihrem Asset-Server – mit den von Ihnen definierten Permissions. Bei Backend-Zugriff kann der Nutzer diese Permissions jedoch ändern ('''Piraterie'''). (Das gleiche Problem besteht bei Client-Cache-Zugriff – allerdings können so keine Skripte kopiert werden, da diese nur serverseitig interpretiert werden.)&lt;br /&gt;
&lt;br /&gt;
Dies nährt den Glauben, offene Grids seien für virtuelle Wirtschaft ungeeignet. Doch ähnliche Bedenken gab es beim Musikverkauf im Web – und iTunes wurde trotz Piraterie erfolgreich. Wer wird das &amp;quot;iTunes für virtuelle Haare, Skins und Kleidung&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
[[Category:Hypergrid]]&lt;br /&gt;
[[:Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Hypergrid_Security/de</id>
		<title>Hypergrid Security/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Hypergrid_Security/de"/>
				<updated>2025-04-07T12:19:26Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|Hypergrid Security}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aufgaben =&lt;br /&gt;
&lt;br /&gt;
Dieser Aufgaben-Text befindet sich in Entwicklung und sollte derzeit nicht ohne direkte Tests als verlässlich angesehen werden.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass lokale Nutzer Hypergrid-URLs zu fremden Zielen auflösen ==&lt;br /&gt;
&lt;br /&gt;
Setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[GridService]&lt;br /&gt;
AllowHypergridMapSearch = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Standard ist ebenfalls `false`.  &lt;br /&gt;
&lt;br /&gt;
Sowohl die Hauptkartensuche als auch die Adressleiste nutzen diese Einstellung, um Regions-Adressen aufzulösen. Wenn `false` gesetzt ist, werden keine Versuche unternommen, Hypergrid-Adressen aufzulösen.&lt;br /&gt;
&lt;br /&gt;
Dies verhindert möglicherweise nicht, dass Nutzer über bestehende Hyperlink-Lesezeichen teleportieren, wenn Hypergrid zuvor aktiviert war.&lt;br /&gt;
&lt;br /&gt;
Diese Einstellung sollte theoretisch weiterhin externen Nutzern den Besuch der Installation erlauben.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass Nutzer eines bestimmten UserLevels zu fremden Zielen reisen ==&lt;br /&gt;
&lt;br /&gt;
Dies wird pro UserLevel konfiguriert. Um beispielsweise gewöhnlichen lokalen Nutzern (UserLevel 0) Auslandsreisen zu verbieten, setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[UserAgentService]&lt;br /&gt;
ForeignTripsAllowed_Level_0 = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kann auch bestimmte Ziele für Nutzer freischalten, die sonst nicht reisen dürfen, oder andere für Nutzer sperren, die normalerweise überall hinreisen können. Siehe [[Hypergrid_Parameters]] für Details.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass fremde Nutzer auf den Simulator zugreifen ==&lt;br /&gt;
&lt;br /&gt;
Setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[GatekeeperService]&lt;br /&gt;
ForeignAgentsAllowed = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte lokalen Nutzern weiterhin Teleporte ins Ausland erlauben.&lt;br /&gt;
&lt;br /&gt;
Man kann auch alle Agenten von bestimmten Quell-Simulatoren über AllowExcept/DisallowExcept auf Whitelist oder Blacklist setzen. Siehe [[Hypergrid_Parameters]] für Details.&lt;br /&gt;
&lt;br /&gt;
== Bestimmte fremde Nutzer sperren ==&lt;br /&gt;
&lt;br /&gt;
Siehe [[Banning Foreign Users in Hypergrid]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Diskussion =&lt;br /&gt;
&lt;br /&gt;
**Hinweis: Dies ist eine historische Diskussion über Inhalte im Hypergrid, nicht über Sicherheitsfragen an sich.**&lt;br /&gt;
&lt;br /&gt;
Es gibt eine weit verbreitete Annahme, dass offene Grids wie OSGrid und neue Grid-Formen wie der Hypergrid inhärent unsicher sind und dass es unmöglich sein wird, eine &amp;quot;warenbasierte&amp;quot; Wirtschaft auf ihnen aufzubauen; nur abgeschottete Systeme (&amp;quot;walled gardens&amp;quot;) können gesichert werden. Dies ist sowohl wahr als auch falsch. Während es im aktuellen Zustand zutrifft, können offene Grids – unabhängig von ihrer Form – so sicher gemacht werden wie das Web. Der erste Schritt dahin ist, die Sicherheitsbedrohungen genau zu definieren und zu klären, wie sie offene/geschlossene Grids (nicht) betreffen. Gehen wir sie konkret durch, um fundierte Lösungen zu entwickeln.&lt;br /&gt;
&lt;br /&gt;
== Bösartige Clients ==&lt;br /&gt;
&lt;br /&gt;
=== CopyBots ===&lt;br /&gt;
&lt;br /&gt;
Jeder kennt den berüchtigten [http://en.wikipedia.org/wiki/CopyBot CopyBot]. Mit Bibliotheken wie [http://www.libsecondlife.org/wiki/Main_Page LibSL] (jetzt OpenMetaverse) oder durch Modifikation bestehender Viewer kann man Clients für OpenSim-Server entwickeln, die unorthodoxe Dinge tun – z.B. das Permissions-System umgehen, um Assets zu kopieren. Bots von Griefers können noch viel Schlimmeres anrichten.&lt;br /&gt;
&lt;br /&gt;
Bösartige Bots sind ein Problem für alle OpenSim-Administratoren, auch in &amp;quot;walled gardens&amp;quot;. Sie können teilweise durch exotechnische Lösungen wie Nutzungsbedingungen oder reale Klagen verhindert werden. Technisch gesehen ist die einzige Möglichkeit, Eindringlinge fernzuhalten, OpenSim hinter einer Firewall zu betreiben – wie bei jeder anderen Client/Server-Software. Falls das für Ihren Fall akzeptabel ist, tun Sie es.&lt;br /&gt;
&lt;br /&gt;
Leider schließen Firewalls auch die Öffentlichkeit aus, und die meisten OpenSim-Betreiber (selbst in &amp;quot;walled gardens&amp;quot;) wollen öffentlich erreichbar sein. In diesem Fall können technische Hürden für Bots ähnlich wie im Web implementiert werden – z.B. Human-Captchas während Login/Teleport. (Dies stoppt nur Bots, keine modifizierten Viewer, die von Menschen bedient werden.)&lt;br /&gt;
&lt;br /&gt;
Jede Hürde verringert das Risiko von Angriffen. Aber bedenken Sie: Ein ausreichend qualifizierter Angreifer wird immer Wege finden, um öffentlich zugängliche OpenSim-Instanzen zu penetrieren – egal ob Hypergrid oder &amp;quot;walled garden&amp;quot;. Das betrifft **alle** mit dem Internet verbundenen Server (Web, OpenSim etc.). Glücklicherweise sind solche Angriffe selten – sonst gäbe es das Web längst nicht mehr.&lt;br /&gt;
&lt;br /&gt;
== Bösartige Hosts ==&lt;br /&gt;
&lt;br /&gt;
=== Aktive Schadhosts ===&lt;br /&gt;
&lt;br /&gt;
Die neue Sicherheitsbedrohung durch Offenheit (die in geschlossenen Grids nicht existiert) ist die Möglichkeit, dass Nutzer Regionen mit bösartigem Code besuchen. Aktuell kann ein Schadhost ernsthafte Schäden an Nutzer-Assets verursachen:&lt;br /&gt;
&lt;br /&gt;
- Der Host erhält Ihre Session-ID und kann Inventory-Items in Ihrem Namen anfordern/kopieren – oder sogar löschen.&lt;br /&gt;
- Selbst ohne direkten Zugriff werden genutzte Items im Regions-Cache gespeichert und können dort persistent gesichert werden.&lt;br /&gt;
&lt;br /&gt;
Es gibt einfache Lösungen nach dem Prinzip &amp;quot;Schutz vor sich selbst&amp;quot;, beschrieben unter [[Hypergrid Inventory Access|hier]].&lt;br /&gt;
&lt;br /&gt;
=== Piraterie ===&lt;br /&gt;
&lt;br /&gt;
Eine weitere Bedrohung betrifft den Handel mit virtuellen Gütern. Wenn Sie etwas in Ihrem Hypergrid-OpenSim verkaufen, erhält der Käufer eine Kopie der Assets auf seinem/ihrem Asset-Server – mit den von Ihnen definierten Permissions. Bei Backend-Zugriff kann der Nutzer diese Permissions jedoch ändern ('''Piraterie'''). (Das gleiche Problem besteht bei Client-Cache-Zugriff – allerdings können so keine Skripte kopiert werden, da diese nur serverseitig interpretiert werden.)&lt;br /&gt;
&lt;br /&gt;
Dies nährt den Glauben, offene Grids seien für virtuelle Wirtschaft ungeeignet. Doch ähnliche Bedenken gab es beim Musikverkauf im Web – und iTunes wurde trotz Piraterie erfolgreich. Wer wird das &amp;quot;iTunes für virtuelle Haare, Skins und Kleidung&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
[[Category:Hypergrid]]&lt;br /&gt;
[[:Category:German Translations | Deutsche Seiten]]&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Hypergrid_Security/de</id>
		<title>Hypergrid Security/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Hypergrid_Security/de"/>
				<updated>2025-04-07T12:18:46Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: Created page with &amp;quot;{{Quicklinks}} &amp;lt;br /&amp;gt;  = Aufgaben =  Dieser Aufgaben-Text befindet sich in Entwicklung und sollte derzeit nicht ohne direkte Tests als verlässlich angesehen werden.  == Verhi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Aufgaben =&lt;br /&gt;
&lt;br /&gt;
Dieser Aufgaben-Text befindet sich in Entwicklung und sollte derzeit nicht ohne direkte Tests als verlässlich angesehen werden.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass lokale Nutzer Hypergrid-URLs zu fremden Zielen auflösen ==&lt;br /&gt;
&lt;br /&gt;
Setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[GridService]&lt;br /&gt;
AllowHypergridMapSearch = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Standard ist ebenfalls `false`.  &lt;br /&gt;
&lt;br /&gt;
Sowohl die Hauptkartensuche als auch die Adressleiste nutzen diese Einstellung, um Regions-Adressen aufzulösen. Wenn `false` gesetzt ist, werden keine Versuche unternommen, Hypergrid-Adressen aufzulösen.&lt;br /&gt;
&lt;br /&gt;
Dies verhindert möglicherweise nicht, dass Nutzer über bestehende Hyperlink-Lesezeichen teleportieren, wenn Hypergrid zuvor aktiviert war.&lt;br /&gt;
&lt;br /&gt;
Diese Einstellung sollte theoretisch weiterhin externen Nutzern den Besuch der Installation erlauben.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass Nutzer eines bestimmten UserLevels zu fremden Zielen reisen ==&lt;br /&gt;
&lt;br /&gt;
Dies wird pro UserLevel konfiguriert. Um beispielsweise gewöhnlichen lokalen Nutzern (UserLevel 0) Auslandsreisen zu verbieten, setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[UserAgentService]&lt;br /&gt;
ForeignTripsAllowed_Level_0 = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kann auch bestimmte Ziele für Nutzer freischalten, die sonst nicht reisen dürfen, oder andere für Nutzer sperren, die normalerweise überall hinreisen können. Siehe [[Hypergrid_Parameters]] für Details.&lt;br /&gt;
&lt;br /&gt;
== Verhindern, dass fremde Nutzer auf den Simulator zugreifen ==&lt;br /&gt;
&lt;br /&gt;
Setze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[GatekeeperService]&lt;br /&gt;
ForeignAgentsAllowed = false&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte lokalen Nutzern weiterhin Teleporte ins Ausland erlauben.&lt;br /&gt;
&lt;br /&gt;
Man kann auch alle Agenten von bestimmten Quell-Simulatoren über AllowExcept/DisallowExcept auf Whitelist oder Blacklist setzen. Siehe [[Hypergrid_Parameters]] für Details.&lt;br /&gt;
&lt;br /&gt;
== Bestimmte fremde Nutzer sperren ==&lt;br /&gt;
&lt;br /&gt;
Siehe [[Banning Foreign Users in Hypergrid]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Diskussion =&lt;br /&gt;
&lt;br /&gt;
**Hinweis: Dies ist eine historische Diskussion über Inhalte im Hypergrid, nicht über Sicherheitsfragen an sich.**&lt;br /&gt;
&lt;br /&gt;
Es gibt eine weit verbreitete Annahme, dass offene Grids wie OSGrid und neue Grid-Formen wie der Hypergrid inhärent unsicher sind und dass es unmöglich sein wird, eine &amp;quot;warenbasierte&amp;quot; Wirtschaft auf ihnen aufzubauen; nur abgeschottete Systeme (&amp;quot;walled gardens&amp;quot;) können gesichert werden. Dies ist sowohl wahr als auch falsch. Während es im aktuellen Zustand zutrifft, können offene Grids – unabhängig von ihrer Form – so sicher gemacht werden wie das Web. Der erste Schritt dahin ist, die Sicherheitsbedrohungen genau zu definieren und zu klären, wie sie offene/geschlossene Grids (nicht) betreffen. Gehen wir sie konkret durch, um fundierte Lösungen zu entwickeln.&lt;br /&gt;
&lt;br /&gt;
== Bösartige Clients ==&lt;br /&gt;
&lt;br /&gt;
=== CopyBots ===&lt;br /&gt;
&lt;br /&gt;
Jeder kennt den berüchtigten [http://en.wikipedia.org/wiki/CopyBot CopyBot]. Mit Bibliotheken wie [http://www.libsecondlife.org/wiki/Main_Page LibSL] (jetzt OpenMetaverse) oder durch Modifikation bestehender Viewer kann man Clients für OpenSim-Server entwickeln, die unorthodoxe Dinge tun – z.B. das Permissions-System umgehen, um Assets zu kopieren. Bots von Griefers können noch viel Schlimmeres anrichten.&lt;br /&gt;
&lt;br /&gt;
Bösartige Bots sind ein Problem für alle OpenSim-Administratoren, auch in &amp;quot;walled gardens&amp;quot;. Sie können teilweise durch exotechnische Lösungen wie Nutzungsbedingungen oder reale Klagen verhindert werden. Technisch gesehen ist die einzige Möglichkeit, Eindringlinge fernzuhalten, OpenSim hinter einer Firewall zu betreiben – wie bei jeder anderen Client/Server-Software. Falls das für Ihren Fall akzeptabel ist, tun Sie es.&lt;br /&gt;
&lt;br /&gt;
Leider schließen Firewalls auch die Öffentlichkeit aus, und die meisten OpenSim-Betreiber (selbst in &amp;quot;walled gardens&amp;quot;) wollen öffentlich erreichbar sein. In diesem Fall können technische Hürden für Bots ähnlich wie im Web implementiert werden – z.B. Human-Captchas während Login/Teleport. (Dies stoppt nur Bots, keine modifizierten Viewer, die von Menschen bedient werden.)&lt;br /&gt;
&lt;br /&gt;
Jede Hürde verringert das Risiko von Angriffen. Aber bedenken Sie: Ein ausreichend qualifizierter Angreifer wird immer Wege finden, um öffentlich zugängliche OpenSim-Instanzen zu penetrieren – egal ob Hypergrid oder &amp;quot;walled garden&amp;quot;. Das betrifft **alle** mit dem Internet verbundenen Server (Web, OpenSim etc.). Glücklicherweise sind solche Angriffe selten – sonst gäbe es das Web längst nicht mehr.&lt;br /&gt;
&lt;br /&gt;
== Bösartige Hosts ==&lt;br /&gt;
&lt;br /&gt;
=== Aktive Schadhosts ===&lt;br /&gt;
&lt;br /&gt;
Die neue Sicherheitsbedrohung durch Offenheit (die in geschlossenen Grids nicht existiert) ist die Möglichkeit, dass Nutzer Regionen mit bösartigem Code besuchen. Aktuell kann ein Schadhost ernsthafte Schäden an Nutzer-Assets verursachen:&lt;br /&gt;
&lt;br /&gt;
- Der Host erhält Ihre Session-ID und kann Inventory-Items in Ihrem Namen anfordern/kopieren – oder sogar löschen.&lt;br /&gt;
- Selbst ohne direkten Zugriff werden genutzte Items im Regions-Cache gespeichert und können dort persistent gesichert werden.&lt;br /&gt;
&lt;br /&gt;
Es gibt einfache Lösungen nach dem Prinzip &amp;quot;Schutz vor sich selbst&amp;quot;, beschrieben unter [[Hypergrid Inventory Access|hier]].&lt;br /&gt;
&lt;br /&gt;
=== Piraterie ===&lt;br /&gt;
&lt;br /&gt;
Eine weitere Bedrohung betrifft den Handel mit virtuellen Gütern. Wenn Sie etwas in Ihrem Hypergrid-OpenSim verkaufen, erhält der Käufer eine Kopie der Assets auf seinem/ihrem Asset-Server – mit den von Ihnen definierten Permissions. Bei Backend-Zugriff kann der Nutzer diese Permissions jedoch ändern ('''Piraterie'''). (Das gleiche Problem besteht bei Client-Cache-Zugriff – allerdings können so keine Skripte kopiert werden, da diese nur serverseitig interpretiert werden.)&lt;br /&gt;
&lt;br /&gt;
Dies nährt den Glauben, offene Grids seien für virtuelle Wirtschaft ungeeignet. Doch ähnliche Bedenken gab es beim Musikverkauf im Web – und iTunes wurde trotz Piraterie erfolgreich. Wer wird das &amp;quot;iTunes für virtuelle Haare, Skins und Kleidung&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
[[Category:Hypergrid]]&lt;br /&gt;
[[:Category:German Translations | Deutsche Seiten]]&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin/de</id>
		<title>RemoteAdmin/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin/de"/>
				<updated>2025-04-02T17:28:23Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: /* Python 3.6 RemoteAdmin nur teilweise getestet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|RemoteAdmin}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einführung ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin ist eine Schnittstelle für Simulatoren, die es ermöglicht, verschiedene Operationen von außerhalb des Simulators auszuführen. '''Operationen, die sich auf den Simulator selbst beziehen (z. B. Teleportation eines Benutzers), sind immer verfügbar. Diejenigen, die sich auf Grid-Dienste beziehen (Benutzererstellung und -aktualisierung), sind nur im Standalone-Modus verfügbar. Im Grid-Modus muss man stattdessen ROBUST-Level [[UserManipulation]]-Fähigkeiten verwenden.'''&lt;br /&gt;
&lt;br /&gt;
== Einrichtung der Remote-Admin-Schnittstelle ==&lt;br /&gt;
&lt;br /&gt;
Zunächst sollte die Remote-Admin-Schnittstelle aktiviert werden. Füge dazu einfach die folgenden Zeilen in deine OpenSim.ini-Datei ein. Der Port sollte auf einen von Null verschiedenen Wert gesetzt werden, damit RemoteAdmin auf einem anderen Port läuft.&lt;br /&gt;
&lt;br /&gt;
Seit r/16843 kannst du den Zugriff auf RemoteAdmin auf bestimmte IP-Adressen beschränken, indem du die optionale access_ip_addresses verwendest. Du kannst alle IPs auflisten, die Zugriff auf RemoteAdmin haben sollen, indem du sie durch ein Komma trennst. Falls access_ip_addresses nicht gesetzt ist, können alle IP-Adressen auf RemoteAdmin zugreifen.&lt;br /&gt;
&lt;br /&gt;
Du kannst auch einen anderen Port für den XMLRPCAdmin-Befehlshörer festlegen, der sich vom Standard-Simulator-HTTP-Port unterscheidet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
  [RemoteAdmin]&lt;br /&gt;
    ;; This is the remote admin module, which uses XMLRPC requests to&lt;br /&gt;
    ;; manage regions from a web interface.&lt;br /&gt;
  &lt;br /&gt;
    ;# {enabled} {} {Enable the remote admin interface?} {true false} false&lt;br /&gt;
    enabled = true&lt;br /&gt;
  &lt;br /&gt;
    ;# {port} {enabled:true} {Port to use for the remote admin interface? (0 = default)} {} 0&lt;br /&gt;
    ;; Set this to a nonzero value to have remote admin use a different port&lt;br /&gt;
    port = 10000&lt;br /&gt;
  &lt;br /&gt;
    ;# {access_password} {enabled:true} {Password for the remote admin interface} {}&lt;br /&gt;
    ;; This password is required to make any XMLRPC call (should be set as&lt;br /&gt;
    ;; the &amp;quot;password&amp;quot; parameter)&lt;br /&gt;
    access_password = &amp;quot;passwd123&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    ;# {access_ip_addresses} {enabled:true} {List the IP addresses allowed to call RemoteAdmin?} {}&lt;br /&gt;
    ;; List the IP addresses allowed to call RemoteAdmin&lt;br /&gt;
    ;; If access_ip_addresses isn't set, then all IP addresses can access RemoteAdmin.&lt;br /&gt;
    ;; access_ip_addresses = 0.0.0.0, 0.0.0.0 ...&lt;br /&gt;
    ; access_ip_addresses =&lt;br /&gt;
  &lt;br /&gt;
    ;# {create_region_enable_voice} {enabled:true} {Enable voice for newly created regions?} {true false} false&lt;br /&gt;
    ;; set this variable to true if you want the create_region XmlRpc&lt;br /&gt;
    ;; call to unconditionally enable voice on all parcels for a newly&lt;br /&gt;
    ;; created region&lt;br /&gt;
    ; create_region_enable_voice = false&lt;br /&gt;
  &lt;br /&gt;
    ;# {create_region_public} {enabled:true} {Make newly created regions public?} {true false} false&lt;br /&gt;
    ;; set this variable to false if you want the create_region XmlRpc&lt;br /&gt;
    ;; call to create all regions as private per default (can be&lt;br /&gt;
    ;; overridden in the XmlRpc call)&lt;br /&gt;
    ; create_region_public = false&lt;br /&gt;
  &lt;br /&gt;
    ;# {enabled_methods} {enabled:true} {List of methods to allow, separated by |} {} all&lt;br /&gt;
    ;; enable only those methods you deem to be appropriate using a | delimited&lt;br /&gt;
    ;; whitelist.&lt;br /&gt;
    ;; For example:&lt;br /&gt;
    ;; enabled_methods = admin_broadcast|admin_save_oar|admin_save_xml&lt;br /&gt;
    ;; if this parameter is not specified but enabled = true, all methods&lt;br /&gt;
    ;; will be available&lt;br /&gt;
    enabled_methods = all&lt;br /&gt;
  &lt;br /&gt;
    ;; specify the default appearance for an avatar created through the remote&lt;br /&gt;
    ;; admin interface&lt;br /&gt;
    ;; This will only take effect is the file specified by the&lt;br /&gt;
    ;; default_appearance setting below exists&lt;br /&gt;
    ; default_male = Default Male&lt;br /&gt;
    ; default_female = Default Female&lt;br /&gt;
  &lt;br /&gt;
    ;; Update appearance copies inventory items and wearables of default&lt;br /&gt;
    ;; avatars. if this value is false, just worn assets are copied to the&lt;br /&gt;
    ;; Clothes folder; if true, all Clothes and Bodyparts subfolders are copied.&lt;br /&gt;
    ;; The receiver will wear the same items the default avatar did wear.&lt;br /&gt;
    ; copy_folders = false&lt;br /&gt;
  &lt;br /&gt;
    ;; Path to default appearance XML file that specifies the look of the&lt;br /&gt;
    ;; default avatars&lt;br /&gt;
    ; default_appearance = default_appearance.xml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Siehe OpenSim.ini.example im opensim/bin/ Verzeichnis für weitere Details.&lt;br /&gt;
&lt;br /&gt;
== PHP Beispiele ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdminTest.php (ACHTUNG: $params nicht $parameters BEACHTEN!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Dieses Beispiel gibt eine Meldung heraus und fährt OpenSim herunter&lt;br /&gt;
//&lt;br /&gt;
// admin_broadcast ist das kommando für Nachrichten&lt;br /&gt;
// $params hier wird die Meldung hineingeschrieben&lt;br /&gt;
// &lt;br /&gt;
// Das Kommando admin_shutdown fährt OpenSim herunter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include('RemoteAdmin.php'); // RemoteAdmin.php Ist der Name der PHP-Klasse&lt;br /&gt;
&lt;br /&gt;
// Instanzieren der Klasse (IP oder Adresse, Port, Passwort)&lt;br /&gt;
$myRA = new RemoteAdmin('127.0.0.1', 9000, 'secret');&lt;br /&gt;
&lt;br /&gt;
// RemoteAdmin-Befehle ausführen&lt;br /&gt;
$params = array('message' =&amp;gt; 'Diese Nachricht wird an alle Regionen des OpenSimulators gesendet!');&lt;br /&gt;
&lt;br /&gt;
$myRA-&amp;gt;SendCommand('admin_broadcast', $params);&lt;br /&gt;
&lt;br /&gt;
// Wenn für einen RemoteAdmin-Befehl keine Parameter benötigt, &lt;br /&gt;
// müssen Sie den zweiten Parameter in der Funktion SendCommand nicht angeben.&lt;br /&gt;
$myRA-&amp;gt;SendCommand('admin_shutdown'); &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	&lt;br /&gt;
/***********************************************************************&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
Copyright (c) 2008, The New World Grid Regents http://www.newworldgrid.com and Contributors &lt;br /&gt;
All rights reserved.&lt;br /&gt;
&lt;br /&gt;
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:&lt;br /&gt;
&lt;br /&gt;
	* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.&lt;br /&gt;
	* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer &lt;br /&gt;
	in the documentation and/or other materials provided with the distribution.&lt;br /&gt;
	* Neither the name of the New World Grid nor the names of its contributors may be used to endorse or promote products derived &lt;br /&gt;
	from this software without specific prior written permission.&lt;br /&gt;
&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, &lt;br /&gt;
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. &lt;br /&gt;
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, &lt;br /&gt;
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; &lt;br /&gt;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE &lt;br /&gt;
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
***********************************************************************/&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// How to instantiate a RemoteAdmin object ?&lt;br /&gt;
	// $myremoteadmin = new RemoteAdmin(&amp;quot;mySimulatorURL&amp;quot;, Port, &amp;quot;secret password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// How to send commands to remoteadmin plugin ?&lt;br /&gt;
	// $myremoteadmin-&amp;gt;SendCommand('admin_broadcast', array('message' =&amp;gt; 'Message to broadcast to all regions'));&lt;br /&gt;
	// $myremoteadmin-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
	// Commands like admin_shutdown don't need params, so you can left the second SendCommand functino param empty ;)&lt;br /&gt;
	&lt;br /&gt;
	// Example for error handling&lt;br /&gt;
	// &lt;br /&gt;
	// include('classes/RemoteAdmin.php');&lt;br /&gt;
	// $RA = new RemoteAdmin('localhost', 9000, 'secret');&lt;br /&gt;
	// $retour = $RA-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
	// if ($retour === FALSE)&lt;br /&gt;
	// {&lt;br /&gt;
	// 	echo 'ERROR';&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	class RemoteAdmin&lt;br /&gt;
	{&lt;br /&gt;
		&lt;br /&gt;
		function RemoteAdmin($sURL, $sPort, $pass)&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			$this-&amp;gt;simulatorURL = $sURL;		// String&lt;br /&gt;
			$this-&amp;gt;simulatorPort = $sPort;	// Integer&lt;br /&gt;
			$this-&amp;gt;password = $pass;&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		function SendCommand($command, $params=array())&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			$paramsNames = array_keys($params);&lt;br /&gt;
			$paramsValues = array_values($params);&lt;br /&gt;
			&lt;br /&gt;
			// Building the XML data to pass to RemoteAdmin through XML-RPC ;)&lt;br /&gt;
			&lt;br /&gt;
			$xml = '&amp;lt;methodCall&amp;gt;&lt;br /&gt;
						&amp;lt;methodName&amp;gt;' . htmlspecialchars($command) . '&amp;lt;/methodName&amp;gt;&lt;br /&gt;
						&amp;lt;params&amp;gt;&lt;br /&gt;
							&amp;lt;param&amp;gt;&lt;br /&gt;
								&amp;lt;value&amp;gt;&lt;br /&gt;
									&amp;lt;struct&amp;gt;&lt;br /&gt;
										&amp;lt;member&amp;gt;&lt;br /&gt;
											&amp;lt;name&amp;gt;password&amp;lt;/name&amp;gt;&lt;br /&gt;
											&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;' . htmlspecialchars($this-&amp;gt;password) . '&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
										&amp;lt;/member&amp;gt;';&lt;br /&gt;
			if (count($params) != 0)&lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				for ($p = 0; $p &amp;lt; count($params); $p++)&lt;br /&gt;
				{&lt;br /&gt;
					&lt;br /&gt;
					$xml .= '&amp;lt;member&amp;gt;&amp;lt;name&amp;gt;' . htmlspecialchars($paramsNames[$p]) . '&amp;lt;/name&amp;gt;';&lt;br /&gt;
					$xml .= '&amp;lt;value&amp;gt;' . htmlspecialchars($paramsValues[$p]) . '&amp;lt;/value&amp;gt;&amp;lt;/member&amp;gt;';&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
									&lt;br /&gt;
			$xml .= '				&amp;lt;/struct&amp;gt;&lt;br /&gt;
								&amp;lt;/value&amp;gt;&lt;br /&gt;
							&amp;lt;/param&amp;gt;&lt;br /&gt;
						&amp;lt;/params&amp;gt;&lt;br /&gt;
					&amp;lt;/methodCall&amp;gt;';&lt;br /&gt;
				&lt;br /&gt;
			//&lt;br /&gt;
			// echo $xml;&lt;br /&gt;
			//&lt;br /&gt;
				&lt;br /&gt;
					&lt;br /&gt;
			// Now building headers and sending the data ;)&lt;br /&gt;
			$host = $this-&amp;gt;simulatorURL;&lt;br /&gt;
			$port = $this-&amp;gt;simulatorPort;&lt;br /&gt;
			$timeout = 5; // Timeout in seconds&lt;br /&gt;
			&lt;br /&gt;
			error_reporting(0);&lt;br /&gt;
			&lt;br /&gt;
			$fp = fsockopen($host, $port, $errno, $errstr, $timeout);&lt;br /&gt;
			if (!$fp)&lt;br /&gt;
			{&lt;br /&gt;
				return FALSE; // If contacting host timeouts or impossible to create the socket, the method returns FALSE&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				fputs($fp, &amp;quot;POST / HTTP/1.1\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Host: $host\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Content-type: text/xml\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Content-length: &amp;quot;. strlen($xml) .&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Connection: close\r\n\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, $xml);&lt;br /&gt;
				$res = &amp;quot;&amp;quot;;&lt;br /&gt;
				while(!feof($fp)) {&lt;br /&gt;
					$res .= fgets($fp, 128);&lt;br /&gt;
				}&lt;br /&gt;
				fclose($fp);&lt;br /&gt;
				$response = substr($res, strpos($res, &amp;quot;\r\n\r\n&amp;quot;));;&lt;br /&gt;
						&lt;br /&gt;
				// Now parsing the XML response from RemoteAdmin ;)&lt;br /&gt;
				&lt;br /&gt;
				$result = array();&lt;br /&gt;
				if (preg_match_all('#&amp;lt;name&amp;gt;(.+)&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;&amp;lt;(string|int)&amp;gt;(.*)&amp;lt;/\2&amp;gt;&amp;lt;/value&amp;gt;#U', $response, $regs, PREG_SET_ORDER)) {&lt;br /&gt;
				  foreach($regs as $key=&amp;gt;$val) {&lt;br /&gt;
					$result[$val[1]] = $val[3];&lt;br /&gt;
				  }&lt;br /&gt;
				}&lt;br /&gt;
				return $result;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
		&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Python 3.6 Beispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 Beispiel - admin_broadcast -  ===&lt;br /&gt;
&lt;br /&gt;
Dieser Python 3.6 Beitrag ist ein User Projekt, es wird kein Support über die Admins geben.&lt;br /&gt;
&lt;br /&gt;
Bitte seit vorsichtig, ich schließe jede Gewährleistung aus.&lt;br /&gt;
&lt;br /&gt;
Ohne Programmierkenntnisse oder unsachgemäßer Anwendung, kann es zu Schäden am OpenSimulator oder/und dem Betriebssystem kommen.&lt;br /&gt;
&lt;br /&gt;
Faustregel: Wenn ihr nicht sicher seit, ob ihr gesichert habt, dann sichert.&lt;br /&gt;
&lt;br /&gt;
Dies ist zuletzt getestet am 23.04.2018 mit Python 3.6.3 auf Windows 10 und Ubuntu Server 17.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
 &lt;br /&gt;
# admin_broadcast senden einer Nachricht an alle in einer Region.&lt;br /&gt;
# Python 3.6 - 21.04.2018 by Manfred Aabye&lt;br /&gt;
 &lt;br /&gt;
# Module laden&lt;br /&gt;
import xmlrpc.client &lt;br /&gt;
 &lt;br /&gt;
# Information&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('Setup: Opensim.ini - Del ; - ConsoleUser -  ConsolePass')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('Beispiel:')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('SimulatorAdress = http://127.0.0.1:9000/ or http://myserver.com:9000/')&lt;br /&gt;
print('ConsoleUser = Test')&lt;br /&gt;
print('ConsolePass = secret')&lt;br /&gt;
print('RegionMessage = Dies ist ein toller Text an einem tollen Tag.')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
&lt;br /&gt;
# Abfragen&lt;br /&gt;
SimulatorAdress = input('SimulatorAdress:')&lt;br /&gt;
ConsoleUser = input('ConsoleUser:')&lt;br /&gt;
ConsolePass = input('ConsolePass:')&lt;br /&gt;
RegionMessage = input('RegionMessage:')&lt;br /&gt;
# Eingabe kann X Belibig geaendert werden RegionMessage = input('RegionMessage:') - X_Belibig = input('geben sie etwas fuer X_Belibig ein:')&lt;br /&gt;
# X_Belibig ist die Speicherstelle von input, der Text innerhalb der Klammern ist nur ein Text.&lt;br /&gt;
 &lt;br /&gt;
# Funktion admin_broadcast&lt;br /&gt;
def admin_broadcast():&lt;br /&gt;
    # Server Initialisieren &lt;br /&gt;
    Simulator = xmlrpc.client.Server(SimulatorAdress) &lt;br /&gt;
    # Password und Nachricht senden RegionMessage. Hier funktionieren auch alle anderen admin_ Befehle.&lt;br /&gt;
    # Bitte nicht vergessen auch die Eingabe zu aendern&lt;br /&gt;
    Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
 &lt;br /&gt;
# admin_broadcast Aufruf dieser kann nun an irgendeiner stelle aufgerufen werden. &lt;br /&gt;
admin_broadcast()&lt;br /&gt;
 &lt;br /&gt;
# Ende admin_broadcast&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 RemoteAdmin nur teilweise getestet ===&lt;br /&gt;
&lt;br /&gt;
Dies basiert auf dem Python 3.6 Beispiel - admin_broadcast – und soll die Erweiterung/Veränderung des source vereinfachen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    # Agent Management&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_teleport_agent({'password':ConsolePass,'agent_first_name':agent_first_name,'agent_last_name':agent_last_name,'region_name':region_name, 'pos_x':pos_x, 'pos_y':pos_y})&lt;br /&gt;
    Simulator.admin_get_agents({'password':ConsolePass,'region_name':region_name,'Regions-ID':Regions-ID})&lt;br /&gt;
&lt;br /&gt;
    # Benutzerkontenverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_create_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname,'user_password':user_password,'start_region_x':start_region_x,'start_region_y':start_region_y,'user_email':user_email})&lt;br /&gt;
    # Simulator.admin_create_user_email dies ist jetzt in admin_create_user enthalten.&lt;br /&gt;
    Simulator.admin_exists_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname})&lt;br /&gt;
    Simulator.admin_update_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname})&lt;br /&gt;
    Simulator.admin_authenticate_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname,'user_password':user_password,'token_lifetime':token_lifetime})&lt;br /&gt;
&lt;br /&gt;
    # Region Management&lt;br /&gt;
&lt;br /&gt;
    Simulator.Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
    Simulator.admin_close_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_create_region({'password':ConsolePass,'region_name':region_name,'listen_ip':listen_ip,'listen_port':listen_port,'external_address':external_address,'region_x':region_x,'region_y':region_y,'estate_name':estate_name})&lt;br /&gt;
    Simulator.admin_delete_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_modify_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_region_query({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_restart({'password':ConsolePass,'region_id':region_id})&lt;br /&gt;
    Simulator.admin_shutdown({'password':ConsolePass,'milliseconds':milliseconds})&lt;br /&gt;
&lt;br /&gt;
    # Region Dateiverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_load_heightmap({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_load_oar({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_load_xml({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_heightmap({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_oar({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_xml({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
&lt;br /&gt;
    # Region Zugangsmanagement&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_acl_list({'password': ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_acl_clear({'password': ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_acl_add({'password': ConsolePass,'region_name':region_name,'users':users})&lt;br /&gt;
    Simulator.admin_acl_remove({'password': ConsolePass,'region_name':region_name,'users':users})&lt;br /&gt;
&lt;br /&gt;
    # Estate Immobilienverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_estate_reload({'password':ConsolePass})&lt;br /&gt;
&lt;br /&gt;
    # Administrationskonsole&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_console_command({'password':ConsolePass,'console_command':console_command})&lt;br /&gt;
&lt;br /&gt;
    # Verschiedenes &lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_dialog({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Befehle ==&lt;br /&gt;
&lt;br /&gt;
Alle Befehlsparameter die UUID einer Region nutzen &amp;quot;region_id&amp;quot; als Parameter.&lt;br /&gt;
&lt;br /&gt;
=== Agentenverwaltung ===&lt;br /&gt;
*[[Remoteadmin:admin teleport agent|admin_teleport_agent]]&lt;br /&gt;
*[[Remoteadmin:admin get agents|admin_get_agents]]&lt;br /&gt;
&lt;br /&gt;
=== Benutzerkontenverwaltung ===&lt;br /&gt;
*[[RemoteAdmin:admin create user|admin_create_user]] &lt;br /&gt;
*[[RemoteAdmin:admin create user email|admin_create_user_email]] &lt;br /&gt;
*[[RemoteAdmin:admin exists user|admin_exists_user]] &lt;br /&gt;
*[[RemoteAdmin:admin update user|admin_update_user]]&lt;br /&gt;
*[[RemoteAdmin:admin authenticate user|admin_authenticate_user]]&lt;br /&gt;
&lt;br /&gt;
=== Objektverwaltung ===&lt;br /&gt;
&lt;br /&gt;
=== Parzellenverwaltung ===&lt;br /&gt;
&lt;br /&gt;
=== Regionenverwaltung ===&lt;br /&gt;
*[[RemoteAdmin:admin broadcast|admin_broadcast]] &lt;br /&gt;
*[[RemoteAdmin:admin close region|admin_close_region]] &lt;br /&gt;
*[[RemoteAdmin:admin create region|admin_create_region]] &lt;br /&gt;
*[[RemoteAdmin:admin delete region|admin_delete_region]] &lt;br /&gt;
*[[RemoteAdmin:admin modify region|admin_modify_region]] &lt;br /&gt;
*[[RemoteAdmin:admin region query|admin_region_query]] &lt;br /&gt;
*[[RemoteAdmin:admin restart|admin_restart]] &lt;br /&gt;
*[[RemoteAdmin:admin shutdown|admin_shutdown]] &lt;br /&gt;
&lt;br /&gt;
=== Regionsdateiverwaltung ===&lt;br /&gt;
* [[RemoteAdmin:admin load heightmap|admin_load_heightmap]]&lt;br /&gt;
* [[RemoteAdmin:admin load oar|admin_load_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin load xml|admin_load_xml]] &lt;br /&gt;
* [[RemoteAdmin:admin save heightmap|admin_save_heightmap]] &lt;br /&gt;
* [[RemoteAdmin:admin save oar|admin_save_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin save xml|admin_save_xml]]&lt;br /&gt;
&lt;br /&gt;
=== Regionszugriffsverwaltung ===&lt;br /&gt;
* [[RemoteAdmin:admin acl list|admin_acl_list]] &lt;br /&gt;
* [[RemoteAdmin:admin acl clear|admin_acl_clear]] &lt;br /&gt;
* [[RemoteAdmin:admin acl add|admin_acl_add]] &lt;br /&gt;
* [[RemoteAdmin:admin acl remove|admin_acl_remove]]&lt;br /&gt;
&lt;br /&gt;
=== Grundstücksverwaltung ===&lt;br /&gt;
* [[RemoteAdmin:admin estate reload|admin_estate_reload]]&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
* [[RemoteAdmin:admin console command|admin_console_command]]&lt;br /&gt;
&lt;br /&gt;
=== Sonstiges (undokumentiert) ===&lt;br /&gt;
* [[RemoteAdmin:admin dialog|admin_dialog]]&lt;br /&gt;
* [[RemoteAdmin:admin reset land|admin_reset_land]]&lt;br /&gt;
* [[RemoteAdmin:admin refresh search|admin_refresh_search]]&lt;br /&gt;
* [[RemoteAdmin:admin refresh map|admin_refresh_map]]&lt;br /&gt;
* [[RemoteAdmin:admin get opensim version|admin_get_opensim_version]]&lt;br /&gt;
* [[RemoteAdmin:admin get agent count|admin_get_agent_count]]&lt;br /&gt;
&lt;br /&gt;
== Unterkategorien ==&lt;br /&gt;
&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Examples|RemoteAdmin Beispiele]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Proposals|RemoteAdmin Vorschläge]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Standards|RemoteAdmin Standards]]&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Implement new command|RemoteAdmin Wie man neue Befehle implementiert]]&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Class|RemoteAdmin Klasse]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:RemoteAdmin]]&lt;br /&gt;
[[Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin/de</id>
		<title>RemoteAdmin/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin/de"/>
				<updated>2025-04-02T17:26:41Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|RemoteAdmin}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einführung ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin ist eine Schnittstelle für Simulatoren, die es ermöglicht, verschiedene Operationen von außerhalb des Simulators auszuführen. '''Operationen, die sich auf den Simulator selbst beziehen (z. B. Teleportation eines Benutzers), sind immer verfügbar. Diejenigen, die sich auf Grid-Dienste beziehen (Benutzererstellung und -aktualisierung), sind nur im Standalone-Modus verfügbar. Im Grid-Modus muss man stattdessen ROBUST-Level [[UserManipulation]]-Fähigkeiten verwenden.'''&lt;br /&gt;
&lt;br /&gt;
== Einrichtung der Remote-Admin-Schnittstelle ==&lt;br /&gt;
&lt;br /&gt;
Zunächst sollte die Remote-Admin-Schnittstelle aktiviert werden. Füge dazu einfach die folgenden Zeilen in deine OpenSim.ini-Datei ein. Der Port sollte auf einen von Null verschiedenen Wert gesetzt werden, damit RemoteAdmin auf einem anderen Port läuft.&lt;br /&gt;
&lt;br /&gt;
Seit r/16843 kannst du den Zugriff auf RemoteAdmin auf bestimmte IP-Adressen beschränken, indem du die optionale access_ip_addresses verwendest. Du kannst alle IPs auflisten, die Zugriff auf RemoteAdmin haben sollen, indem du sie durch ein Komma trennst. Falls access_ip_addresses nicht gesetzt ist, können alle IP-Adressen auf RemoteAdmin zugreifen.&lt;br /&gt;
&lt;br /&gt;
Du kannst auch einen anderen Port für den XMLRPCAdmin-Befehlshörer festlegen, der sich vom Standard-Simulator-HTTP-Port unterscheidet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
  [RemoteAdmin]&lt;br /&gt;
    ;; This is the remote admin module, which uses XMLRPC requests to&lt;br /&gt;
    ;; manage regions from a web interface.&lt;br /&gt;
  &lt;br /&gt;
    ;# {enabled} {} {Enable the remote admin interface?} {true false} false&lt;br /&gt;
    enabled = true&lt;br /&gt;
  &lt;br /&gt;
    ;# {port} {enabled:true} {Port to use for the remote admin interface? (0 = default)} {} 0&lt;br /&gt;
    ;; Set this to a nonzero value to have remote admin use a different port&lt;br /&gt;
    port = 10000&lt;br /&gt;
  &lt;br /&gt;
    ;# {access_password} {enabled:true} {Password for the remote admin interface} {}&lt;br /&gt;
    ;; This password is required to make any XMLRPC call (should be set as&lt;br /&gt;
    ;; the &amp;quot;password&amp;quot; parameter)&lt;br /&gt;
    access_password = &amp;quot;passwd123&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    ;# {access_ip_addresses} {enabled:true} {List the IP addresses allowed to call RemoteAdmin?} {}&lt;br /&gt;
    ;; List the IP addresses allowed to call RemoteAdmin&lt;br /&gt;
    ;; If access_ip_addresses isn't set, then all IP addresses can access RemoteAdmin.&lt;br /&gt;
    ;; access_ip_addresses = 0.0.0.0, 0.0.0.0 ...&lt;br /&gt;
    ; access_ip_addresses =&lt;br /&gt;
  &lt;br /&gt;
    ;# {create_region_enable_voice} {enabled:true} {Enable voice for newly created regions?} {true false} false&lt;br /&gt;
    ;; set this variable to true if you want the create_region XmlRpc&lt;br /&gt;
    ;; call to unconditionally enable voice on all parcels for a newly&lt;br /&gt;
    ;; created region&lt;br /&gt;
    ; create_region_enable_voice = false&lt;br /&gt;
  &lt;br /&gt;
    ;# {create_region_public} {enabled:true} {Make newly created regions public?} {true false} false&lt;br /&gt;
    ;; set this variable to false if you want the create_region XmlRpc&lt;br /&gt;
    ;; call to create all regions as private per default (can be&lt;br /&gt;
    ;; overridden in the XmlRpc call)&lt;br /&gt;
    ; create_region_public = false&lt;br /&gt;
  &lt;br /&gt;
    ;# {enabled_methods} {enabled:true} {List of methods to allow, separated by |} {} all&lt;br /&gt;
    ;; enable only those methods you deem to be appropriate using a | delimited&lt;br /&gt;
    ;; whitelist.&lt;br /&gt;
    ;; For example:&lt;br /&gt;
    ;; enabled_methods = admin_broadcast|admin_save_oar|admin_save_xml&lt;br /&gt;
    ;; if this parameter is not specified but enabled = true, all methods&lt;br /&gt;
    ;; will be available&lt;br /&gt;
    enabled_methods = all&lt;br /&gt;
  &lt;br /&gt;
    ;; specify the default appearance for an avatar created through the remote&lt;br /&gt;
    ;; admin interface&lt;br /&gt;
    ;; This will only take effect is the file specified by the&lt;br /&gt;
    ;; default_appearance setting below exists&lt;br /&gt;
    ; default_male = Default Male&lt;br /&gt;
    ; default_female = Default Female&lt;br /&gt;
  &lt;br /&gt;
    ;; Update appearance copies inventory items and wearables of default&lt;br /&gt;
    ;; avatars. if this value is false, just worn assets are copied to the&lt;br /&gt;
    ;; Clothes folder; if true, all Clothes and Bodyparts subfolders are copied.&lt;br /&gt;
    ;; The receiver will wear the same items the default avatar did wear.&lt;br /&gt;
    ; copy_folders = false&lt;br /&gt;
  &lt;br /&gt;
    ;; Path to default appearance XML file that specifies the look of the&lt;br /&gt;
    ;; default avatars&lt;br /&gt;
    ; default_appearance = default_appearance.xml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Siehe OpenSim.ini.example im opensim/bin/ Verzeichnis für weitere Details.&lt;br /&gt;
&lt;br /&gt;
== PHP Beispiele ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdminTest.php (ACHTUNG: $params nicht $parameters BEACHTEN!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Dieses Beispiel gibt eine Meldung heraus und fährt OpenSim herunter&lt;br /&gt;
//&lt;br /&gt;
// admin_broadcast ist das kommando für Nachrichten&lt;br /&gt;
// $params hier wird die Meldung hineingeschrieben&lt;br /&gt;
// &lt;br /&gt;
// Das Kommando admin_shutdown fährt OpenSim herunter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include('RemoteAdmin.php'); // RemoteAdmin.php Ist der Name der PHP-Klasse&lt;br /&gt;
&lt;br /&gt;
// Instanzieren der Klasse (IP oder Adresse, Port, Passwort)&lt;br /&gt;
$myRA = new RemoteAdmin('127.0.0.1', 9000, 'secret');&lt;br /&gt;
&lt;br /&gt;
// RemoteAdmin-Befehle ausführen&lt;br /&gt;
$params = array('message' =&amp;gt; 'Diese Nachricht wird an alle Regionen des OpenSimulators gesendet!');&lt;br /&gt;
&lt;br /&gt;
$myRA-&amp;gt;SendCommand('admin_broadcast', $params);&lt;br /&gt;
&lt;br /&gt;
// Wenn für einen RemoteAdmin-Befehl keine Parameter benötigt, &lt;br /&gt;
// müssen Sie den zweiten Parameter in der Funktion SendCommand nicht angeben.&lt;br /&gt;
$myRA-&amp;gt;SendCommand('admin_shutdown'); &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	&lt;br /&gt;
/***********************************************************************&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
Copyright (c) 2008, The New World Grid Regents http://www.newworldgrid.com and Contributors &lt;br /&gt;
All rights reserved.&lt;br /&gt;
&lt;br /&gt;
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:&lt;br /&gt;
&lt;br /&gt;
	* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.&lt;br /&gt;
	* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer &lt;br /&gt;
	in the documentation and/or other materials provided with the distribution.&lt;br /&gt;
	* Neither the name of the New World Grid nor the names of its contributors may be used to endorse or promote products derived &lt;br /&gt;
	from this software without specific prior written permission.&lt;br /&gt;
&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, &lt;br /&gt;
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. &lt;br /&gt;
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, &lt;br /&gt;
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; &lt;br /&gt;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE &lt;br /&gt;
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
***********************************************************************/&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// How to instantiate a RemoteAdmin object ?&lt;br /&gt;
	// $myremoteadmin = new RemoteAdmin(&amp;quot;mySimulatorURL&amp;quot;, Port, &amp;quot;secret password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// How to send commands to remoteadmin plugin ?&lt;br /&gt;
	// $myremoteadmin-&amp;gt;SendCommand('admin_broadcast', array('message' =&amp;gt; 'Message to broadcast to all regions'));&lt;br /&gt;
	// $myremoteadmin-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
	// Commands like admin_shutdown don't need params, so you can left the second SendCommand functino param empty ;)&lt;br /&gt;
	&lt;br /&gt;
	// Example for error handling&lt;br /&gt;
	// &lt;br /&gt;
	// include('classes/RemoteAdmin.php');&lt;br /&gt;
	// $RA = new RemoteAdmin('localhost', 9000, 'secret');&lt;br /&gt;
	// $retour = $RA-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
	// if ($retour === FALSE)&lt;br /&gt;
	// {&lt;br /&gt;
	// 	echo 'ERROR';&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	class RemoteAdmin&lt;br /&gt;
	{&lt;br /&gt;
		&lt;br /&gt;
		function RemoteAdmin($sURL, $sPort, $pass)&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			$this-&amp;gt;simulatorURL = $sURL;		// String&lt;br /&gt;
			$this-&amp;gt;simulatorPort = $sPort;	// Integer&lt;br /&gt;
			$this-&amp;gt;password = $pass;&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		function SendCommand($command, $params=array())&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			$paramsNames = array_keys($params);&lt;br /&gt;
			$paramsValues = array_values($params);&lt;br /&gt;
			&lt;br /&gt;
			// Building the XML data to pass to RemoteAdmin through XML-RPC ;)&lt;br /&gt;
			&lt;br /&gt;
			$xml = '&amp;lt;methodCall&amp;gt;&lt;br /&gt;
						&amp;lt;methodName&amp;gt;' . htmlspecialchars($command) . '&amp;lt;/methodName&amp;gt;&lt;br /&gt;
						&amp;lt;params&amp;gt;&lt;br /&gt;
							&amp;lt;param&amp;gt;&lt;br /&gt;
								&amp;lt;value&amp;gt;&lt;br /&gt;
									&amp;lt;struct&amp;gt;&lt;br /&gt;
										&amp;lt;member&amp;gt;&lt;br /&gt;
											&amp;lt;name&amp;gt;password&amp;lt;/name&amp;gt;&lt;br /&gt;
											&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;' . htmlspecialchars($this-&amp;gt;password) . '&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
										&amp;lt;/member&amp;gt;';&lt;br /&gt;
			if (count($params) != 0)&lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				for ($p = 0; $p &amp;lt; count($params); $p++)&lt;br /&gt;
				{&lt;br /&gt;
					&lt;br /&gt;
					$xml .= '&amp;lt;member&amp;gt;&amp;lt;name&amp;gt;' . htmlspecialchars($paramsNames[$p]) . '&amp;lt;/name&amp;gt;';&lt;br /&gt;
					$xml .= '&amp;lt;value&amp;gt;' . htmlspecialchars($paramsValues[$p]) . '&amp;lt;/value&amp;gt;&amp;lt;/member&amp;gt;';&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
									&lt;br /&gt;
			$xml .= '				&amp;lt;/struct&amp;gt;&lt;br /&gt;
								&amp;lt;/value&amp;gt;&lt;br /&gt;
							&amp;lt;/param&amp;gt;&lt;br /&gt;
						&amp;lt;/params&amp;gt;&lt;br /&gt;
					&amp;lt;/methodCall&amp;gt;';&lt;br /&gt;
				&lt;br /&gt;
			//&lt;br /&gt;
			// echo $xml;&lt;br /&gt;
			//&lt;br /&gt;
				&lt;br /&gt;
					&lt;br /&gt;
			// Now building headers and sending the data ;)&lt;br /&gt;
			$host = $this-&amp;gt;simulatorURL;&lt;br /&gt;
			$port = $this-&amp;gt;simulatorPort;&lt;br /&gt;
			$timeout = 5; // Timeout in seconds&lt;br /&gt;
			&lt;br /&gt;
			error_reporting(0);&lt;br /&gt;
			&lt;br /&gt;
			$fp = fsockopen($host, $port, $errno, $errstr, $timeout);&lt;br /&gt;
			if (!$fp)&lt;br /&gt;
			{&lt;br /&gt;
				return FALSE; // If contacting host timeouts or impossible to create the socket, the method returns FALSE&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				fputs($fp, &amp;quot;POST / HTTP/1.1\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Host: $host\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Content-type: text/xml\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Content-length: &amp;quot;. strlen($xml) .&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Connection: close\r\n\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, $xml);&lt;br /&gt;
				$res = &amp;quot;&amp;quot;;&lt;br /&gt;
				while(!feof($fp)) {&lt;br /&gt;
					$res .= fgets($fp, 128);&lt;br /&gt;
				}&lt;br /&gt;
				fclose($fp);&lt;br /&gt;
				$response = substr($res, strpos($res, &amp;quot;\r\n\r\n&amp;quot;));;&lt;br /&gt;
						&lt;br /&gt;
				// Now parsing the XML response from RemoteAdmin ;)&lt;br /&gt;
				&lt;br /&gt;
				$result = array();&lt;br /&gt;
				if (preg_match_all('#&amp;lt;name&amp;gt;(.+)&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;&amp;lt;(string|int)&amp;gt;(.*)&amp;lt;/\2&amp;gt;&amp;lt;/value&amp;gt;#U', $response, $regs, PREG_SET_ORDER)) {&lt;br /&gt;
				  foreach($regs as $key=&amp;gt;$val) {&lt;br /&gt;
					$result[$val[1]] = $val[3];&lt;br /&gt;
				  }&lt;br /&gt;
				}&lt;br /&gt;
				return $result;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
		&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Python 3.6 Beispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 Beispiel - admin_broadcast -  ===&lt;br /&gt;
&lt;br /&gt;
Dieser Python 3.6 Beitrag ist ein User Projekt, es wird kein Support über die Admins geben.&lt;br /&gt;
&lt;br /&gt;
Bitte seit vorsichtig, ich schließe jede Gewährleistung aus.&lt;br /&gt;
&lt;br /&gt;
Ohne Programmierkenntnisse oder unsachgemäßer Anwendung, kann es zu Schäden am OpenSimulator oder/und dem Betriebssystem kommen.&lt;br /&gt;
&lt;br /&gt;
Faustregel: Wenn ihr nicht sicher seit, ob ihr gesichert habt, dann sichert.&lt;br /&gt;
&lt;br /&gt;
Dies ist zuletzt getestet am 23.04.2018 mit Python 3.6.3 auf Windows 10 und Ubuntu Server 17.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
 &lt;br /&gt;
# admin_broadcast senden einer Nachricht an alle in einer Region.&lt;br /&gt;
# Python 3.6 - 21.04.2018 by Manfred Aabye&lt;br /&gt;
 &lt;br /&gt;
# Module laden&lt;br /&gt;
import xmlrpc.client &lt;br /&gt;
 &lt;br /&gt;
# Information&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('Setup: Opensim.ini - Del ; - ConsoleUser -  ConsolePass')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('Beispiel:')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('SimulatorAdress = http://127.0.0.1:9000/ or http://myserver.com:9000/')&lt;br /&gt;
print('ConsoleUser = Test')&lt;br /&gt;
print('ConsolePass = secret')&lt;br /&gt;
print('RegionMessage = Dies ist ein toller Text an einem tollen Tag.')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
&lt;br /&gt;
# Abfragen&lt;br /&gt;
SimulatorAdress = input('SimulatorAdress:')&lt;br /&gt;
ConsoleUser = input('ConsoleUser:')&lt;br /&gt;
ConsolePass = input('ConsolePass:')&lt;br /&gt;
RegionMessage = input('RegionMessage:')&lt;br /&gt;
# Eingabe kann X Belibig geaendert werden RegionMessage = input('RegionMessage:') - X_Belibig = input('geben sie etwas fuer X_Belibig ein:')&lt;br /&gt;
# X_Belibig ist die Speicherstelle von input, der Text innerhalb der Klammern ist nur ein Text.&lt;br /&gt;
 &lt;br /&gt;
# Funktion admin_broadcast&lt;br /&gt;
def admin_broadcast():&lt;br /&gt;
    # Server Initialisieren &lt;br /&gt;
    Simulator = xmlrpc.client.Server(SimulatorAdress) &lt;br /&gt;
    # Password und Nachricht senden RegionMessage. Hier funktionieren auch alle anderen admin_ Befehle.&lt;br /&gt;
    # Bitte nicht vergessen auch die Eingabe zu aendern&lt;br /&gt;
    Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
 &lt;br /&gt;
# admin_broadcast Aufruf dieser kann nun an irgendeiner stelle aufgerufen werden. &lt;br /&gt;
admin_broadcast()&lt;br /&gt;
 &lt;br /&gt;
# Ende admin_broadcast&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 RemoteAdmin nur teilweise getestet ===&lt;br /&gt;
&lt;br /&gt;
Dies basiert auf dem Python 3.6 Beispiel - admin_broadcast – und soll die Erweiterung/Veränderung des source vereinfachen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    # Agent Management&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_teleport_agent({'password':ConsolePass,'agent_first_name':agent_first_name,'agent_last_name':agent_last_name,'region_name':region_name, 'pos_x':pos_x, 'pos_y':pos_y})&lt;br /&gt;
    Simulator.admin_get_agents({'password':ConsolePass,'region_name':region_name,'Regions-ID':Regions-ID})&lt;br /&gt;
&lt;br /&gt;
    # Benutzerkontenverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_create_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname,'user_password':user_password,'start_region_x':start_region_x,'start_region_y':start_region_y,'user_email':user_email})&lt;br /&gt;
    # Simulator.admin_create_user_email dies ist jetzt in admin_create_user enthalten.&lt;br /&gt;
    Simulator.admin_exists_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname})&lt;br /&gt;
    Simulator.admin_update_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname})&lt;br /&gt;
    Simulator.admin_authenticate_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname,'user_password':user_password,'token_lifetime':token_lifetime})&lt;br /&gt;
&lt;br /&gt;
    # Region Management&lt;br /&gt;
&lt;br /&gt;
    Simulator.Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
    Simulator.admin_close_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_create_region({'password':ConsolePass,'region_name':region_name,'listen_ip':listen_ip,'listen_port':listen_port,'external_address':external_address,'region_x':region_x,'region_y':region_y,'estate_name':estate_name})&lt;br /&gt;
    Simulator.admin_delete_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_modify_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_region_query({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_restart({'password':ConsolePass,'region_id':region_id})&lt;br /&gt;
    Simulator.admin_shutdown({'password':ConsolePass,'milliseconds':milliseconds})&lt;br /&gt;
&lt;br /&gt;
    # Region Dateiverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_load_heightmap({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_load_oar({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_load_xml({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_heightmap({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_oar({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_xml({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
&lt;br /&gt;
    # Region Zugangsmanagement&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_acl_list({'password': ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_acl_clear({'password': ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_acl_add({'password': ConsolePass,'region_name':region_name,'users':users})&lt;br /&gt;
    Simulator.admin_acl_remove({'password': ConsolePass,'region_name':region_name,'users':users})&lt;br /&gt;
&lt;br /&gt;
    # Estate Immobilienverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_estate_reload({'password':ConsolePass})&lt;br /&gt;
&lt;br /&gt;
    # Administrationskonsole&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_console_command({'password':ConsolePass,'console_command':console_command})&lt;br /&gt;
&lt;br /&gt;
    # Verschiedenes &lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_dialog({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
    #Simulator.admin_reset_land({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_refresh_search({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_refresh_map({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_get_opensim_version({'password':ConsolePass}) # Rueckgabeparameter: Ich weiss nicht wie das geht.&lt;br /&gt;
    #Simulator.admin_get_agent_count({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Befehle ==&lt;br /&gt;
&lt;br /&gt;
Alle Befehlsparameter die UUID einer Region nutzen &amp;quot;region_id&amp;quot; als Parameter.&lt;br /&gt;
&lt;br /&gt;
=== Agentenverwaltung ===&lt;br /&gt;
*[[Remoteadmin:admin teleport agent|admin_teleport_agent]]&lt;br /&gt;
*[[Remoteadmin:admin get agents|admin_get_agents]]&lt;br /&gt;
&lt;br /&gt;
=== Benutzerkontenverwaltung ===&lt;br /&gt;
*[[RemoteAdmin:admin create user|admin_create_user]] &lt;br /&gt;
*[[RemoteAdmin:admin create user email|admin_create_user_email]] &lt;br /&gt;
*[[RemoteAdmin:admin exists user|admin_exists_user]] &lt;br /&gt;
*[[RemoteAdmin:admin update user|admin_update_user]]&lt;br /&gt;
*[[RemoteAdmin:admin authenticate user|admin_authenticate_user]]&lt;br /&gt;
&lt;br /&gt;
=== Objektverwaltung ===&lt;br /&gt;
&lt;br /&gt;
=== Parzellenverwaltung ===&lt;br /&gt;
&lt;br /&gt;
=== Regionenverwaltung ===&lt;br /&gt;
*[[RemoteAdmin:admin broadcast|admin_broadcast]] &lt;br /&gt;
*[[RemoteAdmin:admin close region|admin_close_region]] &lt;br /&gt;
*[[RemoteAdmin:admin create region|admin_create_region]] &lt;br /&gt;
*[[RemoteAdmin:admin delete region|admin_delete_region]] &lt;br /&gt;
*[[RemoteAdmin:admin modify region|admin_modify_region]] &lt;br /&gt;
*[[RemoteAdmin:admin region query|admin_region_query]] &lt;br /&gt;
*[[RemoteAdmin:admin restart|admin_restart]] &lt;br /&gt;
*[[RemoteAdmin:admin shutdown|admin_shutdown]] &lt;br /&gt;
&lt;br /&gt;
=== Regionsdateiverwaltung ===&lt;br /&gt;
* [[RemoteAdmin:admin load heightmap|admin_load_heightmap]]&lt;br /&gt;
* [[RemoteAdmin:admin load oar|admin_load_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin load xml|admin_load_xml]] &lt;br /&gt;
* [[RemoteAdmin:admin save heightmap|admin_save_heightmap]] &lt;br /&gt;
* [[RemoteAdmin:admin save oar|admin_save_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin save xml|admin_save_xml]]&lt;br /&gt;
&lt;br /&gt;
=== Regionszugriffsverwaltung ===&lt;br /&gt;
* [[RemoteAdmin:admin acl list|admin_acl_list]] &lt;br /&gt;
* [[RemoteAdmin:admin acl clear|admin_acl_clear]] &lt;br /&gt;
* [[RemoteAdmin:admin acl add|admin_acl_add]] &lt;br /&gt;
* [[RemoteAdmin:admin acl remove|admin_acl_remove]]&lt;br /&gt;
&lt;br /&gt;
=== Grundstücksverwaltung ===&lt;br /&gt;
* [[RemoteAdmin:admin estate reload|admin_estate_reload]]&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
* [[RemoteAdmin:admin console command|admin_console_command]]&lt;br /&gt;
&lt;br /&gt;
=== Sonstiges (undokumentiert) ===&lt;br /&gt;
* [[RemoteAdmin:admin dialog|admin_dialog]]&lt;br /&gt;
* [[RemoteAdmin:admin reset land|admin_reset_land]]&lt;br /&gt;
* [[RemoteAdmin:admin refresh search|admin_refresh_search]]&lt;br /&gt;
* [[RemoteAdmin:admin refresh map|admin_refresh_map]]&lt;br /&gt;
* [[RemoteAdmin:admin get opensim version|admin_get_opensim_version]]&lt;br /&gt;
* [[RemoteAdmin:admin get agent count|admin_get_agent_count]]&lt;br /&gt;
&lt;br /&gt;
== Unterkategorien ==&lt;br /&gt;
&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Examples|RemoteAdmin Beispiele]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Proposals|RemoteAdmin Vorschläge]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Standards|RemoteAdmin Standards]]&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Implement new command|RemoteAdmin Wie man neue Befehle implementiert]]&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Class|RemoteAdmin Klasse]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:RemoteAdmin]]&lt;br /&gt;
[[Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin/de</id>
		<title>RemoteAdmin/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin/de"/>
				<updated>2025-04-02T17:18:02Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: /* Das Remote Admin Interface Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|RemoteAdmin}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einführung ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin  ist eine Schnittstelle des OpenSimulator, die verschiedene Operationen können  außerhalb des OpenSimulator ausgeführt werden. Operationen, die sich selbst auf den Simulator beziehen (zB teleport user) sind immer verfügbar. Diejenigen, die sich auf Griddienstleistungen (user creation  und updating) beziehen, sind nur im Standalone-Modus Verfügbar. Im Gridmodus, muss man die ROBUST Ebene verwenden [[UserManipulation]] statt Fähigkeiten. '''&lt;br /&gt;
&lt;br /&gt;
== Das Remote Admin Interface Setup ==&lt;br /&gt;
&lt;br /&gt;
Zuerst sollte man die Remote-Admin-Interface ermöglichen. Nur die folgenden Zeilen zu Ihrer OpenSim.ini FILE-Port hinzufügen sollte auf einen Wert ungleich null gesetzt werden, um die Remote-Admin auf einem anderen Port zu haben. &lt;br /&gt;
&lt;br /&gt;
Ab Version r/16843 können Sie den Zugriff auf Remote-Admin auf bestimmte IP-Adressen beschränken, indem sie optionale access_ip_addresses verwenden. Sie können alle IP-Liste erlaubt durch RemoteAdmin  für den Zugriff auf jede IP durch ein Komma trennt. Wenn access_ip_addresses nicht gesetzt ist, dann können alle IP-Adressen RemoteAdmin zugreifen. &lt;br /&gt;
&lt;br /&gt;
Sie können auch einen anderen Port für die XMLRPCAdmin command listener  aus dem Standard-Simulator HTTP-Port angeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
  [RemoteAdmin]&lt;br /&gt;
    ;; This is the remote admin module, which uses XMLRPC requests to&lt;br /&gt;
    ;; manage regions from a web interface.&lt;br /&gt;
  &lt;br /&gt;
    ;# {enabled} {} {Enable the remote admin interface?} {true false} false&lt;br /&gt;
    enabled = true&lt;br /&gt;
  &lt;br /&gt;
    ;# {port} {enabled:true} {Port to use for the remote admin interface? (0 = default)} {} 0&lt;br /&gt;
    ;; Set this to a nonzero value to have remote admin use a different port&lt;br /&gt;
    port = 10000&lt;br /&gt;
  &lt;br /&gt;
    ;# {access_password} {enabled:true} {Password for the remote admin interface} {}&lt;br /&gt;
    ;; This password is required to make any XMLRPC call (should be set as&lt;br /&gt;
    ;; the &amp;quot;password&amp;quot; parameter)&lt;br /&gt;
    access_password = &amp;quot;passwd123&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    ;# {access_ip_addresses} {enabled:true} {List the IP addresses allowed to call RemoteAdmin?} {}&lt;br /&gt;
    ;; List the IP addresses allowed to call RemoteAdmin&lt;br /&gt;
    ;; If access_ip_addresses isn't set, then all IP addresses can access RemoteAdmin.&lt;br /&gt;
    ;; access_ip_addresses = 0.0.0.0, 0.0.0.0 ...&lt;br /&gt;
    ; access_ip_addresses =&lt;br /&gt;
  &lt;br /&gt;
    ;# {create_region_enable_voice} {enabled:true} {Enable voice for newly created regions?} {true false} false&lt;br /&gt;
    ;; set this variable to true if you want the create_region XmlRpc&lt;br /&gt;
    ;; call to unconditionally enable voice on all parcels for a newly&lt;br /&gt;
    ;; created region&lt;br /&gt;
    ; create_region_enable_voice = false&lt;br /&gt;
  &lt;br /&gt;
    ;# {create_region_public} {enabled:true} {Make newly created regions public?} {true false} false&lt;br /&gt;
    ;; set this variable to false if you want the create_region XmlRpc&lt;br /&gt;
    ;; call to create all regions as private per default (can be&lt;br /&gt;
    ;; overridden in the XmlRpc call)&lt;br /&gt;
    ; create_region_public = false&lt;br /&gt;
  &lt;br /&gt;
    ;# {enabled_methods} {enabled:true} {List of methods to allow, separated by |} {} all&lt;br /&gt;
    ;; enable only those methods you deem to be appropriate using a | delimited&lt;br /&gt;
    ;; whitelist.&lt;br /&gt;
    ;; For example:&lt;br /&gt;
    ;; enabled_methods = admin_broadcast|admin_save_oar|admin_save_xml&lt;br /&gt;
    ;; if this parameter is not specified but enabled = true, all methods&lt;br /&gt;
    ;; will be available&lt;br /&gt;
    enabled_methods = all&lt;br /&gt;
  &lt;br /&gt;
    ;; specify the default appearance for an avatar created through the remote&lt;br /&gt;
    ;; admin interface&lt;br /&gt;
    ;; This will only take effect is the file specified by the&lt;br /&gt;
    ;; default_appearance setting below exists&lt;br /&gt;
    ; default_male = Default Male&lt;br /&gt;
    ; default_female = Default Female&lt;br /&gt;
  &lt;br /&gt;
    ;; Update appearance copies inventory items and wearables of default&lt;br /&gt;
    ;; avatars. if this value is false, just worn assets are copied to the&lt;br /&gt;
    ;; Clothes folder; if true, all Clothes and Bodyparts subfolders are copied.&lt;br /&gt;
    ;; The receiver will wear the same items the default avatar did wear.&lt;br /&gt;
    ; copy_folders = false&lt;br /&gt;
  &lt;br /&gt;
    ;; Path to default appearance XML file that specifies the look of the&lt;br /&gt;
    ;; default avatars&lt;br /&gt;
    ; default_appearance = default_appearance.xml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Siehe OpenSim.ini.example im opensim/bin/ Verzeichnis für weitere Details.&lt;br /&gt;
&lt;br /&gt;
== PHP Beispiele ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdminTest.php (ACHTUNG: $params nicht $parameters BEACHTEN!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Dieses Beispiel gibt eine Meldung heraus und fährt OpenSim herunter&lt;br /&gt;
//&lt;br /&gt;
// admin_broadcast ist das kommando für Nachrichten&lt;br /&gt;
// $params hier wird die Meldung hineingeschrieben&lt;br /&gt;
// &lt;br /&gt;
// Das Kommando admin_shutdown fährt OpenSim herunter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include('RemoteAdmin.php'); // RemoteAdmin.php Ist der Name der PHP-Klasse&lt;br /&gt;
&lt;br /&gt;
// Instanzieren der Klasse (IP oder Adresse, Port, Passwort)&lt;br /&gt;
$myRA = new RemoteAdmin('127.0.0.1', 9000, 'secret');&lt;br /&gt;
&lt;br /&gt;
// RemoteAdmin-Befehle ausführen&lt;br /&gt;
$params = array('message' =&amp;gt; 'Diese Nachricht wird an alle Regionen des OpenSimulators gesendet!');&lt;br /&gt;
&lt;br /&gt;
$myRA-&amp;gt;SendCommand('admin_broadcast', $params);&lt;br /&gt;
&lt;br /&gt;
// Wenn für einen RemoteAdmin-Befehl keine Parameter benötigt, &lt;br /&gt;
// müssen Sie den zweiten Parameter in der Funktion SendCommand nicht angeben.&lt;br /&gt;
$myRA-&amp;gt;SendCommand('admin_shutdown'); &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	&lt;br /&gt;
/***********************************************************************&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
Copyright (c) 2008, The New World Grid Regents http://www.newworldgrid.com and Contributors &lt;br /&gt;
All rights reserved.&lt;br /&gt;
&lt;br /&gt;
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:&lt;br /&gt;
&lt;br /&gt;
	* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.&lt;br /&gt;
	* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer &lt;br /&gt;
	in the documentation and/or other materials provided with the distribution.&lt;br /&gt;
	* Neither the name of the New World Grid nor the names of its contributors may be used to endorse or promote products derived &lt;br /&gt;
	from this software without specific prior written permission.&lt;br /&gt;
&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, &lt;br /&gt;
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. &lt;br /&gt;
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, &lt;br /&gt;
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; &lt;br /&gt;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE &lt;br /&gt;
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
***********************************************************************/&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// How to instantiate a RemoteAdmin object ?&lt;br /&gt;
	// $myremoteadmin = new RemoteAdmin(&amp;quot;mySimulatorURL&amp;quot;, Port, &amp;quot;secret password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// How to send commands to remoteadmin plugin ?&lt;br /&gt;
	// $myremoteadmin-&amp;gt;SendCommand('admin_broadcast', array('message' =&amp;gt; 'Message to broadcast to all regions'));&lt;br /&gt;
	// $myremoteadmin-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
	// Commands like admin_shutdown don't need params, so you can left the second SendCommand functino param empty ;)&lt;br /&gt;
	&lt;br /&gt;
	// Example for error handling&lt;br /&gt;
	// &lt;br /&gt;
	// include('classes/RemoteAdmin.php');&lt;br /&gt;
	// $RA = new RemoteAdmin('localhost', 9000, 'secret');&lt;br /&gt;
	// $retour = $RA-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
	// if ($retour === FALSE)&lt;br /&gt;
	// {&lt;br /&gt;
	// 	echo 'ERROR';&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	class RemoteAdmin&lt;br /&gt;
	{&lt;br /&gt;
		&lt;br /&gt;
		function RemoteAdmin($sURL, $sPort, $pass)&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			$this-&amp;gt;simulatorURL = $sURL;		// String&lt;br /&gt;
			$this-&amp;gt;simulatorPort = $sPort;	// Integer&lt;br /&gt;
			$this-&amp;gt;password = $pass;&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		function SendCommand($command, $params=array())&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			$paramsNames = array_keys($params);&lt;br /&gt;
			$paramsValues = array_values($params);&lt;br /&gt;
			&lt;br /&gt;
			// Building the XML data to pass to RemoteAdmin through XML-RPC ;)&lt;br /&gt;
			&lt;br /&gt;
			$xml = '&amp;lt;methodCall&amp;gt;&lt;br /&gt;
						&amp;lt;methodName&amp;gt;' . htmlspecialchars($command) . '&amp;lt;/methodName&amp;gt;&lt;br /&gt;
						&amp;lt;params&amp;gt;&lt;br /&gt;
							&amp;lt;param&amp;gt;&lt;br /&gt;
								&amp;lt;value&amp;gt;&lt;br /&gt;
									&amp;lt;struct&amp;gt;&lt;br /&gt;
										&amp;lt;member&amp;gt;&lt;br /&gt;
											&amp;lt;name&amp;gt;password&amp;lt;/name&amp;gt;&lt;br /&gt;
											&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;' . htmlspecialchars($this-&amp;gt;password) . '&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
										&amp;lt;/member&amp;gt;';&lt;br /&gt;
			if (count($params) != 0)&lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				for ($p = 0; $p &amp;lt; count($params); $p++)&lt;br /&gt;
				{&lt;br /&gt;
					&lt;br /&gt;
					$xml .= '&amp;lt;member&amp;gt;&amp;lt;name&amp;gt;' . htmlspecialchars($paramsNames[$p]) . '&amp;lt;/name&amp;gt;';&lt;br /&gt;
					$xml .= '&amp;lt;value&amp;gt;' . htmlspecialchars($paramsValues[$p]) . '&amp;lt;/value&amp;gt;&amp;lt;/member&amp;gt;';&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
									&lt;br /&gt;
			$xml .= '				&amp;lt;/struct&amp;gt;&lt;br /&gt;
								&amp;lt;/value&amp;gt;&lt;br /&gt;
							&amp;lt;/param&amp;gt;&lt;br /&gt;
						&amp;lt;/params&amp;gt;&lt;br /&gt;
					&amp;lt;/methodCall&amp;gt;';&lt;br /&gt;
				&lt;br /&gt;
			//&lt;br /&gt;
			// echo $xml;&lt;br /&gt;
			//&lt;br /&gt;
				&lt;br /&gt;
					&lt;br /&gt;
			// Now building headers and sending the data ;)&lt;br /&gt;
			$host = $this-&amp;gt;simulatorURL;&lt;br /&gt;
			$port = $this-&amp;gt;simulatorPort;&lt;br /&gt;
			$timeout = 5; // Timeout in seconds&lt;br /&gt;
			&lt;br /&gt;
			error_reporting(0);&lt;br /&gt;
			&lt;br /&gt;
			$fp = fsockopen($host, $port, $errno, $errstr, $timeout);&lt;br /&gt;
			if (!$fp)&lt;br /&gt;
			{&lt;br /&gt;
				return FALSE; // If contacting host timeouts or impossible to create the socket, the method returns FALSE&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				fputs($fp, &amp;quot;POST / HTTP/1.1\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Host: $host\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Content-type: text/xml\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Content-length: &amp;quot;. strlen($xml) .&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Connection: close\r\n\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, $xml);&lt;br /&gt;
				$res = &amp;quot;&amp;quot;;&lt;br /&gt;
				while(!feof($fp)) {&lt;br /&gt;
					$res .= fgets($fp, 128);&lt;br /&gt;
				}&lt;br /&gt;
				fclose($fp);&lt;br /&gt;
				$response = substr($res, strpos($res, &amp;quot;\r\n\r\n&amp;quot;));;&lt;br /&gt;
						&lt;br /&gt;
				// Now parsing the XML response from RemoteAdmin ;)&lt;br /&gt;
				&lt;br /&gt;
				$result = array();&lt;br /&gt;
				if (preg_match_all('#&amp;lt;name&amp;gt;(.+)&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;&amp;lt;(string|int)&amp;gt;(.*)&amp;lt;/\2&amp;gt;&amp;lt;/value&amp;gt;#U', $response, $regs, PREG_SET_ORDER)) {&lt;br /&gt;
				  foreach($regs as $key=&amp;gt;$val) {&lt;br /&gt;
					$result[$val[1]] = $val[3];&lt;br /&gt;
				  }&lt;br /&gt;
				}&lt;br /&gt;
				return $result;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
		&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Python 3.6 Beispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 Beispiel - admin_broadcast -  ===&lt;br /&gt;
&lt;br /&gt;
Dieser Python 3.6 Beitrag ist ein User Projekt, es wird kein Support über die Admins geben.&lt;br /&gt;
&lt;br /&gt;
Bitte seit vorsichtig, ich schließe jede Gewährleistung aus.&lt;br /&gt;
&lt;br /&gt;
Ohne Programmierkenntnisse oder unsachgemäßer Anwendung, kann es zu Schäden am OpenSimulator oder/und dem Betriebssystem kommen.&lt;br /&gt;
&lt;br /&gt;
Faustregel: Wenn ihr nicht sicher seit, ob ihr gesichert habt, dann sichert.&lt;br /&gt;
&lt;br /&gt;
Dies ist zuletzt getestet am 23.04.2018 mit Python 3.6.3 auf Windows 10 und Ubuntu Server 17.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
 &lt;br /&gt;
# admin_broadcast senden einer Nachricht an alle in einer Region.&lt;br /&gt;
# Python 3.6 - 21.04.2018 by Manfred Aabye&lt;br /&gt;
 &lt;br /&gt;
# Module laden&lt;br /&gt;
import xmlrpc.client &lt;br /&gt;
 &lt;br /&gt;
# Information&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('Setup: Opensim.ini - Del ; - ConsoleUser -  ConsolePass')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('Beispiel:')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('SimulatorAdress = http://127.0.0.1:9000/ or http://myserver.com:9000/')&lt;br /&gt;
print('ConsoleUser = Test')&lt;br /&gt;
print('ConsolePass = secret')&lt;br /&gt;
print('RegionMessage = Dies ist ein toller Text an einem tollen Tag.')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
&lt;br /&gt;
# Abfragen&lt;br /&gt;
SimulatorAdress = input('SimulatorAdress:')&lt;br /&gt;
ConsoleUser = input('ConsoleUser:')&lt;br /&gt;
ConsolePass = input('ConsolePass:')&lt;br /&gt;
RegionMessage = input('RegionMessage:')&lt;br /&gt;
# Eingabe kann X Belibig geaendert werden RegionMessage = input('RegionMessage:') - X_Belibig = input('geben sie etwas fuer X_Belibig ein:')&lt;br /&gt;
# X_Belibig ist die Speicherstelle von input, der Text innerhalb der Klammern ist nur ein Text.&lt;br /&gt;
 &lt;br /&gt;
# Funktion admin_broadcast&lt;br /&gt;
def admin_broadcast():&lt;br /&gt;
    # Server Initialisieren &lt;br /&gt;
    Simulator = xmlrpc.client.Server(SimulatorAdress) &lt;br /&gt;
    # Password und Nachricht senden RegionMessage. Hier funktionieren auch alle anderen admin_ Befehle.&lt;br /&gt;
    # Bitte nicht vergessen auch die Eingabe zu aendern&lt;br /&gt;
    Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
 &lt;br /&gt;
# admin_broadcast Aufruf dieser kann nun an irgendeiner stelle aufgerufen werden. &lt;br /&gt;
admin_broadcast()&lt;br /&gt;
 &lt;br /&gt;
# Ende admin_broadcast&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 RemoteAdmin nur teilweise getestet ===&lt;br /&gt;
&lt;br /&gt;
Dies basiert auf dem Python 3.6 Beispiel - admin_broadcast – und soll die Erweiterung/Veränderung des source vereinfachen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    # Agent Management&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_teleport_agent({'password':ConsolePass,'agent_first_name':agent_first_name,'agent_last_name':agent_last_name,'region_name':region_name, 'pos_x':pos_x, 'pos_y':pos_y})&lt;br /&gt;
    Simulator.admin_get_agents({'password':ConsolePass,'region_name':region_name,'Regions-ID':Regions-ID})&lt;br /&gt;
&lt;br /&gt;
    # Benutzerkontenverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_create_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname,'user_password':user_password,'start_region_x':start_region_x,'start_region_y':start_region_y,'user_email':user_email})&lt;br /&gt;
    # Simulator.admin_create_user_email dies ist jetzt in admin_create_user enthalten.&lt;br /&gt;
    Simulator.admin_exists_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname})&lt;br /&gt;
    Simulator.admin_update_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname})&lt;br /&gt;
    Simulator.admin_authenticate_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname,'user_password':user_password,'token_lifetime':token_lifetime})&lt;br /&gt;
&lt;br /&gt;
    # Region Management&lt;br /&gt;
&lt;br /&gt;
    Simulator.Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
    Simulator.admin_close_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_create_region({'password':ConsolePass,'region_name':region_name,'listen_ip':listen_ip,'listen_port':listen_port,'external_address':external_address,'region_x':region_x,'region_y':region_y,'estate_name':estate_name})&lt;br /&gt;
    Simulator.admin_delete_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_modify_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_region_query({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_restart({'password':ConsolePass,'region_id':region_id})&lt;br /&gt;
    Simulator.admin_shutdown({'password':ConsolePass,'milliseconds':milliseconds})&lt;br /&gt;
&lt;br /&gt;
    # Region Dateiverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_load_heightmap({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_load_oar({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_load_xml({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_heightmap({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_oar({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_xml({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
&lt;br /&gt;
    # Region Zugangsmanagement&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_acl_list({'password': ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_acl_clear({'password': ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_acl_add({'password': ConsolePass,'region_name':region_name,'users':users})&lt;br /&gt;
    Simulator.admin_acl_remove({'password': ConsolePass,'region_name':region_name,'users':users})&lt;br /&gt;
&lt;br /&gt;
    # Estate Immobilienverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_estate_reload({'password':ConsolePass})&lt;br /&gt;
&lt;br /&gt;
    # Administrationskonsole&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_console_command({'password':ConsolePass,'console_command':console_command})&lt;br /&gt;
&lt;br /&gt;
    # Verschiedenes &lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_dialog({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
    #Simulator.admin_reset_land({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_refresh_search({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_refresh_map({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_get_opensim_version({'password':ConsolePass}) # Rueckgabeparameter: Ich weiss nicht wie das geht.&lt;br /&gt;
    #Simulator.admin_get_agent_count({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Befehle ==&lt;br /&gt;
&lt;br /&gt;
Alle Befehlsparameter die UUID einer Region nutzen &amp;quot;region_id&amp;quot; als Parameter. Alle anderen Parameter wie zB. region_uuid oder regionId sind nach Juni 2012 entfernt worden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Agent management ===&lt;br /&gt;
*[[Remoteadmin:admin teleport agent|admin_teleport_agent]]&lt;br /&gt;
*[[Remoteadmin:admin get agents|admin_get_agents]]&lt;br /&gt;
&lt;br /&gt;
=== User account management ===&lt;br /&gt;
*[[RemoteAdmin:admin create user|admin_create_user]] &lt;br /&gt;
*[[RemoteAdmin:admin create user email|admin_create_user_email]] &lt;br /&gt;
*[[RemoteAdmin:admin exists user|admin_exists_user]] &lt;br /&gt;
*[[RemoteAdmin:admin update user|admin_update_user]]&lt;br /&gt;
*[[RemoteAdmin:admin authenticate user|admin_authenticate_user]]&lt;br /&gt;
&lt;br /&gt;
=== Object management ===&lt;br /&gt;
&lt;br /&gt;
Noch keine RemoteAdmin Befehle vorhanden.&lt;br /&gt;
&lt;br /&gt;
=== Parcel management ===&lt;br /&gt;
&lt;br /&gt;
Noch keine RemoteAdmin Befehle vorhanden.&lt;br /&gt;
&lt;br /&gt;
=== Region management ===&lt;br /&gt;
*[[RemoteAdmin:admin broadcast|admin_broadcast]] &lt;br /&gt;
*[[RemoteAdmin:admin close region|admin_close_region]] &lt;br /&gt;
*[[RemoteAdmin:admin create region|admin_create_region]] &lt;br /&gt;
*[[RemoteAdmin:admin delete region|admin_delete_region]] &lt;br /&gt;
*[[RemoteAdmin:admin modify region|admin_modify_region]] &lt;br /&gt;
*[[RemoteAdmin:admin region query|admin_region_query]] &lt;br /&gt;
*[[RemoteAdmin:admin restart|admin_restart]] &lt;br /&gt;
*[[RemoteAdmin:admin shutdown|admin_shutdown]] &lt;br /&gt;
&lt;br /&gt;
=== Region file management ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[RemoteAdmin:admin load heightmap|admin_load_heightmap]]&lt;br /&gt;
* [[RemoteAdmin:admin load oar|admin_load_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin load xml|admin_load_xml]] &lt;br /&gt;
* [[RemoteAdmin:admin save heightmap|admin_save_heightmap]] &lt;br /&gt;
* [[RemoteAdmin:admin save oar|admin_save_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin save xml|admin_save_xml]]&lt;br /&gt;
&lt;br /&gt;
=== Region access management ===&lt;br /&gt;
* [[RemoteAdmin:admin acl list|admin_acl_list]] &lt;br /&gt;
* [[RemoteAdmin:admin acl clear|admin_acl_clear]] &lt;br /&gt;
* [[RemoteAdmin:admin acl add|admin_acl_add]] &lt;br /&gt;
* [[RemoteAdmin:admin acl remove|admin_acl_remove]]&lt;br /&gt;
&lt;br /&gt;
=== Estate management ===&lt;br /&gt;
* [[RemoteAdmin:admin estate reload|admin_estate_reload]]&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
* [[RemoteAdmin:admin console command|admin_console_command]]&lt;br /&gt;
&lt;br /&gt;
=== Verschiedenes ===&lt;br /&gt;
* [[RemoteAdmin:admin dialog|admin_dialog]]&lt;br /&gt;
* [[RemoteAdmin:admin reset land|admin_reset_land]]&lt;br /&gt;
* [[RemoteAdmin:admin refresh search|admin_refresh_search]]&lt;br /&gt;
* [[RemoteAdmin:admin refresh map|admin_refresh_map]]&lt;br /&gt;
* [[RemoteAdmin:admin get opensim version|admin_get_opensim_version]]&lt;br /&gt;
* [[RemoteAdmin:admin get agent count|admin_get_agent_count]]&lt;br /&gt;
&lt;br /&gt;
== Unterkategorien ==&lt;br /&gt;
&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Examples|RemoteAdmin Examples]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Proposals|RemoteAdmin Proposals]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Standards|RemoteAdmin Standards]]&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Implement new command|RemoteAdmin How to implement new commands]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:RemoteAdmin]]&lt;br /&gt;
[[Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin/de</id>
		<title>RemoteAdmin/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin/de"/>
				<updated>2025-04-02T17:17:27Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: /* Weitere Optionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|RemoteAdmin}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einführung ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin  ist eine Schnittstelle des OpenSimulator, die verschiedene Operationen können  außerhalb des OpenSimulator ausgeführt werden. Operationen, die sich selbst auf den Simulator beziehen (zB teleport user) sind immer verfügbar. Diejenigen, die sich auf Griddienstleistungen (user creation  und updating) beziehen, sind nur im Standalone-Modus Verfügbar. Im Gridmodus, muss man die ROBUST Ebene verwenden [[UserManipulation]] statt Fähigkeiten. '''&lt;br /&gt;
&lt;br /&gt;
== Das Remote Admin Interface Setup ==&lt;br /&gt;
&lt;br /&gt;
Zuerst sollte man die Remote-Admin-Interface ermöglichen. Nur die folgenden Zeilen zu Ihrer OpenSim.ini FILE-Port hinzufügen sollte auf einen Wert ungleich null gesetzt werden, um die Remote-Admin auf einem anderen Port zu haben. &lt;br /&gt;
&lt;br /&gt;
Ab Version r/16843 können Sie den Zugriff auf Remote-Admin auf bestimmte IP-Adressen beschränken, indem sie optionale access_ip_addresses verwenden. Sie können alle IP-Liste erlaubt durch RemoteAdmin  für den Zugriff auf jede IP durch ein Komma trennt. Wenn access_ip_addresses nicht gesetzt ist, dann können alle IP-Adressen RemoteAdmin zugreifen. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
  [RemoteAdmin]&lt;br /&gt;
    ;; This is the remote admin module, which uses XMLRPC requests to&lt;br /&gt;
    ;; manage regions from a web interface.&lt;br /&gt;
  &lt;br /&gt;
    ;# {enabled} {} {Enable the remote admin interface?} {true false} false&lt;br /&gt;
    enabled = true&lt;br /&gt;
  &lt;br /&gt;
    ;# {port} {enabled:true} {Port to use for the remote admin interface? (0 = default)} {} 0&lt;br /&gt;
    ;; Set this to a nonzero value to have remote admin use a different port&lt;br /&gt;
    port = 10000&lt;br /&gt;
  &lt;br /&gt;
    ;# {access_password} {enabled:true} {Password for the remote admin interface} {}&lt;br /&gt;
    ;; This password is required to make any XMLRPC call (should be set as&lt;br /&gt;
    ;; the &amp;quot;password&amp;quot; parameter)&lt;br /&gt;
    access_password = &amp;quot;passwd123&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    ;# {access_ip_addresses} {enabled:true} {List the IP addresses allowed to call RemoteAdmin?} {}&lt;br /&gt;
    ;; List the IP addresses allowed to call RemoteAdmin&lt;br /&gt;
    ;; If access_ip_addresses isn't set, then all IP addresses can access RemoteAdmin.&lt;br /&gt;
    ;; access_ip_addresses = 0.0.0.0, 0.0.0.0 ...&lt;br /&gt;
    ; access_ip_addresses =&lt;br /&gt;
  &lt;br /&gt;
    ;# {create_region_enable_voice} {enabled:true} {Enable voice for newly created regions?} {true false} false&lt;br /&gt;
    ;; set this variable to true if you want the create_region XmlRpc&lt;br /&gt;
    ;; call to unconditionally enable voice on all parcels for a newly&lt;br /&gt;
    ;; created region&lt;br /&gt;
    ; create_region_enable_voice = false&lt;br /&gt;
  &lt;br /&gt;
    ;# {create_region_public} {enabled:true} {Make newly created regions public?} {true false} false&lt;br /&gt;
    ;; set this variable to false if you want the create_region XmlRpc&lt;br /&gt;
    ;; call to create all regions as private per default (can be&lt;br /&gt;
    ;; overridden in the XmlRpc call)&lt;br /&gt;
    ; create_region_public = false&lt;br /&gt;
  &lt;br /&gt;
    ;# {enabled_methods} {enabled:true} {List of methods to allow, separated by |} {} all&lt;br /&gt;
    ;; enable only those methods you deem to be appropriate using a | delimited&lt;br /&gt;
    ;; whitelist.&lt;br /&gt;
    ;; For example:&lt;br /&gt;
    ;; enabled_methods = admin_broadcast|admin_save_oar|admin_save_xml&lt;br /&gt;
    ;; if this parameter is not specified but enabled = true, all methods&lt;br /&gt;
    ;; will be available&lt;br /&gt;
    enabled_methods = all&lt;br /&gt;
  &lt;br /&gt;
    ;; specify the default appearance for an avatar created through the remote&lt;br /&gt;
    ;; admin interface&lt;br /&gt;
    ;; This will only take effect is the file specified by the&lt;br /&gt;
    ;; default_appearance setting below exists&lt;br /&gt;
    ; default_male = Default Male&lt;br /&gt;
    ; default_female = Default Female&lt;br /&gt;
  &lt;br /&gt;
    ;; Update appearance copies inventory items and wearables of default&lt;br /&gt;
    ;; avatars. if this value is false, just worn assets are copied to the&lt;br /&gt;
    ;; Clothes folder; if true, all Clothes and Bodyparts subfolders are copied.&lt;br /&gt;
    ;; The receiver will wear the same items the default avatar did wear.&lt;br /&gt;
    ; copy_folders = false&lt;br /&gt;
  &lt;br /&gt;
    ;; Path to default appearance XML file that specifies the look of the&lt;br /&gt;
    ;; default avatars&lt;br /&gt;
    ; default_appearance = default_appearance.xml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Siehe OpenSim.ini.example im opensim/bin/ Verzeichnis für weitere Details.&lt;br /&gt;
&lt;br /&gt;
== PHP Beispiele ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdminTest.php (ACHTUNG: $params nicht $parameters BEACHTEN!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Dieses Beispiel gibt eine Meldung heraus und fährt OpenSim herunter&lt;br /&gt;
//&lt;br /&gt;
// admin_broadcast ist das kommando für Nachrichten&lt;br /&gt;
// $params hier wird die Meldung hineingeschrieben&lt;br /&gt;
// &lt;br /&gt;
// Das Kommando admin_shutdown fährt OpenSim herunter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include('RemoteAdmin.php'); // RemoteAdmin.php Ist der Name der PHP-Klasse&lt;br /&gt;
&lt;br /&gt;
// Instanzieren der Klasse (IP oder Adresse, Port, Passwort)&lt;br /&gt;
$myRA = new RemoteAdmin('127.0.0.1', 9000, 'secret');&lt;br /&gt;
&lt;br /&gt;
// RemoteAdmin-Befehle ausführen&lt;br /&gt;
$params = array('message' =&amp;gt; 'Diese Nachricht wird an alle Regionen des OpenSimulators gesendet!');&lt;br /&gt;
&lt;br /&gt;
$myRA-&amp;gt;SendCommand('admin_broadcast', $params);&lt;br /&gt;
&lt;br /&gt;
// Wenn für einen RemoteAdmin-Befehl keine Parameter benötigt, &lt;br /&gt;
// müssen Sie den zweiten Parameter in der Funktion SendCommand nicht angeben.&lt;br /&gt;
$myRA-&amp;gt;SendCommand('admin_shutdown'); &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	&lt;br /&gt;
/***********************************************************************&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
Copyright (c) 2008, The New World Grid Regents http://www.newworldgrid.com and Contributors &lt;br /&gt;
All rights reserved.&lt;br /&gt;
&lt;br /&gt;
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:&lt;br /&gt;
&lt;br /&gt;
	* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.&lt;br /&gt;
	* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer &lt;br /&gt;
	in the documentation and/or other materials provided with the distribution.&lt;br /&gt;
	* Neither the name of the New World Grid nor the names of its contributors may be used to endorse or promote products derived &lt;br /&gt;
	from this software without specific prior written permission.&lt;br /&gt;
&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, &lt;br /&gt;
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. &lt;br /&gt;
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, &lt;br /&gt;
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; &lt;br /&gt;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE &lt;br /&gt;
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
***********************************************************************/&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// How to instantiate a RemoteAdmin object ?&lt;br /&gt;
	// $myremoteadmin = new RemoteAdmin(&amp;quot;mySimulatorURL&amp;quot;, Port, &amp;quot;secret password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// How to send commands to remoteadmin plugin ?&lt;br /&gt;
	// $myremoteadmin-&amp;gt;SendCommand('admin_broadcast', array('message' =&amp;gt; 'Message to broadcast to all regions'));&lt;br /&gt;
	// $myremoteadmin-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
	// Commands like admin_shutdown don't need params, so you can left the second SendCommand functino param empty ;)&lt;br /&gt;
	&lt;br /&gt;
	// Example for error handling&lt;br /&gt;
	// &lt;br /&gt;
	// include('classes/RemoteAdmin.php');&lt;br /&gt;
	// $RA = new RemoteAdmin('localhost', 9000, 'secret');&lt;br /&gt;
	// $retour = $RA-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
	// if ($retour === FALSE)&lt;br /&gt;
	// {&lt;br /&gt;
	// 	echo 'ERROR';&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	class RemoteAdmin&lt;br /&gt;
	{&lt;br /&gt;
		&lt;br /&gt;
		function RemoteAdmin($sURL, $sPort, $pass)&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			$this-&amp;gt;simulatorURL = $sURL;		// String&lt;br /&gt;
			$this-&amp;gt;simulatorPort = $sPort;	// Integer&lt;br /&gt;
			$this-&amp;gt;password = $pass;&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		function SendCommand($command, $params=array())&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			$paramsNames = array_keys($params);&lt;br /&gt;
			$paramsValues = array_values($params);&lt;br /&gt;
			&lt;br /&gt;
			// Building the XML data to pass to RemoteAdmin through XML-RPC ;)&lt;br /&gt;
			&lt;br /&gt;
			$xml = '&amp;lt;methodCall&amp;gt;&lt;br /&gt;
						&amp;lt;methodName&amp;gt;' . htmlspecialchars($command) . '&amp;lt;/methodName&amp;gt;&lt;br /&gt;
						&amp;lt;params&amp;gt;&lt;br /&gt;
							&amp;lt;param&amp;gt;&lt;br /&gt;
								&amp;lt;value&amp;gt;&lt;br /&gt;
									&amp;lt;struct&amp;gt;&lt;br /&gt;
										&amp;lt;member&amp;gt;&lt;br /&gt;
											&amp;lt;name&amp;gt;password&amp;lt;/name&amp;gt;&lt;br /&gt;
											&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;' . htmlspecialchars($this-&amp;gt;password) . '&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
										&amp;lt;/member&amp;gt;';&lt;br /&gt;
			if (count($params) != 0)&lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				for ($p = 0; $p &amp;lt; count($params); $p++)&lt;br /&gt;
				{&lt;br /&gt;
					&lt;br /&gt;
					$xml .= '&amp;lt;member&amp;gt;&amp;lt;name&amp;gt;' . htmlspecialchars($paramsNames[$p]) . '&amp;lt;/name&amp;gt;';&lt;br /&gt;
					$xml .= '&amp;lt;value&amp;gt;' . htmlspecialchars($paramsValues[$p]) . '&amp;lt;/value&amp;gt;&amp;lt;/member&amp;gt;';&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
									&lt;br /&gt;
			$xml .= '				&amp;lt;/struct&amp;gt;&lt;br /&gt;
								&amp;lt;/value&amp;gt;&lt;br /&gt;
							&amp;lt;/param&amp;gt;&lt;br /&gt;
						&amp;lt;/params&amp;gt;&lt;br /&gt;
					&amp;lt;/methodCall&amp;gt;';&lt;br /&gt;
				&lt;br /&gt;
			//&lt;br /&gt;
			// echo $xml;&lt;br /&gt;
			//&lt;br /&gt;
				&lt;br /&gt;
					&lt;br /&gt;
			// Now building headers and sending the data ;)&lt;br /&gt;
			$host = $this-&amp;gt;simulatorURL;&lt;br /&gt;
			$port = $this-&amp;gt;simulatorPort;&lt;br /&gt;
			$timeout = 5; // Timeout in seconds&lt;br /&gt;
			&lt;br /&gt;
			error_reporting(0);&lt;br /&gt;
			&lt;br /&gt;
			$fp = fsockopen($host, $port, $errno, $errstr, $timeout);&lt;br /&gt;
			if (!$fp)&lt;br /&gt;
			{&lt;br /&gt;
				return FALSE; // If contacting host timeouts or impossible to create the socket, the method returns FALSE&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				fputs($fp, &amp;quot;POST / HTTP/1.1\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Host: $host\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Content-type: text/xml\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Content-length: &amp;quot;. strlen($xml) .&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Connection: close\r\n\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, $xml);&lt;br /&gt;
				$res = &amp;quot;&amp;quot;;&lt;br /&gt;
				while(!feof($fp)) {&lt;br /&gt;
					$res .= fgets($fp, 128);&lt;br /&gt;
				}&lt;br /&gt;
				fclose($fp);&lt;br /&gt;
				$response = substr($res, strpos($res, &amp;quot;\r\n\r\n&amp;quot;));;&lt;br /&gt;
						&lt;br /&gt;
				// Now parsing the XML response from RemoteAdmin ;)&lt;br /&gt;
				&lt;br /&gt;
				$result = array();&lt;br /&gt;
				if (preg_match_all('#&amp;lt;name&amp;gt;(.+)&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;&amp;lt;(string|int)&amp;gt;(.*)&amp;lt;/\2&amp;gt;&amp;lt;/value&amp;gt;#U', $response, $regs, PREG_SET_ORDER)) {&lt;br /&gt;
				  foreach($regs as $key=&amp;gt;$val) {&lt;br /&gt;
					$result[$val[1]] = $val[3];&lt;br /&gt;
				  }&lt;br /&gt;
				}&lt;br /&gt;
				return $result;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
		&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Python 3.6 Beispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 Beispiel - admin_broadcast -  ===&lt;br /&gt;
&lt;br /&gt;
Dieser Python 3.6 Beitrag ist ein User Projekt, es wird kein Support über die Admins geben.&lt;br /&gt;
&lt;br /&gt;
Bitte seit vorsichtig, ich schließe jede Gewährleistung aus.&lt;br /&gt;
&lt;br /&gt;
Ohne Programmierkenntnisse oder unsachgemäßer Anwendung, kann es zu Schäden am OpenSimulator oder/und dem Betriebssystem kommen.&lt;br /&gt;
&lt;br /&gt;
Faustregel: Wenn ihr nicht sicher seit, ob ihr gesichert habt, dann sichert.&lt;br /&gt;
&lt;br /&gt;
Dies ist zuletzt getestet am 23.04.2018 mit Python 3.6.3 auf Windows 10 und Ubuntu Server 17.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
 &lt;br /&gt;
# admin_broadcast senden einer Nachricht an alle in einer Region.&lt;br /&gt;
# Python 3.6 - 21.04.2018 by Manfred Aabye&lt;br /&gt;
 &lt;br /&gt;
# Module laden&lt;br /&gt;
import xmlrpc.client &lt;br /&gt;
 &lt;br /&gt;
# Information&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('Setup: Opensim.ini - Del ; - ConsoleUser -  ConsolePass')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('Beispiel:')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('SimulatorAdress = http://127.0.0.1:9000/ or http://myserver.com:9000/')&lt;br /&gt;
print('ConsoleUser = Test')&lt;br /&gt;
print('ConsolePass = secret')&lt;br /&gt;
print('RegionMessage = Dies ist ein toller Text an einem tollen Tag.')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
&lt;br /&gt;
# Abfragen&lt;br /&gt;
SimulatorAdress = input('SimulatorAdress:')&lt;br /&gt;
ConsoleUser = input('ConsoleUser:')&lt;br /&gt;
ConsolePass = input('ConsolePass:')&lt;br /&gt;
RegionMessage = input('RegionMessage:')&lt;br /&gt;
# Eingabe kann X Belibig geaendert werden RegionMessage = input('RegionMessage:') - X_Belibig = input('geben sie etwas fuer X_Belibig ein:')&lt;br /&gt;
# X_Belibig ist die Speicherstelle von input, der Text innerhalb der Klammern ist nur ein Text.&lt;br /&gt;
 &lt;br /&gt;
# Funktion admin_broadcast&lt;br /&gt;
def admin_broadcast():&lt;br /&gt;
    # Server Initialisieren &lt;br /&gt;
    Simulator = xmlrpc.client.Server(SimulatorAdress) &lt;br /&gt;
    # Password und Nachricht senden RegionMessage. Hier funktionieren auch alle anderen admin_ Befehle.&lt;br /&gt;
    # Bitte nicht vergessen auch die Eingabe zu aendern&lt;br /&gt;
    Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
 &lt;br /&gt;
# admin_broadcast Aufruf dieser kann nun an irgendeiner stelle aufgerufen werden. &lt;br /&gt;
admin_broadcast()&lt;br /&gt;
 &lt;br /&gt;
# Ende admin_broadcast&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 RemoteAdmin nur teilweise getestet ===&lt;br /&gt;
&lt;br /&gt;
Dies basiert auf dem Python 3.6 Beispiel - admin_broadcast – und soll die Erweiterung/Veränderung des source vereinfachen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    # Agent Management&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_teleport_agent({'password':ConsolePass,'agent_first_name':agent_first_name,'agent_last_name':agent_last_name,'region_name':region_name, 'pos_x':pos_x, 'pos_y':pos_y})&lt;br /&gt;
    Simulator.admin_get_agents({'password':ConsolePass,'region_name':region_name,'Regions-ID':Regions-ID})&lt;br /&gt;
&lt;br /&gt;
    # Benutzerkontenverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_create_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname,'user_password':user_password,'start_region_x':start_region_x,'start_region_y':start_region_y,'user_email':user_email})&lt;br /&gt;
    # Simulator.admin_create_user_email dies ist jetzt in admin_create_user enthalten.&lt;br /&gt;
    Simulator.admin_exists_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname})&lt;br /&gt;
    Simulator.admin_update_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname})&lt;br /&gt;
    Simulator.admin_authenticate_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname,'user_password':user_password,'token_lifetime':token_lifetime})&lt;br /&gt;
&lt;br /&gt;
    # Region Management&lt;br /&gt;
&lt;br /&gt;
    Simulator.Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
    Simulator.admin_close_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_create_region({'password':ConsolePass,'region_name':region_name,'listen_ip':listen_ip,'listen_port':listen_port,'external_address':external_address,'region_x':region_x,'region_y':region_y,'estate_name':estate_name})&lt;br /&gt;
    Simulator.admin_delete_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_modify_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_region_query({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_restart({'password':ConsolePass,'region_id':region_id})&lt;br /&gt;
    Simulator.admin_shutdown({'password':ConsolePass,'milliseconds':milliseconds})&lt;br /&gt;
&lt;br /&gt;
    # Region Dateiverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_load_heightmap({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_load_oar({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_load_xml({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_heightmap({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_oar({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_xml({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
&lt;br /&gt;
    # Region Zugangsmanagement&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_acl_list({'password': ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_acl_clear({'password': ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_acl_add({'password': ConsolePass,'region_name':region_name,'users':users})&lt;br /&gt;
    Simulator.admin_acl_remove({'password': ConsolePass,'region_name':region_name,'users':users})&lt;br /&gt;
&lt;br /&gt;
    # Estate Immobilienverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_estate_reload({'password':ConsolePass})&lt;br /&gt;
&lt;br /&gt;
    # Administrationskonsole&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_console_command({'password':ConsolePass,'console_command':console_command})&lt;br /&gt;
&lt;br /&gt;
    # Verschiedenes &lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_dialog({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
    #Simulator.admin_reset_land({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_refresh_search({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_refresh_map({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_get_opensim_version({'password':ConsolePass}) # Rueckgabeparameter: Ich weiss nicht wie das geht.&lt;br /&gt;
    #Simulator.admin_get_agent_count({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Befehle ==&lt;br /&gt;
&lt;br /&gt;
Alle Befehlsparameter die UUID einer Region nutzen &amp;quot;region_id&amp;quot; als Parameter. Alle anderen Parameter wie zB. region_uuid oder regionId sind nach Juni 2012 entfernt worden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Agent management ===&lt;br /&gt;
*[[Remoteadmin:admin teleport agent|admin_teleport_agent]]&lt;br /&gt;
*[[Remoteadmin:admin get agents|admin_get_agents]]&lt;br /&gt;
&lt;br /&gt;
=== User account management ===&lt;br /&gt;
*[[RemoteAdmin:admin create user|admin_create_user]] &lt;br /&gt;
*[[RemoteAdmin:admin create user email|admin_create_user_email]] &lt;br /&gt;
*[[RemoteAdmin:admin exists user|admin_exists_user]] &lt;br /&gt;
*[[RemoteAdmin:admin update user|admin_update_user]]&lt;br /&gt;
*[[RemoteAdmin:admin authenticate user|admin_authenticate_user]]&lt;br /&gt;
&lt;br /&gt;
=== Object management ===&lt;br /&gt;
&lt;br /&gt;
Noch keine RemoteAdmin Befehle vorhanden.&lt;br /&gt;
&lt;br /&gt;
=== Parcel management ===&lt;br /&gt;
&lt;br /&gt;
Noch keine RemoteAdmin Befehle vorhanden.&lt;br /&gt;
&lt;br /&gt;
=== Region management ===&lt;br /&gt;
*[[RemoteAdmin:admin broadcast|admin_broadcast]] &lt;br /&gt;
*[[RemoteAdmin:admin close region|admin_close_region]] &lt;br /&gt;
*[[RemoteAdmin:admin create region|admin_create_region]] &lt;br /&gt;
*[[RemoteAdmin:admin delete region|admin_delete_region]] &lt;br /&gt;
*[[RemoteAdmin:admin modify region|admin_modify_region]] &lt;br /&gt;
*[[RemoteAdmin:admin region query|admin_region_query]] &lt;br /&gt;
*[[RemoteAdmin:admin restart|admin_restart]] &lt;br /&gt;
*[[RemoteAdmin:admin shutdown|admin_shutdown]] &lt;br /&gt;
&lt;br /&gt;
=== Region file management ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[RemoteAdmin:admin load heightmap|admin_load_heightmap]]&lt;br /&gt;
* [[RemoteAdmin:admin load oar|admin_load_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin load xml|admin_load_xml]] &lt;br /&gt;
* [[RemoteAdmin:admin save heightmap|admin_save_heightmap]] &lt;br /&gt;
* [[RemoteAdmin:admin save oar|admin_save_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin save xml|admin_save_xml]]&lt;br /&gt;
&lt;br /&gt;
=== Region access management ===&lt;br /&gt;
* [[RemoteAdmin:admin acl list|admin_acl_list]] &lt;br /&gt;
* [[RemoteAdmin:admin acl clear|admin_acl_clear]] &lt;br /&gt;
* [[RemoteAdmin:admin acl add|admin_acl_add]] &lt;br /&gt;
* [[RemoteAdmin:admin acl remove|admin_acl_remove]]&lt;br /&gt;
&lt;br /&gt;
=== Estate management ===&lt;br /&gt;
* [[RemoteAdmin:admin estate reload|admin_estate_reload]]&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
* [[RemoteAdmin:admin console command|admin_console_command]]&lt;br /&gt;
&lt;br /&gt;
=== Verschiedenes ===&lt;br /&gt;
* [[RemoteAdmin:admin dialog|admin_dialog]]&lt;br /&gt;
* [[RemoteAdmin:admin reset land|admin_reset_land]]&lt;br /&gt;
* [[RemoteAdmin:admin refresh search|admin_refresh_search]]&lt;br /&gt;
* [[RemoteAdmin:admin refresh map|admin_refresh_map]]&lt;br /&gt;
* [[RemoteAdmin:admin get opensim version|admin_get_opensim_version]]&lt;br /&gt;
* [[RemoteAdmin:admin get agent count|admin_get_agent_count]]&lt;br /&gt;
&lt;br /&gt;
== Unterkategorien ==&lt;br /&gt;
&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Examples|RemoteAdmin Examples]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Proposals|RemoteAdmin Proposals]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Standards|RemoteAdmin Standards]]&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Implement new command|RemoteAdmin How to implement new commands]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:RemoteAdmin]]&lt;br /&gt;
[[Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin/de</id>
		<title>RemoteAdmin/de</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin/de"/>
				<updated>2025-04-02T17:14:40Z</updated>
		
		<summary type="html">&lt;p&gt;Manni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks|RemoteAdmin}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einführung ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin  ist eine Schnittstelle des OpenSimulator, die verschiedene Operationen können  außerhalb des OpenSimulator ausgeführt werden. Operationen, die sich selbst auf den Simulator beziehen (zB teleport user) sind immer verfügbar. Diejenigen, die sich auf Griddienstleistungen (user creation  und updating) beziehen, sind nur im Standalone-Modus Verfügbar. Im Gridmodus, muss man die ROBUST Ebene verwenden [[UserManipulation]] statt Fähigkeiten. '''&lt;br /&gt;
&lt;br /&gt;
== Das Remote Admin Interface Setup ==&lt;br /&gt;
&lt;br /&gt;
Zuerst sollte man die Remote-Admin-Interface ermöglichen. Nur die folgenden Zeilen zu Ihrer OpenSim.ini FILE-Port hinzufügen sollte auf einen Wert ungleich null gesetzt werden, um die Remote-Admin auf einem anderen Port zu haben. &lt;br /&gt;
&lt;br /&gt;
Ab Version r/16843 können Sie den Zugriff auf Remote-Admin auf bestimmte IP-Adressen beschränken, indem sie optionale access_ip_addresses verwenden. Sie können alle IP-Liste erlaubt durch RemoteAdmin  für den Zugriff auf jede IP durch ein Komma trennt. Wenn access_ip_addresses nicht gesetzt ist, dann können alle IP-Adressen RemoteAdmin zugreifen. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
  [RemoteAdmin]&lt;br /&gt;
    ;; This is the remote admin module, which uses XMLRPC requests to&lt;br /&gt;
    ;; manage regions from a web interface.&lt;br /&gt;
  &lt;br /&gt;
    ;# {enabled} {} {Enable the remote admin interface?} {true false} false&lt;br /&gt;
    enabled = true&lt;br /&gt;
  &lt;br /&gt;
    ;# {port} {enabled:true} {Port to use for the remote admin interface? (0 = default)} {} 0&lt;br /&gt;
    ;; Set this to a nonzero value to have remote admin use a different port&lt;br /&gt;
    port = 10000&lt;br /&gt;
  &lt;br /&gt;
    ;# {access_password} {enabled:true} {Password for the remote admin interface} {}&lt;br /&gt;
    ;; This password is required to make any XMLRPC call (should be set as&lt;br /&gt;
    ;; the &amp;quot;password&amp;quot; parameter)&lt;br /&gt;
    access_password = &amp;quot;passwd123&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    ;# {access_ip_addresses} {enabled:true} {List the IP addresses allowed to call RemoteAdmin?} {}&lt;br /&gt;
    ;; List the IP addresses allowed to call RemoteAdmin&lt;br /&gt;
    ;; If access_ip_addresses isn't set, then all IP addresses can access RemoteAdmin.&lt;br /&gt;
    ;; access_ip_addresses = 0.0.0.0, 0.0.0.0 ...&lt;br /&gt;
    ; access_ip_addresses =&lt;br /&gt;
  &lt;br /&gt;
    ;# {create_region_enable_voice} {enabled:true} {Enable voice for newly created regions?} {true false} false&lt;br /&gt;
    ;; set this variable to true if you want the create_region XmlRpc&lt;br /&gt;
    ;; call to unconditionally enable voice on all parcels for a newly&lt;br /&gt;
    ;; created region&lt;br /&gt;
    ; create_region_enable_voice = false&lt;br /&gt;
  &lt;br /&gt;
    ;# {create_region_public} {enabled:true} {Make newly created regions public?} {true false} false&lt;br /&gt;
    ;; set this variable to false if you want the create_region XmlRpc&lt;br /&gt;
    ;; call to create all regions as private per default (can be&lt;br /&gt;
    ;; overridden in the XmlRpc call)&lt;br /&gt;
    ; create_region_public = false&lt;br /&gt;
  &lt;br /&gt;
    ;# {enabled_methods} {enabled:true} {List of methods to allow, separated by |} {} all&lt;br /&gt;
    ;; enable only those methods you deem to be appropriate using a | delimited&lt;br /&gt;
    ;; whitelist.&lt;br /&gt;
    ;; For example:&lt;br /&gt;
    ;; enabled_methods = admin_broadcast|admin_save_oar|admin_save_xml&lt;br /&gt;
    ;; if this parameter is not specified but enabled = true, all methods&lt;br /&gt;
    ;; will be available&lt;br /&gt;
    enabled_methods = all&lt;br /&gt;
  &lt;br /&gt;
    ;; specify the default appearance for an avatar created through the remote&lt;br /&gt;
    ;; admin interface&lt;br /&gt;
    ;; This will only take effect is the file specified by the&lt;br /&gt;
    ;; default_appearance setting below exists&lt;br /&gt;
    ; default_male = Default Male&lt;br /&gt;
    ; default_female = Default Female&lt;br /&gt;
  &lt;br /&gt;
    ;; Update appearance copies inventory items and wearables of default&lt;br /&gt;
    ;; avatars. if this value is false, just worn assets are copied to the&lt;br /&gt;
    ;; Clothes folder; if true, all Clothes and Bodyparts subfolders are copied.&lt;br /&gt;
    ;; The receiver will wear the same items the default avatar did wear.&lt;br /&gt;
    ; copy_folders = false&lt;br /&gt;
  &lt;br /&gt;
    ;; Path to default appearance XML file that specifies the look of the&lt;br /&gt;
    ;; default avatars&lt;br /&gt;
    ; default_appearance = default_appearance.xml&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Siehe OpenSim.ini.example im opensim/bin/ Verzeichnis für weitere Details.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Optionen ===&lt;br /&gt;
&lt;br /&gt;
Sie können auch einen anderen Port für die XMLRPCAdmin command listener  aus dem Standard-Simulator HTTP-Port angeben.&lt;br /&gt;
&lt;br /&gt;
 [RemoteAdmin]&lt;br /&gt;
 port = &amp;lt;port-number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PHP Beispiele ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdminTest.php (ACHTUNG: $params nicht $parameters BEACHTEN!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Dieses Beispiel gibt eine Meldung heraus und fährt OpenSim herunter&lt;br /&gt;
//&lt;br /&gt;
// admin_broadcast ist das kommando für Nachrichten&lt;br /&gt;
// $params hier wird die Meldung hineingeschrieben&lt;br /&gt;
// &lt;br /&gt;
// Das Kommando admin_shutdown fährt OpenSim herunter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include('RemoteAdmin.php'); // RemoteAdmin.php Ist der Name der PHP-Klasse&lt;br /&gt;
&lt;br /&gt;
// Instanzieren der Klasse (IP oder Adresse, Port, Passwort)&lt;br /&gt;
$myRA = new RemoteAdmin('127.0.0.1', 9000, 'secret');&lt;br /&gt;
&lt;br /&gt;
// RemoteAdmin-Befehle ausführen&lt;br /&gt;
$params = array('message' =&amp;gt; 'Diese Nachricht wird an alle Regionen des OpenSimulators gesendet!');&lt;br /&gt;
&lt;br /&gt;
$myRA-&amp;gt;SendCommand('admin_broadcast', $params);&lt;br /&gt;
&lt;br /&gt;
// Wenn für einen RemoteAdmin-Befehl keine Parameter benötigt, &lt;br /&gt;
// müssen Sie den zweiten Parameter in der Funktion SendCommand nicht angeben.&lt;br /&gt;
$myRA-&amp;gt;SendCommand('admin_shutdown'); &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	&lt;br /&gt;
/***********************************************************************&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
Copyright (c) 2008, The New World Grid Regents http://www.newworldgrid.com and Contributors &lt;br /&gt;
All rights reserved.&lt;br /&gt;
&lt;br /&gt;
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:&lt;br /&gt;
&lt;br /&gt;
	* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.&lt;br /&gt;
	* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer &lt;br /&gt;
	in the documentation and/or other materials provided with the distribution.&lt;br /&gt;
	* Neither the name of the New World Grid nor the names of its contributors may be used to endorse or promote products derived &lt;br /&gt;
	from this software without specific prior written permission.&lt;br /&gt;
&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, &lt;br /&gt;
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. &lt;br /&gt;
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, &lt;br /&gt;
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; &lt;br /&gt;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE &lt;br /&gt;
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
***********************************************************************/&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// How to instantiate a RemoteAdmin object ?&lt;br /&gt;
	// $myremoteadmin = new RemoteAdmin(&amp;quot;mySimulatorURL&amp;quot;, Port, &amp;quot;secret password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// How to send commands to remoteadmin plugin ?&lt;br /&gt;
	// $myremoteadmin-&amp;gt;SendCommand('admin_broadcast', array('message' =&amp;gt; 'Message to broadcast to all regions'));&lt;br /&gt;
	// $myremoteadmin-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
	// Commands like admin_shutdown don't need params, so you can left the second SendCommand functino param empty ;)&lt;br /&gt;
	&lt;br /&gt;
	// Example for error handling&lt;br /&gt;
	// &lt;br /&gt;
	// include('classes/RemoteAdmin.php');&lt;br /&gt;
	// $RA = new RemoteAdmin('localhost', 9000, 'secret');&lt;br /&gt;
	// $retour = $RA-&amp;gt;SendCommand('admin_shutdown');&lt;br /&gt;
	// if ($retour === FALSE)&lt;br /&gt;
	// {&lt;br /&gt;
	// 	echo 'ERROR';&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	class RemoteAdmin&lt;br /&gt;
	{&lt;br /&gt;
		&lt;br /&gt;
		function RemoteAdmin($sURL, $sPort, $pass)&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			$this-&amp;gt;simulatorURL = $sURL;		// String&lt;br /&gt;
			$this-&amp;gt;simulatorPort = $sPort;	// Integer&lt;br /&gt;
			$this-&amp;gt;password = $pass;&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		function SendCommand($command, $params=array())&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			$paramsNames = array_keys($params);&lt;br /&gt;
			$paramsValues = array_values($params);&lt;br /&gt;
			&lt;br /&gt;
			// Building the XML data to pass to RemoteAdmin through XML-RPC ;)&lt;br /&gt;
			&lt;br /&gt;
			$xml = '&amp;lt;methodCall&amp;gt;&lt;br /&gt;
						&amp;lt;methodName&amp;gt;' . htmlspecialchars($command) . '&amp;lt;/methodName&amp;gt;&lt;br /&gt;
						&amp;lt;params&amp;gt;&lt;br /&gt;
							&amp;lt;param&amp;gt;&lt;br /&gt;
								&amp;lt;value&amp;gt;&lt;br /&gt;
									&amp;lt;struct&amp;gt;&lt;br /&gt;
										&amp;lt;member&amp;gt;&lt;br /&gt;
											&amp;lt;name&amp;gt;password&amp;lt;/name&amp;gt;&lt;br /&gt;
											&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;' . htmlspecialchars($this-&amp;gt;password) . '&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
										&amp;lt;/member&amp;gt;';&lt;br /&gt;
			if (count($params) != 0)&lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				for ($p = 0; $p &amp;lt; count($params); $p++)&lt;br /&gt;
				{&lt;br /&gt;
					&lt;br /&gt;
					$xml .= '&amp;lt;member&amp;gt;&amp;lt;name&amp;gt;' . htmlspecialchars($paramsNames[$p]) . '&amp;lt;/name&amp;gt;';&lt;br /&gt;
					$xml .= '&amp;lt;value&amp;gt;' . htmlspecialchars($paramsValues[$p]) . '&amp;lt;/value&amp;gt;&amp;lt;/member&amp;gt;';&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
									&lt;br /&gt;
			$xml .= '				&amp;lt;/struct&amp;gt;&lt;br /&gt;
								&amp;lt;/value&amp;gt;&lt;br /&gt;
							&amp;lt;/param&amp;gt;&lt;br /&gt;
						&amp;lt;/params&amp;gt;&lt;br /&gt;
					&amp;lt;/methodCall&amp;gt;';&lt;br /&gt;
				&lt;br /&gt;
			//&lt;br /&gt;
			// echo $xml;&lt;br /&gt;
			//&lt;br /&gt;
				&lt;br /&gt;
					&lt;br /&gt;
			// Now building headers and sending the data ;)&lt;br /&gt;
			$host = $this-&amp;gt;simulatorURL;&lt;br /&gt;
			$port = $this-&amp;gt;simulatorPort;&lt;br /&gt;
			$timeout = 5; // Timeout in seconds&lt;br /&gt;
			&lt;br /&gt;
			error_reporting(0);&lt;br /&gt;
			&lt;br /&gt;
			$fp = fsockopen($host, $port, $errno, $errstr, $timeout);&lt;br /&gt;
			if (!$fp)&lt;br /&gt;
			{&lt;br /&gt;
				return FALSE; // If contacting host timeouts or impossible to create the socket, the method returns FALSE&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				fputs($fp, &amp;quot;POST / HTTP/1.1\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Host: $host\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Content-type: text/xml\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Content-length: &amp;quot;. strlen($xml) .&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, &amp;quot;Connection: close\r\n\r\n&amp;quot;);&lt;br /&gt;
				fputs($fp, $xml);&lt;br /&gt;
				$res = &amp;quot;&amp;quot;;&lt;br /&gt;
				while(!feof($fp)) {&lt;br /&gt;
					$res .= fgets($fp, 128);&lt;br /&gt;
				}&lt;br /&gt;
				fclose($fp);&lt;br /&gt;
				$response = substr($res, strpos($res, &amp;quot;\r\n\r\n&amp;quot;));;&lt;br /&gt;
						&lt;br /&gt;
				// Now parsing the XML response from RemoteAdmin ;)&lt;br /&gt;
				&lt;br /&gt;
				$result = array();&lt;br /&gt;
				if (preg_match_all('#&amp;lt;name&amp;gt;(.+)&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;&amp;lt;(string|int)&amp;gt;(.*)&amp;lt;/\2&amp;gt;&amp;lt;/value&amp;gt;#U', $response, $regs, PREG_SET_ORDER)) {&lt;br /&gt;
				  foreach($regs as $key=&amp;gt;$val) {&lt;br /&gt;
					$result[$val[1]] = $val[3];&lt;br /&gt;
				  }&lt;br /&gt;
				}&lt;br /&gt;
				return $result;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
		&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Python 3.6 Beispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 Beispiel - admin_broadcast -  ===&lt;br /&gt;
&lt;br /&gt;
Dieser Python 3.6 Beitrag ist ein User Projekt, es wird kein Support über die Admins geben.&lt;br /&gt;
&lt;br /&gt;
Bitte seit vorsichtig, ich schließe jede Gewährleistung aus.&lt;br /&gt;
&lt;br /&gt;
Ohne Programmierkenntnisse oder unsachgemäßer Anwendung, kann es zu Schäden am OpenSimulator oder/und dem Betriebssystem kommen.&lt;br /&gt;
&lt;br /&gt;
Faustregel: Wenn ihr nicht sicher seit, ob ihr gesichert habt, dann sichert.&lt;br /&gt;
&lt;br /&gt;
Dies ist zuletzt getestet am 23.04.2018 mit Python 3.6.3 auf Windows 10 und Ubuntu Server 17.10.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
 &lt;br /&gt;
# admin_broadcast senden einer Nachricht an alle in einer Region.&lt;br /&gt;
# Python 3.6 - 21.04.2018 by Manfred Aabye&lt;br /&gt;
 &lt;br /&gt;
# Module laden&lt;br /&gt;
import xmlrpc.client &lt;br /&gt;
 &lt;br /&gt;
# Information&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('Setup: Opensim.ini - Del ; - ConsoleUser -  ConsolePass')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('Beispiel:')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
print('SimulatorAdress = http://127.0.0.1:9000/ or http://myserver.com:9000/')&lt;br /&gt;
print('ConsoleUser = Test')&lt;br /&gt;
print('ConsolePass = secret')&lt;br /&gt;
print('RegionMessage = Dies ist ein toller Text an einem tollen Tag.')&lt;br /&gt;
print('---------------------------------------------------------------------')&lt;br /&gt;
&lt;br /&gt;
# Abfragen&lt;br /&gt;
SimulatorAdress = input('SimulatorAdress:')&lt;br /&gt;
ConsoleUser = input('ConsoleUser:')&lt;br /&gt;
ConsolePass = input('ConsolePass:')&lt;br /&gt;
RegionMessage = input('RegionMessage:')&lt;br /&gt;
# Eingabe kann X Belibig geaendert werden RegionMessage = input('RegionMessage:') - X_Belibig = input('geben sie etwas fuer X_Belibig ein:')&lt;br /&gt;
# X_Belibig ist die Speicherstelle von input, der Text innerhalb der Klammern ist nur ein Text.&lt;br /&gt;
 &lt;br /&gt;
# Funktion admin_broadcast&lt;br /&gt;
def admin_broadcast():&lt;br /&gt;
    # Server Initialisieren &lt;br /&gt;
    Simulator = xmlrpc.client.Server(SimulatorAdress) &lt;br /&gt;
    # Password und Nachricht senden RegionMessage. Hier funktionieren auch alle anderen admin_ Befehle.&lt;br /&gt;
    # Bitte nicht vergessen auch die Eingabe zu aendern&lt;br /&gt;
    Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
 &lt;br /&gt;
# admin_broadcast Aufruf dieser kann nun an irgendeiner stelle aufgerufen werden. &lt;br /&gt;
admin_broadcast()&lt;br /&gt;
 &lt;br /&gt;
# Ende admin_broadcast&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 3.6 RemoteAdmin nur teilweise getestet ===&lt;br /&gt;
&lt;br /&gt;
Dies basiert auf dem Python 3.6 Beispiel - admin_broadcast – und soll die Erweiterung/Veränderung des source vereinfachen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    # Agent Management&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_teleport_agent({'password':ConsolePass,'agent_first_name':agent_first_name,'agent_last_name':agent_last_name,'region_name':region_name, 'pos_x':pos_x, 'pos_y':pos_y})&lt;br /&gt;
    Simulator.admin_get_agents({'password':ConsolePass,'region_name':region_name,'Regions-ID':Regions-ID})&lt;br /&gt;
&lt;br /&gt;
    # Benutzerkontenverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_create_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname,'user_password':user_password,'start_region_x':start_region_x,'start_region_y':start_region_y,'user_email':user_email})&lt;br /&gt;
    # Simulator.admin_create_user_email dies ist jetzt in admin_create_user enthalten.&lt;br /&gt;
    Simulator.admin_exists_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname})&lt;br /&gt;
    Simulator.admin_update_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname})&lt;br /&gt;
    Simulator.admin_authenticate_user({'password':ConsolePass,'user_firstname':user_firstname,'user_lastname':user_lastname,'user_password':user_password,'token_lifetime':token_lifetime})&lt;br /&gt;
&lt;br /&gt;
    # Region Management&lt;br /&gt;
&lt;br /&gt;
    Simulator.Simulator.admin_broadcast({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
    Simulator.admin_close_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_create_region({'password':ConsolePass,'region_name':region_name,'listen_ip':listen_ip,'listen_port':listen_port,'external_address':external_address,'region_x':region_x,'region_y':region_y,'estate_name':estate_name})&lt;br /&gt;
    Simulator.admin_delete_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_modify_region({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_region_query({'password':ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_restart({'password':ConsolePass,'region_id':region_id})&lt;br /&gt;
    Simulator.admin_shutdown({'password':ConsolePass,'milliseconds':milliseconds})&lt;br /&gt;
&lt;br /&gt;
    # Region Dateiverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_load_heightmap({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_load_oar({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_load_xml({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_heightmap({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_oar({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
    Simulator.admin_save_xml({'password': ConsolePass,'region_name':region_name,'filename': filename})&lt;br /&gt;
&lt;br /&gt;
    # Region Zugangsmanagement&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_acl_list({'password': ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_acl_clear({'password': ConsolePass,'region_name':region_name})&lt;br /&gt;
    Simulator.admin_acl_add({'password': ConsolePass,'region_name':region_name,'users':users})&lt;br /&gt;
    Simulator.admin_acl_remove({'password': ConsolePass,'region_name':region_name,'users':users})&lt;br /&gt;
&lt;br /&gt;
    # Estate Immobilienverwaltung&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_estate_reload({'password':ConsolePass})&lt;br /&gt;
&lt;br /&gt;
    # Administrationskonsole&lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_console_command({'password':ConsolePass,'console_command':console_command})&lt;br /&gt;
&lt;br /&gt;
    # Verschiedenes &lt;br /&gt;
&lt;br /&gt;
    Simulator.admin_dialog({'password': ConsolePass, 'message': RegionMessage})&lt;br /&gt;
    #Simulator.admin_reset_land({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_refresh_search({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_refresh_map({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
    #Simulator.admin_get_opensim_version({'password':ConsolePass}) # Rueckgabeparameter: Ich weiss nicht wie das geht.&lt;br /&gt;
    #Simulator.admin_get_agent_count({'password':ConsolePass}) # keine ahnung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Befehle ==&lt;br /&gt;
&lt;br /&gt;
Alle Befehlsparameter die UUID einer Region nutzen &amp;quot;region_id&amp;quot; als Parameter. Alle anderen Parameter wie zB. region_uuid oder regionId sind nach Juni 2012 entfernt worden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Agent management ===&lt;br /&gt;
*[[Remoteadmin:admin teleport agent|admin_teleport_agent]]&lt;br /&gt;
*[[Remoteadmin:admin get agents|admin_get_agents]]&lt;br /&gt;
&lt;br /&gt;
=== User account management ===&lt;br /&gt;
*[[RemoteAdmin:admin create user|admin_create_user]] &lt;br /&gt;
*[[RemoteAdmin:admin create user email|admin_create_user_email]] &lt;br /&gt;
*[[RemoteAdmin:admin exists user|admin_exists_user]] &lt;br /&gt;
*[[RemoteAdmin:admin update user|admin_update_user]]&lt;br /&gt;
*[[RemoteAdmin:admin authenticate user|admin_authenticate_user]]&lt;br /&gt;
&lt;br /&gt;
=== Object management ===&lt;br /&gt;
&lt;br /&gt;
Noch keine RemoteAdmin Befehle vorhanden.&lt;br /&gt;
&lt;br /&gt;
=== Parcel management ===&lt;br /&gt;
&lt;br /&gt;
Noch keine RemoteAdmin Befehle vorhanden.&lt;br /&gt;
&lt;br /&gt;
=== Region management ===&lt;br /&gt;
*[[RemoteAdmin:admin broadcast|admin_broadcast]] &lt;br /&gt;
*[[RemoteAdmin:admin close region|admin_close_region]] &lt;br /&gt;
*[[RemoteAdmin:admin create region|admin_create_region]] &lt;br /&gt;
*[[RemoteAdmin:admin delete region|admin_delete_region]] &lt;br /&gt;
*[[RemoteAdmin:admin modify region|admin_modify_region]] &lt;br /&gt;
*[[RemoteAdmin:admin region query|admin_region_query]] &lt;br /&gt;
*[[RemoteAdmin:admin restart|admin_restart]] &lt;br /&gt;
*[[RemoteAdmin:admin shutdown|admin_shutdown]] &lt;br /&gt;
&lt;br /&gt;
=== Region file management ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[RemoteAdmin:admin load heightmap|admin_load_heightmap]]&lt;br /&gt;
* [[RemoteAdmin:admin load oar|admin_load_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin load xml|admin_load_xml]] &lt;br /&gt;
* [[RemoteAdmin:admin save heightmap|admin_save_heightmap]] &lt;br /&gt;
* [[RemoteAdmin:admin save oar|admin_save_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin save xml|admin_save_xml]]&lt;br /&gt;
&lt;br /&gt;
=== Region access management ===&lt;br /&gt;
* [[RemoteAdmin:admin acl list|admin_acl_list]] &lt;br /&gt;
* [[RemoteAdmin:admin acl clear|admin_acl_clear]] &lt;br /&gt;
* [[RemoteAdmin:admin acl add|admin_acl_add]] &lt;br /&gt;
* [[RemoteAdmin:admin acl remove|admin_acl_remove]]&lt;br /&gt;
&lt;br /&gt;
=== Estate management ===&lt;br /&gt;
* [[RemoteAdmin:admin estate reload|admin_estate_reload]]&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
* [[RemoteAdmin:admin console command|admin_console_command]]&lt;br /&gt;
&lt;br /&gt;
=== Verschiedenes ===&lt;br /&gt;
* [[RemoteAdmin:admin dialog|admin_dialog]]&lt;br /&gt;
* [[RemoteAdmin:admin reset land|admin_reset_land]]&lt;br /&gt;
* [[RemoteAdmin:admin refresh search|admin_refresh_search]]&lt;br /&gt;
* [[RemoteAdmin:admin refresh map|admin_refresh_map]]&lt;br /&gt;
* [[RemoteAdmin:admin get opensim version|admin_get_opensim_version]]&lt;br /&gt;
* [[RemoteAdmin:admin get agent count|admin_get_agent_count]]&lt;br /&gt;
&lt;br /&gt;
== Unterkategorien ==&lt;br /&gt;
&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Examples|RemoteAdmin Examples]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Proposals|RemoteAdmin Proposals]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Standards|RemoteAdmin Standards]]&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Implement new command|RemoteAdmin How to implement new commands]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:RemoteAdmin]]&lt;br /&gt;
[[Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	</feed>