<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.virtualparadise.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chris</id>
	<title>Virtual Paradise Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.virtualparadise.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chris"/>
	<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/Special:Contributions/Chris"/>
	<updated>2026-06-06T00:32:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Nexus&amp;diff=4703</id>
		<title>Nexus</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Nexus&amp;diff=4703"/>
		<updated>2017-11-03T03:28:53Z</updated>

		<summary type="html">&lt;p&gt;Chris: Updated to add warning about crashing issue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right; -moz-border-radius:12px&amp;quot;&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;55bbff&amp;quot; colspan=&amp;quot;3&amp;quot;|Nexus&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot;|[[Image:Nexus.png|250px]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;77ddff&amp;quot; colspan=&amp;quot;3&amp;quot;|General-purpose bot&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Creator(s)&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Chris D&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Initial release&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|September 24, 2012&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Development status&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Active&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Type&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Bots|Bot]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|License&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Freeware&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Website&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[http://bit.ly/UuQCP0 Download here]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
Nexus is a practical general-purpose bot with various abilities and chat commands.&lt;br /&gt;
&lt;br /&gt;
Instructions on usage are provided with the bot.&lt;br /&gt;
&lt;br /&gt;
Next version will support creation and manipulation of propdumps, builds, and seamlessly transferring builds from AW to VP and vice versa.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This version has not been updated since 2012 and has been reported to crash - project is no longer being updated on a regular basis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
[http://bit.ly/UuQCP0 Download Nexus]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[VPPTSV]] Propdump specification&lt;br /&gt;
&lt;br /&gt;
[[Category: Bots]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Socialist_Party&amp;diff=3610</id>
		<title>Socialist Party</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Socialist_Party&amp;diff=3610"/>
		<updated>2015-06-18T18:23:59Z</updated>

		<summary type="html">&lt;p&gt;Chris: Added election poster&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center; font-size: 125%; font-weight: bold&amp;quot;|Socialist Party of Palmshire&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: {{Socialist Party (Palmshire)/meta/color}}&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[File:Psp_logo.png|300px|center|Official Party Logo]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[File:500px-Red_flag_II.svg.png|230px|center|The traditional red socialist flag.]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Leader&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Chris D]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Founded&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|2012&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Ideology&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Socialism&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Political position&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Centre-left&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Official colors&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Red Yellow&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|[[Parliament of Palmshire]]&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|4&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: {{Socialist Party (Palmshire)/meta/color}}&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[Politics of the Kingdom of Palmshire]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[List of political parties in Palmshire|Political parties]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[Elections in the Kingdom of Palmshire|Elections]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;{{PAGENAME}}&#039;&#039;&#039; is one of the political parties in Palmshire that adheres to the scientific socialist ideal in supporting a sustainable and equal democratic society. It was founded by [[Chris D]] in early 2012. Chris D is the current [[Leaders of the Socialist Party|party leader]].&lt;br /&gt;
&lt;br /&gt;
The party aims for an increase in citizens quality of life by eradicating poverty, structuring a self-managed economy and balancing the power to support a strong community. They will take advantage of the latest scientific research and look upon existing wisdom, to establish reformative long-term plans for the betterment of humanity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
===Parliament===&lt;br /&gt;
* [[Chris D]] - Current Party Leader&lt;br /&gt;
* [[User:Mark|Mark]]&lt;br /&gt;
* [[User:Alphaworldian|Alphaworldian]]&lt;br /&gt;
&lt;br /&gt;
===Non-parliamentary member===&lt;br /&gt;
* [[Cloggedone]]&lt;br /&gt;
* [[Neo]]&lt;br /&gt;
* [[AlexTheMartian, 1st Baron Alexandria]]&lt;br /&gt;
* [[keida124]]&lt;br /&gt;
&lt;br /&gt;
==Policies==&lt;br /&gt;
&lt;br /&gt;
* Creating a sustainable society with a minimum standard of living for everyone to have food, internet access, and other essentials.&lt;br /&gt;
* Restructuring the framework of the essential services such as police, hospitals, etc.&lt;br /&gt;
* Reviewing and revising old laws, especially those outdated.&lt;br /&gt;
* Making government less intrusive on peoples lives, giving more freedom to citizens.&lt;br /&gt;
* Improving the mechanisms for democracy and voting.&lt;br /&gt;
* Improving and reviewing the way that parliament works.&lt;br /&gt;
* Increasing immigration to Blizzard and getting more people in long-term employment.&lt;br /&gt;
&lt;br /&gt;
==Elections==&lt;br /&gt;
[[File:Socialist_billboard.jpg|border|Election campaign billboard]]&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
[[Category: Political parties in the Kingdom of Palmshire]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=File:Socialist_billboard.jpg&amp;diff=3609</id>
		<title>File:Socialist billboard.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=File:Socialist_billboard.jpg&amp;diff=3609"/>
		<updated>2015-06-18T18:09:42Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=File:Psp_logo.png&amp;diff=3590</id>
		<title>File:Psp logo.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=File:Psp_logo.png&amp;diff=3590"/>
		<updated>2015-04-26T08:25:08Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of File:Psp logo.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Palmshire Socialist Party Logo&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Socialist_Party&amp;diff=3589</id>
		<title>Socialist Party</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Socialist_Party&amp;diff=3589"/>
		<updated>2015-04-26T07:05:44Z</updated>

		<summary type="html">&lt;p&gt;Chris: Added logo.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center; font-size: 125%; font-weight: bold&amp;quot;|Socialist Party of Palmshire&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: {{Socialist Party (Palmshire)/meta/color}}&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[File:Psp_logo.png|300px|center|Official Party Logo]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[File:500px-Red_flag_II.svg.png|230px|center|The traditional red socialist flag.]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Leader&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Chris D]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Founded&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|2012&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Ideology&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Socialism&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Political position&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Centre-left&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Official colors&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Red Yellow&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|[[Parliament of Palmshire]]&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|4&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: {{Socialist Party (Palmshire)/meta/color}}&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[Politics of the Kingdom of Palmshire]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[List of political parties in Palmshire|Political parties]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[Elections in the Kingdom of Palmshire|Elections]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;{{PAGENAME}}&#039;&#039;&#039; is one of the political parties in Palmshire that adheres to the scientific socialist ideal in supporting a sustainable and equal democratic society. It was founded by [[Chris D]] in early 2012. Chris D is the current [[Leaders of the Socialist Party|party leader]].&lt;br /&gt;
&lt;br /&gt;
The party aims for an increase in citizens quality of life by eradicating poverty, structuring a self-managed economy and balancing the power to support a strong community. They will take advantage of the latest scientific research and look upon existing wisdom, to establish reformative long-term plans for the betterment of humanity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
===Parliament===&lt;br /&gt;
* [[Chris D]] - Current Party Leader&lt;br /&gt;
* [[User:Mark|Mark]]&lt;br /&gt;
* [[User:Alphaworldian|Alphaworldian]]&lt;br /&gt;
&lt;br /&gt;
===Non-parliamentary member===&lt;br /&gt;
* [[Cloggedone]]&lt;br /&gt;
* [[Neo]]&lt;br /&gt;
* [[AlexTheMartian, 1st Baron Alexandria]]&lt;br /&gt;
* [[keida124]]&lt;br /&gt;
&lt;br /&gt;
==Policies==&lt;br /&gt;
&lt;br /&gt;
* Creating a sustainable society with a minimum standard of living for everyone to have food, internet access, and other essentials.&lt;br /&gt;
* Restructuring the framework of the essential services such as police, hospitals, etc.&lt;br /&gt;
* Reviewing and revising old laws, especially those outdated.&lt;br /&gt;
* Making government less intrusive on peoples lives, giving more freedom to citizens.&lt;br /&gt;
* Improving the mechanisms for democracy and voting.&lt;br /&gt;
* Improving and reviewing the way that parliament works.&lt;br /&gt;
* Increasing immigration to Blizzard and getting more people in long-term employment.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
[[Category: Political parties in the Kingdom of Palmshire]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=File:Psp_logo.png&amp;diff=3588</id>
		<title>File:Psp logo.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=File:Psp_logo.png&amp;diff=3588"/>
		<updated>2015-04-26T07:01:49Z</updated>

		<summary type="html">&lt;p&gt;Chris: Palmshire Socialist Party Logo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Palmshire Socialist Party Logo&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Socialist_Party&amp;diff=3586</id>
		<title>Socialist Party</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Socialist_Party&amp;diff=3586"/>
		<updated>2015-04-23T02:20:09Z</updated>

		<summary type="html">&lt;p&gt;Chris: Added a policy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center; font-size: 125%; font-weight: bold&amp;quot;|Socialist Party of Palmshire&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: {{Socialist Party (Palmshire)/meta/color}}&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[File:500px-Red_flag_II.svg.png|230px|center|The traditional red socialist flag.]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Leader&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Chris D]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Founded&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|2012&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Ideology&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Socialism&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Political position&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Centre-left&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Official colors&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Red Yellow&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|[[Parliament of Palmshire]]&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|4&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: {{Socialist Party (Palmshire)/meta/color}}&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[Politics of the Kingdom of Palmshire]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[List of political parties in Palmshire|Political parties]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[Elections in the Kingdom of Palmshire|Elections]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;{{PAGENAME}}&#039;&#039;&#039; is one of the political parties in Palmshire that adheres to the scientific socialist ideal in supporting a sustainable and equal democratic society. It was founded by [[Chris D]] in early 2012. Chris D is the current [[Leaders of the Socialist Party|party leader]].&lt;br /&gt;
&lt;br /&gt;
The party aims for an increase in citizens quality of life by eradicating poverty, structuring a self-managed economy and balancing the power to support a strong community. They will take advantage of the latest scientific research and look upon existing wisdom, to establish reformative long-term plans for the betterment of humanity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
===Parliament===&lt;br /&gt;
* [[Chris D]] - Current Party Leader&lt;br /&gt;
* [[User:Mark|Mark]]&lt;br /&gt;
* [[User:Alphaworldian|Alphaworldian]]&lt;br /&gt;
&lt;br /&gt;
===Non-parliamentary member===&lt;br /&gt;
* [[Cloggedone]]&lt;br /&gt;
* [[Neo]]&lt;br /&gt;
* [[AlexTheMartian, 1st Baron Alexandria]]&lt;br /&gt;
* [[keida124]]&lt;br /&gt;
&lt;br /&gt;
==Policies==&lt;br /&gt;
&lt;br /&gt;
* Creating a sustainable society with a minimum standard of living for everyone to have food, internet access, and other essentials.&lt;br /&gt;
* Restructuring the framework of the essential services such as police, hospitals, etc.&lt;br /&gt;
* Reviewing and revising old laws, especially those outdated.&lt;br /&gt;
* Making government less intrusive on peoples lives, giving more freedom to citizens.&lt;br /&gt;
* Improving the mechanisms for democracy and voting.&lt;br /&gt;
* Improving and reviewing the way that parliament works.&lt;br /&gt;
* Increasing immigration to Blizzard and getting more people in long-term employment.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
[[Category: Political parties in the Kingdom of Palmshire]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Socialist_Party&amp;diff=3560</id>
		<title>Socialist Party</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Socialist_Party&amp;diff=3560"/>
		<updated>2015-04-21T13:03:00Z</updated>

		<summary type="html">&lt;p&gt;Chris: Updated for VP 2015&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center; font-size: 125%; font-weight: bold&amp;quot;|Socialist Party of Palmshire&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: {{Socialist Party (Palmshire)/meta/color}}&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[File:500px-Red_flag_II.svg.png|230px|center|The traditional red socialist flag.]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Leader&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Chris D]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Founded&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|2012&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Ideology&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Socialism&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Political position&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Centre-left&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Official colors&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Red Yellow&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|[[Parliament of Palmshire]]&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|4&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color: {{Socialist Party (Palmshire)/meta/color}}&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[Politics of the Kingdom of Palmshire]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[List of political parties in Palmshire|Political parties]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;|[[Elections in the Kingdom of Palmshire|Elections]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;{{PAGENAME}}&#039;&#039;&#039; is one of the political parties in Palmshire that adheres to the scientific socialist ideal in supporting a sustainable and equal democratic society. It was founded by [[Chris D]] in early 2012. Chris D is the current [[Leaders of the Socialist Party|party leader]].&lt;br /&gt;
&lt;br /&gt;
The party aims for an increase in citizens quality of life by eradicating poverty, structuring a self-managed economy and balancing the power to support a strong community. They will take advantage of the latest scientific research and look upon existing wisdom, to establish reformative long-term plans for the betterment of humanity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
===Parliament===&lt;br /&gt;
* [[Chris D]] - Current Party Leader&lt;br /&gt;
* [[User:Mark|Mark]]&lt;br /&gt;
* [[User:Alphaworldian|Alphaworldian]]&lt;br /&gt;
&lt;br /&gt;
===Non-parliamentary member===&lt;br /&gt;
* [[Cloggedone]]&lt;br /&gt;
* [[Neo]]&lt;br /&gt;
* [[AlexTheMartian, 1st Baron Alexandria]]&lt;br /&gt;
* [[keida124]]&lt;br /&gt;
&lt;br /&gt;
==Policies==&lt;br /&gt;
&lt;br /&gt;
* Creating a sustainable society with a minimum standard of living for everyone to have food, internet access, and other essentials.&lt;br /&gt;
* Restructuring the framework of the essential services such as police, hospitals, etc.&lt;br /&gt;
* Reviewing and revising old laws, especially those outdated.&lt;br /&gt;
* Making government less intrusive on peoples lives, giving more freedom to citizens.&lt;br /&gt;
* Improving the mechanisms for democracy and voting.&lt;br /&gt;
* Improving and reviewing the way that parliament works.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
[[Category: Political parties in the Kingdom of Palmshire]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Main_Page/section/Programmers&amp;diff=3534</id>
		<title>Main Page/section/Programmers</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Main_Page/section/Programmers&amp;diff=3534"/>
		<updated>2015-03-04T06:08:54Z</updated>

		<summary type="html">&lt;p&gt;Chris: Added VPUpdater to projects&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Programmers ====&lt;br /&gt;
* &#039;&#039;&#039;[[Getting started/SDK|Get started with bot programming]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SDK&#039;&#039;&#039;: [[SDK|C++]] {{*}} [[.NET SDK|.NET]] &amp;lt;sup&amp;gt;C#, F#, VB, etc.&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [http://dev.virtualparadise.org/ Developer website]&lt;br /&gt;
&lt;br /&gt;
===== Projects =====&lt;br /&gt;
* &#039;&#039;&#039;[[Nexus]]&#039;&#039;&#039; - Multipurpose bot&lt;br /&gt;
* &#039;&#039;&#039;[[VPUpdater]]&#039;&#039;&#039; - Automatic updater for Virtual Paradise&lt;br /&gt;
* &#039;&#039;&#039;[[Aelicia Fluent English Bot Language Project|Aelicia]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[:Category:Project Paradise|Project Paradise]]&#039;&#039;&#039; - World and bot project for a paintball-like game&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3530</id>
		<title>VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3530"/>
		<updated>2015-03-01T03:42:42Z</updated>

		<summary type="html">&lt;p&gt;Chris: Added more information about the format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Propdump format for VP designed with simplicity, flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values tab-separated values] format, it is intended to be a universal format for storing the object data of worlds and that is easy to modify. Every object is displayed on a line with the various parameters such as model name and locations separated by tabs, allowing a spreadsheet editor such as Microsoft Excel or [http://www.openoffice.org/ OpenOffice Calc] to display these parameters in cells. These can then be modified using the spreadsheet editor or just notepad.&lt;br /&gt;
&lt;br /&gt;
The TSV format is very similar to CSV, with the only difference being that it uses tabs instead of commas to separate values.&lt;br /&gt;
&lt;br /&gt;
== Usages ==&lt;br /&gt;
&lt;br /&gt;
The VPPTSV format could be used to store a small group of objects or as a medium to backup an entire world. It could also be useful as an intermediate format when it is necessary to perform some tasks on builds in AW or VP such as isolating builds by a certain citizen, removing builds from before a certain date, or when converting from AW propdumps.&lt;br /&gt;
&lt;br /&gt;
It can make batch modifications to multiple objects a much quicker and easier task in both AW and VP, for instance if one needs to modify each texture on a series of objects or move a build to a different location, this can be done by making use of the math functions available in spreadsheet editors.&lt;br /&gt;
&lt;br /&gt;
As a flexible format, it is indiscriminate against the two styles of rotation available in VP: XYZ and Axis-Angle, the former being used in AW propdumps. &lt;br /&gt;
&lt;br /&gt;
AW propdumps can also be stored in this format.&lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;This specification is still a work in progress and may be subject to change.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version. This header may have additional parameters.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world. Programs creating VPPTSV propdumps should add a line naming each column for people using spreadsheet software or text editors.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline must be replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab must be replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Please be aware the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers. This should be accounted for if your program will be processing the version number.&amp;lt;br&amp;gt;&lt;br /&gt;
File extension can be .TSV or .CSV&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
You can copy and paste this sample into spreadsheet software to better visualise it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1 en-GB&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
#Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
The date and time structure should be compatible with most spreadsheet software, allowing the end-user to modify the propdump and perform operations such as removing objects built before a certain date. Due to the use of the DateTime function, there must be tolerance for slight alterations by spreadsheet software, so it is advised that your program will be able to understand various DateTime formats. The culture is an optional part of the header and dates will be parsed using the &amp;quot;en-GB&amp;quot; culture by default in [[Nexus|Nexus Bot]] if none is specified.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible. When using the [http://vpnet.codeplex.com/VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
If the culture and therefore the date format is different, this must be specified in the header as a parameter, e.g: &#039;&#039;&#039;vp propdump tsv1 en-US&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This culture is only relevant to the date format, decimal points are kept the same. &amp;quot;en-GB&amp;quot; is the default culture format. Users working with spreadsheet software may decide to edit the culture to match the format of date they prefer, while working with the propdump.&lt;br /&gt;
&lt;br /&gt;
The timezone to be used for converting back to a Unix Timestamp when building the propdump is UTC. This keeps the date correct.&lt;br /&gt;
&lt;br /&gt;
== ObjectData Format ==&lt;br /&gt;
&lt;br /&gt;
ObjectData bytes are to be converted to [http://en.wikipedia.org/wiki/Base64 Base64]. Conversion to Base64 in .NET can be done using the [https://msdn.microsoft.com/en-us/library/dhx0d524%28v=vs.110%29.aspx Convert.ToBase64String] and [https://msdn.microsoft.com/en-us/library/system.convert.frombase64string(v=vs.110).aspx Convert.FromBase64String] methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3527</id>
		<title>VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3527"/>
		<updated>2015-02-23T14:03:02Z</updated>

		<summary type="html">&lt;p&gt;Chris: Small changes to protocol to reflect the bot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Propdump format for VP designed with simplicity, flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values tab-separated values] format, it is intended to be a universal format for storing the object data of worlds and enabling them to be modified. Each object is displayed on its own line, with the various parameters such as model name and location separated by tab, allowing spreadsheet editor to display these parameters in cells.&lt;br /&gt;
&lt;br /&gt;
TSV and CSV files are widely supported by computer programs such as spreadsheet and text editors, making it easy to work with these propdump files. &lt;br /&gt;
&lt;br /&gt;
== Usages ==&lt;br /&gt;
&lt;br /&gt;
The VPPTSV format could be used to store a small group of objects or as a medium to backup a world. It could also be useful as an intermediate format when it is necessary to perform some tasks on builds in AW or VP, or when converting from AW propdumps.&lt;br /&gt;
&lt;br /&gt;
It can make batch modifications to multiple objects a much quicker and more convenient task in both AW and VP, for instance if one needs to modify each texture on a a series of objects or move a build to a different location, making use of the math functions available in spreadsheet editors.&lt;br /&gt;
&lt;br /&gt;
As a flexible format, it is indiscriminate against the two styles of rotation available in VP: XYZ and Axis-Angle, the former being used in AW propdumps. &lt;br /&gt;
&lt;br /&gt;
AW propdumps can also be stored in this format.&lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;This specification is still a work in progress and may be subject to change.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version. This header may have additional parameters.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline must be replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab must be replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Please be aware the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers. This should be accounted for if your program will be processing the version number.&amp;lt;br&amp;gt;&lt;br /&gt;
File extension can be .tsv or .csv&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
You can copy and paste this sample into spreadsheet software to better visualise it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1 en-GB&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
#Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
The date and time structure should be compatible with most spreadsheet software, allowing the end-user to modify the propdump and perform operations such as removing objects built before a certain date. Due to the use of the DateTime function, there must be tolerance for slight alterations by spreadsheet software, so it is advised that your program will be able to understand various DateTime formats. The culture is an optional part of the header and dates will be parsed using the &amp;quot;en-GB&amp;quot; culture by default in [[Nexus|Nexus Bot]] if none is specified.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible. When using the [http://vpnet.codeplex.com/VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
If the culture and therefore the date format is different, this must be specified in the header as a parameter, e.g: &#039;&#039;&#039;vp propdump tsv1 en-US&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=List_of_action_commands&amp;diff=3522</id>
		<title>List of action commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=List_of_action_commands&amp;diff=3522"/>
		<updated>2015-02-17T08:21:35Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Scripting.png|frame|150px]]&lt;br /&gt;
&lt;br /&gt;
* [[ambient]]&lt;br /&gt;
* [[color]]&lt;br /&gt;
* [[diffuse]]&lt;br /&gt;
* [[framerate]]&lt;br /&gt;
* [[light]]&lt;br /&gt;
* [[move]]&lt;br /&gt;
* [[name]]&lt;br /&gt;
* [[normalmap]]&lt;br /&gt;
* [[opacity]]&lt;br /&gt;
* [[picture]]&lt;br /&gt;
* [[rotate]]&lt;br /&gt;
* [[shear]]&lt;br /&gt;
* [[scale]]&lt;br /&gt;
* [[sign]]&lt;br /&gt;
* [[solid]]&lt;br /&gt;
* [[specularmap]]&lt;br /&gt;
* [[specular]]&lt;br /&gt;
* [[teleportxyz]]&lt;br /&gt;
* [[texture]]&lt;br /&gt;
* [[url]]&lt;br /&gt;
* [[visible]]&lt;br /&gt;
* [[web]]&lt;br /&gt;
* [[Playsound.php]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Script commands| ]]&lt;br /&gt;
[[Category: Building]]&lt;br /&gt;
[[Category: Lists]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=List_of_action_commands&amp;diff=3521</id>
		<title>List of action commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=List_of_action_commands&amp;diff=3521"/>
		<updated>2015-02-17T08:20:47Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Scripting.png|frame|150px]]&lt;br /&gt;
&lt;br /&gt;
* [[ambient]]&lt;br /&gt;
* [[color]]&lt;br /&gt;
* [[diffuse]]&lt;br /&gt;
* [[framerate]]&lt;br /&gt;
* [[light]]&lt;br /&gt;
* [[move]]&lt;br /&gt;
* [[name]]&lt;br /&gt;
* [[normalmap]]&lt;br /&gt;
* [[opacity]]&lt;br /&gt;
* [[picture]]&lt;br /&gt;
* [[rotate]]&lt;br /&gt;
* [[shear]]&lt;br /&gt;
* [[scale]]&lt;br /&gt;
* [[sign]]&lt;br /&gt;
* [[solid]]&lt;br /&gt;
* [[specularmap]]&lt;br /&gt;
* [[specular]]&lt;br /&gt;
* [[teleportxyz]]&lt;br /&gt;
* [[texture]]&lt;br /&gt;
* [[url]]&lt;br /&gt;
* [[visible]]&lt;br /&gt;
* [[web]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Script commands| ]]&lt;br /&gt;
[[Category: Building]]&lt;br /&gt;
[[Category: Lists]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=File:Scripting.png&amp;diff=3520</id>
		<title>File:Scripting.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=File:Scripting.png&amp;diff=3520"/>
		<updated>2015-02-17T08:11:42Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=List_of_action_commands&amp;diff=3519</id>
		<title>List of action commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=List_of_action_commands&amp;diff=3519"/>
		<updated>2015-02-17T08:09:39Z</updated>

		<summary type="html">&lt;p&gt;Chris: Added &amp;quot;web&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[ambient]]&lt;br /&gt;
* [[color]]&lt;br /&gt;
* [[diffuse]]&lt;br /&gt;
* [[framerate]]&lt;br /&gt;
* [[light]]&lt;br /&gt;
* [[move]]&lt;br /&gt;
* [[name]]&lt;br /&gt;
* [[normalmap]]&lt;br /&gt;
* [[opacity]]&lt;br /&gt;
* [[picture]]&lt;br /&gt;
* [[rotate]]&lt;br /&gt;
* [[shear]]&lt;br /&gt;
* [[scale]]&lt;br /&gt;
* [[sign]]&lt;br /&gt;
* [[solid]]&lt;br /&gt;
* [[specularmap]]&lt;br /&gt;
* [[specular]]&lt;br /&gt;
* [[teleportxyz]]&lt;br /&gt;
* [[texture]]&lt;br /&gt;
* [[url]]&lt;br /&gt;
* [[visible]]&lt;br /&gt;
* [[web]]&lt;br /&gt;
* &lt;br /&gt;
[[Category: Script commands| ]]&lt;br /&gt;
[[Category: Building]]&lt;br /&gt;
[[Category: Lists]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=VPUpdater&amp;diff=3512</id>
		<title>VPUpdater</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=VPUpdater&amp;diff=3512"/>
		<updated>2015-02-12T17:08:10Z</updated>

		<summary type="html">&lt;p&gt;Chris: Added more details and a link to official page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right; -moz-border-radius:12px&amp;quot;&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;55bbff&amp;quot; colspan=&amp;quot;3&amp;quot;|VP Updater&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot;|[[Image:Vpupdater.png|250px]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;77ddff&amp;quot; colspan=&amp;quot;3&amp;quot;|Automatic updater for Virtual Paradise&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Creator(s)&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Chris D&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Initial release&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|February 07, 2015&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Development status&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Active&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Type&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Bots|Utility]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|License&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Open-source&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Website&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[http://myvp.biz/downloads/VPUpdater.zip Download here]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
VPUpdater is designed to enable seamless, automatic updates for VP. Keeping your version up to date with the latest release.&lt;br /&gt;
&lt;br /&gt;
It works by running before the main VirtualParadise program and checking for an update invisibly. If there is an update, it will then ask for confirmation, otherwise it just runs the current version and closes itself. The first time the program runs, it will scan VirtualParadise.exe for the version number, then use its own file (&#039;vp.version&#039;) to keep track of the version after each update.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
* [http://myvp.biz/downloads/VPUpdater.zip Download VP Updater]&lt;br /&gt;
&lt;br /&gt;
* Place VPUpdater.exe in the same folder as you have VirtualParadise and create a shortcut to it. &lt;br /&gt;
&lt;br /&gt;
* Rename the shortcut to &#039;&#039;&#039;VirtualParadise&#039;&#039;&#039; or other desired name and use it for running VP. You can then conveniently place it on your desktop or start menu.&lt;br /&gt;
&lt;br /&gt;
* VPUpdater will do the rest. Seamlessly keeping check of the version each time you run VP via the shortcut and giving you the option to download the new version if there is one, before starting Virtual Paradise.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://myvp.biz/downloads/VPUpdater.zip Download VP Updater]&lt;br /&gt;
* [https://github.com/Evonex/VPUpdater/ Source code for VP Updater]&lt;br /&gt;
* [http://virtualparadise.org/download.php Official VP download page]&lt;br /&gt;
[[Category: Bots]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=VPUpdater&amp;diff=3511</id>
		<title>VPUpdater</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=VPUpdater&amp;diff=3511"/>
		<updated>2015-02-07T19:05:47Z</updated>

		<summary type="html">&lt;p&gt;Chris: Modified the description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right; -moz-border-radius:12px&amp;quot;&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;55bbff&amp;quot; colspan=&amp;quot;3&amp;quot;|VP Updater&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot;|[[Image:Vpupdater.png|250px]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;77ddff&amp;quot; colspan=&amp;quot;3&amp;quot;|Automatic updater for Virtual Paradise&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Creator(s)&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Chris D&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Initial release&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|February 07, 2015&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Development status&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Active&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Type&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Bots|Utility]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|License&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Open-source&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Website&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[http://myvp.biz/downloads/VPUpdater.zip Download here]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
VPUpdater is designed to enable seamless, automatic updates for VP. Keeping your version up to date with the latest release.&lt;br /&gt;
&lt;br /&gt;
It works by running before the main VirtualParadise program and checking for an update invisibly. If there is an update, it will then ask for confirmation, otherwise it just runs the current version and closes itself. The first time the program runs, it will scan VirtualParadise.exe for the version number, then use its own file to keep track of the version after each update.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
* [http://myvp.biz/downloads/VPUpdater.zip Download VP Updater]&lt;br /&gt;
&lt;br /&gt;
* Place VPUpdater.exe in the same folder as you have VirtualParadise and create a shortcut to it. &lt;br /&gt;
&lt;br /&gt;
* Rename the shortcut to &#039;&#039;&#039;VirtualParadise&#039;&#039;&#039; or other desired name and use it for running VP. You can then conveniently place it on your desktop or start menu.&lt;br /&gt;
&lt;br /&gt;
* VPUpdater will do the rest. Seamlessly keeping check of the version each time you run VP via the shortcut and giving you the option to download the new version if there is one, before starting Virtual Paradise.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://myvp.biz/downloads/VPUpdater.zip Download VP Updater]&lt;br /&gt;
* [https://github.com/Evonex/VPUpdater/ Source code for VP Updater]&lt;br /&gt;
&lt;br /&gt;
[[Category: Bots]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=VPUpdater&amp;diff=3510</id>
		<title>VPUpdater</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=VPUpdater&amp;diff=3510"/>
		<updated>2015-02-07T17:09:30Z</updated>

		<summary type="html">&lt;p&gt;Chris: Initial page creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right; -moz-border-radius:12px&amp;quot;&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;55bbff&amp;quot; colspan=&amp;quot;3&amp;quot;|VP Updater&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot;|[[Image:Vpupdater.png|250px]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;77ddff&amp;quot; colspan=&amp;quot;3&amp;quot;|Automatic updater for Virtual Paradise&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Creator(s)&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Chris D&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Initial release&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|February 07, 2015&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Development status&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Active&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Type&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Bots|Utility]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|License&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Open-source&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Website&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[http://myvp.biz/downloads/VPUpdater.zip Download here]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
VPUpdater is designed to enable seamless, automatic updates for VP. Keeping your version up to date with the latest release.&lt;br /&gt;
&lt;br /&gt;
It works by running before the main VirtualParadise program and checking for an update invisibly. If there is an update, it will then ask for confirmation, otherwise it just runs the current version.&lt;br /&gt;
The first time the program runs, it will scan VirtualParadise.exe for the current version, then use its own version file to keep track of the version after each update.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
* [http://myvp.biz/downloads/VPUpdater.zip Download VP Updater]&lt;br /&gt;
&lt;br /&gt;
* Place VPUpdater.exe in the same folder as you have VirtualParadise and create a shortcut to it. &lt;br /&gt;
&lt;br /&gt;
* Rename the shortcut to &#039;&#039;&#039;VirtualParadise&#039;&#039;&#039; or other desired name and use it for running VP. You can then conveniently place it on your desktop or start menu.&lt;br /&gt;
&lt;br /&gt;
* VPUpdater will do the rest. Seamlessly keeping check of the version each time you run VP via the shortcut and giving you the option to download the new version if there is one, before starting Virtual Paradise.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://myvp.biz/downloads/VPUpdater.zip Download VP Updater]&lt;br /&gt;
* [https://github.com/Evonex/VPUpdater/ Source code for VP Updater]&lt;br /&gt;
&lt;br /&gt;
[[Category: Bots]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=File:Vpupdater.png&amp;diff=3507</id>
		<title>File:Vpupdater.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=File:Vpupdater.png&amp;diff=3507"/>
		<updated>2015-02-07T15:19:27Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Nexusbot&amp;diff=3506</id>
		<title>Nexusbot</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Nexusbot&amp;diff=3506"/>
		<updated>2015-02-07T14:27:54Z</updated>

		<summary type="html">&lt;p&gt;Chris: Redirect to Nexus page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Nexus]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=NexusBot&amp;diff=3505</id>
		<title>NexusBot</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=NexusBot&amp;diff=3505"/>
		<updated>2015-02-07T14:11:40Z</updated>

		<summary type="html">&lt;p&gt;Chris: Redirect to Nexus page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Nexus]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3446</id>
		<title>VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3446"/>
		<updated>2014-07-29T04:14:05Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Sample */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Propdump format for VP designed with simplicity, flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values tab-separated values] format, it is intended to be a universal format for storing the object data of worlds and enabling them to be modified. Each object is displayed on its own line, with the various parameters such as model name and location separated by tab, allowing spreadsheet editor to display these parameters in cells.&lt;br /&gt;
&lt;br /&gt;
TSV and CSV files are widely supported by computer programs such as spreadsheet and text editors, making it easy to work with these propdump files. &lt;br /&gt;
&lt;br /&gt;
== Usages ==&lt;br /&gt;
&lt;br /&gt;
The VPPTSV format could be used to store a small group of objects or as a medium to backup a world. It could also be useful as an intermediate format when it is necessary to perform some tasks on builds in AW or VP, or when converting from AW propdumps.&lt;br /&gt;
&lt;br /&gt;
It can make batch modifications to multiple objects a much quicker and more convenient task in both AW and VP, for instance if one needs to modify each texture on a a series of objects or move a build to a different location, making use of the math functions available in spreadsheet editors.&lt;br /&gt;
&lt;br /&gt;
As a flexible format, it is indiscriminate against the two styles of rotation available in VP: XYZ and Axis-Angle, the former being used in AW propdumps. &lt;br /&gt;
&lt;br /&gt;
AW propdumps can also be stored in this format.&lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;This specification is still a work in progress and may be subject to change.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version. This header may have additional parameters.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
Lines starting with &amp;quot;O&amp;quot; should also be ignored as they are most likely the optional header, which is to name each field, user friendliness, spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline must be replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab must be replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Please be aware the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers. This should be accounted for if your program will be processing the version number.&amp;lt;br&amp;gt;&lt;br /&gt;
File extension can be .tsv or .csv&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
You can copy and paste this sample into spreadsheet software to better visualise it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1 en-GB&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
The date and time structure should be compatible with most spreadsheet software, allowing the end-user to modify the propdump and perform operations such as removing objects built before a certain date. Due to the use of the DateTime function, there must be tolerance for slight alterations by spreadsheet software, so it is advised that your program will be able to understand various DateTime formats. The culture is an optional part of the header and dates will be parsed using the &amp;quot;en-GB&amp;quot; culture by default in [[Nexus|Nexus Bot]] if none is specified.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible. When using the [http://vpnet.codeplex.com/VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
If the culture and therefore the date format is different, this must be specified in the header as a parameter, e.g: &#039;&#039;&#039;vp propdump tsv1 en-US&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3445</id>
		<title>VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3445"/>
		<updated>2014-07-29T04:02:35Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* File format specification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Propdump format for VP designed with simplicity, flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values tab-separated values] format, it is intended to be a universal format for storing the object data of worlds and enabling them to be modified. Each object is displayed on its own line, with the various parameters such as model name and location separated by tab, allowing spreadsheet editor to display these parameters in cells.&lt;br /&gt;
&lt;br /&gt;
TSV and CSV files are widely supported by computer programs such as spreadsheet and text editors, making it easy to work with these propdump files. &lt;br /&gt;
&lt;br /&gt;
== Usages ==&lt;br /&gt;
&lt;br /&gt;
The VPPTSV format could be used to store a small group of objects or as a medium to backup a world. It could also be useful as an intermediate format when it is necessary to perform some tasks on builds in AW or VP, or when converting from AW propdumps.&lt;br /&gt;
&lt;br /&gt;
It can make batch modifications to multiple objects a much quicker and more convenient task in both AW and VP, for instance if one needs to modify each texture on a a series of objects or move a build to a different location, making use of the math functions available in spreadsheet editors.&lt;br /&gt;
&lt;br /&gt;
As a flexible format, it is indiscriminate against the two styles of rotation available in VP: XYZ and Axis-Angle, the former being used in AW propdumps. &lt;br /&gt;
&lt;br /&gt;
AW propdumps can also be stored in this format.&lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;This specification is still a work in progress and may be subject to change.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version. This header may have additional parameters.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
Lines starting with &amp;quot;O&amp;quot; should also be ignored as they are most likely the optional header, which is to name each field, user friendliness, spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline must be replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab must be replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Please be aware the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers. This should be accounted for if your program will be processing the version number.&amp;lt;br&amp;gt;&lt;br /&gt;
File extension can be .tsv or .csv&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
You can copy and paste this sample into spreadsheet software to better visualise it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
The date and time structure should be compatible with most spreadsheet software, allowing the end-user to modify the propdump and perform operations such as removing objects built before a certain date. Due to the use of the DateTime function, there must be tolerance for slight alterations by spreadsheet software, so it is advised that your program will be able to understand various DateTime formats. The culture is an optional part of the header and dates will be parsed using the &amp;quot;en-GB&amp;quot; culture by default in [[Nexus|Nexus Bot]] if none is specified.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible. When using the [http://vpnet.codeplex.com/VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
If the culture and therefore the date format is different, this must be specified in the header as a parameter, e.g: &#039;&#039;&#039;vp propdump tsv1 en-US&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3444</id>
		<title>VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3444"/>
		<updated>2014-07-29T04:01:33Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Date &amp;amp; Time Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Propdump format for VP designed with simplicity, flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values tab-separated values] format, it is intended to be a universal format for storing the object data of worlds and enabling them to be modified. Each object is displayed on its own line, with the various parameters such as model name and location separated by tab, allowing spreadsheet editor to display these parameters in cells.&lt;br /&gt;
&lt;br /&gt;
TSV and CSV files are widely supported by computer programs such as spreadsheet and text editors, making it easy to work with these propdump files. &lt;br /&gt;
&lt;br /&gt;
== Usages ==&lt;br /&gt;
&lt;br /&gt;
The VPPTSV format could be used to store a small group of objects or as a medium to backup a world. It could also be useful as an intermediate format when it is necessary to perform some tasks on builds in AW or VP, or when converting from AW propdumps.&lt;br /&gt;
&lt;br /&gt;
It can make batch modifications to multiple objects a much quicker and more convenient task in both AW and VP, for instance if one needs to modify each texture on a a series of objects or move a build to a different location, making use of the math functions available in spreadsheet editors.&lt;br /&gt;
&lt;br /&gt;
As a flexible format, it is indiscriminate against the two styles of rotation available in VP: XYZ and Axis-Angle, the former being used in AW propdumps. &lt;br /&gt;
&lt;br /&gt;
AW propdumps can also be stored in this format.&lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;This specification is still a work in progress and may be subject to change.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
Lines starting with &amp;quot;O&amp;quot; should also be ignored as they are most likely the optional header, which is to name each field, user friendliness, spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline must be replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab must be replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Please be aware the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers. This should be accounted for if your program will be processing the version number.&amp;lt;br&amp;gt;&lt;br /&gt;
File extension can be .tsv or .csv&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
You can copy and paste this sample into spreadsheet software to better visualise it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
The date and time structure should be compatible with most spreadsheet software, allowing the end-user to modify the propdump and perform operations such as removing objects built before a certain date. Due to the use of the DateTime function, there must be tolerance for slight alterations by spreadsheet software, so it is advised that your program will be able to understand various DateTime formats. The culture is an optional part of the header and dates will be parsed using the &amp;quot;en-GB&amp;quot; culture by default in [[Nexus|Nexus Bot]] if none is specified.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible. When using the [http://vpnet.codeplex.com/VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
If the culture and therefore the date format is different, this must be specified in the header as a parameter, e.g: &#039;&#039;&#039;vp propdump tsv1 en-US&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3443</id>
		<title>VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=3443"/>
		<updated>2014-07-29T03:45:32Z</updated>

		<summary type="html">&lt;p&gt;Chris: Clarified the date specifications and rewrote some parts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Propdump format for VP designed with simplicity, flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values tab-separated values] format, it is intended to be a universal format for storing the object data of worlds and enabling them to be modified. Each object is displayed on its own line, with the various parameters such as model name and location separated by tab, allowing spreadsheet editor to display these parameters in cells.&lt;br /&gt;
&lt;br /&gt;
TSV and CSV files are widely supported by computer programs such as spreadsheet and text editors, making it easy to work with these propdump files. &lt;br /&gt;
&lt;br /&gt;
== Usages ==&lt;br /&gt;
&lt;br /&gt;
The VPPTSV format could be used to store a small group of objects or as a medium to backup a world. It could also be useful as an intermediate format when it is necessary to perform some tasks on builds in AW or VP, or when converting from AW propdumps.&lt;br /&gt;
&lt;br /&gt;
It can make batch modifications to multiple objects a much quicker and more convenient task in both AW and VP, for instance if one needs to modify each texture on a a series of objects or move a build to a different location, making use of the math functions available in spreadsheet editors.&lt;br /&gt;
&lt;br /&gt;
As a flexible format, it is indiscriminate against the two styles of rotation available in VP: XYZ and Axis-Angle, the former being used in AW propdumps. &lt;br /&gt;
&lt;br /&gt;
AW propdumps can also be stored in this format.&lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;This specification is still a work in progress and may be subject to change.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
Lines starting with &amp;quot;O&amp;quot; should also be ignored as they are most likely the optional header, which is to name each field, user friendliness, spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline must be replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab must be replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Please be aware the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers. This should be accounted for if your program will be processing the version number.&amp;lt;br&amp;gt;&lt;br /&gt;
File extension can be .tsv or .csv&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
You can copy and paste this sample into spreadsheet software to better visualise it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
The date and time structure should be compatible with most spreadsheet software, allowing the end-user to modify the propdump and perform operations such as removing objects built before a certain date. Due to the use of the DateTime function, there must be tolerance for slight alterations by spreadsheet software, so it is advised that your program will be able to understand various DateTime formats. Dates are parsed using the &amp;quot;en-GB&amp;quot; culture in [[Nexus|Nexus Bot]] for the month to be correctly read (dd/MM/yyyy).&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible. When using the [http://vpnet.codeplex.com/VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DateTime format to use when writing propdumps should be &amp;quot;&#039;&#039;&#039;dd/MM/yyyy HH:mm:ss&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Chris_D&amp;diff=3359</id>
		<title>Chris D</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Chris_D&amp;diff=3359"/>
		<updated>2014-03-16T10:37:05Z</updated>

		<summary type="html">&lt;p&gt;Chris: Updated photo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:&#039;&#039;This is official Palmshire biography of Chris D. For official Virtual Paradise biography of Chris D, please see [[User:Chris|Chris D]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center; font-size: small&amp;quot;|The Right Honorable&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center; font-size: 125%; font-weight: bold&amp;quot;|Chris D &amp;lt;br&amp;gt; [[image:Priminister_chris3.jpg|200px]]&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; font-size:110%;&amp;quot;|&amp;lt;div style=&amp;quot;background:lavender; font-weight:bold&amp;quot;&amp;gt;[[Prime Minister of Palmshire]]&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; font-size:110%;&amp;quot;|&amp;lt;div style=&amp;quot;background:lavender; font-weight:bold&amp;quot;&amp;gt;Incumbent&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; colspan=&amp;quot;3&amp;quot;|Assumed Office&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; colspan=&amp;quot;3&amp;quot;|29 August 2012&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Monarch&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Legion I of Palmshire|Legion I]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Preceded by&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Brock Tokeington, 1st Baron Tokeington|The Lord Tokeington]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Succeeded by&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; font-size:110%;&amp;quot;|&amp;lt;div style=&amp;quot;background:lavender; font-weight:bold&amp;quot;&amp;gt;Personal details&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Political party&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Socialist Party|Socialist]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{PAGENAME}}&#039;&#039;&#039; is the [[Prime Minister of Palmshire]], [[First Lord of the Treasury]], and [[Leaders of the Palmshire Socialist Party|Leader]] of the [[Socialist Party]]. He represents [[Pinecrest (Palmshire Parliament constituency)|Pinecrest]] as its [[Member of Parliament]] (MP).&lt;br /&gt;
&lt;br /&gt;
==Political career==&lt;br /&gt;
Chris D first entered Palmshire politics when he won the seat representing Catfield borough in the [[Parliament of Palmshire]] following [[Palmshire general election, March 2012|general election of March 2012]]. At first he belonged to the [[Palmshire Communist Party|Communist Party]] led by [[Demon Dog Tenenbaum, 1st Baron Arcadia|Lord Arcadia]]. However, his difference with Arcadia immediately led to his split with the party and he later founded the [[Socialist Party]].&lt;br /&gt;
&lt;br /&gt;
At [[Palmshire general election, June 2012|Next general election in June 2012]], he retained his seat and his party made a gain of one seat in the Parliament, becoming the second largest party in terms of seats in the House of Commons with total of 2 seats. Later, a number of resignations in the Parliament of seats held by Prime Minister [[Brock Tokeington, 1st Baron Tokeington|Lord Tokeington]]&#039;s [[Swag Party|Moose]] led to the slimming of his parliamentary majority to the point where defeat in the House of Commons was imminent, only for the King [[Legion I of Palmshire|Legion I]] to pre-empt this by dismissing Tokeington and his remaining supporters from their offices on 29 August 2012.&lt;br /&gt;
&lt;br /&gt;
The King then called on Chris D that same day to form a new government and he became the new Prime Minister. After abolition of his former Parliament constituency of Catfield, he stood for by-election to the Parliament constituency of Pinecrest and was thus assured his place in the Parliament for 2013 session. In early December 2012, the King offered Chris D a knighthood, a sign of King&#039;s favor. He declined on grounds of his modesty and recommended [[Edwin]] instead, which left a deep impression on the King who would not take no for next time. Shortly later, rumors were swirling that Chris D was to be made a Knight of the Bath on New Year&#039;s.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;width:auto; margin-left:auto; margin-right:auto;&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #FFBF00;&amp;quot; align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;Party political offices&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;First&#039;&#039;&#039; &amp;lt;br /&amp;gt; None recognized before&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[Leaders of the Palmshire Socialist Party|Leader of the Socialist Party]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2012-present&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Succeeded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;Incumbent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;First&#039;&#039;&#039; &amp;lt;br /&amp;gt; None recognized before&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[General Secretary of the Palmshire Communist Party]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2010-present&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Succeeded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;Incumbent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #ccccff;&amp;quot; align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;Political offices&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Preceded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;[[Brock Tokeington, 1st Baron Tokeington|The Lord Tokeington]]&#039;&#039;&#039;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[Prime Minister of Palmshire]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2012&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Succeeded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;Incumbent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Preceded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;[[Brock Tokeington, 1st Baron Tokeington|The Lord Tokeington]]&#039;&#039;&#039;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[First Lord of the Treasury]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2012&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Succeeded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;Incumbent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #cccccc;&amp;quot; align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[Parliament of Palmshire]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Preceded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;New constituency&#039;&#039;&#039;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[Member of Parliament]] for [[Catfield (Palmshire constituency)|Catfield]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2012&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;Constituency abolished&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Preceded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;New constituency&#039;&#039;&#039;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[Member of Parliament]] for [[Pinecrest (Palmshire Parliament constituency)|Pinecrest]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2012-present&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;Incumbent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Prime Ministers of Palmshire}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Prime Ministers of Palmshire]]&lt;br /&gt;
[[Category: Palmshire people]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=File:Priminister_chris3.jpg&amp;diff=3358</id>
		<title>File:Priminister chris3.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=File:Priminister_chris3.jpg&amp;diff=3358"/>
		<updated>2014-03-16T10:32:19Z</updated>

		<summary type="html">&lt;p&gt;Chris: Framed photo of Chris&amp;#039; avatar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Framed photo of Chris&#039; avatar&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Main_Page&amp;diff=2616</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Main_Page&amp;diff=2616"/>
		<updated>2013-07-21T19:26:26Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Others */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Help ==&lt;br /&gt;
* &#039;&#039;&#039;[[Getting started]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Building]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[FAQ|Frequently Asked Questions (FAQ)]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
* C++ [[SDK Application Structure]]&lt;br /&gt;
* [[Simple greeter bot]]&lt;br /&gt;
* [http://vpnet.codeplex.com Official .NET Framework SDK (Wrapper)] on codeplex.&lt;br /&gt;
* [[.NET Framework SDK Document Standards]]&lt;br /&gt;
* [[VPPTSV|VP Propdump TSV Format (VPPTSV)]]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
=== Active ===&lt;br /&gt;
* [[Aelicia Fluent English Bot Language Project]]&lt;br /&gt;
* [[Nexus]]&lt;br /&gt;
=== Inactive ===&lt;br /&gt;
* [[Legend Project]] (Discontinued. Now obsolete.)&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
* &#039;&#039;&#039;[[Changelog]]&#039;&#039;&#039;&lt;br /&gt;
* [[List of worlds|Worlds]]&lt;br /&gt;
* [[List of communities|Communities]]&lt;br /&gt;
* [[List_of_citizens|Citizens]]&lt;br /&gt;
* [[Bots]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* &#039;&#039;&#039;[http://www.virtualparadise.org/bugtracker/view_all_bug_page.php Bugtracker]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.virtualparadise.org/forum/ Forum]&lt;br /&gt;
* &#039;&#039;&#039;[https://www.facebook.com/groups/458125834231898/ Facebook group]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=User:Chris&amp;diff=2608</id>
		<title>User:Chris</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=User:Chris&amp;diff=2608"/>
		<updated>2013-07-17T16:27:37Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=&amp;quot;orange&amp;quot; colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center; font-size: 125%; font-weight: bold&amp;quot;|Chris D&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Citizen Name&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Chris]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Citizen Number&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|104&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Citizen Since&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|17 August 2010&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Roles&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Bot Programmer, Builder&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
&lt;br /&gt;
* [[Nexus]] - General-purpose bot with build manipulation and backup functions.&lt;br /&gt;
* [[Chatlink]] - Bot for linking chat between worlds.&lt;br /&gt;
* [[VPUtilities|Utilities Bot]] - Providing various in-world utilities and functions.&lt;br /&gt;
&lt;br /&gt;
== Political career ==&lt;br /&gt;
&lt;br /&gt;
* [[Prime Minister of Palmshire]] as of 29 August 2012&lt;br /&gt;
* [[First Lord of the Treasury]]&lt;br /&gt;
* Leader of the [[Socialist_Party|Socialist Party]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Main article: [[Chris_D|Political career of Chris D]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: Citizens]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Bots&amp;diff=2607</id>
		<title>Bots</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Bots&amp;diff=2607"/>
		<updated>2013-07-17T16:26:38Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the following bot available for download and use with Virtual Paradise.&lt;br /&gt;
&lt;br /&gt;
*[[Nexus|Nexus]] ([http://bit.ly/UuQCP0 Download]) - A general purpose bot by [[User:Chris|Chris D]].&lt;br /&gt;
* [https://github.com/RoyCurtis/bMotion.NET bMotion] - A chat bot with a trigger-based AI by [[User:Roy Curtis|Roy Curtis]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Bots| ]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Main_Page&amp;diff=2606</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Main_Page&amp;diff=2606"/>
		<updated>2013-07-12T20:02:48Z</updated>

		<summary type="html">&lt;p&gt;Chris: /* Programming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Help ==&lt;br /&gt;
* &#039;&#039;&#039;[[Getting started]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Building]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[FAQ|Frequently Asked Questions (FAQ)]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
* C++ [[SDK Application Structure]]&lt;br /&gt;
* [[Simple greeter bot]]&lt;br /&gt;
* [http://vpnet.codeplex.com Official .NET Framework SDK (Wrapper)] on codeplex.&lt;br /&gt;
* [[.NET Framework SDK Document Standards]]&lt;br /&gt;
* [[VPPTSV|VP Propdump TSV Format (VPPTSV)]]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
=== Active ===&lt;br /&gt;
* [[Aelicia Fluent English Bot Language Project]]&lt;br /&gt;
* [[Nexus]]&lt;br /&gt;
=== Inactive ===&lt;br /&gt;
* [[Legend Project]] (Discontinued. Now obsolete.)&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
* &#039;&#039;&#039;[[Changelog]]&#039;&#039;&#039;&lt;br /&gt;
* [[List of worlds|Worlds]]&lt;br /&gt;
* [[Bots]]&lt;br /&gt;
* [[List of communities|Communities]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* &#039;&#039;&#039;[http://www.virtualparadise.org/bugtracker/view_all_bug_page.php Bugtracker]&#039;&#039;&#039;&lt;br /&gt;
* [http://www.virtualparadise.org/forum/ Forum]&lt;br /&gt;
* &#039;&#039;&#039;[https://www.facebook.com/groups/458125834231898/ Facebook group]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Nexus&amp;diff=2602</id>
		<title>Nexus</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Nexus&amp;diff=2602"/>
		<updated>2013-07-12T06:27:31Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right; -moz-border-radius:12px&amp;quot;&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;55bbff&amp;quot; colspan=&amp;quot;3&amp;quot;|Nexus&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot;|[[Image:Nexus.png|250px]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;77ddff&amp;quot; colspan=&amp;quot;3&amp;quot;|General-purpose bot&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Creator(s)&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Chris D&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Initial release&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|September 24, 2012&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Development status&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Active&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Type&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Bots|Bot]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|License&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Freeware&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Website&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[http://bit.ly/UuQCP0 Download here]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
Nexus is a practical general-purpose bot with various abilities and chat commands.&lt;br /&gt;
&lt;br /&gt;
Instructions on usage are provided with the bot.&lt;br /&gt;
&lt;br /&gt;
Next version will support creation and manipulation of propdumps, builds, and seamlessly transferring builds from AW to VP and vice versa.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
[http://bit.ly/UuQCP0 Download Nexus]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[VPPTSV]] Propdump specification&lt;br /&gt;
&lt;br /&gt;
[[Category: Bots]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=2601</id>
		<title>VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=VPPTSV&amp;diff=2601"/>
		<updated>2013-07-12T06:21:44Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created and published page from draft.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Propdump format for VP designed with simplicity, flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values tab-separated values] format, it is intended to be a universal format for storing the object data of worlds and enabling them to be modified. Each object is displayed on its own line, with the various parameters such as model name and location separated by tab, allowing spreadsheet editor to display these parameters in cells.&lt;br /&gt;
&lt;br /&gt;
TSV and CSV files are widely supported by computer programs such as spreadsheet and text editors, making it easy to work with these propdump files. &lt;br /&gt;
&lt;br /&gt;
== Usages ==&lt;br /&gt;
&lt;br /&gt;
The VPPTSV format could be used to store a small group of objects or as a medium to backup a world. It could also be useful as an intermediate format when it is necessary to perform some tasks on builds in AW or VP, or when converting from AW propdumps.&lt;br /&gt;
&lt;br /&gt;
It can make batch modifications to multiple objects a much quicker and more convenient task in both AW and VP, for instance if one needs to modify each texture on a a series of objects or move a build to a different location, making use of the math functions available in spreadsheet editors.&lt;br /&gt;
&lt;br /&gt;
As a flexible format, it is indiscriminate against the two styles of rotation available in VP: XYZ and Axis-Angle, the former being used in AW propdumps. &lt;br /&gt;
&lt;br /&gt;
AW propdumps can also be stored in this format.&lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;This specification is still a work in progress and may be subject to change.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
Lines starting with &amp;quot;O&amp;quot; should also be ignored as they are most likely the optional header, which is to name each field, user friendliness, spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline must be replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab must be replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Please be aware the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers. This should be accounted for if your program will be processing the version number.&amp;lt;br&amp;gt;&lt;br /&gt;
File extension can be .tsv or .csv&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
You can copy and paste this sample into spreadsheet software to better visualise it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
For the end user, most spreadsheet software should be able to understand a standard Date &amp;amp; Time, allowing for the ability to manipulate objects in propdumps based on their date and time, for instance only selecting objects built before a certain date or only selecting objects from a certain date. The date can be flexible and may be altered slightly by some spreadsheet software when performing simple manipulations, so it is advised that your program will be able to understand various DateTime formats.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible, so it should understand most date and times. When using the [http://vpnet.codeplex.com/ VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2600</id>
		<title>User:Chris/WIP/VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2600"/>
		<updated>2013-07-12T06:16:07Z</updated>

		<summary type="html">&lt;p&gt;Chris: Rewrote parts of the article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Propdump format for VP designed with simplicity, flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values tab-separated values] format, it is intended to be a universal format for storing the object data of worlds and enabling them to be modified. Each object is displayed on its own line, with the various parameters such as model name and location separated by tab, allowing spreadsheet editor to display these parameters in cells.&lt;br /&gt;
&lt;br /&gt;
TSV and CSV files are widely supported by computer programs such as spreadsheet and text editors, making it easy to work with these propdump files. &lt;br /&gt;
&lt;br /&gt;
== Usages ==&lt;br /&gt;
&lt;br /&gt;
The VPPTSV format could be used to store a small group of objects or as a medium to backup a world. It could also be useful as an intermediate format when it is necessary to perform some tasks on builds in AW or VP, or when converting from AW propdumps.&lt;br /&gt;
&lt;br /&gt;
It can make batch modifications to multiple objects a much quicker and more convenient task in both AW and VP, for instance if one needs to modify each texture on a a series of objects or move a build to a different location, making use of the math functions available in spreadsheet editors.&lt;br /&gt;
&lt;br /&gt;
As a flexible format, it is indiscriminate against the two styles of rotation available in VP: XYZ and Axis-Angle, the former being used in AW propdumps. &lt;br /&gt;
&lt;br /&gt;
AW propdumps can also be stored in this format.&lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;This specification is still a work in progress and may be subject to change.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
Lines starting with &amp;quot;O&amp;quot; should also be ignored as they are most likely the optional header, which is to name each field, user friendliness, spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline must be replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab must be replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Please be aware the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers. This should be accounted for if your program will be processing the version number.&amp;lt;br&amp;gt;&lt;br /&gt;
File extension can be .tsv or .csv&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
You can copy and paste this sample into spreadsheet software to better visualise it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
For the end user, most spreadsheet software should be able to understand a standard Date &amp;amp; Time, allowing for the ability to manipulate objects in propdumps based on their date and time, for instance only selecting objects built before a certain date or only selecting objects from a certain date. The date can be flexible and may be altered slightly by some spreadsheet software when performing simple manipulations, so it is advised that your program will be able to understand various DateTime formats.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible, so it should understand most date and times. When using the [http://vpnet.codeplex.com/ VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=User:Chris&amp;diff=2599</id>
		<title>User:Chris</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=User:Chris&amp;diff=2599"/>
		<updated>2013-07-11T23:25:29Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!bgcolor=&amp;quot;orange&amp;quot; colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center; font-size: 125%; font-weight: bold&amp;quot;|Chris D&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Citizen Name&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Chris]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Citizen Number&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|104&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Citizen Since&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|17 August 2010&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Roles&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Bot Programmer, Builder&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
&lt;br /&gt;
* [[Nexus]] - General-purpose bot with build manipulation and backup functions.&lt;br /&gt;
* [[Chatlink]] - Bot for linking chat between worlds.&lt;br /&gt;
* [[VPUtilities|Utilities Bot]] - Providing various in-world utilities. (currently offline)&lt;br /&gt;
&lt;br /&gt;
== Political career ==&lt;br /&gt;
&lt;br /&gt;
* [[Prime Minister of Palmshire]] as of 29 August 2012&lt;br /&gt;
* [[First Lord of the Treasury]]&lt;br /&gt;
* Leader of the [[Socialist_Party|Socialist Party]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Main article: [[Chris_D|Political career of Chris D]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category: Citizens]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Feature_suggestions&amp;diff=2477</id>
		<title>Feature suggestions</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Feature_suggestions&amp;diff=2477"/>
		<updated>2013-05-15T02:09:31Z</updated>

		<summary type="html">&lt;p&gt;Chris: Added some feature suggestions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is list of features and/or services suggested by users of Virtual Paradise.&lt;br /&gt;
&lt;br /&gt;
== Browser ==&lt;br /&gt;
=== Interface ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; width=100%&lt;br /&gt;
|-&lt;br /&gt;
!width=25%|Features&lt;br /&gt;
!width=25%|Description&lt;br /&gt;
!width=25%|Status&lt;br /&gt;
!width=25%|Notes&lt;br /&gt;
|-&lt;br /&gt;
|IM-style private messaging system&lt;br /&gt;
|Support for an IM-styled messaging system between users, based on SL and Steam Chat. Messages sent to a user when they are offline would be stored and sent to them when they login, with sent time being displayed next to each line.&lt;br /&gt;
&lt;br /&gt;
The last few chat lines for a user could be shown in the IM window when opened. Chat history could either be stored as a file or stored in client-encrypted form on the server, possibly giving the user the option to choose.&lt;br /&gt;
Additional features could be implemented to this chat system, for instance a drag&amp;amp;drop system for transferring images. Dragging an image into the IM window would open a window on the receiving end containing the image.&lt;br /&gt;
|Suggested; No action taken yet.&lt;br /&gt;
|Some users suggests it be placed as a separate window instead of as a tab.&lt;br /&gt;
|-&lt;br /&gt;
|Teleports list or equivalent&lt;br /&gt;
|Bookmarks for locations throughout the Virtual Paradise universe&lt;br /&gt;
|Suggested; No action taken yet.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Inventory System&lt;br /&gt;
|Inventory system akin to those found in Second Life and Cloud Party&lt;br /&gt;
|Suggested; No action taken yet.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Complete overhaul of the UI&lt;br /&gt;
|Redesign the entire UI to be more similar to that of SL and Steam. Make windows that are not currently selected translucent. The entire VP window should be in 3D with the UI overlayed on top, with toolbar icons at the bottom and an optional full-screen mode.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3D Engine ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; width=100%&lt;br /&gt;
|-&lt;br /&gt;
!width=25%|Features&lt;br /&gt;
!width=25%|Description&lt;br /&gt;
!width=25%|Status&lt;br /&gt;
!width=25%|Notes&lt;br /&gt;
|-&lt;br /&gt;
|Particle system&lt;br /&gt;
|Particle system for Virtual Paradise, used for particles such as rains, snows, etc.&lt;br /&gt;
|Was previously implemented but removed later&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Realistic reflections&lt;br /&gt;
|Basic reflections that can be used on water, glass, etc.&lt;br /&gt;
|Suggested; No action taken yet.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Realistic sunrise/sunset system&lt;br /&gt;
|Combined with reflections, water, lighting colour and direction changes, possibly shadows later on, very realistic sunrises and sunsets could be simulated.&lt;br /&gt;
|Suggested; No action taken yet.&lt;br /&gt;
|Night would enable builds to be seen in a different way and there could be street lights and windows which illuminate at night.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software Development Kit (SDK) ==&lt;br /&gt;
HALP! Need programmers to fill this out&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; width=100%&lt;br /&gt;
|-&lt;br /&gt;
!width=25%|Features&lt;br /&gt;
!width=25%|Description&lt;br /&gt;
!width=25%|Status&lt;br /&gt;
!width=25%|Notes&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Services / Bots ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; width=100%&lt;br /&gt;
|-&lt;br /&gt;
!width=25%|Features&lt;br /&gt;
!width=25%|Description&lt;br /&gt;
!width=25%|Status&lt;br /&gt;
!width=25%|Notes&lt;br /&gt;
|-&lt;br /&gt;
|World mapper&lt;br /&gt;
|Maps of existing worlds in Virtual Paradise, especially Blizzard&lt;br /&gt;
|Suggested; Rudimentary map was made of Blizzard, albeit as density map (not satellite map), limited to smaller part of the world and outdated now.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Searchable gallery for models/textures for Blizzard&lt;br /&gt;
|Searchable database with thumbnails for models and textures, similar to AWPortals OPSearch, for Blizzard.&lt;br /&gt;
|Suggested; No action taken yet.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Universal Chat Bot&lt;br /&gt;
|A bot that connects chat in across worlds within Virtual Paradise universe&lt;br /&gt;
|Such bot already exists, previously made by [[User: Chris D|Chris D]] for Active Worlds software, but not yet ported over for Virtual Paradise.&lt;br /&gt;
|Planned, will be ported over soon.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Automatic citizen registration system&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Planned, TBA&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
* [http://www.virtualparadise.org/bugtracker/view_all_bug_page.php Virtual Paradise Bugtracker]&lt;br /&gt;
* [http://www.tnlc.com/eep/aw/improve.html Active Worlds Improvements Page (useful reference)]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2436</id>
		<title>User:Chris/WIP/VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2436"/>
		<updated>2013-03-10T00:05:21Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Under construction &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A simple propdump format for VP designed with flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values Tab-separated values] format, the VPPTSV format is intended to be a universal format for storing the object data of worlds in VP and allowing them to be easily edited. The format takes elements from the C++ programming language but was designed with .NET programming in mind.&lt;br /&gt;
&lt;br /&gt;
Many computer programs support the TSV format, such as spreadsheet and text editor software. This can mean that for the end-user, no additional programs need to be downloaded to edit a propdump. &lt;br /&gt;
&lt;br /&gt;
The format could be used to store a few builds or an entire world. It could also be useful as an intermediate format when converting between different formats. By providing a textual representation of objects, it can make modification of multiple objects a much easier task, for instance if a person needs to modify each texture on an object and replace it with a different one. &lt;br /&gt;
&lt;br /&gt;
The format is also indiscriminate of the two styles of rotation available in VP (AW &amp;amp; VP Axis-Angle type) so it can be used as a universal format to store AW backups too.&lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;The specification is still currently a work in progress.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
Lines starting with &amp;quot;O&amp;quot; should also be ignored as they are most likely the optional header, which is to name each field, user friendliness, spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline is replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab is replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Note that the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers (float type). This must be accounted for if your program will be processing the version number.&amp;lt;br&amp;gt;&lt;br /&gt;
Spreadsheet software will recognise the header and comments as part of the table, so there may be tabs after the header line, if the propdump has been edited with such software.&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
This can be better visualised in a table using spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
TODO: Colour code the lines to make each section more distinct, how would this be done inside a pre tag?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
For the end user, most spreadsheet software should be able to understand a standard Date &amp;amp; Time, allowing for the ability to manipulate objects in propdumps based on their date and time, for instance only selecting objects built before a certain date or only selecting objects from a certain date. The date can be flexible and may be altered slightly by some spreadsheet software when performing simple manipulations.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible, so it should understand most date and times. When using the [http://vpnet.codeplex.com/ VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2435</id>
		<title>User:Chris/WIP/VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2435"/>
		<updated>2013-03-10T00:04:12Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Under construction &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A simple propdump format for VP designed with flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values Tab-separated values] format, the VPPTSV format is intended to be a universal format for storing the object data of worlds in VP and allowing them to be easily edited. The format takes elements from the C++ programming language but was designed with .NET programming in mind.&lt;br /&gt;
&lt;br /&gt;
Many computer programs support the TSV format, such as spreadsheet and text editor software. This can mean that for the end-user, no additional programs need to be downloaded to edit a propdump. &lt;br /&gt;
&lt;br /&gt;
The format could be used to store a few builds or an entire world. It could also be useful as an intermediate format when converting between different formats. By providing a textual representation of objects, it can make modification of multiple objects a much easier task, for instance if a person needs to modify each texture on an object and replace it with a different one. &lt;br /&gt;
&lt;br /&gt;
The format is also indiscriminate of the two styles of rotation available in VP (AW &amp;amp; VP Axis-Angle type) so it can be used as a universal format to store AW backups too.&lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;The specification is still currently a work in progress.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
Lines starting with &amp;quot;O&amp;quot; should also be ignored as they are most likely the optional header, which is to name each field, user friendliness, spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline is replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab is replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Note that the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers (float type). This must be accounted for if your program will be processing the version number.&lt;br /&gt;
Spreadsheet software will recognise the header and comments as part of the table, so there may be tabs after the header line, if the propdump has been edited with such software.&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
This can be better visualised in a table using spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
TODO: Colour code the lines to make each section more distinct, how would this be done inside a pre tag?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
For the end user, most spreadsheet software should be able to understand a standard Date &amp;amp; Time, allowing for the ability to manipulate objects in propdumps based on their date and time, for instance only selecting objects built before a certain date or only selecting objects from a certain date. The date can be flexible and may be altered slightly by some spreadsheet software when performing simple manipulations.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible, so it should understand most date and times. When using the [http://vpnet.codeplex.com/ VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2434</id>
		<title>User:Chris/WIP/VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2434"/>
		<updated>2013-03-10T00:01:02Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Under construction &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A simple propdump format for VP designed with flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values Tab-separated values] format, the VPPTSV format is intended to be a universal format for storing the object data of worlds in VP and allowing them to be easily edited. The format takes elements from the C++ programming language but was designed with .NET programming in mind.&lt;br /&gt;
&lt;br /&gt;
Many computer programs support the TSV format, such as spreadsheet and text editor software. This can mean that for the end-user, no additional programs need to be downloaded to edit a propdump. &lt;br /&gt;
&lt;br /&gt;
The format could be used to store a few builds or an entire world. It could also be useful as an intermediate format when converting between different formats. By providing a textual representation of objects, it can make modification of multiple objects a much easier task, for instance if a person needs to modify each texture on an object and replace it with a different one. &lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;The specification is still currently a work in progress.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
Lines starting with &amp;quot;O&amp;quot; should also be ignored as they are most likely the optional header, which is to name each field, user friendliness, spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! VP SDK Attribute !! VPPTSV Attribute !! Data Type (C#)&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_USER_ID || Owner || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TIME || DateTime || DateTime&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_X || PositionX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Y || PositionY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_Z || PositionZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_X || RotationX || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Y || RotationY || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_Z || RotationZ || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ROTATION_ANGLE || RotationAngle || float&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_TYPE || ObjectType || unsigned int&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_MODEL || Model || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DESCRIPTION || Description || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_ACTION || Action || string&lt;br /&gt;
|-&lt;br /&gt;
| VP_OBJECT_DATA || ObjectData || byte[]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline is replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab is replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Note that the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers (float type). This must be accounted for if your program will be processing the version number.&lt;br /&gt;
Spreadsheet software will recognise the header and comments as part of the table, so there may be tabs after the header line, if the propdump has been edited with such software.&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
This can be better visualised in a table using spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
TODO: Colour code the lines to make each section more distinct, how would this be done inside a pre tag?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1&lt;br /&gt;
# Created:	09/03/2013 23:43:53&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
104	09/03/2013 22:49:39	-1.136963	8.195639E-09	0.2480469	0	1	0	0	0	tbtree003.rwx		create ambient .5,diffuse .5,specular 0&lt;br /&gt;
104	09/03/2013 23:13:00	-0.105957	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move -1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:12:46	0.03393555	0.005000007	-0.8530273	0	1	0	0	0	pp16w2.rwx		create scale .7 .6 .6,color 0;activate move 1 0 0 wait=10&lt;br /&gt;
104	09/03/2013 23:15:24	0.2128906	0.101	-0.001953125	0.7700768	0.3189757	0.552482	1.286658	0	pole1m02.rwx		create visible no,solid no,light color=skyblue&lt;br /&gt;
104	09/03/2013 23:05:52	0.2141113	6.705522E-09	0.1479492	0	1	0	0	0	thseb1g.rwx		&lt;br /&gt;
104	09/03/2013 23:14:05	0.2128906	0.301	0.0480957	0	1	0	0	0	thsed2.rwx		&lt;br /&gt;
104	09/03/2013 23:11:47	0.4628906	0.301	1.148926	0	1	0	0	0	sign3.rwx	Cheap Test House\nfor example purposes only	create sign	&lt;br /&gt;
104	09/03/2013 23:15:36	0.3640137	6.705522E-09	1.398926	0	1	0	3.141593	0	mailbox1.rwx		&lt;br /&gt;
104	09/03/2013 23:15:42	0.2141113	6.705522E-09	1.148926	0	1	0	0	0	doorpic2.rwx		create scale .9,solid no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
For the end user, most spreadsheet software should be able to understand a standard Date &amp;amp; Time, allowing for the ability to manipulate objects in propdumps based on their date and time, for instance only selecting objects built before a certain date or only selecting objects from a certain date. The date can be flexible and may be altered slightly by some spreadsheet software when performing simple manipulations.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible, so it should understand most date and times. When using the [http://vpnet.codeplex.com/ VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.openoffice.org/ OpenOffice Calc] - Free open-source spreadsheet software that can edit TSV files&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2415</id>
		<title>User:Chris/WIP/VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2415"/>
		<updated>2013-03-07T22:47:00Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Under construction &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A simple propdump format for VP designed with flexibility and user friendliness in mind. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values Tab-separated values] format, the VPPTSV format is intended to be a universal format for storing the object data of worlds in VP and allowing them to be easily edited. The format takes elements from the C++ programming language but was designed with .NET programming in mind.&lt;br /&gt;
&lt;br /&gt;
Many computer programs support the TSV format, such as spreadsheet and text editor software. This can mean that for the end-user, no additional programs need to be downloaded to edit a propdump. &lt;br /&gt;
&lt;br /&gt;
The format could be used to store a few builds or an entire world. It could also be useful as an intermediate format when converting between different formats. By providing a textual representation of objects, it can make modification of multiple objects a much easier task, for instance if a person needs to modify each texture on an object and replace it with a different one. &lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;The specification is still currently a work in progress.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
Lines starting with &amp;quot;O&amp;quot; should also be ignored as they are most likely the optional header, which is to name each field, user friendliness, spreadsheet software.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!SDK Attribute Name&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_USER_ID&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_TIME&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_X&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_Y&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_Z&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_ROTATION_X&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_ROTATION_Y&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_ROTATION_Z&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_ROTATION_ANGLE&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_TYPE&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_MODEL&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_DESCRIPTION&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_ACTION&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_DATA&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!VPPTSV Attribute Name&lt;br /&gt;
|&amp;lt;center&amp;gt;Owner&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;[[#Date &amp;amp; Time Structure|DateTime]]&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;PositionX&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;PositionY&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;PositionZ&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;RotationX&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;RotationY&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;RotationZ&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;RotationAngle&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;ObjectType&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Model&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Description&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Action&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;ObjectData&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!C# Data Type&lt;br /&gt;
|&amp;lt;center&amp;gt;int&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;DateTime&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;int&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;string&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;string&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;string&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;byte[]&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline is replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab is replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Note that the header version may be incremented to 1.1 if a small update is made to the specification, instead of whole numbers (float type). This must be accounted for if your program will be processing the version number.&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
TODO: better sample which displays use of \n, colour coding for the different parts of the sample, more common objects such as pp01.rwx and sign3.rwx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1&lt;br /&gt;
# Created:	30/12/2012 08:50:43&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
13	27/10/2012 03:52:51	-50	0.0149999	-23.76	0	-1	0	3.141593	0	walk007h.rwx	test	create texture road7&lt;br /&gt;
13	27/10/2012 03:52:51	-49.99501	-0.4800002	-23.24999	0	1	0	0	0	wall001h.rwx		create texture tan_brick&lt;br /&gt;
13	27/10/2012 03:52:51	-50	-9.674579E-08	-22.76	0	-1	0	3.141593	0	walk007h.rwx		create texture roadas&lt;br /&gt;
151	13/12/2012 03:02:25	30.54992	-3.130365E-07	14.73999	0	-1	0	3.141593	0	p:w100x400,0,.5.rwx		create color white&lt;br /&gt;
151	13/12/2012 03:02:35	30.79991	-3.130365E-07	14.73999	0	-1	0	3.141593	0	unit04		create color white,scale 2 2 .25&lt;br /&gt;
151	13/12/2012 03:03:44	30.49992	-3.130365E-07	14.58999	0	-1	0	1.570796	0	p:w300x400,0,.5.rwx		create color white&lt;br /&gt;
151	13/12/2012 03:03:39	30.49992	-0.1000003	14.23999	0	-1	0	1.570796	0	unit04		create color white,scale 2 2 .25&lt;br /&gt;
151	13/12/2012 03:04:03	30.49992	0.2999997	14.23999	0	-1	0	1.570796	0	p:w400x100,0,.5.rwx		create color white&lt;br /&gt;
151	13/12/2012 03:04:34	30.49992	-2.081924E-07	14.73999	-1	3.822869E-07	3.164966E-07	1.570796	0	p1rec0025b		create color b,scale .5 3&lt;br /&gt;
151	13/12/2012 03:04:39	30.49992	1.784422E-07	14.03999	-1	3.822869E-07	3.164966E-07	1.570796	0	p1rec0025b		create color b,scale .5 3&lt;br /&gt;
151	13/12/2012 03:05:35	30.44992	-3.130365E-07	14.73999	0	-1	0	3.141593	0	p:w100x400,0,.5.rwx		create color white&lt;br /&gt;
151	13/12/2012 03:06:10	30.19992	-3.130365E-07	14.73999	0	-1	0	3.141593	0	unit04		create color white,scale 2 2 .25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Date &amp;amp; Time Structure ==&lt;br /&gt;
For the end user, most spreadsheet software should be able to understand a standard Date &amp;amp; Time, allowing for the ability to manipulate objects in propdumps based on their date and time, for instance only selecting objects built before a certain date or only selecting objects from a certain date. The date can be flexible and may be altered slightly by some spreadsheet software when performing simple manipulations.&lt;br /&gt;
&lt;br /&gt;
The DateTime string can be parsed into a [http://msdn.microsoft.com/en-us/library/system.datetime.aspx DateTime structure] when programming in a .NET language using the [http://msdn.microsoft.com/en-us/library/system.datetime.parse.aspx DateTime.Parse Method]. This method accepts many date &amp;amp; time formats making it very flexible, so it should understand most date and times. When using the [http://vpnet.codeplex.com/ VPNet SDK], it is easy to parse the DateTime string directly into a VpObject structure using this method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2403</id>
		<title>User:Chris/WIP/VPPTSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP/VPPTSV&amp;diff=2403"/>
		<updated>2013-01-09T11:00:58Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page for the VPPTSV format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Under construction &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VP Propdump TSV Version 1 (VPPTSV1)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A simple propdump format for VP. Based on the [http://en.wikipedia.org/wiki/Tab-separated_values Tab-separated values] format, the VPPTSV format is intended to be a universal format for storing the object data of worlds in VP and allowing them to be easily edited. Compatibility with widely available spreadsheet and text editor software mean that no additional programs need to be downloaded. Many computer programs support the TSV format. This is a very flexible format which produces small file sizes and may be altered for different purposes.&lt;br /&gt;
&lt;br /&gt;
The format could be used to store a few builds or an entire world. It could be used as an intermediate format when converting between different formats. By providing a text representation of objects, it can make modification of multiple objects a much easier task, for instance if a person needs to modify each texture on an object and replace it with a different one. &lt;br /&gt;
&lt;br /&gt;
== File format specification ==&lt;br /&gt;
&#039;&#039;The specification is still currently a work in progress.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in a VPPTSV file is an individual object, with the data values being separated by tab characters. &lt;br /&gt;
The [http://en.wikipedia.org/wiki/Magic_number_%28programming%29 magic number] or header which must be the first line is &amp;quot;&#039;&#039;&#039;vp propdump tsv1&#039;&#039;&#039;&amp;quot;. This is used to identify the file format and version.&amp;lt;br&amp;gt;&lt;br /&gt;
Programs parsing the file should ignore lines that start with a hash&#039;&#039;&#039; # &#039;&#039;&#039; allowing for comments to be added such as the creation date and world.&amp;lt;br&amp;gt;&lt;br /&gt;
There is an optional heading for each column which is intended to help users identify the value in each column, it should also be ignored by programs parsing the file.&lt;br /&gt;
&lt;br /&gt;
::{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!SDK Attribute Name&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_USER_ID&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_TIME&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_X&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_Y&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_Z&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_ROTATION_X&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_ROTATION_Y&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_ROTATION_Z&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_ROTATION_ANGLE&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_TYPE&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_MODEL&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_DESCRIPTION&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_ACTION&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;VP_OBJECT_DATA&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!VPPTSV Attribute Name&lt;br /&gt;
|&amp;lt;center&amp;gt;Owner&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;DateTime&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;PositionX&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;PositionY&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;PositionZ&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;RotationX&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;RotationY&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;RotationZ&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;RotationAngle&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;ObjectType&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Model&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Description&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;Action&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;ObjectData&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!C# Data Type&lt;br /&gt;
|&amp;lt;center&amp;gt;int&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;DateTime&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;float&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;int&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;string&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;string&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;string&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;byte[]&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Newline is replaced with &#039;&#039;&#039;\n&#039;&#039;&#039; and tab is replaced with &#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
The header version may be changed to 1.1 or 1b (and so on) if a small update is made to the specification.&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vp propdump tsv1&lt;br /&gt;
# Created:	30/12/2012 08:50:43&lt;br /&gt;
# World:	Blizzard&lt;br /&gt;
&lt;br /&gt;
Owner	DateTime	PositionX	PositionY	PositionZ	RotationX	RotationY	RotationZ	RotationAngle	ObjectType	Model	Description	Action	ObjectData&lt;br /&gt;
13	27/10/2012 03:52:51	-50	0.0149999	-23.76	0	-1	0	3.141593	0	walk007h.rwx	test	create texture road7&lt;br /&gt;
13	27/10/2012 03:52:51	-49.99501	-0.4800002	-23.24999	0	1	0	0	0	wall001h.rwx		create texture tan_brick&lt;br /&gt;
13	27/10/2012 03:52:51	-50	-9.674579E-08	-22.76	0	-1	0	3.141593	0	walk007h.rwx		create texture roadas&lt;br /&gt;
151	13/12/2012 03:02:25	30.54992	-3.130365E-07	14.73999	0	-1	0	3.141593	0	p:w100x400,0,.5.rwx		create color white&lt;br /&gt;
151	13/12/2012 03:02:35	30.79991	-3.130365E-07	14.73999	0	-1	0	3.141593	0	unit04		create color white,scale 2 2 .25&lt;br /&gt;
151	13/12/2012 03:03:44	30.49992	-3.130365E-07	14.58999	0	-1	0	1.570796	0	p:w300x400,0,.5.rwx		create color white&lt;br /&gt;
151	13/12/2012 03:03:39	30.49992	-0.1000003	14.23999	0	-1	0	1.570796	0	unit04		create color white,scale 2 2 .25&lt;br /&gt;
151	13/12/2012 03:04:03	30.49992	0.2999997	14.23999	0	-1	0	1.570796	0	p:w400x100,0,.5.rwx		create color white&lt;br /&gt;
151	13/12/2012 03:04:34	30.49992	-2.081924E-07	14.73999	-1	3.822869E-07	3.164966E-07	1.570796	0	p1rec0025b		create color b,scale .5 3&lt;br /&gt;
151	13/12/2012 03:04:39	30.49992	1.784422E-07	14.03999	-1	3.822869E-07	3.164966E-07	1.570796	0	p1rec0025b		create color b,scale .5 3&lt;br /&gt;
151	13/12/2012 03:05:35	30.44992	-3.130365E-07	14.73999	0	-1	0	3.141593	0	p:w100x400,0,.5.rwx		create color white&lt;br /&gt;
151	13/12/2012 03:06:10	30.19992	-3.130365E-07	14.73999	0	-1	0	3.141593	0	unit04		create color white,scale 2 2 .25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[User:Chris/WIP/VPATSV|VPATSV]] Atdump specification&lt;br /&gt;
* [[User:Chris/WIP/VPETSV|VPETSV]] Elevdump specification&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP&amp;diff=2402</id>
		<title>User:Chris/WIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=User:Chris/WIP&amp;diff=2402"/>
		<updated>2013-01-09T08:51:25Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;* VPPTSV1 - Propdump specification&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[User:Chris/WIP/VPPTSV1|VPPTSV1 - Propdump specification]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Chris_D&amp;diff=2401</id>
		<title>Chris D</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Chris_D&amp;diff=2401"/>
		<updated>2013-01-09T08:41:49Z</updated>

		<summary type="html">&lt;p&gt;Chris: Updated links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:&#039;&#039;This is official Palmshire biography of Chris D. For official Virtual Paradise biography of Chris D, please see [[User:Chris|Chris D]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center; font-size: small&amp;quot;|The Right Honorable&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align: center; font-size: 125%; font-weight: bold&amp;quot;|Chris D&lt;br /&gt;
----&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; font-size:110%;&amp;quot;|&amp;lt;div style=&amp;quot;background:lavender; font-weight:bold&amp;quot;&amp;gt;[[Prime Minister of Palmshire]]&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; colspan=&amp;quot;3&amp;quot;|Assumed Office&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; colspan=&amp;quot;3&amp;quot;|29 August 2012&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Monarch&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Legion I of Palmshire|Legion I]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Preceded by&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Brock Tokeington, 1st Baron Tokeington|The Lord Tokeington]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Succeeded by&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center; font-size:110%;&amp;quot;|&amp;lt;div style=&amp;quot;background:lavender; font-weight:bold&amp;quot;&amp;gt;Personal details&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Political party&lt;br /&gt;
|!align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Socialist Party|Socialist]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{PAGENAME}}&#039;&#039;&#039; is the [[Prime Minister of Palmshire]], [[First Lord of the Treasury]], and [[Leaders of the Palmshire Socialist Party|Leader]] of the [[Socialist Party]]. He represents [[Pinecrest (Palmshire Parliament constituency)|Pinecrest]] as its [[Member of Parliament]] (MP).&lt;br /&gt;
&lt;br /&gt;
==Political career==&lt;br /&gt;
Chris D first entered Palmshire politics when he won the seat representing Catfield borough in the [[Parliament of Palmshire]] following [[Palmshire general election, March 2012|general election of March 2012]]. At first he belonged to the [[Palmshire Communist Party|Communist Party]] led by [[Demon Dog Tenenbaum, 1st Baron Arcadia|Lord Arcadia]]. However, his difference with Arcadia immediately led to his split with the party and he later founded the [[Socialist Party]].&lt;br /&gt;
&lt;br /&gt;
At [[Palmshire general election, June 2012|Next general election in June 2012]], he retained his seat and his party made a gain of one seat in the Parliament, becoming the second largest party in terms of seats in the House of Commons with total of 2 seats. Later, a number of resignations in the Parliament of seats held by Prime Minister [[Brock Tokeington, 1st Baron Tokeington|Lord Tokeington]]&#039;s [[Moose Party|Moose]] led to the slimming of his parliamentary majority to the point where defeat in the House of Commons was imminent, only for the King [[Legion I of Palmshire|Legion I]] to pre-empt this by dismissing Tokeington and his remaining supporters from their offices on 29 August 2012.&lt;br /&gt;
&lt;br /&gt;
The King then called on Chris D that same day to form a new government and he became the new Prime Minister. After abolition of his former Parliament constituency of Catfield, he stood for by-election to the Parliament constituency of Pinecrest and was thus assured his place in the Parliament for 2013 session. In early December 2012, the King offered Chris D a knighthood, a sign of King&#039;s favor. He declined on grounds of his modesty and recommended [[Edwin]] instead, which left a deep impression on the King who would not take no for next time. Shortly later, rumors were swirling that Chris D was to be made a Knight of the Bath on New Year&#039;s.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;width:auto; margin-left:auto; margin-right:auto;&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #FFBF00;&amp;quot; align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;Party political offices&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;First&#039;&#039;&#039; &amp;lt;br /&amp;gt; None recognized before&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[Leaders of the Palmshire Socialist Party|Leader of the Socialist Party]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2012-present&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|Succeeded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;Incumbent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;First&#039;&#039;&#039; &amp;lt;br /&amp;gt; None recognized before&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[General Secretary of the Palmshire Communist Party]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2010-present&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|Succeeded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;Incumbent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #ccccff;&amp;quot; align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;Political offices&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|Preceded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;[[Brock Tokeington, 1st Baron Tokeington|The Lord Tokeington]]&#039;&#039;&#039;&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[Prime Minister of Palmshire]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2012&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|Succeeded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;Incumbent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|Preceded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;[[Brock Tokeington, 1st Baron Tokeington|The Lord Tokeington]]&#039;&#039;&#039;&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|&#039;&#039;&#039;[[First Lord of the Treasury]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2012&lt;br /&gt;
|width=33% align=&amp;quot;center&amp;quot;|Succeeded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;Incumbent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #cccccc;&amp;quot;|&#039;&#039;&#039;[[Parliament of Palmshire]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Preceded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;New constituency&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;[[Member of Parliament]] for [[Catfield (Palmshire constituency)|Catfield]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2012&lt;br /&gt;
|&#039;&#039;&#039;Constituency abolished&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Preceded by &amp;lt;br /&amp;gt; &#039;&#039;&#039;New constituency&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;[[Member of Parliament]] for [[Pinecrest (Palmshire Parliament constituency)|Pinecrest]]&#039;&#039;&#039; &amp;lt;br /&amp;gt; 2012-present&lt;br /&gt;
|&#039;&#039;&#039;Incumbent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Prime Ministers of Palmshire]]&lt;br /&gt;
[[Category: Palmshire people]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Nexus&amp;diff=2278</id>
		<title>Nexus</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Nexus&amp;diff=2278"/>
		<updated>2012-12-01T15:50:20Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right; -moz-border-radius:12px&amp;quot; !align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;55bbff&amp;quot; colspan=&amp;quot;3&amp;quot;|Nexus |- !align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot;|[[...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| id=&amp;quot;toc&amp;quot; style=&amp;quot;width:25em; margin:0 0 0.5em 1em; float:right; -moz-border-radius:12px&amp;quot;&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;55bbff&amp;quot; colspan=&amp;quot;3&amp;quot;|Nexus&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot;|[[Image:Nexus.png|250px]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;77ddff&amp;quot; colspan=&amp;quot;3&amp;quot;|General-purpose bot&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Creator(s)&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Chris D&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Initial release&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|September 24, 2012&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Development status&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Active&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Type&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[[Bots|Bot]]&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|License&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|Freeware&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot;|Website&lt;br /&gt;
|align=&amp;quot;left&amp;quot; colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|[http://bit.ly/UuQCP0 Download here]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
Nexus is a practical general-purpose bot with various abilities and chat commands.&lt;br /&gt;
&lt;br /&gt;
Instructions on usage are provided with the bot.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
[http://bit.ly/UuQCP0 Download here]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Bots&amp;diff=2277</id>
		<title>Bots</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Bots&amp;diff=2277"/>
		<updated>2012-12-01T15:49:36Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the following bot available for download and use with Virtual Paradise.&lt;br /&gt;
&lt;br /&gt;
*[[Nexus|Nexus]] ([http://bit.ly/UuQCP0 Download]) - A general purpose bot by [[User:Chris D|Chris D]].&lt;br /&gt;
[[Category: Bots| ]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=File:Nexus.png&amp;diff=2275</id>
		<title>File:Nexus.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=File:Nexus.png&amp;diff=2275"/>
		<updated>2012-12-01T15:41:03Z</updated>

		<summary type="html">&lt;p&gt;Chris: Nexus 1.0 main window&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nexus 1.0 main window&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Simple_greeter_bot&amp;diff=2224</id>
		<title>Simple greeter bot</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Simple_greeter_bot&amp;diff=2224"/>
		<updated>2012-11-24T17:23:19Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
==C/C++==&lt;br /&gt;
In order to use the Virtual Paradise C SDK you must:&lt;br /&gt;
*Have Visual Studio, Visual C++ Express or another compatible C/C++ IDE+Compiler installed and [[developer environments#C|configured]]&lt;br /&gt;
*Download the x86 SDK from the [http://dev.virtualparadise.org/downloads.php Developer Downloads] page&lt;br /&gt;
&amp;lt;C&amp;gt;&lt;br /&gt;
#include &amp;lt;vpsdk/VP.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define Username &amp;quot;username&amp;quot;&lt;br /&gt;
#define Password &amp;quot;password&amp;quot;&lt;br /&gt;
#define Botname  &amp;quot;greeterbot&amp;quot;&lt;br /&gt;
#define Worldname &amp;quot;VP-Gate&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void event_avatar_add(VPInstance sdk);&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char ** argv)&lt;br /&gt;
{&lt;br /&gt;
    int err;&lt;br /&gt;
    if(err = vp_init(VPSDK_VERSION))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t initialize VP API(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    VPInstance sdk;&lt;br /&gt;
    sdk = vp_create();&lt;br /&gt;
&lt;br /&gt;
    if(err = vp_connect_universe(sdk, &amp;quot;universe.virtualparadise.org&amp;quot;, 57000))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t connect to universe(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(err = vp_login(sdk, Username, Password, Botname))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t login(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(err = vp_enter(sdk, Worldname))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t enter world(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    vp_event_set(sdk, VP_EVENT_AVATAR_ADD, event_avatar_add);&lt;br /&gt;
    &lt;br /&gt;
    vp_state_change(sdk);&lt;br /&gt;
    &lt;br /&gt;
    while(vp_wait(sdk, 1000) == 0){}&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void event_avatar_add(VPInstance sdk)&lt;br /&gt;
{&lt;br /&gt;
    char message[100];&lt;br /&gt;
    sprintf((char*)&amp;amp;message, &amp;quot;Hello, %s!&amp;quot;, vp_string(sdk, VP_AVATAR_NAME));&lt;br /&gt;
    vp_say(sdk, (char*)&amp;amp;message);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/C&amp;gt;&lt;br /&gt;
==C#==&lt;br /&gt;
In order to use the Virtual Paradise .Net SDK you must:&lt;br /&gt;
*Have Visual Studio or Visual C# Express installed and [[developer environments#CSharp|configured]]&lt;br /&gt;
*Download the x86 SDK from the [http://dev.virtualparadise.org/downloads.php Developer Downloads] page&lt;br /&gt;
*Download the .Net SDK from the [http://vpnet.codeplex.com/ VPNet SDK Download] page&lt;br /&gt;
&amp;lt;CSharp&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using VpNet.Core;&lt;br /&gt;
using VpNet.Core.EventData;&lt;br /&gt;
using VpNet.Core.Structs;&lt;br /&gt;
&lt;br /&gt;
class ExampleBot&lt;br /&gt;
{&lt;br /&gt;
    //Virtual Paradise SDK Instance&lt;br /&gt;
    public static Instance VPInstance;&lt;br /&gt;
&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
        try&lt;br /&gt;
        {&lt;br /&gt;
            //Initialize the Virtual Paradise .Net SDK&lt;br /&gt;
            VPInstance = new Instance();&lt;br /&gt;
&lt;br /&gt;
            //Register the events you wish to capture (Such as avatar entry)&lt;br /&gt;
            //This must be done AFTER the initialization, but before connection&lt;br /&gt;
            VPInstance.EventAvatarAdd += EventAvatarAdd;&lt;br /&gt;
            VPInstance.EventAvatarDelete += EventAvatarDelete;&lt;br /&gt;
&lt;br /&gt;
            //Connect to the universe using the default server settings&lt;br /&gt;
            VPInstance.Connect();&lt;br /&gt;
&lt;br /&gt;
            //Login to the universe using your username, password,&lt;br /&gt;
            //and the desired bot name&lt;br /&gt;
            VPInstance.Login(&amp;quot;Username&amp;quot;, &amp;quot;Password&amp;quot;, &amp;quot;MyBotName&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            //Enter the world&lt;br /&gt;
            VPInstance.Enter(&amp;quot;MyWorld&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            //Set the bot&#039;s position in the world &lt;br /&gt;
            VPInstance.UpdateAvatar(0.0f, 0.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
            //In order to process any pending network events and data&lt;br /&gt;
            //we must repeatedly call the Wait() function&lt;br /&gt;
            //Here we use a wait of 50 Miliseconds&lt;br /&gt;
            while (true)&lt;br /&gt;
            {&lt;br /&gt;
                VPInstance.Wait(50);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //This allows us to cleanly catch and handle &lt;br /&gt;
        //any errors the SDK throws. In normal usage,&lt;br /&gt;
        //you should handle specific errors, and not&lt;br /&gt;
        //use a catch-all like the one below.&lt;br /&gt;
        catch (VpException ex)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;{0}&amp;quot;, ex.Message);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //This pauses the console on crash, so that&lt;br /&gt;
        //you can review the error thrown by the SDK&lt;br /&gt;
        Console.Read();&lt;br /&gt;
    }&lt;br /&gt;
    static void EventAvatarAdd(Instance Sender, Avatar AvatarData)&lt;br /&gt;
    {&lt;br /&gt;
        //A user has entered the world (or the bot&#039;s range)&lt;br /&gt;
        //We print the user&#039;s name followed by a brief message&lt;br /&gt;
        VPInstance.Say(AvatarData.Name + &amp;quot; Entered&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    static void EventAvatarDelete(Instance Sender, Avatar AvatarData)&lt;br /&gt;
    {&lt;br /&gt;
        //A user has left the world (or the bot&#039;s range)&lt;br /&gt;
        //We print the user&#039;s name followed by a brief message&lt;br /&gt;
        VPInstance.Say(AvatarData.Name + &amp;quot; Left&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/CSharp&amp;gt;&lt;br /&gt;
==VB .Net==&lt;br /&gt;
&amp;lt;VBNet&amp;gt;&lt;br /&gt;
Imports VpNet.Core&lt;br /&gt;
Imports VpNet.Core.EventData&lt;br /&gt;
Imports VpNet.Core.Structs&lt;br /&gt;
&lt;br /&gt;
Module ExampleBot&lt;br /&gt;
    &#039;Virtual Paradise SDK Instance&lt;br /&gt;
    Public VPInstance As Instance&lt;br /&gt;
&lt;br /&gt;
    Sub Main(ByVal args As String())&lt;br /&gt;
        Try&lt;br /&gt;
            &#039;Initialize the Virtual Paradise .Net SDK&lt;br /&gt;
            VPInstance = New Instance()&lt;br /&gt;
&lt;br /&gt;
            &#039;Register the events you wish to capture (Such as avatar entry)&lt;br /&gt;
            &#039;This must be done AFTER the initialization, but before connection&lt;br /&gt;
            AddHandler VPInstance.EventAvatarAdd, AddressOf EventAvatarAdd&lt;br /&gt;
            AddHandler VPInstance.EventAvatarDelete, AddressOf EventAvatarDelete&lt;br /&gt;
&lt;br /&gt;
            &#039;Connect to the universe using the default server settings&lt;br /&gt;
            VPInstance.Connect()&lt;br /&gt;
&lt;br /&gt;
            &#039;Login to the universe using your username, password,&lt;br /&gt;
            &#039;and the desired bot name&lt;br /&gt;
            VPInstance.Login(&amp;quot;Username&amp;quot;, &amp;quot;Password&amp;quot;, &amp;quot;MyBotName&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            &#039;Enter the world&lt;br /&gt;
            VPInstance.Enter(&amp;quot;MyWorld&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            &#039;Set the bot&#039;s position in the world &lt;br /&gt;
            VPInstance.UpdateAvatar(0.0F, 0.0F, 0.0F)&lt;br /&gt;
&lt;br /&gt;
            &#039;Write success message to the console&lt;br /&gt;
            Console.WriteLine(&amp;quot;Login success!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            &#039;In order to process any pending network events and data&lt;br /&gt;
            &#039;we must repeatedly call the Wait() function&lt;br /&gt;
            &#039;Here we use a wait of 50 Miliseconds&lt;br /&gt;
            While True&lt;br /&gt;
                VPInstance.Wait(50)&lt;br /&gt;
            End While&lt;br /&gt;
&lt;br /&gt;
            &#039;This allows us to cleanly catch and handle &lt;br /&gt;
            &#039;any errors the SDK throws. In normal usage,&lt;br /&gt;
            &#039;you should handle specific errors, and not&lt;br /&gt;
            &#039;use a catch-all like the one below.&lt;br /&gt;
        Catch ex As VpException&lt;br /&gt;
            Console.WriteLine(&amp;quot;{0}&amp;quot;, ex.Message)&lt;br /&gt;
        End Try&lt;br /&gt;
&lt;br /&gt;
        &#039;This pauses the console on crash, so that&lt;br /&gt;
        &#039;you can review the error thrown by the SDK&lt;br /&gt;
        Console.Read()&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub EventAvatarAdd(ByVal Sender As Instance, ByVal AvatarData As Avatar)&lt;br /&gt;
        &#039;A user has entered the world (or the bot&#039;s range)&lt;br /&gt;
        &#039;We print the user&#039;s name followed by a brief message&lt;br /&gt;
        VPInstance.Say(AvatarData.Name &amp;amp; &amp;quot; Entered&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Private Sub EventAvatarDelete(ByVal Sender As Instance, ByVal AvatarData As Avatar)&lt;br /&gt;
        &#039;A user has left the world (or the bot&#039;s range)&lt;br /&gt;
        &#039;We print the user&#039;s name followed by a brief message&lt;br /&gt;
        VPInstance.Say(AvatarData.Name &amp;amp; &amp;quot; Left&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/VBNet&amp;gt;&lt;br /&gt;
[[Category: Bots]]&lt;br /&gt;
[[Category: SDK]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Simple_greeter_bot&amp;diff=2223</id>
		<title>Simple greeter bot</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Simple_greeter_bot&amp;diff=2223"/>
		<updated>2012-11-24T17:21:44Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
==C/C++==&lt;br /&gt;
In order to use the Virtual Paradise C SDK you must:&lt;br /&gt;
*Have Visual Studio, Visual C++ Express or another compatible C/C++ IDE+Compiler installed and [[developer environments#C|configured]]&lt;br /&gt;
*Download the x86 SDK from the [http://dev.virtualparadise.org/downloads.php Developer Downloads] page&lt;br /&gt;
&amp;lt;C&amp;gt;&lt;br /&gt;
#include &amp;lt;vpsdk/VP.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define Username &amp;quot;username&amp;quot;&lt;br /&gt;
#define Password &amp;quot;password&amp;quot;&lt;br /&gt;
#define Botname  &amp;quot;greeterbot&amp;quot;&lt;br /&gt;
#define Worldname &amp;quot;VP-Gate&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void event_avatar_add(VPInstance sdk);&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char ** argv)&lt;br /&gt;
{&lt;br /&gt;
    int err;&lt;br /&gt;
    if(err = vp_init(VPSDK_VERSION))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t initialize VP API(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    VPInstance sdk;&lt;br /&gt;
    sdk = vp_create();&lt;br /&gt;
&lt;br /&gt;
    if(err = vp_connect_universe(sdk, &amp;quot;universe.virtualparadise.org&amp;quot;, 57000))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t connect to universe(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(err = vp_login(sdk, Username, Password, Botname))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t login(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(err = vp_enter(sdk, Worldname))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t enter world(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    vp_event_set(sdk, VP_EVENT_AVATAR_ADD, event_avatar_add);&lt;br /&gt;
    &lt;br /&gt;
    vp_state_change(sdk);&lt;br /&gt;
    &lt;br /&gt;
    while(vp_wait(sdk, 1000) == 0){}&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void event_avatar_add(VPInstance sdk)&lt;br /&gt;
{&lt;br /&gt;
    char message[100];&lt;br /&gt;
    sprintf((char*)&amp;amp;message, &amp;quot;Hello, %s!&amp;quot;, vp_string(sdk, VP_AVATAR_NAME));&lt;br /&gt;
    vp_say(sdk, (char*)&amp;amp;message);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/C&amp;gt;&lt;br /&gt;
==C#==&lt;br /&gt;
In order to use the Virtual Paradise .Net SDK you must:&lt;br /&gt;
*Have Visual Studio or Visual C# Express installed and [[developer environments#CSharp|configured]]&lt;br /&gt;
*Download the x86 SDK from the [http://dev.virtualparadise.org/downloads.php Developer Downloads] page&lt;br /&gt;
*Download the .Net SDK from the [http://vpnet.codeplex.com/ VPNet SDK Download] page&lt;br /&gt;
&amp;lt;CSharp&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using VpNet.Core;&lt;br /&gt;
using VpNet.Core.EventData;&lt;br /&gt;
using VpNet.Core.Structs;&lt;br /&gt;
&lt;br /&gt;
class ExampleBot&lt;br /&gt;
{&lt;br /&gt;
    //Virtual Paradise SDK Instance&lt;br /&gt;
    public static Instance VPInstance;&lt;br /&gt;
&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
        try&lt;br /&gt;
        {&lt;br /&gt;
            //Initialize the Virtual Paradise .Net SDK&lt;br /&gt;
            VPInstance = new Instance();&lt;br /&gt;
&lt;br /&gt;
            //Register the events you wish to capture (Such as avatar entry)&lt;br /&gt;
            //This must be done AFTER the initialization, but before connection&lt;br /&gt;
            VPInstance.EventAvatarAdd += EventAvatarAdd;&lt;br /&gt;
            VPInstance.EventAvatarDelete += EventAvatarDelete;&lt;br /&gt;
&lt;br /&gt;
            //Connect to the universe using the default server settings&lt;br /&gt;
            VPInstance.Connect();&lt;br /&gt;
&lt;br /&gt;
            //Login to the universe using your username, password,&lt;br /&gt;
            //and the desired bot name&lt;br /&gt;
            VPInstance.Login(&amp;quot;Username&amp;quot;, &amp;quot;Password&amp;quot;, &amp;quot;MyBotName&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            //Enter the world&lt;br /&gt;
            VPInstance.Enter(&amp;quot;MyWorld&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            //Set the bot&#039;s position in the world &lt;br /&gt;
            VPInstance.UpdateAvatar(0.0f, 0.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
            //In order to process any pending network events and data&lt;br /&gt;
            //we must repeatedly call the Wait() function&lt;br /&gt;
            //Here we use a wait of 50 Miliseconds&lt;br /&gt;
            while (true)&lt;br /&gt;
            {&lt;br /&gt;
                VPInstance.Wait(50);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //This allows us to cleanly catch and handle &lt;br /&gt;
        //any errors the SDK throws. In normal usage,&lt;br /&gt;
        //you should handle specific errors, and not&lt;br /&gt;
        //use a catch-all like the one below.&lt;br /&gt;
        catch (VpException ex)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;{0}&amp;quot;, ex.Message);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //This pauses the console on crash, so that&lt;br /&gt;
        //you can review the error thrown by the SDK&lt;br /&gt;
        Console.Read();&lt;br /&gt;
    }&lt;br /&gt;
    static void EventAvatarAdd(Instance Sender, Avatar AvatarData)&lt;br /&gt;
    {&lt;br /&gt;
        //A user has entered the world (or the bot&#039;s range)&lt;br /&gt;
        //We print the user&#039;s name followed by a brief message&lt;br /&gt;
        VPInstance.Say(AvatarData.Name + &amp;quot; Entered&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    static void EventAvatarDelete(Instance Sender, Avatar AvatarData)&lt;br /&gt;
    {&lt;br /&gt;
        //A user has left the world (or the bot&#039;s range)&lt;br /&gt;
        //We print the user&#039;s name followed by a brief message&lt;br /&gt;
        VPInstance.Say(AvatarData.Name + &amp;quot; Left&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/CSharp&amp;gt;&lt;br /&gt;
==VB .Net==&lt;br /&gt;
&amp;lt;VBNet&amp;gt;&lt;br /&gt;
Imports VpNet.Core&lt;br /&gt;
Imports VpNet.Core.EventData&lt;br /&gt;
Imports VpNet.Core.Structs&lt;br /&gt;
&lt;br /&gt;
Module ExampleBot&lt;br /&gt;
    &#039;Virtual Paradise SDK Instance&lt;br /&gt;
    Public VPInstance As Instance&lt;br /&gt;
&lt;br /&gt;
    Sub Main(ByVal args As String())&lt;br /&gt;
        Try&lt;br /&gt;
            &#039;Initialize the Virtual Paradise .Net SDK&lt;br /&gt;
            VPInstance = New Instance()&lt;br /&gt;
&lt;br /&gt;
            &#039;Register the events you wish to capture (Such as avatar entry)&lt;br /&gt;
            &#039;This must be done AFTER the initialization, but before connection&lt;br /&gt;
            AddHandler VPInstance.EventAvatarAdd, AddressOf EventAvatarAdd&lt;br /&gt;
            AddHandler VPInstance.EventAvatarDelete, AddressOf EventAvatarDelete&lt;br /&gt;
&lt;br /&gt;
            &#039;Connect to the universe using the default server settings&lt;br /&gt;
            VPInstance.Connect()&lt;br /&gt;
&lt;br /&gt;
            &#039;Login to the universe using your username, password,&lt;br /&gt;
            &#039;and the desired bot name&lt;br /&gt;
            VPInstance.Login(&amp;quot;Username&amp;quot;, &amp;quot;Password&amp;quot;, &amp;quot;MyBotName&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            &#039;Enter the world&lt;br /&gt;
            VPInstance.Enter(&amp;quot;MyWorld&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            &#039;Set the bot&#039;s position in the world &lt;br /&gt;
            VPInstance.UpdateAvatar(0.0F, 0.0F, 0.0F)&lt;br /&gt;
&lt;br /&gt;
            &#039;Write success message to the console&lt;br /&gt;
            Console.WriteLine(&amp;quot;Login success!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            &#039;In order to proccess any pending network events and data&lt;br /&gt;
            &#039;we must repeatedly call the Wait() function&lt;br /&gt;
            &#039;Here we use a wait of 50 Miliseconds&lt;br /&gt;
            While True&lt;br /&gt;
                VPInstance.Wait(50)&lt;br /&gt;
            End While&lt;br /&gt;
&lt;br /&gt;
            &#039;This allows us to cleanly catch and handle &lt;br /&gt;
            &#039;any errors the SDK throws. In normal usage,&lt;br /&gt;
            &#039;you should handle specific errors, and not&lt;br /&gt;
            &#039;use a catch-all like the one below.&lt;br /&gt;
        Catch ex As VpException&lt;br /&gt;
            Console.WriteLine(&amp;quot;{0}&amp;quot;, ex.Message)&lt;br /&gt;
        End Try&lt;br /&gt;
&lt;br /&gt;
        &#039;This pauses the console on crash, so that&lt;br /&gt;
        &#039;you can review the error thrown by the SDK&lt;br /&gt;
        Console.Read()&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub EventAvatarAdd(ByVal Sender As Instance, ByVal AvatarData As Avatar)&lt;br /&gt;
        &#039;A user has entered the world (or the bot&#039;s range)&lt;br /&gt;
        &#039;We print the user&#039;s name followed by a brief message&lt;br /&gt;
        VPInstance.Say(AvatarData.Name &amp;amp; &amp;quot; Entered&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Private Sub EventAvatarDelete(ByVal Sender As Instance, ByVal AvatarData As Avatar)&lt;br /&gt;
        &#039;A user has left the world (or the bot&#039;s range)&lt;br /&gt;
        &#039;We print the user&#039;s name followed by a brief message&lt;br /&gt;
        VPInstance.Say(AvatarData.Name &amp;amp; &amp;quot; Left&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/VBNet&amp;gt;&lt;br /&gt;
[[Category: Bots]]&lt;br /&gt;
[[Category: SDK]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Simple_greeter_bot&amp;diff=2221</id>
		<title>Simple greeter bot</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Simple_greeter_bot&amp;diff=2221"/>
		<updated>2012-11-23T23:12:01Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
==C/C++==&lt;br /&gt;
In order to use the Virtual Paradise C SDK you must:&lt;br /&gt;
*Have Visual Studio, Visual C++ Express or another compatible C/C++ IDE+Compiler installed and [[developer environments#C|configured]]&lt;br /&gt;
*Download the x86 SDK from the [http://dev.virtualparadise.org/downloads.php Developer Downloads] page&lt;br /&gt;
&amp;lt;C&amp;gt;&lt;br /&gt;
#include &amp;lt;vpsdk/VP.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define Username &amp;quot;username&amp;quot;&lt;br /&gt;
#define Password &amp;quot;password&amp;quot;&lt;br /&gt;
#define Botname  &amp;quot;greeterbot&amp;quot;&lt;br /&gt;
#define Worldname &amp;quot;VP-Gate&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void event_avatar_add(VPInstance sdk);&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char ** argv)&lt;br /&gt;
{&lt;br /&gt;
    int err;&lt;br /&gt;
    if(err = vp_init(VPSDK_VERSION))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t initialize VP API(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    VPInstance sdk;&lt;br /&gt;
    sdk = vp_create();&lt;br /&gt;
&lt;br /&gt;
    if(err = vp_connect_universe(sdk, &amp;quot;universe.virtualparadise.org&amp;quot;, 57000))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t connect to universe(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(err = vp_login(sdk, Username, Password, Botname))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t login(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(err = vp_enter(sdk, Worldname))&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Couldn&#039;t enter world(reason %d)&amp;quot;, err);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    vp_event_set(sdk, VP_EVENT_AVATAR_ADD, event_avatar_add);&lt;br /&gt;
    &lt;br /&gt;
    vp_state_change(sdk);&lt;br /&gt;
    &lt;br /&gt;
    while(vp_wait(sdk, 1000) == 0){}&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void event_avatar_add(VPInstance sdk)&lt;br /&gt;
{&lt;br /&gt;
    char message[100];&lt;br /&gt;
    sprintf((char*)&amp;amp;message, &amp;quot;Hello, %s!&amp;quot;, vp_string(sdk, VP_AVATAR_NAME));&lt;br /&gt;
    vp_say(sdk, (char*)&amp;amp;message);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/C&amp;gt;&lt;br /&gt;
==C#==&lt;br /&gt;
In order to use the Virtual Paradise .Net SDK you must:&lt;br /&gt;
*Have Visual Studio or Visual C# Express installed and [[developer environments#CSharp|configured]]&lt;br /&gt;
*Download the x86 SDK from the [http://dev.virtualparadise.org/downloads.php Developer Downloads] page&lt;br /&gt;
*Download the .Net SDK from the [http://vpnet.codeplex.com/ VPNet SDK Download] page&lt;br /&gt;
&amp;lt;CSharp&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using VpNet.Core;&lt;br /&gt;
using VpNet.Core.EventData;&lt;br /&gt;
using VpNet.Core.Structs;&lt;br /&gt;
&lt;br /&gt;
namespace VPSDKExample&lt;br /&gt;
{&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        //Virtual Paradise SDK Instance&lt;br /&gt;
        public static Instance VPInstance; &lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                //Initalize the Virtual Paradise .Net SDK&lt;br /&gt;
                VPInstance = new Instance();&lt;br /&gt;
&lt;br /&gt;
                //Register the events you wish to capture (Such as avatar entry)&lt;br /&gt;
                //This must be done AFTER the initalization, but before connection&lt;br /&gt;
                VPInstance.EventAvatarAdd += EventAvatarAdd;&lt;br /&gt;
                VPInstance.EventAvatarDelete += EventAvatarDelete;&lt;br /&gt;
&lt;br /&gt;
                //Connect to the universe using the default server settings&lt;br /&gt;
                VPInstance.Connect();&lt;br /&gt;
&lt;br /&gt;
                //Login to the universe using your username, password,&lt;br /&gt;
                //and the desired bot name&lt;br /&gt;
                VPInstance.Login(&amp;quot;Username&amp;quot;, &amp;quot;Password&amp;quot;, &amp;quot;MyBotName&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                //Enter the world&lt;br /&gt;
                VPInstance.Enter(&amp;quot;MyWorld&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
                //Set the bot&#039;s position in the world &lt;br /&gt;
                VPInstance.UpdateAvatar(0.0f, 0.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
                //in order to proccess any pending network events and data&lt;br /&gt;
                //we must repeatedly call the Wait() function&lt;br /&gt;
                //Here we use a wait of 50 Miliseconds&lt;br /&gt;
                while (true)&lt;br /&gt;
                {&lt;br /&gt;
                    VPInstance.Wait(50);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
                //This allows us to cleanly catch and handle &lt;br /&gt;
                //any errors the SDK throws. In normal usage,&lt;br /&gt;
                //you should handle specific errors, and not&lt;br /&gt;
                //use a catch-all like the one below.&lt;br /&gt;
            catch (VpException ex)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(&amp;quot;{0}&amp;quot;, ex.Message);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            //This pauses the console on crash, so that&lt;br /&gt;
            //you can review the error thrown by the SDK&lt;br /&gt;
            Console.Read();&lt;br /&gt;
        }&lt;br /&gt;
        static void EventAvatarAdd(Instance Sender, Avatar AvatarData)&lt;br /&gt;
        {&lt;br /&gt;
            //A user has entered the world (or the bot&#039;s range)&lt;br /&gt;
            //We print the user&#039;s name followed by a breif message&lt;br /&gt;
            VPInstance.Say(AvatarData.Name + &amp;quot; Entered&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void EventAvatarDelete(Instance Sender, Avatar AvatarData)&lt;br /&gt;
        {&lt;br /&gt;
            //A user has left the world (or the bot&#039;s range)&lt;br /&gt;
            //We print the user&#039;s name followed by a breif message&lt;br /&gt;
            VPInstance.Say(AvatarData.Name + &amp;quot; Left&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/CSharp&amp;gt;&lt;br /&gt;
==VB .Net==&lt;br /&gt;
&amp;lt;VBNet&amp;gt;&lt;br /&gt;
Imports VpNet&lt;br /&gt;
Imports VpNet.Core&lt;br /&gt;
Imports VpNet.NativeApi&lt;br /&gt;
&lt;br /&gt;
Module Module1&lt;br /&gt;
    &#039;Virtual Paradise SDK Instance&lt;br /&gt;
    Public VPInstance As VpNet.Core.Instance&lt;br /&gt;
&lt;br /&gt;
    Sub Main(ByVal args As String())&lt;br /&gt;
        Try&lt;br /&gt;
            &#039;Initalize the Virtual Paradise .Net SDK&lt;br /&gt;
            VPInstance = New Instance()&lt;br /&gt;
&lt;br /&gt;
            &#039;Register the events you wish to capture (Such as avatar entry)&lt;br /&gt;
            &#039;This must be done AFTER the initalization, but before connection&lt;br /&gt;
            AddHandler VPInstance.EventAvatarAdd, AddressOf EventAvatarAdd&lt;br /&gt;
            AddHandler VPInstance.EventAvatarDelete, AddressOf EventAvatarDelete&lt;br /&gt;
&lt;br /&gt;
            &#039;Connect to the universe using the default server settings&lt;br /&gt;
            VPInstance.Connect()&lt;br /&gt;
&lt;br /&gt;
            &#039;Login to the universe using your username, password,&lt;br /&gt;
            &#039;and the desired bot name&lt;br /&gt;
            VPInstance.Login(&amp;quot;Username&amp;quot;, &amp;quot;Password&amp;quot;, &amp;quot;MyBotName&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            &#039;Enter the world&lt;br /&gt;
            VPInstance.Enter(&amp;quot;MyWorld&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            &#039;Set the bot&#039;s position in the world &lt;br /&gt;
            VPInstance.UpdateAvatar(0.0F, 0.0F, 0.0F)&lt;br /&gt;
&lt;br /&gt;
            &#039;Write success message to the console&lt;br /&gt;
            Console.WriteLine(&amp;quot;Login success!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            &#039;In order to proccess any pending network events and data&lt;br /&gt;
            &#039;we must repeatedly call the Wait() function&lt;br /&gt;
            &#039;Here we use a wait of 50 Miliseconds&lt;br /&gt;
            While True&lt;br /&gt;
                VPInstance.Wait(50)&lt;br /&gt;
            End While&lt;br /&gt;
&lt;br /&gt;
            &#039;This allows us to cleanly catch and handle &lt;br /&gt;
            &#039;any errors the SDK throws. In normal usage,&lt;br /&gt;
            &#039;you should handle specific errors, and not&lt;br /&gt;
            &#039;use a catch-all like the one below.&lt;br /&gt;
        Catch ex As VpException&lt;br /&gt;
            Console.WriteLine(&amp;quot;{0}&amp;quot;, ex.Message)&lt;br /&gt;
        End Try&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &#039;This pauses the console on crash, so that&lt;br /&gt;
        &#039;you can review the error thrown by the SDK&lt;br /&gt;
        Console.Read()&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub EventAvatarAdd(ByVal Sender As Instance, ByVal AvatarData As VpNet.Core.Structs.Avatar)&lt;br /&gt;
        &#039;A user has entered the world (or the bot&#039;s range)&lt;br /&gt;
        &#039;We print the user&#039;s name followed by a breif message&lt;br /&gt;
        VPInstance.Say(Convert.ToString(AvatarData.Name) &amp;amp; &amp;quot; Entered&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Private Sub EventAvatarDelete(ByVal Sender As Instance, ByVal AvatarData As VpNet.Core.Structs.Avatar)&lt;br /&gt;
        &#039;A user has left the world (or the bot&#039;s range)&lt;br /&gt;
        &#039;We print the user&#039;s name followed by a breif message&lt;br /&gt;
        VPInstance.Say(Convert.ToString(AvatarData.Name) &amp;amp; &amp;quot; Left&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Module&lt;br /&gt;
&amp;lt;/VBNet&amp;gt;&lt;br /&gt;
[[Category: Bots]]&lt;br /&gt;
[[Category: SDK]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.virtualparadise.org/index.php?title=Building&amp;diff=2164</id>
		<title>Building</title>
		<link rel="alternate" type="text/html" href="https://wiki.virtualparadise.org/index.php?title=Building&amp;diff=2164"/>
		<updated>2012-11-21T05:39:17Z</updated>

		<summary type="html">&lt;p&gt;Chris: Added links to triggers and commands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Virtual Paradise has a built-in object building system. It allows users to build their own objects within virtual worlds.&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Script_triggers | Script triggers]]&lt;br /&gt;
* [[List_of_action_commands | Script commands]]&lt;br /&gt;
== Supported mesh file formats ==&lt;br /&gt;
* RenderWare (.RWX)&lt;br /&gt;
* Quake MD2 (.MD2)&lt;br /&gt;
== Supported texture file formats ==&lt;br /&gt;
* JPEG&lt;br /&gt;
* PNG&lt;br /&gt;
* GIF&lt;br /&gt;
* BMP for masks&lt;br /&gt;
* Other file formats depending operating system, use of these other formats is not recommended because of possible compatibility issues.&lt;br /&gt;
&lt;br /&gt;
[[Category: Building]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
</feed>