This Companion-specific article refers to an obsolete technology. For the modern ARES equivalent, see Operating ARES: Filesystem Introduction


Web folders are a coming technology in Companion 8.5 beta 5 that allow for certain notecard-based data files, including personas, fs_vocabulary dictionaries, and TESI voices to be fetched from an HTTP server instead of the standard Second Life inventory servers. For most data types, this accelerates loading considerably, and means that creators can update their creations without updating the actual packages on the unit.

Note that at this time, Arabesque scripts (a_*, e_*, and px_* files) cannot be fetched via web folders due to limitations in the script processor's file-loading methods. These will still need to be distributed manually in packages until further notice.

Keep in mind that if a package is available exclusively via web folders, it is considerably less "future-proof" than one stored entirely in Second Life. If you are uncertain that your web-folder packages will continue to be available in the future, we strongly advise you to produce a non-web backup version that will have more longevity.

Creating a web folder


To create a web folder, you need access to a web server that allows you full control over pages (i.e., no ads or templates automatically inserted) and a new type of controller asset, a w_ notecard.

w_ notecards


These consist of one line of text containing the URL to load from. For example, the w_test file contains http://my.nanite-systems.com/w/

w_ notecards can and should be added and removed with a package just like other notecards. They must still be included in the ~ manifest file like other notecards.

Setting up the web folder


A web folder should contain an index page that lists all of the files inside it in plaintext format, one name per line, without any path. The files should be placed in the same directory, e.g. http://my.nanite-systems.com/w/p_test should appear in the index page as p_test, with no slashes or other extraneous information.

The LL HTTP gateway has a distaste for pages that do not include a MIME type, and may interpret such documents as being blank. You may need to use scripting or your web server's configuration files to ensure that all of the files are presented with a valid MIME type.

Sample index script (PHP)

<?php
	header("Content-Type: text/plain");
	$items = scandir(getcwd());
	array_splice($items, array_search(".htaccess", $items), 1);
	array_splice($items, array_search("index.php", $items), 1);
	array_splice($items, array_search("..", $items), 1);
	array_splice($items, array_search(".", $items), 1);
	echo implode("\n", $items);
?>

Sample .htaccess (Apache 2.4)

ForceType "text/special"
Require all granted