<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.newmediaarts.org/index.php?action=history&amp;feed=atom&amp;title=Script_Engines</id>
	<title>Script Engines - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.newmediaarts.org/index.php?action=history&amp;feed=atom&amp;title=Script_Engines"/>
	<link rel="alternate" type="text/html" href="https://wiki.newmediaarts.org/index.php?title=Script_Engines&amp;action=history"/>
	<updated>2026-11-01T03:48:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.newmediaarts.org/index.php?title=Script_Engines&amp;diff=5&amp;oldid=prev</id>
		<title>Nmawikiadmin at 00:04, 5 October 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.newmediaarts.org/index.php?title=Script_Engines&amp;diff=5&amp;oldid=prev"/>
		<updated>2026-10-05T00:04:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:04, 5 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot;&gt;Line 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Phlox uses its own bytecodes, and emulates that imaginary CPU directly. Same as YEngine, hooks are provided to perform the functionality of the LSL/OSSL functions.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Phlox uses its own bytecodes, and emulates that imaginary CPU directly. Same as YEngine, hooks are provided to perform the functionality of the LSL/OSSL functions.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Scripting]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key nmawiki:diff:1.41:old-2:rev-5:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Nmawikiadmin</name></author>
	</entry>
	<entry>
		<id>https://wiki.newmediaarts.org/index.php?title=Script_Engines&amp;diff=2&amp;oldid=prev</id>
		<title>Nmawikiadmin: Quick explanation of script engines.</title>
		<link rel="alternate" type="text/html" href="https://wiki.newmediaarts.org/index.php?title=Script_Engines&amp;diff=2&amp;oldid=prev"/>
		<updated>2026-10-04T23:59:42Z</updated>

		<summary type="html">&lt;p&gt;Quick explanation of script engines.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Script Engines ==&lt;br /&gt;
&lt;br /&gt;
Everything you need to know, but were afraid to ask, about script engines! Well, not quite, but hey.&lt;br /&gt;
&lt;br /&gt;
There is not much information out there about the moving parts involved in getting from that &amp;quot;script edit&amp;quot; window in the viewer to the prim actually doing the things it does inworld.&lt;br /&gt;
&lt;br /&gt;
There is the &amp;#039;&amp;#039;source code&amp;#039;&amp;#039;, the &amp;#039;&amp;#039;compiler&amp;#039;&amp;#039;, and the &amp;#039;&amp;#039;engine&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
This is the human-readable text you see in the script edit window in the viewer. As of today, it is either the Linden Scripting Language (aka LSL) or the Luau language (a dialect of the Lua scripting language). A programming language to tell prims to do things, and react to stimuli.&lt;br /&gt;
&lt;br /&gt;
=== The Compiler ===&lt;br /&gt;
&lt;br /&gt;
This is a piece of software that takes the Source Code and translates it into another language, closer to the actual silicon. Here, it is something called &amp;#039;&amp;#039;bytecode&amp;#039;&amp;#039;, a name you may have heard. Bytecode was a slang term for the machine code for an imaginary CPU, so called because many instructions were one byte long.&lt;br /&gt;
&lt;br /&gt;
Like many slang terms in computer sciency circles, it escaped to the public without its history and meaning.&lt;br /&gt;
&lt;br /&gt;
A &amp;#039;&amp;#039;language virtual machine&amp;#039;&amp;#039; (or just VM) emulates this imaginary CPU, executing the bytecode like a machine code program.&lt;br /&gt;
&lt;br /&gt;
In Second Life, a long long time ago, they had a VM with its own bytecode (LSO bytecode) and the viewer could upload bytecode.&lt;br /&gt;
&lt;br /&gt;
Then they introduced &amp;quot;Mono&amp;quot; which used the .NET bytecode (CIL), and the compiler lived in the server.&lt;br /&gt;
&lt;br /&gt;
The Phlox engine in InWorldz (and in NGC Tranquility v1.0.49) is another bytecode. The compiler lives on the server again.&lt;br /&gt;
&lt;br /&gt;
=== The Engine ===&lt;br /&gt;
&lt;br /&gt;
This is a part of the server. It takes script bytecode assets, and runs them.&lt;br /&gt;
&lt;br /&gt;
YEngine uses CIL bytecodes, and uses the .NET (aka dotnet) runtime to execute the scripts. It also provides the hooks so a script calling an &amp;lt;code&amp;gt;llWhatever()&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;osWhatever()&amp;lt;/code&amp;gt; function can get whatever it needs.&lt;br /&gt;
&lt;br /&gt;
Phlox uses its own bytecodes, and emulates that imaginary CPU directly. Same as YEngine, hooks are provided to perform the functionality of the LSL/OSSL functions.&lt;/div&gt;</summary>
		<author><name>Nmawikiadmin</name></author>
	</entry>
</feed>