Roxen modules are, strictly speaking, not scripts in the same sense as the other script types. Rather, they are a way of extending the server's functionality. Most of Roxen's functions are implemented as modules. However, since modules are often a convenient way of doing things that might otherwise have been done with regular scripts, modules belong in this overview.
Roxen modules can be written in Java or Pike.
Roxen modules can be used to implement new RXML tags, support new communication protocols, and numerous other things that would be impossible or difficult with other script types. Modules are also persistent entities in the server, as opposed to ordinary CGI scripts, which are executed in a single-shot fashion, starting anew each time they are invoked. FastCGI scripts are somewhat persistent.
From a security viewpoint, Roxen modules must be treated with utmost care. Modules have access to the whole server. Thus, only trusted users should be able to write their own module, and modules should only be downloaded from reputable web sites. Apart from the security considerations, modules that take a long time executing can also cause performance degradation and other service disruptions, especially if the server isn't running with enough threads.
Compile time and run time error messages for modules will be reported, with a Pike backtrace so the problem can be pinpointed. All such error messages will be reported on the Event Log tab and in the debug log. They will also be reported on the web page where the error occurred, unless the Show the internals variable is disabled.